You are on page 1of 10

LENGUAJE C

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 */

COLBETHLEMITAS Online - Informtica - Profesor: Ing. Freddy Naranjo - http://jfreddynq.fhpanel.com

Pgina 1

CAPITULO 2: VARI ABLES Y CONSTANTES


1. DEFINICION DE VARIABLES Un programa debe DEFINIR a todas las variables que utilizar, antes de comenzar a usarlas, a fin de indicarle al compilador de que tipo sern, y por lo tanto cuanta memoria debe destinar para albergar a cada una de ellas. Veamos el EJEMPLO 2: EJEMPLO 2 #include <stdio.h> main() { int multiplicador; multiplicador = 1000; } En la lnea de cdigo: int multiplicador; int es el tipo de de dato de la variable (int es integer en ingls, entero en espaol) multiplicador es el nombre que se ha dado a la variable En la lnea de cdigo: multiplicador = 1000; se le ha asignado el valor de 1000 a la variable multiplicador que ya haba sido definida como valor entero ALGO MS SOBRE LAS VARIABLES Las variables como en matemticas son identificadores que toman algn valor que puede estar variando. Las variables se definen en las primeras lneas despus de main() Las variables, como los datos usados en las bases de datos (Access) pueden ser de varios tipos: enteros (integer), caracteres (char), etc dependiendo del tipo de datos que almacenen ms adelante las veremos. Para dar un nombre de una variable debe empezar por letra y luego si puede utilizar nmeros. Por ej: hola65 Es importante que los nombres de variables que utilice tengan un significado asociado a lo que hacen. NOTA: Los compiladores reservan determinados trminos palabras claves (Keywords) para el uso sintctico del lenguaje, tales como: asm, auto, break, case, char, do, for, etc, por lo que es aconsejable leer la tabla completa de palabras reservadas del compilador que se vaya a usar, para no utilizarlas en nombres de variables. Esto quiere decir que usted no puede dar como nombre a una variable cualquiera de esas palabras. 2. INICIALIZACION DE VARIABLES Las variables del mismo tipo pueden definirse mediante una definicin mltiple separndolas mediante , : int multiplicador, multiplicando, resultado; Esta sentencia es equivalente a int multiplicador; int multiplicando; int resultado; Las variables pueden tambin ser inicializadas (asignar un valor) en el momento de definirse. int multiplicador = 1000, multiplicando = 2, resultado; en este caso se definieron tres variables y se inicializaron dos. 3. TIPOS DE VARIABLES VARIABLES DEL TIPO ENTERO (int) Definido cuando quiera almacenar valores entre -32.768 y +32.767 En caso de necesitar un rango ms amplio, puede definirse la variable como long, que puede almacenar valores entre - 2.347.483.648 y +2.347.483.647. VARIABLES DE NUMERO REAL O PUNTO FLOTANTE (float) Un nmero real de punto flotante es aquel que adems de una parte entera, posee fracciones de la unidad. En nuestra convencin numrica solemos escribirlos de la siguiente manera : 2,3456, lamentablemente los compiladores usan la convencin del PUNTO decimal (en vez de la coma) . As el numero Pi se escribir : 3.14159 Otro formato de escritura, normalmente aceptado, es la notacin cientfica. Por ejemplo podr escribirse 2.345E+02, equivalente a 2.345 * 100 234.5 De acuerdo a su alcance hay tres tipos de variables de punto flotante: TIPO float double long double BYTES 4 8 10 VALOR MINIMO 3.4E-38 1.7E-308 3.4E-4932 VALOR MAXIMO 3.4E+38 1.7E+308 3.4E+4932 Pgina 2

COLBETHLEMITAS Online - Informtica - Profesor: Ing. Freddy Naranjo - http://jfreddynq.fhpanel.com

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.

COLBETHLEMITAS Online - Informtica - Profesor: Ing. Freddy Naranjo - http://jfreddynq.fhpanel.com

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 )

COLBETHLEMITAS Online - Informtica - Profesor: Ing. Freddy Naranjo - http://jfreddynq.fhpanel.com

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

COLBETHLEMITAS Online - Informtica - Profesor: Ing. Freddy Naranjo - http://jfreddynq.fhpanel.com

Pgina 5

CAPITULO 4: PROPOSICIONES PARA EL CONTROL DE FLUJO DE PROGRAMA


