Você está na página 1de 28

Introduccin al Lenguaje C EEST N 1 - 2012

Ing. Perez Knulst G

Introduccin al Lenguaje C
Con Ejemplos

ndice de contenido
Introduccin........................................................................................................................................................2 Consideraciones Generales.................................................................................................................................2 Hola Mundo!.......................................................................................................................................................2 Variables..............................................................................................................................................................3 Programa que suma dos nmeros con punto flotante.........................................................................................4 Suma de dos nmeros usando dos variables.......................................................................................................4 La sentencia if.....................................................................................................................................................5 Uso de la sentencia if.....................................................................................................................................6 Ejemplo de mltiples opciones usando la sentencia if...................................................................................7 Uso de los bucles................................................................................................................................................8 Uso del bucle do-while...................................................................................................................................8 Uso del bucle while........................................................................................................................................9 Uso del bucle for............................................................................................................................................9 Otro ejemplo con do-while...........................................................................................................................10 Uso de arrays o vectores...................................................................................................................................10 Ejemplo con arrays ......................................................................................................................................11 Suma de dos arrays.......................................................................................................................................11 Otra suma de arrays .....................................................................................................................................12 Array de caracteres.......................................................................................................................................12 Ordenando un array......................................................................................................................................12 Matrices............................................................................................................................................................13 Uso de matrices............................................................................................................................................14 Ordenando matrices.....................................................................................................................................15 Opciones mltiples con switch.........................................................................................................................16 Uso de la sentencia switch...........................................................................................................................16 Otro ejemplo de seleccin mltiple..............................................................................................................17 Ejercicios de repaso......................................................................................................................................21 Funciones..........................................................................................................................................................21 Variables locales y globales.........................................................................................................................22 Funcin que devuelve un nmero y no se le pasan parmetros...................................................................22 Funcin que devuelve un nmero y se le pasan parmetros........................................................................23 Funcin a la que se le pasan parmetros y no devuelve nada......................................................................24 Funcin que no devuelve ni se le pasan datos..............................................................................................24 Ejercicios de repaso..........................................................................................................................................24 Anexo I.............................................................................................................................................................26 Anexo II............................................................................................................................................................28

Pgina 1

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Introduccin Las computadoras son dispositivos electrnicos programables, es decir, no realizan una funcin especfica sino que hacen lo que le dice una secuencia de rdenes o instrucciones que reciben el nombre de programa1. Esto hace que los dispositivos basados en microprocesadores y microcontroladores sean fcilmente adaptables a las necesidades del diseo electrnico con la ventaja de poder implementar aplicaciones a un bajo costo. Las secuencias de instrucciones se escriben de una manera precisa, siguiendo un conjunto de reglas de escritura y usando palabras especficas que forman lo que se llama lenguaje de programacin. Estos lenguajes permiten desarrollar cdigos de manera entendible para el ser humano, sin embargo, para que las instrucciones sean entendidas por las computadoras resulta necesario realizar una traduccin a lenguaje mquina que es un conjunto de bits ( unos y ceros lgicos) que forman las rdenes reales que pueden ser ejecutadas por el microcontrolador o microprocesador. El proceso de traduccin recibe dos nombres distintos segn el momento en que se realice: Compilacin: cuando se realiza de una sola vez antes de la ejecucin, formando un archivo ejecutable Interpretacin: cuando se realiza a medida que el programa se ejecuta.

Para cada lenguaje viene ya definido el momento de traduccin, por lo cual algunos son compilados y otros son interpretados. Los interpretados necesitan que un programa denominado intrprete se encuentre instalado en la computadora para poder ejecutarse. Mientras que los compilados necesitan de un programa llamado compilador que realiza la traduccin y crea el archivo ejecutable. Existen numerosos lenguajes, que satisfacen las necesidades de los distintos tipos de aplicaciones que se quieren realizar. Por ejemplo, lenguajes como Java o .Net, son muy recomendables para la programacin de computadoras personales, ya que cuenta con herramientas que permiten desarrollar aplicaciones visuales. Sin embargo, si se quieren escribir controladores de hardware 2, como son todos aquellos que controlan la salida por pantalla, los dispositivos USB, el disco rgido, etc, o si se quiere programar un microcontrolador, se deben usar otros tipos de lenguajes que permitan al programador obtener el mximo rendimiento del hardware. En este ltimo tipo de lenguaje se inscribe el Lenguaje C3 desarrollado a principios de la dcada del 70 y vigente hasta la actualidad. Consideraciones Generales En este texto vamos a ir aprendiendo a escribir programas en C a travs de ejemplos sencillos que muestren la estructura de los programas y las reglas necesarios para escribirlos correctamente desde el punto de vista sintctico, que nos dicen como se escriben las palabras claves, que simbologa debe usarse y como se usan los signos de puntuacin. El C es un lenguaje compilado, por lo que un programa que no respete la sintaxis no podr nunca ejecutarse ya que el compilador no crear el archivo ejecutable. Para desarrollar los programas usaremos un entorno de desarrollo integrado, que es un programa que nos permitir escribir los programas en C y ejecutarlos para ver que funcionen correctamente. El entorno que usaremos ser el DevCpp4 que es un software fcil de usar, libre y gratuito5. Hola Mundo! Si existe un programa inevitable a la hora de aprender a programar es el Hola Mundo!, debido a que por su sencillez permite ver muchos aspectos fundamentales de la programacin en C
1 2 3 4 5 Los programas tambin reciben el nombre genrico de software Se conoce como hardware a todo el equipo fsico que forma una computadora. Creado en 1972 por Dennis M Ritchie en los Laboratorios Bell Se puede descargar desde la pgina http://sourceforge.net/projects/orwelldevcpp/ Ver Anexo sobre uso del programa.

Pgina 2

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Aqu se ven: El uso de los archivos cabecera stdio.h y stdlib.h, usando la directiva include El uso de comentarios con /* */ El uso de las funciones main(), printf() y system()
/*PRIMER PROGRAMA EN C*/ #include <stdio.h> #include <stdlib.h> int main() { printf("Hola mundo!\n"); system("PAUSE"); /*Archivos de cabecera*/ /*Inicio de la funcin principal main()*/ /*Muestra en pantalla todo lo que est entre */ /*El \n es un carcter no imprimible que indica nueva lnea*/ /*Como la salida es por consola, se usa la funcin system para indicar que luego de la ejecucin del programa aparezca una pausa que permita ver la salida*/ /*Valor de retorno de main()*/

