Post on 03-Apr-2018
7/28/2019 Guia5 programacion.pdf
1/9
Universidad Santiago de CaliEMPC03
ProgramacionGua de trabajo 05
Universidad Santiago de CaliFacultad de ingeniera
Prof: Ing. Edwin J. Ortega Z.Colombia 2013
7/28/2019 Guia5 programacion.pdf
2/9
ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP05
2
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 quepermiten 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 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 ejemploostream.
- 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).
7/28/2019 Guia5 programacion.pdf
3/9
ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP05
3
- 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.
7/28/2019 Guia5 programacion.pdf
4/9
ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP05
4
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
#include
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");
7/28/2019 Guia5 programacion.pdf
5/9
ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP05
5
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 estacomparacin 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.
7/28/2019 Guia5 programacion.pdf
6/9
ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP05
6
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:
7/28/2019 Guia5 programacion.pdf
7/9
ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP05
7
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
7/28/2019 Guia5 programacion.pdf
8/9
ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP05
8
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, terminacuando 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
7/28/2019 Guia5 programacion.pdf
9/9
ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP05
9
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 elingreso 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 todosellos.
3. Modificar el programa anterior para que en lugar de leer 8 nmeros, se puedan leer tantosnmeros 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, porejemplo si escribo el nmero 4, en pantalla se debe imprimir
1234
1234
1234
1234