Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido:
C tiene solo siete estructuras de control: secuenciacin, tres de seleccin y tres de repeticin. Cada
programa de C se forma al combinar tantos de cada tipo de estructura de control como sea apropiado,
en relacin con el algoritmo que resuelve el programa.
Una estructura de seleccin se utiliza para elegir entre cursos alternativos de accin.
if (condicin)
accin (es);
El enunciado if permite al programador tomar una alternativa cuando se cumple cierta condicin el
formato.
if (nota >= 60 )
printf (Aprobado);
Esta estructura de seleccin if / else permite que el programador especifique que se ejecuten
acciones distintas cuando la condicin sea verdadera que cuando la condicin sea falsa.
if (nota >= 60 )
printf (Aprobado);
else
printf (Reprobado);
Estructuras de Control Seleccin
La estructura if/else anidada prueban para muchos casos, colocando estructuras if/else dentro de
estructuras if/else.
Otra forma:
Por lo que se refiere al compilador de C, ambas formas resultan equivalentes, la ltima forma es popular
porque evita las profundas sangras del cdigo hacia la derecha.
La estructura de seleccin if espera un enunciado dentro de su cuerpo. Para incluir varios enunciados en
el cuerpo de un if encierre el conjunto de enunciados entre llaves ({ }) lo que permite que este conjunto
de enunciados se le llame bloque compuesto.
Un bloque compuesto puede ser colocado en cualquier parte de un programa, donde pueda ser
colocado un enunciado sencillo.
Estructuras de Control Seleccin
if (nota >= 60 )
printf (Aprobado);
else
{
printf (Reprobado);
printf ( usted puede tomar este curso de nuevo);
}
Advierta las llaves que rodean ambos enunciados en la clusula else. Estas llaves son importantes
sin ellas el enunciado quedara fuera del cuerpo de la parte else del if y sera ejecutado
independientemente de si la calificacin es menor que 60.
Ejemplos
a) #include <stdio.h>
main()
{
int a , b, c;
verificar: 40 25 10
10 40 25
25 10 40
b) #include <stdio.h>
main()
{
int a , b, c;
En forma ocasional un programa contendr una serie de decisiones en las cuales una variable o expresin
se probar por separado contra cada uno de los valores constantes enteros que puede asumir y se tomarn
diferentes acciones.
La estructura switch est formada de una serie de etiquetas case y de un caso opcional default.
switch ( selector)
{
case valor1: acciones;
break;
case valor2: acciones;
break;
case valor3: acciones;
break;
case valor4: acciones;
break;
.
default:
printf(Dato invalido);
break;
}
}
Ejemplo
Una compaa ha clasificado a sus empleados en dos Grupos: Grupo 1 y Grupo 2. Cada empleado del grupo 1 recibir un
aumento de C$25.00 crdobas, mientras que cada empleado del grupo 2 recibir un aumento de solo C$15.00 crdobas.
Elabore un programa que permita calcular el nuevo sueldo
switch(grupo)
{
1 : pago= salario + 25;
break;
Otra forma:
if(grupo==1)
pago=salario+25;
else
if(grupo==2)
pago=salario +15;
switch(alfabetico){
case 'A':
printf("%c es: igual a 4",alfabetico);
break;
case 'B':
printf("%c es: igual a 5",alfabetico);
break;
case 'C':
printf("%c es: igual a 6",alfabetico);
break;
case 'D':
printf("%c es: igual a 7",alfabetico);
break;
case 'E':
printf("%c es: igual a 8",alfabetico);
break;
default:
printf("%c no existe en este rango del programa",alfabetico);
}
/*salto de linea*/
printf("\n");
system("pause");
}
Imprimiendo nmeros decimales con printf
La f indica que deber ser impreso un valor de punto flotante. El .2 es la precisin con la cual dicho valor ser
desplegado con 2 decimales a la derecha del punto decimal.
Si se utiliza especificador de conversin %f (sin especificar precisin) se utilizar la precisin preestablecida por
omisin de 6 exactamente igual si se pusiera el especificador de conversin %.6f. Cuando los valores de punto
flotante se imprimen con precisin, el valor impreso se redondea al nmero indicado de posiciones decimales.
El valor en memoria se conserva sin alteracin. Cuando son ejecutados los enunciados siguientes se imprimen los
valores 3.45, 3.4.
Las precisiones se utilizan solo en las especificaciones de conversin de printf y no de scanf (en la cadena de control
de formato).
Utilizar el nmero de punto flotante de tal forma no son siempre 100% precisos tienen muchas aplicaciones o sea
solo es una aproximacin.
Ejemplos
printf("%d", 234) /* imprime 234 */
printf("%6d", 234) /* imprime 234 */
printf("%4f", 234.15) /* imprime 234.15 */
printf("%4.1f", 1234.15) /* imprime 1234.2 */
Conversin explcita de tipos
Convierte el valor entero de suma en un flotante ANTES de dividir por cant. El resultado ser un
nmero flotante.
Operador Condicional ?:
Ejemplo
#include <stdio.h>
main()
{
int num;
clrscr();
printf("Numero:");
scanf("%d",&num);
printf(num%2==0 ? "Par" : "Impar");
getch();
return 0;
}
Estructuras Repetitivas:
Son aquellas estructuras que utilizan ciclos(lazo, bucle, loop, iteracin) para realizar una tarea, los ciclos
son ventajosos cuando se ha de repetir muchas veces la misma tarea un nmero especificado de veces.
En tales casos basta codificar una sola vez la tarea como cuerpo del ciclo.
En ocasiones, en los ciclos repetitivos se necesita contar el nmero de veces que se procesa algn
elemento, o bien hacer acumulaciones de cantidades para obtener totalizadores.
Estos dos elementos son asignaciones especiales conocidas como Contador y Acumulador.
Contador: Es una variable de tipo entero que tiene como funcin contener el nmero
de veces que se procesa una tarea. El contador tiene las siguientes
Caractersticas:
Un contador debe declararse como cualquier otra variable
El contador debe inicializarse en cero o en uno al comienzo.
El contador debe incrementarse en uno dentro del cuerpo del ciclo.
El contador puede ser impreso para mostrar su ltimo contenido al final del ciclo.
Estructuras de Repeticin
Estructura for
Esta estructura maneja de forma automtica todos los detalles de la repeticin controlada por
contador.
formato
Ejemplo:
El programa puede funcionar como sigue: Cuando la estructura for inicia su ejecucin, la variable de
control cont se inicializa 1. A continuacin se verifica la condicin de continuacin del ciclo cont<=10.
Dado que el valor inicial de cont es 1, se satisface esta condicin, por lo que el enunciado printf
imprime el valor de cont , es decir 1.
#include <stdio.h>
main()
{
int cont;
Observaciones:
Tanto la inicializacin como la condicin de continuacin del ciclo y el incremento pueden contener
expresiones aritmeticas.
La inicializacin ocurre una vez y que el incremento ocurre despus de que se ejecute el enunciado
del cuerpo.
Estructuras de Control Repeticin
Ejemplo:
Realice un programa que utilice la estructura for para sumar todos los enteros pares desde 2 hasta 100.
#include <stdio.h>
main()
{
int suma=0, numero;
Una estructura de repeticin le permite al programador especificar que se repita una accin en tanto
cierta condicin se mantenga verdadera.
A fin de ver como se desarrollan los algoritmos, resolveremos algunas variantes de programa de
promedio de clase.
Una clase de diez alumnos hizo un examen. Las calificaciones (enteros en el rango 0 a 100)
correspondientes a este examen estn a su disposicin. Determine el promedio de la clase en este
examen.
/* Promedio de notas haciendo uso de contador */
#include <stdio.h>
main()
{
int cont, nota, total, promedio;
/* Inicializacin */
total= 0;
cont = 1;
/* procedimiento */
}
Esta tcnica utiliza una variable llamada contador para definir el nmero de veces que deber
ejecutarse un conjunto de enunciados. En este ejemplo la repeticin terminar cuando el contador
excede de 10.
Una forma de resolver este problema es utilizar un valor llamado valor centinela(conocido como valor
seal, valor bandera) que indicar Fin de la captura de datos. -1 puede ser un valor centinela
aceptable
#include <stdio.h>
main()
{
/* Inicializacin */
total= 0;
cont = 0;
/* procedimiento */
while (nota != -1 )
{
total= total + nota;
cont= cont + 1;
printf (Deme la nota y presione 1- para finalizar:)
scanf(%d, ¬a);
}
/* Terminacin del proceso */
if ( cont != 0)
{
promedio = (float)total / cont;
printf( Promedio de la clase es %.2f \n , promedio );
}
else
printf(Las notas no fueron introducidas\n);
}
Estudio de caso 3: Estructura de control anidadas
Considere el siguiente enunciado del programa:
Una Universidad ofrece un curso que prepara alumnos para el examen estatal de licenciatura para
corredores de bienes races. El ao pasado, varios de los alumnos que terminaron este curso hicieron el
examen de licenciatura, naturalmente la universidad desea conocer que tan bien salieron sus alumnos
en el examen. Se le ha pedido a usted que escriba un programa para resumir los resultados. Se le ha
dado una lista de estos diez alumnos. A continuacin de cada nombre se ha escrito un 1 si el alumno
pas el examen y un 2 si no lo pas.
Desplegar los resultados de prueba indicando el nmero de alumnos que pasaron y el nmero de
alumnos que reprobaron. Si ms de 8 alumnos pasaron el examen, imprima el mensaje Aumente la
colegiatura.
/* Anlisis de resultados de Examen */
#include <stdio.h>
main( )
{
int cont=0 , cont2=0, alumno=1, resultado;
if (resultado == 1)
cont=cont + 1;
else
cont2= cont2 + 1;
alumno = alumno + 1;
}
printf(Aprobaron %d \n, cont1);
printf(Reprobaron %d \n, cont2);
if (cont1 > 8)
printf(Se le aumenta la colegiatura \n);
}
Estructura do while
La estructura do while prueba la condicin de continuacin del ciclo despes de ejecutar el cuerpo del
ciclo y por lo tanto el cuerpo del ciclo se ejecutar por lo menos una vez.
Cuando termina do while la ejecucin continuar con el enunciado que aparezca despes de la clausula
while. Note que la estructura do while no es necesario utilizar llaves, si en el cuerpo existe solo un
enunciado. Sin embargo por lo regular las llaves se utilizan para evitar confusin entre las estructuras
while y do while.
Formato
do
{
Enunciado
}
while (condicin);
Ejemplo: Visualizar los nmeros del 1 al 10
#include <stdio.h>
main( )
{
int cont=1;
do
{
printf(%d, cont);
cont=cont + 1;
}
while (cont <=10);
return 0;
}