return 0; }

Lo primero que se debe observar es que las palabras claves en C se escriben todas en minsculas, de lo contrario se incurre en un error de sintaxis. La directiva include le dice al compilador que al momento de realizar la traduccin incluya en nuestro archivo el cdigo del archivo que se encuentra entre los smbolos < >. En este caso incluimos los archivos stdio.h y stdlib.h, de los que podemos decir como una primera aproximacin que son archivos provistos por el lenguaje para usar algunas de las instrucciones. Todo programa en C se estructura a partir de una serie de bloques de cdigo denominado funciones, que realizan una tarea especfica. Se ver esto detalladamente ms adelante. El bloque principal se denomina main(), y comienza con una llave de apertura { y termina con otra de cierre }. Para poder visualizar en pantalla el texto Hola Mundo!, debemos usar la funcin estandard printf(). Escribimos el texto entre los parntesis y entre comillas dobles. Todo lo que se encuentre entre /* y */ no es tomado por el compilador como parte del cdigo a traducir, lo que nos permite escribir comentarios para aclarar de manera simple y breve algn aspecto del cdigo que resulte relevante Variables Las variables permiten guardar datos que son necesarios para la ejecucin de los programas. A cada variable se le asigna un nombre y se especifica el tipo de dato que podr almacenar. En C los tipos de datos bsicos son los nmeros enteros, los nmeros con decimales o de punto flotante y los caracteres, para los cuales se utilizan las palabras claves int, float y char, respectivamente. Antes de usar una variable se la debe declarar, es decir, se debe especificar el nombre y el tipo de dato que maneja. Tipo de dato nombre de la variable; Por ejemplo: int x; int suma; float y; char opcion; variable llamada x que guarda nmeros enteros variable llamada suma que guarda nmeros enteros variable llamada y que guarda nmeros con decimales variable llamada opcion que guarda caracteres Pgina 3

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Como se puede ver, debe usarse un punto y coma despus de escribir el nombre de la variable, sino se incurre en un error de sintaxis. El C distingue entre maysculas y minsculas, o sea, que si el nombre de la variable se escribe en minscula al ser declarada se debe escribir igual en cada lugar que se la utilice. Al mismo tiempo se pueden declarar dos variables con igual nombre pero una en minscula y otra en mayscula, por ejemplo: int x; int X; Lo cual no es para nada recomendable ya que puede inducir a errores. Programa que suma dos nmeros con punto flotante Ahora veremos como se usan las variables para almacenar datos que un usuario debe ingresar a travs del teclado. Para ciertos casos podemos usar la funcin scanf(), que toma el dato ingresado y lo guarda en la variable que le indicamos. Tambin usaremos printf() para mostrar en pantalla el valor de las variables.
#include <stdio.h> #include <stdlib.h> int main() { float num1, num2, resultado; printf("Este programa suma dos nmeros \n"); printf("Ingrese el primer nmero: "); scanf("%f", &num1);

/* Usamos tres variables*/

/*El %f le dice a scanf() que se va a ingresar un nmero con decimales desde el teclado. Con &num1 se le indica que el nmero ingresado debe ser guardado en la variable num1*/ printf("\n Ingrese el segundo nmero: "); scanf("%f", &num2); resultado = num1 + num2;

/*Se efectua la suma y se guarda el valor en resultado*/ printf("\n El resultado es %f \n", resultado); /*El %f le dice a printf() donde debe mostrar el valor de la variable resultado*/ system("PAUSE"); return 0; }

La funcin scanf() tiene dos parmetros que deben ser definidos por el programador: El primero, que va entre comillas, indica el tipo de dato del valor que se va a ingresar por teclado. Comienza con un % y le sigue una f (float), d (entero) o una c (carcter) segn corresponda. El segundo va separado del primero por una coma y comienza con un & y le sigue el nombre de la variable donde se va a guardar el dato. La funcin printf() la usamos para mostrar el valor de una variable. Entre comillas se escribe el mensaje e intercalado en l se utilizan los especificadores de tipo de dato que debe mostrar (%f, %c, %d), luego se cierran las comillas y se escriben las variables en el mismo orden en que fueron escritos los especificadores de tipo. Por otro lado, la operacin resultado = num1 + num2; es una operacin de asignacin. Lo que est a la derecha del = se asigna a lo que est a la izquierda. Suma de dos nmeros usando dos variables La prctica permite ahorrar variables cada vez que se pueda, de modo tal de facilitar la escritura del programa optimizando el cdigo Pgina 4

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

#include <stdio.h> #include <stdlib.h> int main() { float num1, num2; printf("Este programa suma dos nmeros \n"); printf("Ingrese el primer nmero: "); scanf("%f", &num1); printf("\n Ingrese el segundo nmero: "); scanf("%f", &num2); printf("\n El resultado es %f \n", num1+num2); system("PAUSE"); return 0; }

/*Muestra el valor de la suma de las dos variables*/

La nica diferencia con el ejemplo anterior radica en que en lugar de mostrar una variable, se usa printf() para mostrar el resultado de la suma de num1 y num2. Normalmente, se puede hacer una buena aproximacin de la cantidad de variables a utilizar asignando una para cada dato distinto que debemos manejar. Sin embargo, la cantidad de variables depende mucho de la experiencia que se cuente para escribir programas y se usaran de forma ptima conforme se tenga ms prctica. La sentencia if Supongamos que una persona va caminando por la calle y llega a una esquina donde hay un semforo, entonces sabemos que lo mirar para saber en que color se encuentra y que si est en verde en su sentido de circulacin seguir caminando, y que en caso contrario se detendr. Lo que acabamos de ver en un hecho cotidiano es un simple ejemplo de una estructura condicional, ya que el peatn seguir caminando o se detendr a condicin de que el color del semforo sea o no verde. Diremos que si la condicin se cumple (semforo en verde) es verdadera y que si no se cumple (semforo en rojo o amarillo) es falsa. Para evaluar condiciones de este tipo el C provee la sentencia if, cuya forma general es la siguiente: if(condicin) { /*cdigo a ejecutar si la condicin es verdadera*/ } Que se lee de la siguiente forma: Si la condicin es verdadera se ejecuta lo que est entre llaves, si no se cumple se contina con las instrucciones que siguen debajo de la llave de cierre Puede ocurrir que tambin se desee hacer algo si la condicin es falsa, por lo que se puede usar de manera opcional un if seguido de un else. if(condicin) { /*cdigo a ejecutar si la condicin es verdadera*/ }else{ /*cdigo a ejecutar si la condicin es falsa*/ } Que se lee: Si la condicin es verdadera ejecutar el cdigo que se encuentra entre las primeras llaves, sino (else) ejecutar el que se encuentra segundas llaves. Si se quieren evaluar varias condiciones, entonces se pueden usar varios if consecutivos, de modo tal de escribir un cdigo preciso para ejecutar en cada caso.