1. INTRODUCCION En lo que sigue de este captulo, denominaremos BLOQUE DE SENTENCIAS al conjunto de sentencias individuales includas dentro un par de llaves. Por ejemplo : { sentencia 1 ; sentencia 2 ; ............. sentencia n ; } Este conjunto se comportar sintcticamente como una sentencia simple y la llave de cierre del bloque NO debe ir seguida de punto y coma. Un ejemplo de bloque ya visto, es el cuerpo del programa principal de la funcin main(). main() { bloque de sentencias } En las proposiciones de control de flujo de programa , trabajaremos alternativamente con sentencias simples y bloques de ellas . 2. PROPOSICION IF - ELSE Esta proposicin sirve para ejecutar ciertas sentencias de programa, si una expresin resulta CIERTA otro grupo de sentencias, si aquella resulta FALSA. Su interpretacin literal sera: SI es CIERTA tal cosa, haga tal otra, si no lo es sltela . CASO 1 El caso ms sencillo sera: If (expresin) sentencia; If (expresin) sentencia; Cuando la sentencia que sigue al IF es nica, las dos formas de escritura expresadas arriba son equivalentes . La sentencia slo se ejecutar si el resultado de "expresin" es distinto de cero (CIERTO), en caso contrario el programa saltear dicha sentencia, realizando la siguiente en su flujo. EJEMPLO If ( a > b ) c=200; Si el valor de a es mayor que b entonces se ejecutara la sentencia de asignarle 200 a la variable c, en caso contrario, es decir, si el valor de a no es mayor que b, entonces no se ejecutar la sentencia c=200 y el programa continuar. CASO 2 En casos ms complejos que el anterior, la proposicin IF puede estar seguida por un bloque de sentencias: If (expresin) { sentencia1; sentencia2; sentencian; } Funciona igual que la anterior, slo que en lugar de ejecutar una sentencia, ejecuta varias y como son varias entonces se escriben entre los corchetes.

COLBETHLEMITAS Online - Informtica - Profesor: Ing. Freddy Naranjo - http://jfreddynq.fhpanel.com

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; .............. }

COLBETHLEMITAS Online - Informtica - Profesor: Ing. Freddy Naranjo - http://jfreddynq.fhpanel.com

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:

x = (-b + sqrt ( (b*b)-(4*a*c)) ) / (2*a);


donde, estrictamente hablando, slo lo que est a la derecha del operador de asignacin (=) es una expresin aritmtica. El conjunto de la variable que est a la izquierda del signo (=), el operador de asignacin, la expresin aritmtica y el carcter (;) constituyen una sentencia. En la expresin anterior aparece la llamada a la funcin de librera sqrt(), que tiene como valor de retorno la raz cuadrada de su nico argumento. En las expresiones se pueden introducir espacios en blanco entre operandos y operadores; por ejemplo, la expresin anterior se puede escribir tambin de la forma: 4.2.2 EXPRESIONES LGICAS Los elementos con los que se forman estas expresiones son valores lgicos; verdaderos (true, o distintos de 0) y falsos (false, o iguales a 0), y los operadores lgicos ||, && y !. Tambin se pueden emplear los operadores relacionales (<, >, <=, >=, ==, !=) para producir estos valores lgicos a partir de valores numricos. Estas expresiones equivalen siempre a un valor 1 (true) o a un valor 0 (false). Por ejemplo:

a = ( (b>c) && (c>d) ) || ( (c==e) || (e==b) );


donde de nuevo la expresin lgica es lo que est entre el operador de asignacin (=) y el (;). La variable a valdr 1 si b es mayor que c y c mayor que d, si c es igual a e e es igual a b. 4.2.3 EXPRESIONES GENERALES Una de las caractersticas ms importantes (y en ocasiones ms difciles de manejar) del C es su flexibilidad para combinar expresiones y operadores de distintos tipos en una expresin que se podra llamar general, aunque es una expresin absolutamente ordinaria de C. Recurdese que el resultado de una expresin lgica es siempre un valor numrico (un 1 un 0); esto permite que cualquier expresin lgica pueda aparecer como sub-expresin en una expresin aritmtica. Recprocamente, cualquier valor numrico puede ser considerado como un valor lgico: true si es distinto de 0 y false si es igual a 0. Esto permite introducir cualquier expresin aritmtica como sub-expresin de una expresin lgica. Por ejemplo:

(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.

COLBETHLEMITAS Online - Informtica - Profesor: Ing. Freddy Naranjo - http://jfreddynq.fhpanel.com

Pgina 10

You might also like