Está en la página 1de 9

Programacion

Gua de trabajo 05

Universidad Santiago de Cali


Facultad de ingeniera Prof: Ing. Edwin J. Ortega Z. Colombia 2013

Universidad Santiago de Cali EMPC03

Programacion
Ing. Edwin J. Ortega

Libreras y cabeceras Junto con los compiladores de C y C++, se incluyen ciertos archivos llamados bibliotecas mas comnmente libreras Las bibliotecas contienen el cdigo objeto de muchos programas que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar nmeros, realizar funciones matemticas, etc. Las bibliotecas estn clasificadas por el tipo de trabajos que hacen, hay bibliotecas de entrada y salida, matemticas, de manejo de memoria, de manejo de textos y como imaginaras existen muchsimas libreras disponibles y todas con una funcin especifica. La declaracin de libreras, tanto en C como en C++, se debe hacer al principio de todo nuestro cdigo, antes de la declaracin de cualquier funcin o lnea de cdigo, debemos indicarle al compilador que libreras usar, para el saber que trminos estaran correctos en la escritura de nuestro cdigo y cuales no. La sintaxis es la siguiente: #include <nombre de la librera> o alternativamente #include "nombre de la librera". Cualquiera de las 2 formas es valida en C++(no estoy seguro si en C sea valido), ten en cuenta que siempre el nombre de la librera debe ir entre " y " o entre < y >. En tu cdigo puedes declarar todas las libreras que quieras, pero en realidad no tienen sentido, declarar una librera que no vas a usar en tus programas, sin embargo no existe lmite para esto. - fstream: Flujos hacia/desde ficheros. Permite la manipulacin de archivos desde el programar, tanto leer como escribir en ellos. - iosfwd: Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estndar. Por ejemplo ostream. - iostream: Parte del a STL que contiene los algoritmos estndar, es quiz la mas usada e importante (aunque no indispensable). - list: Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas - math: Contiene los prototipos de las funciones y otras definiciones para el uso y manipulacin de funciones matemticas. - memory: Utilidades relativas a la gestin de memoria, incluyendo asignadores y punteros inteligentes(auto_ptr). - new: Manejo de memoria dinmica - numeric: Parte de la librera numrica de la STL relativa a operaciones numricas. - ostream: Algoritmos estndar para los flujos de salida. - queue: Parte de la STL relativa a contenedores tipo queue (colas de objetos). Universidad Santiago de Cali MAP05 2

Programacion
Ing. Edwin J. Ortega

- stdio: Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida. - stdlib: Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general. - string: Parte de la STL relativa a contenedores tipo string; una generalizacin de las cadenas alfanumricas para albergar cadenas de objetos. Muy til para el fcil uso de las cadenas de caracteres, pues elimina muchas d elas dificultades que generan los char - typeinfo: Mecanismo de identificacin de tipos en tiempo de ejecucin - vector: Parte de la STL relativa a los contenedores tipo vector; una generalizacin de las matrices unidimensionales C/C++ Identificadores Identificadores son conjuntos de letras y/o nmeros que se utilizan para simbolizar todos los elementos que en un programa, son definibles por el usuario (programador o ingeniero de software) del mismo, como son las variables donde se almacenan datos, funciones( pequeos mdulos con cdigo), etiquetas, clases, objetos, etc. En C un identificador es una palabra compuesta de letras y/o nmeros de hasta 32 caracteres significativos, empezando siempre con una letra.

Variable en C Una variable se define como un identificador que se utiliza para almacenar todos los datos generados durante la ejecucin de un programa. Slo estn permitidas letras de la 'a' a la 'z' (la no vale), nmeros y el smbolo '_', puede contener nmeros, pero no en el primer carcter. Ejemplos de nombres vlidos: camiones numero buffer a1 j10hola29 num_alumnos

Ejemplos de nombres no vlidos: 1abc nombre? num/alumnos

Tampoco valen como nombres de variable las palabras reservadas que usa el compilador. Por ejemplo: for, main, do, while. C distingue entre maysculas y minsculas. Por lo tanto: Nombre nombre NOMBRE seran tres variables distintas.

Universidad Santiago de Cali MAP05

Programacion
Ing. Edwin J. Ortega

Estructuras de seleccin y repeticin Estructuras de seleccin Las sentencias de seleccin permiten crear "bifurcaciones" dentro de los programas, dependiendo de si una condicin es cierta o no en algn momento dado. C implementa tres sentencias de este tipo: if, if-else y switch. Sentencia if-else Para iniciar escribamos el y ejecutemos el siquiente programa: #include <stdio.h> #include <conio.h> void main() { int a, b; printf("Ingrese su edad: "); scanf("%d", &a); printf("Ingrese la edad de algun conocido: "); scanf("%d", &b); if (a > b) {printf("Usted es la persona mayor");} else {printf("Usted es la persona menor");}; getch(); } El programa escrito aqui recibe 2 numeros, los cuales seran 2 edades. Luego, se dedica a comparar las edades ingresadas y le devuelve si usted es la persona mayor o menor, dependiendo de su edad y de la edad de la persona conocida (no se me ocurrio otro nombre >if y else estan presentes dentro del programa. Analicemos cada una de ellas por separado: if (a > b) printf("Usted es la persona mayor");

Universidad Santiago de Cali MAP05

Programacion
Ing. Edwin J. Ortega