Pgina 5

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

if(condicin 1) { /*cdigo 1*/ } if(condicin 2) { /*cdigo 2*/ } if(condicin n) { /*cdigo n*/ } Uso de la sentencia if Supongamos que queremos desarrollar un programa que permita dividir dos nmeros. Entonces, con lo visto hasta ahora podramos escribir el siguiente cdigo:
#include <stdio.h> #include <stdlib.h> int main() { float num1, num2; printf("Divide dos nmeros \n"); printf("Ingrese el primer nmero: "); scanf("%f", &num1); printf("\n Ingrese el segundo nmero: "); scanf("%f", &num2); printf("\n El resultado es %f \n", num1/num2); system("PAUSE"); return 0; }

Este cdigo funcionara perfectamente hasta que algn desconocedor de la matemtica ingresara un cero para el valor de num2, lo que transformara la operacin en una divisin por cero, una operacin que sabemos que no existe. Por lo tanto debemos evaluar primero si el valor de num2 es o no cero. Si es cero, le mostramos un mensaje de error, y sino es cero, hacemos la operacin y mostramos el resultado
#include <stdio.h> #include <stdlib.h> int main() { float num1, num2; puts("Divide dos nmeros \n"); puts("Ingrese el primer nmero: "); scanf("%f", &num1); puts("\n Ingrese el segundo nmero: "); scanf("%f", &num2); if(num2== 0) /*Se usa == para poder comparar valores*/ { printf("\n Error: no se puede dividir por cero!!\n"); }else{ printf("\n El resultado es %f \n", num1/num2); } system("PAUSE"); return 0; }

Pgina 6

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Como se ve, hemos aprovechado a reemplazar en algunos casos la funcin printf() por la funcin puts(), que trabaja de un modo parecido pero que solo puede usarse para mostrar mensajes y no valores de variables, lo que hace que sea una funcin ms rpida que printf(). Ejemplo de mltiples opciones usando la sentencia if Escribamos ahora un programa matemtico que permita realizar las operaciones aritmticas bsicas, permitiendo que al usuario elegir entre algunas de las 4 opciones.
#include <stdio.h> #include <stdlib.h> int main() { float num1, num2; char opcion; puts("Elija su opcin:\n");

/*puts() presenta en pantalla lo que est entre comillas, pero no puede mostrar valores de variables*/ /*puts() es mucho ms rpida que printf()

puts("Sumar............(s)\n"); puts("Restar...........(r)\n"); puts("Dividir..........(d)\n"); puts("Multiplicar......(m)\n"); scanf("%c", &opcion);

/*Como la opcin a ingresar es un carcter se usa una variables tipo char */

/*Si se ejecuta un If, los otros no se ejecutaran debido a que la condicin es verdadera solo para uno. Si el valor de la variable opcion no es igual a ninguno de los valores testeados por cada if, entonces no se ejecuta ninguno de ellos*/ if(opcion == 's') /*if para sumar*/ { puts("Suma dos nmeros \n"); puts("Ingrese el primer nmero: "); scanf("%f", &num1); puts("\n Ingrese el segundo nmero: "); scanf("%f", &num2); printf("\nEl resultado es: %f", num1+num2); } if(opcion=='r') /*if para restar*/ { puts("Resta dos nmeros \n"); puts("Ingrese el primer nmero: "); scanf("%f", &num1); puts("\n Ingrese el segundo nmero: "); scanf("%f", &num2); printf("\nEl resultado es: %f", num1-num2); } if(opcion=='d') /*if para dividir*/ { puts("Divide dos nmeros \n"); puts("Ingrese el primer nmero: "); scanf("%f", &num1); puts("\n Ingrese el segundo nmero: "); scanf("%f", &num2); if(num2== 0) { printf("\n Error: no se puede dividir por cero!!\n"); }else{ printf("\n El resultado es %f \n", num1/num2); } } if(opcion=='m') { /*if para multiplicar */

Pgina 7

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

puts("Multiplica dos nmeros \n"); puts("Ingrese el primer nmero: "); scanf("%f", &num1); puts("\n Ingrese el segundo nmero: "); scanf("%f", &num2); printf("\nEl resultado es: %f", num1*num2); } system("PAUSE"); return 0; }

Uso de los bucles Todos los bucles se utilizan para repetir cdigo tantas veces como sea necesario en el programa. Todo bucle tiene una condicin de repeticin que se evala para seguir repitiendo el cdigo o para continuar con la instruccin que sigue despus del bucle. Si la condicin se cumple, se dice que es verdadera, y se continua la ejecucin del bucle. Si no se cumple, es falsa, y se rompe el bucle. Si bien pueden resultar parecidos, cada bucle en C tiene caractersticas propias, y su uso depender de las necesidades del programa y de la experiencia del programador, es decir, depende de la prctica. Bucle while while(condicin) { /*cdigo a ejecutar*/ } Bucle do-while do { /*cdigo a ejecutar*/ }while(condicin); Bucle for for(desde;condicin;incremento) { /*cdigo a ejecutar*/ }

Uso del bucle do-while El do-while, verifica la condicin luego de ejecutar el cdigo a repetir. Es decir, primero ejecuta y despus verifica. Esto es muy til cuando se quiere ejecutar una serie de instrucciones al menos una vez. Se puede interpretar el do-while como hacer lo que est entre llaves, mientras se cumple la condicin. Este programa va a mostrar todos los nmeros entre 0 y 100
#include <stdio.h> #include <stdlib.h> int main() { int x=0; do{ printf("%d \n", x); x++; }while(x<101); system("PAUSE"); return 0; } /*x++; es la forma tpica de C para sumadores que incrementan de a uno. El equivalente ms general es x=x+1;*/ /*La condicin del while es x<101, entonces hace lo que est entre llaves mientras x<101, cuando x llega al valor 101 se rompe el bucle*/

/* Se inicializa x en cero, al mismo tiempo que se la declara*/

