Está en la página 1de 9

Programacion

Guía de trabajo 05

Universidad Santiago de Cali
Facultad de ingeniería Prof: Ing. Edwin J. Ortega Z. Colombia 2013

Universidad Santiago de Cali EMPC03

Programacion
Ing. Edwin J. Ortega

Librerías y cabeceras Junto con los compiladores de C y C++, se incluyen ciertos archivos llamados bibliotecas mas comúnmente librerías Las bibliotecas contienen el código objeto de muchos programas que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar números, realizar funciones matemáticas, etc. Las bibliotecas están clasificadas por el tipo de trabajos que hacen, hay bibliotecas de entrada y salida, matemáticas, de manejo de memoria, de manejo de textos y como imaginaras existen muchísimas librerías disponibles y todas con una función especifica. La declaración de librerías, tanto en C como en C++, se debe hacer al principio de todo nuestro código, antes de la declaración de cualquier función o línea de código, debemos indicarle al compilador que librerías usar, para el saber que términos estaran correctos en la escritura de nuestro código y cuales no. La sintaxis es la siguiente: #include <nombre de la librería> o alternativamente #include "nombre de la librería". 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 librería debe ir entre " y " o entre < y >. En tu código puedes declarar todas las librerías que quieras, pero en realidad no tienen sentido, declarar una librería que no vas a usar en tus programas, sin embargo no existe límite para esto. - fstream: Flujos hacia/desde ficheros. Permite la manipulación de archivos desde el programar, tanto leer como escribir en ellos. - iosfwd: Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por ejemplo ostream. - iostream: Parte del a STL que contiene los algoritmos estándar, 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 manipulación de funciones matemáticas. - memory: Utilidades relativas a la gestión de memoria, incluyendo asignadores y punteros inteligentes(auto_ptr). - new: Manejo de memoria dinámica - numeric: Parte de la librería numérica de la STL relativa a operaciones numéricas. - ostream: Algoritmos estándar 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 generalización de las cadenas alfanuméricas para albergar cadenas de objetos. Muy útil para el fácil uso de las cadenas de caracteres, pues elimina muchas d elas dificultades que generan los char - typeinfo: Mecanismo de identificación de tipos en tiempo de ejecución - vector: Parte de la STL relativa a los contenedores tipo vector; una generalización de las matrices unidimensionales C/C++ Identificadores Identificadores son conjuntos de letras y/o números 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( pequeños módulos con código), etiquetas, clases, objetos, etc. En C un identificador es una palabra compuesta de letras y/o números 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 ejecución de un programa. Sólo están permitidas letras de la 'a' a la 'z' (la ñ no vale), números y el símbolo '_', puede contener números, pero no en el primer carácter. Ejemplos de nombres válidos: camiones numero buffer a1 j10hola29 num_alumnos

Ejemplos de nombres no válidos: 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 mayúsculas y minúsculas. Por lo tanto: Nombre nombre NOMBRE serían tres variables distintas.

Universidad Santiago de Cali MAP05

3

Programacion
Ing. Edwin J. Ortega

Estructuras de selección y repetición Estructuras de selección Las sentencias de selección permiten crear "bifurcaciones" dentro de los programas, dependiendo de si una condición es cierta o no en algún 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

4

Programacion
Ing. Edwin J. Ortega

Primero se pone la palabra reservada if, seguidamente se abre un '(' y allí se escribe la comparación que queremos realizar. En este caso, comparamos si el valor de 'a' es mayor que el de 'b'. Luego de nuestra comparación se cierra el ')'. En caso que esta comparación 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 comparación 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 expresión 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 función permite la creación 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 opción:"); c = getchar(); /* tomar la selección */ switch (c){ case '1': crear(); break; case '2': editar(); break; case '3': buscar(); break; case '4': salir(); default printf("\nOpción no valida"); } } Sentencias de iteración Las sentencias de iteración o repetición permiten repetir un conjunto de sentencias ejecutando un bucle. En C++ existen tres formas de iteraciones: los bucles while, do…while y for El bucle for El bucle for en C cumple la misma función que en el resto de los lenguajes de programación procedimentales pero además se le añade 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(inicialización; condición; incremento) { sentencia; } Donde inicialización es una sentencia de asignación para inicializar la variable de control del bucle, condición es una expresión relacional que determina el final del bucle e incremento define cómo cambia la variable de control cada vez que se ejecute una iteración del bucle.

ejemplo: #include "stdio.h" /* Imprime los números 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 condición es cierta, se ejecuta la función printf() y x se incrementa en 1, este bucle se repite hasta que x es mayor que 100. A continuación, 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

7

Programacion
Ing. Edwin J. Ortega

El Bucle while

Llamado bucle "mientras", ejecuta una sentencia mientras cierta condición sea verdadera, su forma es la siguiente: while(condición) {sentencia;} Donde sentencia es una sentencia válida o un bloque de sentencias. la condición puede ser cualquier expresión 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

8

Programacion
Ing. Edwin J. Ortega

A diferencia de los bucles anteriores, que analizan la condición 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(condición); 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 condición sea falsa. ejm: El siguiente bucle lee números 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 número 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 números y luego escriba la suma de todos ellos. 3. Modificar el programa anterior para que en lugar de leer 8 números, se puedan leer tantos números como se quiera hasta que llegue un cero. El resultado es la suma de todos los números leídos. 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 número 4, en pantalla se debe imprimir 1234 1234 1234 1234

Universidad Santiago de Cali MAP05

9