Programación en C Algo de Linux • El sistema operativo - interacción entre el usuario y la computadora. • Sintaxis de los comandos nombre -modificadores parámetros • Algunos comandos útiles – man comando : muestra descripción del comando – ls :muestra el contenido de un directorio – mkdir nombre :crea un directorio con el nombre • Editor de texto. kate, kwrite, emacs, TextWrangler, ... El primer programa • Pasos de seguir – Crear un archivo con el texto del programa – compilar el programa gcc nombre.c -o nombre_del_ejecutable – correr el programa ./nombre El primer programa Texto del programa #include <stdio.h> int main(void) { printf(“Hello word\n”); } Correr el programa • Grabar el texto en un archivo con nombre terminando en .c Por ejemplo hello.c • Compilar el programa con gcc hello.c -o helo • Correr el programa con ./hello El primer programa #include <stdio.h> define las funciones de entrada y salida int main(void) cuando se da el comando ./hello (o el nombre que tiene su programa) el sistema operativo ejecuta la función main. { cada funcion empiesa con { y termina con } printf(“Hello word\n”); la función printf imprime en la pantalla sus argumentos. Cada serie de letras entre “ y “ (comillas dobles) se interpreta como una cadena } Variables • • • • Una variable es una forma de guardar datos en la memoria. El nombre de la variable se puede usar para referirse a estos datos El nombre de una variable puede ser tan largo como quieren. Debe empezar con letra y puede de contener cual querer combinación solo letras, números y el guión bajo. Tipos de variables – números enteros (int) – números reales (float) y (double) – símbolos (char) Cada variable debe ser definida antes de usarse en la forma tipo nombre por ejemplo int a; /* define una variable */ Programa II #include <stdio.h> int main(void) { int a,b,c; /* define las variambes */ a = 10; /* asigna valores a los variables a y b */ b = 5; c = a + b; /* calcula la suma */ printf("%d + %d = %d\n",a,b,c); /* imprime los resultados */ } Operaciones • Algebráicas +, -, *, /, ++, --, +=, -=, *=, /= % - calcula el modulo. Por ejemplo 5 % 3 es 0, 7 % 3 es 1. • Lógicas & - y, | - o, ! - no, &&, || • De comparación == - igual, < - menor que, > mayor que <= menor o igual, != diferente la función printf • printf(“cadena de simbolos y formatos”, variable1, variable2, ...) • Formatos – %d o %wd - imprime números enteros. w es el número de posiciones en cual se imprime el número – %f o %w.pf - imprime números en formato xxxx.yyy. w define el número de posiciones y p define los posicione después del punto – %w.pe - imprime números en formato xxxx.yyyEzzz. w y p tienen mismo sentido como arriba – %s o %ws - imprime cadenas de símbolos – %c - imprime un solo símbolo Ciclo for • Sirve para repetir un no o mas comandos un numero predeterminado de veces • Sintaxis for( i = 0; i < N; i++) { operaciones de repetir } #include <stdio.h> #include <math.h> /* declara las funcion matematicas */ int main(void) { int i, N; /* declara dos variables enteros float x,y; /* declara dos variables reales */ float pi = atan(1.0)*4.0; /* calcula el valor de pi */ N = 11; /* establece el numero de repeticiones del ciclo */ for (i=0; i<N; i++) { /* empiesa el ciclo */ x = ((float) i)/((float) (N-1)) * 2.0* pi ; /* calcula el angulo en el rango de 0 a 2pi */ y = sin(x); /* calcula sin(x) */ printf("%3d %10.5f %10.5f\n",i,x,y); /* imprime los resultados */ } /* termina el ciclo */ } Ciclos while y do ... while • Los dos ciclos repiten un fragmento del programa hasta que susede alguna condición. La diferencia entre los dos es el momento de calcular la condición • while (condición) { .... } • do { .... } while (condición); • Los dos ciclos repiten los operadores que estan dentro de los corchetes mientras la condición es verdadera. #include <stdio.h> /* print Fahrenheit-Celsius table for fahr = 0, 20, ..., 300 */ main() { int fahr, celsius; int lower, upper, step; lower = 0; /* lower limit of temperature scale */ upper = 300; /* upper limit */ step = 20; /* step size */ fahr = lower; while (fahr <= upper) { celsius = 5 * (fahr-32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + step; } }