Pgina 8

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Uso del bucle while Este bucle, verifica la condicin antes de ejecutar el cdigo que se encuentra entre llaves. Lo que significa que si la condicin es falsa, no se ejecuta el cdigo entre llaves ni una sola vez. Se puede interpretar el bucle while como mientras se cumple la condicin, hacer lo que est entre llaves Veamos el mismo programa anterior pero usando el while
#include <stdio.h> #include <stdlib.h> int main() { int x=0; while(x<101) { printf("%d \n", x); x++; } system("PAUSE"); return 0; }

La diferencia entre los dos bucles es que uno verifica la condicin antes de comenzar a ejecutar el cdigo (el while) mientras que el otro lo hace despus (el do-while) Uso del bucle for Bsicamente, el bucle for es un bucle con un contador incorporado. Esto permite especificar el valor desde el cual se desea empezar a contar (inicializacin del contador), hasta que valor se quiere llegar (condicin de conteo y repeticin del bucle) y de a cuanto se desea contar (incremento del contador).
#include <stdio.h> #include <stdlib.h> int main() { int x; for(x=0;x<101;x++) /*Como el bucle permite inicializar la variable de control no hace falta inicializarla antes*/ { printf("%d \n", x); } system("PAUSE"); return 0; }

Veamos otro ejemplo en el que se le pide al usuario que especifique el valor hasta el que se quiere contar.
#include <stdio.h> #include <stdlib.h> int main() { int x, y; puts(\n Hasta que valor desea contar? ); scanf(%d, &y); for(x=0;x<y;x++) /*Como el bucle permite inicializar la variable de control no hace falta inicializarla antes*/

Pgina 9

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

{ printf("%d \n", x); } system("PAUSE"); return 0; }

Otro ejemplo con do-while


#include <stdio.h> #include <stdlib.h> int main() { char sigue; do{ /*cdigo a repetir*/ puts("Continua?.......(s/n)"); scanf("%c", &sigue); }while(sigue!='n'); system("PAUSE"); return 0; }

Uso de arrays o vectores Los vectores se pueden ver como una cadena de variable, que tienen un mismo tipo de dato y que se declaran a un mismo tiempo. Se declaran como cualquier variable, es decir, se debe especificar el tipo de dato, el nombre y la cantidad de variables que lo forman, poniendo este valor entre corchetes, terminando como siempre con un ; . Tipo de dato nombre del vector[cantidad de elementos]; Por ejemplo una declaracin podra ser: int datos[10]; donde se declar un vector llamado datos de 10 elementos del tipo entero. Los elementos del vector se encuentran numerados a partir de cero, siendo ese nmero un ndice que nos permite acceder a cada elemento del vector. As al declarar el vector datos, por ejemplo, debemos pensar que tenemos algo como lo que sigue: 0 1 2 3 4 5 6 7 8 9 Si se quiere guardar un valor, por ejemplo 200, en el elemento 0 se puede usar la siguiente lnea: Pgina 10

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

datos[0]= 200; Se debe escribir el nombre del vector y entre corchetes el nmero del elemento donde se va a guardar el dato. Si por ejemplo, el dato debe ser ingresado por el usuario, se puede escribir: scanf(%d, &dato[0]); El %d es porque el tipo de dato del vector del ejemplo es entero. Si el usuario va a ingresar muchos valores, o si se desea asignar un valor a cada elemento del bucle, se debe utilizar una variable entre los corchetes, controlada por un bucle for. Ejemplo con arrays Este programa carga un vector de 6 elementos con los valores de 0 a 5 y los muestra en pantalla.
#include <stdio.h> #include <stdlib.h> int main() { int vector[6], x; for(x=0;x<6;x++) { vector[x]= x;

/*Se declara un array de 6 elementos, posiciones 0 a 5 */ /*Se recorre el vector guardando en cada uno de sus elementos el valor de x, que es incrementado en cada pasada del for */

} for(x=0;x<6;x++) { printf("%d \n", vector[x]); /* Se usa un for para mostrar cada elemento del array*/ } system("PAUSE"); return 0; }

Suma de dos arrays Este programa usa dos vectores, los suma elemento a elemento y deja el resultado en uno de ellos.
#include <stdio.h> #include <stdlib.h> int main() { int vector1[6], vector2[6], x; for(x=0;x<6;x++) { vector1[x]= x;

/*Lo mejor es que los vectores a sumar tengan igual nmero de elementos*/

/*Se cargan los dos con valores predeterminados por el programador: uno con los valores de x y otros con los de x+6*/

vector2[x]= x+6; } for(x=0;x<6;x++) { vector1[x]=vector1[x]+vector2[x]; /*Se suman los dos vectores y queda el resultado en el primero*/ printf("%d \n", vector1[x]); } system("PAUSE"); return 0; }

Pgina 11

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Otra suma de arrays En este caso se suman dos arrays pero con valores ingresados a cada uno de ellos por el usuario
#include <stdio.h> #include <stdlib.h> int main() { int vector1[6], vector2[6], x; puts("Ingrese valores enteros para el vector 1\n"); /*se usa un for para cada vector*/ for(x=0;x<6;x++) { printf("Ingrese el valor del elemento %d \n", x); scanf("%d", &vector1[x]); } puts("Ingrese valores enteros para el vector 2\n"); for(x=0;x<6;x++) { printf("Ingrese el valor del elemento %d\n", x); scanf("%d", &vector2[x]); } for(x=0;x<6;x++) { puts("Los valores son\n"); vector1[x]=vector1[x]+vector2[x]; printf("%d \n", vector1[x]); } system("PAUSE"); return 0; }

Array de caracteres Guarda todo el cdigo ASCII6 en un vector y lo muestra en pantalla


#include <stdio.h> #include <stdlib.h> int main() { char vector[255], letra; int x; letra='a'; for(x=0;x<256;x++) { vector[x]=letra; letra++; } for(x=0;x<256;x++) { printf("%c ", vector[x]); } system("PAUSE"); return 0; }

/*Se declara un array de 255 elementos*/ /*Con x se incrementa el nmero de elemento mientras que con letra se incrementa el valor del smbolo a guardar*/

Ordenando un array El algoritmo usado es simple: se compara el elemento 0 con los restantes, si el valor de alguno de esos
6 Ver Anexo II

Pgina 12

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