Primero se pone la palabra reservada if, seguidamente se abre un '(' y all se escribe la comparacin que queremos realizar. En este caso, comparamos si el valor de 'a' es mayor que el de 'b'. Luego de nuestra comparacin se cierra el ')'. En caso que esta comparacin devuelva un resultado verdadero, es decir, el valor de 'a' es mayor que el de 'b', se enviara el mensaje que dice que usted es la persona mayor. else printf("Usted es la persona menor"); En caso que el resultado de la comparacin haya sido falso, es decir, que el valor de 'a' es menor o igual al de 'b', se enviara el otro mensaje, que dice que usted es la persona menor. Tener en cuenta que antes de la palabra else la ultima sentencia lleva el popular ';'. Hay lenguajes como Pascal donde no se cumple esta regla, pero en el C/C++ si, asi es necesario tener mucho cuidado con el ;. Sentencia switch

Esta sentencia compara el valor de una expresin con una lista de constantes, cuando encuentra una correspondencia, se ejecutan las sentencias asociadas de la misma, switch es el "case" de Pascal. Tiene la siguiente forma: switch (expresion){ case constante1: sentencias break; case constante2: sentencias break; . . . default: sentencias } La sentencia break al final de cada bloque de sentencias permite que se salga del switch, en caso de no haber un case, C pasa a ejecutar el siguiente bloque de sentencias correspondiente a la siguiente constante, en caso de no encontrarse ninguna correspondencia, se ejecutan las sentencias asociadas con default. Universidad Santiago de Cali MAP05 5

Programacion
Ing. Edwin J. Ortega

Ejemplo: void men(void) { /* esta funcin permite la creacin de un men */ char c; printf("1. Crear\n"); printf("2. Editar\n"); printf("3. Buscar\n"); printf("4. Salir\n\n"); printf("Introduzca su opcin:"); c = getchar(); /* tomar la seleccin */ switch (c){ case '1': crear(); break; case '2': editar(); break; case '3': buscar(); break; case '4': salir(); default printf("\nOpcin no valida"); } } Sentencias de iteracin Las sentencias de iteracin o repeticin permiten repetir un conjunto de sentencias ejecutando un bucle. En C++ existen tres formas de iteraciones: los bucles while, dowhile y for El bucle for El bucle for en C cumple la misma funcin que en el resto de los lenguajes de programacin procedimentales pero adems se le aade una potencia y flexibilidad nicas, lo cual lo convierte en una herramienta poderosa. Su forma es la siguiente: Universidad Santiago de Cali MAP05 6

Programacion
Ing. Edwin J. Ortega

for(inicializacin; condicin; incremento) { sentencia; } Donde inicializacin es una sentencia de asignacin para inicializar la variable de control del bucle, condicin es una expresin relacional que determina el final del bucle e incremento define cmo cambia la variable de control cada vez que se ejecute una iteracin del bucle.

ejemplo: #include "stdio.h" /* Imprime los nmeros del 1 al 100 */ main() { int x; for (x=1; x<=100; x++) {printf("%d ", x); } } En este ejemplo, x se inicializa a 1 y se compara con 100, ya que la condicin es cierta, se ejecuta la funcin printf() y x se incrementa en 1, este bucle se repite hasta que x es mayor que 100. A continuacin, un ejemplo del bucle for con varias sentencias:

#include "stdio.h" /* imprime el cuadrado de los numeros del 10 al 1 */ main() { int i, x; for (i=10; x0; x--){ x := i*i; printf("%d al cuadrado es: %d\n", i, x); }

Universidad Santiago de Cali MAP05

Programacion
Ing. Edwin J. Ortega

El Bucle while

Llamado bucle "mientras", ejecuta una sentencia mientras cierta condicin sea verdadera, su forma es la siguiente: while(condicin) {sentencia;} Donde sentencia es una sentencia vlida o un bloque de sentencias. la condicin puede ser cualquier expresin y cualquier valor distinto de 0 es cierto.

ejm #include "stdio.h" main() { int i; float x, suma, promedio; /* lee numeros desde el teclado para calcular su promedio, termina cuando se introduce -1 */ x = suma = 0; i = 1; while (x != -1) { printf("\nIntroduzca el valor %d:", i); scanf("%f", &x); suma += x; } promedio := suma/i; printf("\nEl promedio es: %f / %d = %f", suma, i, promedio); } El Bucle do-while

Universidad Santiago de Cali MAP05

Programacion
Ing. Edwin J. Ortega

A diferencia de los bucles anteriores, que analizan la condicin al principio de los mismos, el bucle do-while lo hace al final, esto significa que se ejecuta siempre al menos una vez. Su forma general es: do{ Sentencia; }while(condicin); Las llaves no son necesarias en el caso de una sentencia simple, pero se recomienda colocarlas por razones de legibilidad, este bucle iterar hasta que la condicin sea falsa. ejm: El siguiente bucle lee nmeros desde el teclado hasta que encuentra un numero negativo: do{ scanf("%d", &num); }while(num = 0); Ejercicios. 1. Usando la herramienta swicth escriba un programa en Lenguaje C que solicite el ingreso de un nmero del 1 al 12 y que muestre por pantalla el mes correspondiente en letras seleccionado en letras. 2. Escribir un programa C que lea exactamente 8 nmeros y luego escriba la suma de todos ellos. 3. Modificar el programa anterior para que en lugar de leer 8 nmeros, se puedan leer tantos nmeros como se quiera hasta que llegue un cero. El resultado es la suma de todos los nmeros ledos. 4. Escriba un programa que lea un numero n y que imprima un conteo de 1 a n, n veces, por ejemplo si escribo el nmero 4, en pantalla se debe imprimir 1234 1234 1234 1234

Universidad Santiago de Cali MAP05