Professional Documents
Culture Documents
CAPITULO 1: INTRODUCCION
1. INTRODUCCION El lenguaje de programacin C se lo caracteriza como un lenguaje de "bajo nivel". No debe confundirse el trmino "bajo" con "poco", ya que el significado del mismo es en realidad "profundo". La mejor forma de aprender a programar en cualquier lenguaje es editar, compilar, corregir y ejecutar pequeos programas descriptivos. 2. ANATOMIA DE UN PROGRAMA C EJEMPLO 1 #include <stdio.h> main() { printf("Bienvenida a la Programacin en lenguaje C \n"); return 0; } La funcin main() indica donde empieza el programa. Las dos llaves { } indican el cuerpo principal del programa Dentro de las llaves van las sentencias (ordenes o comandos)
3. ENCABEZAMIENTO Las lneas anteriores a la funcin main() se denominan ENCABEZAMIENTO (HEADER) y son informaciones que se le suministran al Compilador. #include indica al compilador que debe leer un archivo (En este caso <stdio.h>) y reemplazarlo por el contenido de este. (Como lo vimos en clase si no se hace referencia a este archivo no se podran ejecutar las instrucciones que vienen despus). En el archivo estn incluidas declaraciones de las funciones luego llamadas por el programa ( por ejemplo printf() ) necesarias para que el compilador las procese. 4. COMENTARIOS La inclusin de comentarios en un programa es una saludable prctica, como lo reconocer cualquiera que haya tratado de leer un listado hecho por otro programador por s mismo, varios meses atrs. Para el compilador, los comentarios son inexistentes, por lo que no generan lneas de cdigo, permitiendo abundar en ellos tanto como se desee. En el lenguaje C se toma como comentario todo carcter interno a los smbolos: /* */. Los comentarios pueden ocupar uno o ms renglones, por ejemplo: COMENTARIOS /* este es un comentario corto */ /* este otro es mucho ms largo que el anterior */
Pgina 1
VARIABLES DE TIPO CARACTER (char) Es comn que las variables que vayan a alojar caracteres sean definidas como char Sin embargo, tambin funciona de manera correcta definirla como int 4. CONSTANTES Aquellos valores que, una vez compilado el programa no pueden ser cambiados, suelen denominarse CONSTANTES.
Pgina 3
CAPITULO 3: OPERADORES
1. INTRODUCCION Si analizamos la sentencia siguiente: var1 = var2 + var3; estamos dicindole al programa, por medio del operador +, que compute la suma del valor de dos variables , y una vez realizado esto asigne el resultado a otra variable var1. Esta ltima operacin (asignacin) se indica mediante otro operador, el signo =. El lenguaje C tiene una amplia variedad de operadores, y todos ellos caen dentro de 6 categorias: aritmticos , relacionales, lgicos, incremento y decremento, manejo de bits y asignacion. Todos ellos se irn describiendo en los prrafos subsiguientes. 2. OPERADORES ARITMETICOS SIMBOLO + * / % DESCRIPCION SUMA RESTA MULTIPLICACION DIVISION MODULO SIGNO EJEMPLO a+b ab a*b a/b a%b -a ORDEN DE EVALUACION 3 3 2 2 2 2
El operador mdulo ( % ) se utiliza para calcular el resto del cociente entre dos ENTEROS, y NO puede ser aplicado a variables del tipo float double . El orden de evaluacin de un operador se refiere a que cuanto ms bajo sea dicho nmero mayor ser su prioridad de ejecucin. Si en una operacin existen varios operadores, primero se evaluarn los de multiplicacin, divisin y mdulo y luego los de suma y resta. Y de izquierda a derecha si son del mismo orden. El ltimo de los operadores aritmticos es el de SIGNO. No debe confundrselo con el de resta, ya que este es un operador unitario que opera sobre una nica variable cambiando el signo de su contenido numrico. 3. OPERADORES RELACIONALES Todas las operaciones relacionales dan slo dos posibles resultados: VERDADERO FALSO. En el lenguaje C, Falso queda representado por un valor entero nulo (cero) y Verdadero por cualquier nmero distinto de cero SIMBOLO < > <= >= == != DESCRIPCION menor que mayor que menor o igual que mayor o igual que igual que distinto que EJEMPLO (a < b) (a >b) (a < = b) ( a >= b ) ( a = = b) ( a != b) ORDEN DE EVALUACION 5 5 5 5 6 6
Los operadores relacionales tiene menor precedencia que los aritmticos , de forma que a < b + c se interpreta como a < ( b + c ), pero aunque sea superfluo recomendamos el uso de parntesis a fin de aumentar la legilibilidad del texto. 4. OPERADORES LOGICOS Hay tres operadores que realizan las conectividades lgicas Y (AND), O (OR) y NEGACION (NOT) SIMBOLO && || ! DESCRIPCION Y (AND) O (OR) NEGACION (NOT) EJEMPLO (a>b) && (c < d) (a>b) || (c < d) !(a>b) ORDEN DE EVALUACION 10 11 1
El operador NEGACION invierte el sentido lgico de las operaciones, as ser !( a > b ) equivale a ( a < b ) !( a == b ) " " ( a != b )
Pgina 4
5. OPERADORES DE INCREMENTO Y DECREMENTO Los operadores de incremento y decremento son slo dos SIMBOLO ++ -DESCRIPCION incremento decremento EJEMPLO ++i i++ --i i-ORDEN DE EVALUACION 1 1
Para visualizar rpidamente la funcin de los operadores antedichos , digamos que las sentencias : a = a + 1; a++ ; tienen una accin idntica , de la misma forma que a = a - 1; a--; 6. OPERADORES DE ASIGNACION Estos operadores se utilizan para asignar valores a las variables SIMBOLO = DESCRIPCION igual a EJEMPLO a=b ORDEN DE EVALUACION 13
Pgina 5
Pgina 6
EJEMPLO If ( a > b ) { c=200; d=a+b; } CASO 3 En algunos casos se puede agregar a la proposicin IF otra proposicin llamada ELSE en los casos en que se requiera de su utilidad. Veamos la sintaxis teniendo en cuenta que se ejecutan varias sentencias (CASO 1): If (expresin) { sentencia1; sentencia2; } else { sentencia3; sentencia4; } En este caso, si la expresin es verdadera se ejecutarn las sentencias 1 y 2, de lo contrario, si la expresin es falsa se ejecutarn las sentencias 3 y 4. Esto literalmente suena asi: Si cumple la expresin haga 1 y 2, de lo contrario, haga 3 y 4. EJEMPLO If ( a > b ) { c=200; d=300; } else { c=400; d=500; } En este ejemplo si a es mayor que b, asigna 200 a c y 300 a d, de lo contrario, si a no es mayor que b, entonces asigna 400 a c y 500 a d 3. PROPOSICION SWITCH Esta proposicin sirve para evitar el uso de if anidados (que no hemos explicado) pero se refiere a que dentro de las sentencias de un if pueden haber otros if y as sucesivamente, esto hace que la lectura del programa se haga mas complicada, en este caso se puede utilizar mejor esta proposicin SWITCH. (Es muy til para programar mens) switch (x) { case '1' : c=200; break ; case '2' : c=300; break ; case '3' : c=400; break ; case '4' : c=500; break ; case 'n': c=600; break ; default : ninguna de las opciones; break ; }
COLBETHLEMITAS Online - Informtica - Profesor: Ing. Freddy Naranjo - http://jfreddynq.fhpanel.com
Pgina 7
Esta proposicin funciona as: la variable x guarda un valor que es analizado por switch y es comparado en los diferentes case que preguntan que si el valor de x es 1, 2, etc. Dependiendo del valor de c se realiza una sentencia, en este caso es asignarle a c un valor. El break funciona como rompimiento del programa despus encontrada la opcin y sale de esta proposicin y continua la ejecucin del programa. El default acta en caso de que el valor de x no corresponda a ninguna de las opciones descritas en los case. EJEMPLO Suponemos que en el ejercicio anterior el valor de x es 3, entonces el programa funciona de la siguiente forma. Analiza el primer case si el valor si x es 1, como no lo es, entonces no realiza la sentencia c=200 y salta al otro case. Analiza el segundo case y como el valor de x no es 2 salta nuevamente al siguiente case. Analiza el tercer case y como x es igual a 3 entonces ejecuta la sentencia c=400 y al leer el break sale del switch. 4. LA ITERACION WHILE El WHILE es una de las tres iteraciones posibles en C. Su sintaxis podra expresarse de la siguiente forma: CASO 1 while (expresion) proposicin 1; Esta sintaxis expresada en palabras significaria: mientras (expresin) d un resultado CIERTO ejectese la proposicin 1, Por lo general , dentro de la proposicin del bloque de ellas , se modifican trminos de la expresin condicional , para controlar la duracin de la iteracin . CASO 2 while (expresin) { proposicin 1 ; proposicin 2 ; ............... proposicin n ; } EJEMPLO while (a>b) { c=c+1; b=b+2; } Para este ejemplo vamos a suponer que a tiene un valor inicial de 6, b tiene un valor de 1 y c tiene un valor de 4 Entonces el programa acta de la siguiente forma: a es mayor que b? es decir 6 es mayor que 1, esto es CIERTO, entonces se ejecutan las sentencias que estn dentro c=c+1 entonces c que vala 4 ahora vale 5 b=b+2 entonces b que vala 1 ahora vale 3 y termina y vuelve a evaluarse while a es mayor que b? es decir 6 es mayor que 3, esto es CIERTO, entonces se ejecutan las sentencias que estn dentro c=c+1 entonces c que vala 5 ahora vale 6 b=b+2 entonces b que vala 3 ahora vale 5 y termina y vuelve a evaluarse while a es mayor que b? es decir 6 es mayor que 5, esto es CIERTO, entonces se ejecutan las sentencias que estn dentro c=c+1 entonces c que vala 6 ahora vale 7 b=b+2 entonces b que vala 5 ahora vale 7 y termina y vuelve a evaluarse while a es mayor que b? es decir 6 es mayor que 7, esto es FALSO, entonces se termina la iteracin while y ya no se ejecuta ninguna sentencia que est dentro. Y continua el programa en su ejecucin 5. LA ITERACION DO - WHILE Su sintaxis ser: do { proposicin 1; proposicin 2; ............... } while (expresin) ;
COLBETHLEMITAS Online - Informtica - Profesor: Ing. Freddy Naranjo - http://jfreddynq.fhpanel.com
Pgina 8
Expresado en palabras , esto significa : ejecute las proposiciones , luego repita la ejecucin mientras la expresin d un resultado CIERTO . La diferencia fundamental entre esta iteracin y la anterior es que el DO-WHILE se ejecuta siempre AL MENOS una vez, sea cual sea el resultado de expresin. 6. ITERACION FOR El FOR es simplemente una manera abreviada de expresar un WHILE, veamos su sintaxis: for ( expresin1 ; expresin2 ; expresion3 ) { proposicin1; proposicin2; .............. } Esto es equivalente a: expresin1 ; while ( expresin2 ) { proposicin1; proposicin2; .............. expresion3 La expresin1 es una asignacin de una ms variables, (equivale a una inicializacin de las mismas ), la expresin2 es una relacin de algn tipo que, mientras d un valor CIERTO, permite la iteracin de la ejecucin y expresin3 es otra asignacin , que comnmente vara alguna de las variables contenida en expresin2 . Todas estas expresiones , contenidas en el parntesis del FOR deben estar separadas por PUNTO Y COMA y NO por comas simples . No es imprescindible que existan TODAS las expresiones dentro del parntesis del FOR, pudindose dejar en blanco algunas de ellas: EJEMPLO for ( i=1 ; i<5 ; i=i+1 ) { proposicin1; proposicin2; .............. }
Pgina 9
CAPITULO 5: EXPRESIONES
1. INTRODUCCION Una expresin es una combinacin de variables y/o constantes, y operadores. La expresin es equivalente al resultado que proporciona al aplicar sus operadores a sus operandos. Por ejemplo, 1+5 es una expresin formada por dos operandos (1 y 5) y un operador (el +); esta expresin es equivalente al valor 6, lo cual quiere decir que all donde esta expresin aparece en el programa, en el momento de la ejecucin es evaluada y sustituida por su resultado. Una expresin puede estar formada por otras expresiones ms sencillas, y puede contener parntesis de varios niveles agrupando distintos trminos. En C existen distintos tipos de expresiones. 2. EXPRESIONES ARITMTICAS Estn formadas por variables y/o constantes, y distintos operadores aritmticos e incrementales (+, -, *, /, %, ++, --). Como se ha dicho, tambin se pueden emplear parntesis de tantos niveles como se desee, y su interpretacin sigue las normas aritmticas convencionales. Por ejemplo, la solucin de la ecuacin de segundo grado:
se escribe, en C en la forma:
(a - b*2.0) && (c != d)
A su vez, el operador de asignacin (=), adems de introducir un nuevo valor en la variable que figura a su izda, deja tambin este valor disponible para ser utilizado en una expresin ms general. Por ejemplo, supngase el siguiente cdigo que inicializa a 1 las tres variables a, b y c: a = b = c = 1; que equivale a: a = (b = (c = 1)); En realidad, lo que se ha hecho ha sido lo siguiente. En primer lugar se ha asignado un valor unidad a c; el resultado de esta asignacin es tambin un valor unidad, que est disponible para ser asignado a b; a su vez el resultado de esta segunda asignacin vuelve a quedar disponible y se puede asignar a la variable a.
Pgina 10