elementos es mayor entonces se intercambia el valor de lugar. Luego se compara el elemento 1 con los restantes y se hace lo mismo. Se sigue el mismo procedimiento hasta llegar al ante ltimo valor. Para intercambiar los valores se usa una variable auxiliar.
#include <stdio.h> #include <stdlib.h> int main() { int x,j,aux, vector[5]; for(x=0;x<6;x++) /*Se ingresan los valores al array*/ { printf("Ingrese el valor de elemento %d \n", x); scanf("%d", &vector[x]); } for(x=0;x<5; x++) { for(j=x+1; j<6;j++) { if(vector[x]<vector[j]) { aux=vector[x]; /*Se guarda el primer elemento en aux*/ vector[x]=vector[j]; /*Se guarda el segundo elemento en el lugar del primero*/ vector[j]=aux; /*Se guarda aux en el segundo elemento*/ } } } for(x=0;x<6;x++) { printf("%d\n", vector[x]); } system("PAUSE"); return 0; } /*Si el valor de un elemento es mayor que otro se realiza el intercambio de lugar*/ /*Con estos dos for se realiza el algoritmo de ordenamiento*/

Matrices Una matriz es un arreglo por filas y columnas, para acceder a sus elementos se la puede recorrer por filas o por columnas. Se declara de manera similar a los vectores pero especificando la cantidad de filas y la cantidad de columnas: tipo de dato nombre de la matriz[cantidad de filas][cantidad de columnas]; por ejemplo: float valores[3][5]; La matriz valores tiene 3 filas y 5 columnas, pudiendo almacenar slo nmeros con decimales. El primer corchete siempre hace referencia a un nmero de fila y el segundo a uno de columna. De esta manera el primer elemento de la matriz es el 00, o sea, se encuentra en la fila cero, columna cero. 0 0 1 2 Si se quiere recorrer los valores de una fila se debe dejar fijo el nmero de fila y cambiar el de columna, si se quiere recorrer una columna, se deja fijo el nmero de columna y se cambia el de fila. Esta operacin requiere de bucles for que vayan cambiando el nmero de fila o de columna segn se lo requiera. Pgina 13 1 2 3 4

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Imaginemos que se quiere que el usuario de valores a toda la fila uno de la matriz anterior. El cdigo sera el sigiente: for(x=0; x<5;x++) { scanf(%f, &valores[1][x]); } Como se tienen 5 columnas, de 0 a 4, la condicin del bucle es que el nmero de columna sea menor que 5. Se usa entonces el valor de la variable del bucle entre los corchetes de la columna. El nmero de fila queda constante debido a que solo se recorre la fila 1. Si se desea repetir la operacin para todas las filas de la matriz, se deben utilizar dos bucles for, uno adentro de otro (anidados): uno para controlar el nmero de fila y otro para controlar el de columnas. for(y=0;y<3;y++) /*Este for controla el nmero de la fila*/ { for(x=0; x<5;x++) /*Este for controla en nmero de la columna*/ { scanf(%f, &valores[y][x]); } } Como se ve, el bucle de adentro es el mismo del ejemplo anterior, mientras que el de afuera repite el de adentro 3 veces, lo que permite controlar el nmero de la fila al colocar la variable de control y entre los corchetes de la fila. Uso de matrices Veamos un programa que permite que el usuario ingrese valores a una matriz que luego sern mostrados en pantalla.
#include <stdio.h> #include <stdlib.h> int main() { int x,j, matriz[5][5]; /*Recorremos fila por fila, por lo que dejamos fijo el nmero de fila mientras cambiamos el de columna*/ for(x=0;x<5;x++) /*Este for se usa para recorrer cambiar el nmero de fila*/ { for(j=0;j<5;j++) /*Este for se usa para cambiar el nmero de columna*/ { printf("Ingrese el valor del elemento [%d][%d]",x,j); scanf("%d", &matriz[x][j]); } puts("\n"); } for(x=0;x<5;x++) /*Ahora mostramos la matriz*/ { for(j=0;j<5;j++) { printf("%d", matriz[x][j]); } puts("\n"); } system("PAUSE"); return 0; }

Pgina 14

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Ordenando matrices Un vector puede verse como una matriz de una sola dimensin, de la misma manera se puede interpretar que una fila o una columna de la matriz es en s un vector. Por eso el algoritmo para ordenar una fila o una columna es el mismo que para un vector. Si se ordena una fila, el valor de la fila permanece constante mientras que el de la columna es el que cambia, controlado por un bucle for. Si se ordena una columna, el valor de ella permanece constante y es el de la fila el que cambia. El siguiente ejemplo muestra como se ordena una fila de una matriz. Tambin incorpora el uso de la directiva #define para definir una constante con un valor especfico. Por ejemplo, al escribir #define FILA 2 se le dice al compilador que cada vez que encuentre en el cdigo la cadena FILA la debe reemplazar por un 2. Esto resulta muy til, ya que con solo cambiar el valor en la lnea del define, por ejemplo por un 10, se cambia el valor en cada lugar que se us la constante FILA, de lo contrario habra que ir lnea por lnea cambiando el valor a mano.
#include <stdio.h> #include <stdlib.h> #define FILA 2 /*Se define la constante FILA igual 2*/ #define COL 2/*Se define la constante COL igual 2*/ int main() { int x,j,i, aux, matriz[FILA][COL]; /*se declara una matriz de 2 filas y 2 columnas*/ /*El usuario ingresa los valores a la matriz*/ for(x=0;x<FILA;x++) { for(j=0;j<COL;j++) { printf("Ingrese el valor del elemento [%d][%d]",x,j); scanf("%d", &matriz[x][j]); } puts("\n"); } puts("Qu fila desea ordenar?\n"); /*Se le pide al usuario el nmero de fila que quiere ordenar*/ scanf("%d", &i); /*Algoritmo para ordenar la fila*/ for(x=0;x<COL; x++) { for(j=x+1; j<COL+1;j++) { if(matriz[i][x]<matriz[i][j]) /*La variable i tiene el n de fila a ordenar*/ { aux=matriz[i][x]; /*La fila siempre es i en todas*/ matriz[i][x]=matriz[i][j]; matriz[i][j]=aux; } } } /*Se muestra la matriz con la fila ordenada*/ for(x=0;x<FILA;x++) { for(j=0;j<COL;j++) { printf("%d", matriz[x][j]); } puts("\n"); } system("PAUSE"); return 0; }

Pgina 15

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Opciones mltiples con switch La sentencia switch permite elegir entre varios casos, dependiendo del valor de una variable. Resulta mucho ms prctico usar switch que varios if, ya se ahorra mucho tiempo. Se escribe como sigue: switch(variable) { case constante_1: cdigo break; case constante_2: cdigo break; case constante_3: cdigo break; case constante_n: cdigo break; default: cdigo } La sentencia switch compara el valor de la variable que se anot entre parntesis con el que se especific como constante_1, constante_2, etc. Si el valor de la variable coincide con el de alguna de las constantes, ejecuta ese caso, si no coincide con ninguno ejecuta el caso por defecto, default. El caso default es optativo, depende de si se quiere hacer algo o no al ver que el valor de la variable no es ninguno de los establecidos en los casos y queda su uso a criterio del programador. Cada caso se inicia con un case constante y se termina con un break que hace que se termine el switch. Uso de la sentencia switch En este caso vamos a reescribir el programa que suma, resta, multiplica y divide usando switch para elegir entre las opciones posibles.
#include <stdio.h> #include <stdlib.h> int main() { float num1, num2; char opcion1, opcion2; do { puts("Elija su opcin: \n"); puts("Suma.............(s)\n"); puts("Resta............(r)\n"); puts("Multiplica.......(m)\n"); puts("Divide...........(d)\n"); scanf(%c,&opcion1);

Pgina 16

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

switch(opcion1) /* opcion puede valer s, r, m o d, y segn corresponda se ejecuta el caso*/ { case 's': /*inicio del caso s*/ puts("Ingrese el primer nmero: \n"); scanf("%f", &num1); puts("Ingrese el segundo nmero: \n"); scanf("%f", &num2); printf("El resultado es: %f\n", num1+num2); break; /*fin del caso s*/ case 'r': puts("Ingrese el primer nmero: \n"); scanf("%f", &num1); puts("Ingrese el segundo nmero: \n"); scanf("%f", &num2); printf("El resultado es: %f\n", num1-num2); break; case 'm': puts("Ingrese el primer nmero: \n"); scanf("%f", &num1); puts("Ingrese el segundo nmero: \n"); scanf("%f", &num2); printf("El resultado es: %f\n", num1*num2); break; case 'd': puts("Ingrese el primer nmero: \n"); scanf("%f", &num1); puts("Ingrese el segundo nmero: \n"); scanf("%f", &num2); if(num2==0) { puts("Error, no se puede dividir por cero!!!!\n"); }else{ printf("El resultado es: %f\n", num1/num2); } break; default: /*si el usuario ingresa un valor no contemplado en ningn caso se ejecuta default*/ puts("\nIngrese una opcin valida!!!\n"); break; } printf("\nContinua?......(s/n)\n"); scanf(%c, &opcion2); printf("%c", opcion2); }while(opcion2!='n'); system("PAUSE"); return 0; }

Otro ejemplo de seleccin mltiple Realizar un programa administrativo que muestre un men que permita efectuar las siguientes operaciones:
Ingresar Numero de Legajo y Sueldo Bruto de 50 empleados Calcular Sueldo Neto de cada empleado (Calcularlo como el 85% del sueldo bruto) Mostrar datos de empleado con menor sueldo Modificar Sueldo Bruto Mostrar los sueldos superiores al promedio Salir

Pgina 17

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

#include <stdio.h> #include <stdlib.h> #define COL 3 /* se define COL y FIL como los valores de columnas y filas para la matriz, con valores bajos para poder probar el programa, luego se cambia el valor de FIL por 50*/

#define FIL 5 int main() { float empleados[FIL][COL]; float suma, promedio, aux,legajo, sueldo; int opcion, fila, fila_sig; do{ puts("\n Elija alguna de las siguientes opciones\n"); puts("Ingresar Numero de Legajo y Sueldo Bruto de 50 empleados...... (1)\n"); puts("Calcular Sueldo Neto de cada empleado..........................(2)\n"); puts("Mostrar datos de empleado con menor sueldo.....................(3)\n"); puts("Modificar Sueldo Bruto.........................................(4)\n"); puts("Mostrar los sueldos superiores al promedio.....................(5)\n"); puts("Salir..........................................................(6)\n"); scanf("%d", &opcion); switch(opcion) { case 1: for(fila=0; fila<FIL+1;fila++) { puts("\n Ingrese legajo\n"); scanf("%f", &empleados[fila][0]); puts("\n Ingrese Sueldo Bruto\n"); scanf("%f", &empleados[fila][1]); } break; case 2: for(fila=0; fila<FIL+1;fila++) { empleados[fila][2]= 0.85*empleados[fila][1]; /*calcula el 85% de cada sueldo bruto*/ } break; case 3: fila=0; for(fila_sig=fila + 1; fila_sig<FIL+1; fila_sig++) if(empleados[fila][2] > empleados[fila_sig][2]) /*compara el primer elemento con cada uno de los siguientes*/ /*uso columna 1 para sueldo bruto */ /*uso columna 0 para legajo */

/*Cada vez que encuentra un sueldo menor, intercambia de posicin de todos los datos, envindolos a la primer fila*/

Pgina 18

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

aux=empleados[fila][0]; empleados[fila][0]= empleados[fila_sig][0]; empleados[fila_sig][0]=aux; aux=empleados[fila][1]; empleados[fila][1]= empleados[fila_sig][1]; empleados[fila_sig][1]=aux; aux=empleados[fila][2]; empleados[fila][2]= empleados[fila_sig][2]; empleados[fila_sig][2]=aux; } printf(" \n Legajo: %f Sueldo Bruto: %f empleados[0][1], empleados[0][2]); Sueldo Neto: %f \n", empleados[0][0],

/*En la primer fila tengo los datos del operario de menor sueldo*/ break; case 4: puts("\n Ingrese el nmero de legajo \n"); scanf("%f", &legajo); puts("\n Ingrese el Sueldo Bruto\n"); scanf("%f", &sueldo); for(fila=0; fila<FIL+1; fila++) { if(empleados[fila][0]== legajo) { empleados[fila][1]=sueldo; empleados[fila][2]=0.85*empleados[fila][1]; } } break; case 5: /* la idea es la siguiente: calculamos el promedio, ordenamos la matriz de mayor a menor y mostramos los sueldos mayores al promedio*/ for(fila=0; fila<FIL*1;fila++) /*Calculo del promedio*/ { suma=suma + empleados[fila][2]; } promedio=suma/50; /*lo busca y realiza la modificacin*/ /*pide los datos y el nuevo sueldo*/

Pgina 19

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

/*ordenamos la matriz*/ for(fila =0; fila <FIL; fila++) { for(fila_sig=fila + 1; fila_sig<FIL+1; fila_sig++) if(empleados[fila][2] < empleados[fila_sig][2]) { aux=empleados[fila][0]; empleados[fila][0]= empleados[fila_sig][0]; empleados[fila_sig][0]=aux; aux=empleados[fila][1]; empleados[fila][1]= empleados[fila_sig][1]; empleados[fila_sig][1]=aux; aux=empleados[fila][2]; empleados[fila][2]= empleados[fila_sig][2]; empleados[fila_sig][2]=aux; } } /*mostramos los sueldos mayores al promedio*/ for(fila=0; fila<FIL+1;fila++) { if( { printf(" \n Legajo: %f Sueldo Bruto: %f Sueldo Neto: %f \n", empleados[fila][0], empleados[fila][1], empleados[fila][2]); } } break; case 6: puts("\n Fin del programa "); break; default: puts(" \n Opcion no valida! "); }/*fin del switch*/ }while(opcion!=6); /* se repite mientras la opcion sea distinta (!=) de 6, que es el caso en que se sale del programa*/ system("PAUSE"); return 0; } /*este caso es solo para mostrar el mensaje de despedida */ empleados[fila][2]>promedio)

Pgina 20

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Ejercicios de repaso 1) Ejecute el cdigo anterior en el DevCpp, responda las siguientes preguntas: a) Qu ocurre si el usuario repite el mismo nmero de legajo pero con dos sueldos brutos distintos? b) Puede el usuario ver las modificaciones que hizo al cambiar el sueldo bruto? c) Que pasa si al querer modificar el sueldo bruto escribe un legajo incorrecto? d) Que soluciones implementara para estos problemas? 2) Escribir un programa que aplicando la ley de Ohm permita calcular un valor de tensin corriente o resistencia segn lo que elija el usuario. 3) Realice un programa que pueda calcular la aceleracin de un objeto conociendo su velocidad final, la velocidad inicial y el tiempo. 4) Escriba un programa que calcule la interseccin con el eje x de una parbola a partir de su ecuacin F(x)=ax2 +bx*c 5) Realice un programa que permita calcular el seno, coseno y tangente de un ngulo Para algunos de estos casos se debern usar las funciones matemticas que provee el C. Para esto se debe incluir el archivo de cabecera math.h Funcin sin(x) cos(x) tan(x) sqrt(x) pow(x,y) Una llamada vlida sera por ejemplo: resultado=sin(x) Funciones Todo programa en C est formado por una serie de bloques que realizan funciones especficas, a los que se les puede pasar o no datos, y que devuelven o no datos, llamados funciones. El bloque principal de programa se llama main y es el que usamos hasta ahora al escribir: main(){ }. Existen otras funciones que son provistas por el propio lenguaje, como printf(), puts(), scanf(), a las que les pasamos valores al escribir dentro de los parntesis y realizaron una tarea especfica, como mostrar un dato en pantalla o recibir un dato desde el teclado. Las funciones deben declararse antes de escribir main() y despus de especificar los archivos de cabecera. Tipo de dato que devuelve nombre de la funcin(lista de parmetros); Los tipos de datos que devuelve la funcin pueden ser int, char, float, etc. Si no devuelve ningn dato se escribe void. La lista de parmetros especifica la cantidad de datos que se le pasan a la funcin, el tipo de los mismos y qu variable de la funcin se usa para guardarlos. Por ejemplo, si se escribe: Devuelve El seno de x (x en radianes) El coseno de x (x en radianes) La tangente de x (x en radianes) La raz cuadrad de x El valor de x elevado a la y

Pgina 21

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

void suma( int x, int y); Se dice que declaramos una funcin llamada suma, que no devuelve ningn valor, pero que recibe dos datos del tipo entero, que son guardados en las variables x e y, de esa funcin que ya estamos declarando al declarar la funcin. En los archivos de cabecera se encuentran las declaraciones de las funciones que provee el lenguaje C. Variables locales y globales Vamos a establecer dos tipos de variables, segn el lugar del cdigo donde las declaremos: Variable local: aquella que se declara dentro de una funcin (incluyen las que se declaran al momento de declarar la funcin como vimos arriba) Variables globales: las que se declaran fuera de todas las funciones, antes de escribir la funcin main()
#include <stdio.h> #include <stdlib.h> int valor; float matriz[3][4]; int main() { int num1, num2; system("PAUSE"); return 0; } /*num1 y num2, declaradas como variables locales de main()*/ /*variable global*/ /*Matriz declarada como variable global*/

void suma(int x, int y); /*x e y declaradas como variables locales de la funcin suma()*/

La diferencia fundamental entre ambos tipos de variables es que las locales solo existen para la funcin donde fueron declaradas mientras que las globales existen para todas las funciones del programa, por lo que hay que tener mucho cuidado al momento de usarlas para no se produzcan errores involuntarios que conlleven la prdida de datos. Funcin que devuelve un nmero y no se le pasan parmetros Veamos un caso simple de una funcin que se usa en un programa para sumar dos nmeros
#include <stdio.h> #include <stdlib.h> float suma(void);

int main() { puts("Programa que suma dos nmeros: \n"); printf("El resultado es %f \n", suma()); /*El valor retornado por la funcin se muestra donde aparece el %f */ system("PAUSE"); return 0; } float suma (void)

/*se declara la funcin indicando que devuelve un punto flotante y que no se le pasan parmetros, usando void entre los parntesis*/

Pgina 22

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

float num1, num2; puts("Ingrese el primer nmero:\n"); scanf("%f", &num1); puts("Ingrese el segundo nmero\n"); scanf("%f", &num2); return num1+num2; /*retorna el valor de la suma*/

Funcin que devuelve un nmero y se le pasan parmetros En este caso vamos a usar una declaracin como la siguiente: float suma(float x, float y); Con la palabra clave float delante del nombre de la funcin especificamos que esta devuelve un nmero tipo punto flotante. Colocando entre parntesis (float x, float y) indicamos que se le pasarn dos valores a la funcin, y al mismo tiempo declaramos las variables x e y. O sea, se hacen dos cosas simultneamente.

#include <stdio.h> #include <stdlib.h> float suma(float x, float y);

int main() { float num1, num2; puts("Programa que suma dos nmeros: \n"); puts("Ingrese el primer nmero:\n"); scanf("%f", &num1); puts("Ingrese el segundo nmero\n"); scanf("%f", &num2);

/*se declara la funcin, indicando que devuelve un punto flotante y que se le pasan 2 valores, tambin de punto flotante. Al mismo tiempo se declaran x e y*/

printf("El resultado es %f \n", suma(num1, num2)); /*el valor que devuelve la funcin se muestra en el lugar donde aparece el %f*/ system("PAUSE"); return 0; } float suma(float x, float y) { return x+y; } /*la funcin retorna el valor de la suma*/

Quizs parezca difcil de entender, pero es muy simple. En primer lugar se le piden al usuario los valores a sumar, que son guardados en las variables num1 y num2. En el momento de llamar a la funcin se le deben pasar los dos valores de la siguiente manera: printf("El resultado es %f \n", suma(num1, num2)); num1 es almacenado en la variable x se la funcin suma y num2 en la variable y. Luego la funcin retorna el valor x+y que es mostrado en el lugar donde aparece el %f. Si quisiramos guardar el valor retornado debemos utilizar un variable extra al llamar la funcin: resultado=suma(num1,num2); Pgina 23

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

As el valor retornado se guarda en la variable resultado. Funcin a la que se le pasan parmetros y no devuelve nada Se puede utilizar una funcin que no devuelva ningn valor, aunque se le pasen parmetros, si directamente es la funcin la que muestra el resultado.
#include <stdio.h> #include <stdlib.h> void suma(float x, float y); /*el void adelante indica que no devuelve ningn valor*/ int main() { float num1, num2; puts("Programa que suma dos nmeros: \n"); puts("Ingrese el primer nmero:\n"); scanf("%f", &num1); puts("Ingrese el segundo nmero\n"); scanf("%f", &num2); suma(num1, num2); system("PAUSE"); return 0; /*se llama a la funcin*/

} void suma(float x, float y) { printf("El resultado es %f:\n", x+y); }

/*muestra el valor de la suma, como no devuelve ningn valor no lleva la sentencia return*/

Funcin que no devuelve ni se le pasan datos En este caso es la funcin la que le pide los datos al usuario y muestra el resultado. Otro caso podra ser el de una funcin que se encargue de mostrar un men en pantalla.
#include <stdio.h> #include <stdlib.h> void suma(void); int main() { suma(); system("PAUSE"); return 0; /*se usa void tanto para el tipo de dato que devuelve como para especificar que no se le pasa ningn dato*/ /*llamada de la funcin*/

} void suma(void) { float num1, num2; puts("Programa que suma dos nmeros: \n"); puts("Ingrese el primer nmero:\n"); scanf("%f", &num1); puts("Ingrese el segundo nmero\n"); scanf("%f", &num2); printf("El resultado es %f:\n", num1+num2); }

Ejercicios de repaso 1) Reescriba el programa administrativo, usando funciones para cada una de las opciones que se pidieron, incluyendo las mejoras a los problemas de funcionamiento que se observaron Pgina 24

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

2) Realizar un programa que permita operar sobre los valores de un matriz de punto flotante de 30 filas y 20 columnas de manera que: Pueda inicializar los valores de la matriz en cero Permita ingresar los valores columna por columna Permita ingresar los valores fila por fila Permita ingresar valores a una columna seleccionada por el usuario Permita ingresar valores a una fila selesccionada Ordene una columna de mayor a menor Ordene una fila de mayor a menor Multiplique cada valor de una columna por un nmero Multiplique cada valor de una fila por un nmero Sume dos columnas y guarde el resultado en la primera Sume dos filas y guarde el resultado en la primera Muestre el contenido de una columna Muestre el contenido de una fila Muestre todos los valores de la matriz.

Pgina 25

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Anexo I Para poder escribir un programa con el DevCpp, vamos a Archivo => Nuevo => Cdigo Fuente

Elegimos una aplicacin de consola: Console Application

Escribimos el nombre del proyecto, que tendr extensin .dev Pgina 26

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Entonces nos aparecer una suerte de marco en el que podremos ir escribiendo nuestro programa, ya que aparecen los archivos de cabecera stdio.h y stdlib.h, seguidos de la funcin main().

Lo que debemos hacer ahora es borrar todo lo que figura entre los parntesis de main() de modo que queden vacos, como aparecen en los ejercicios resueltos.

Pgina 27

Introduccin al Lenguaje C EEST N 1 - 2012


Ing. Perez Knulst G

Anexo II Tabla de Caracteres ASCII


Decimal ASCII Decimal ASCII Decimal ASCII Decimal ASCII Decimal ASCII Decimal ASCII 33 ! 70 F 107 k 144 181 218 34 " 71 G 108 l 145 182 219 35 # 72 H 109 m 146 183 220 36 $ 73 I 110 n 147 184 221 37 % 74 J 111 o 148 185 222 38 & 75 K 112 p 149 186 223 39 ' 76 L 113 q 150 187 224 40 ( 77 M 114 r 151 188 225 41 ) 78 N 115 s 152 189 226 42 * 79 O 116 t 153 190 227 43 + 80 P 117 u 154 191 228 44 , 81 Q 118 v 155 192 229 45 82 R 119 w 156 193 230 46 . 83 S 120 x 157 194 231 47 / 84 T 121 y 158 195 232 48 0 85 U 122 z 159 196 233 49 1 86 V 123 { 160 197 234 50 2 87 W 124 | 161 198 235 51 3 88 X 125 } 162 199 236 52 4 89 Y 126 ~ 163 200 237 53 5 90 Z 127  164 201 238 54 6 91 [ 128 165 202 239 55 7 92 \ 129 166 203 240 56 8 93 ] 130 167 204 241 57 9 94 ^ 131 168 205 242 58 : 95 _ 132 169 206 243 59 ; 96 ` 133 170 207 244 60 < 97 a 134 171 208 245 61 = 98 b 135 172 209 246 62 > 99 c 136 173 210 247 63 ? 100 d 137 174 211 248 64 @ 101 e 138 175 212 249 65 A 102 f 139 176 213 250 66 B 103 g 140 177 214 251 67 C 104 h 141 178 215 252 68 D 105 i 142 179 216 253 69 E 106 j 143 180 217 254 255

Pgina 28

Você também pode gostar