P. 1
EstructurasControl for While Sabatino2009-3

EstructurasControl for While Sabatino2009-3

|Views: 1|Likes:
Publicado porLuis Carbajal

More info:

Published by: Luis Carbajal on Jul 01, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/01/2013

pdf

text

original

Programación II Ingeniería en Sistemas de Información Sabatino Departamento de Computación Facultad de Ciencias y Tecnología

UNIDAD IV: ESTRUCTURAS DE CONTROL EN C (for, while)

do { printf("i vale %d\n". Las dos principales cuestiones de diseño en la construcción del bucle son: ¿Cuál es el cuerpo del bucle? ¿Cuántas veces se iterará el cuerpo del bucle? Existen tres tipos de estructuras: • while. precisión y fiabilidad.i++) { printf("i vale %d\n". i++. }while(i<3).i). • do while. Las tareas repetitivas es algo que los humanos encontramos difíciles y tediosas de realizar. } int i =0.i). int i.2 DECLARACIÓN Y USO int i = 0.1 INTRODUCCIÓN Una de las características de las computadoras que aumentan considerablemente su potencia es su capacidad para ejecutar una tarea muchas veces con gran velocidad. while Programación II Modalidad Sabatina UNIDAD IV: ESTRUCTURAS DE CONTROL: BUCLE FOR 4. 4. } Salida: i vale 0 i vale 1 i vale 2 Estos tres ejemplos producen la misma salida. C soporta tres tipos de estructuras de control: bucles for. • for Estas estructuras nos permiten repetir unas instrucciones concretas un número indeterminado (o no) de veces. i++. pero su uso general es muy distinto.i). Un bucle (ciclo) es cualquier construcción de programa que repite una sentencia o secuencia de sentencias un número de veces. hasta que se cumpla una condición. while(i<3) { printf("i vale %d\n".Estructuras de Control en C: for. for(i=0.i<3. La sentencia (o grupo de sentencias) que se repiten en un bloque se denomina cuerpo del bucle y cada repetición del cuerpo se llama iteración del bucle. while y do-while. 2 .

En el bucle for el número de iteraciones se conoce antes de ejecutarse el ciclo. El bulce for se diferencia del bucle while en que las operaciones de control del bucle se sitúan en la cabecera de la sentencia.S V.3 REPETICIÓN: BUCLE FOR El bucle for de C es el más adecuado para implementar bucles controlados por contador que son bucles en los que un conjunto de sentencias se ejecutan una vez por cada valor de un rango especificado. mientras que la expresión sea verdadera.L: Valor Límite 3 .I: Valor Inicial ♦ V. de acuerdo al algoritmo: Por cada valor de una variable_contador de un rango específico: ejecutar sentencias La sentencia for (bucle for) es un método para ejecutar un bloque de sentencias un número fijo de veces.C: Variable de Control ♦ V. while Programación II Modalidad Sabatina 4. Expresión lógica que determina si las sentencias se han de ejecutar mientras sea verdadera Inicializa la variable control del bucle de Incrementa o decrementa la variable de control del bucle Sentencia(s) a ejecutar en cada iteración del bucle El bucle for contiene las siguientes partes: • Parte de inicialización: Que inicializa la variable de control del bucle. • Sentencias: Acciones o sentencias que se ejecutará por cada iteración del bucle. • Parte de condición: Contiene una expresión lógica que hace que el bucle realice las iteraciones de las sentencias. . …… AccionN Fin-para Donde: ♦ V.C = V.I a L.C = V.L Accion1 Accion2. • Parte de Incremento o Decremento: Incrementa o decrementa la(s) variable(s) de control del bucle. La forma de esta estructura es la siguiente: Hacer para V.Estructuras de Control en C: for.

Estructuras de Control en C: for.vc++) printf("%d\t%d\n".vc. vc --) printf("%d\t%d\n". } Salida: 4.vc* vc). //Declaración de una variable global void main() { for(vc=1.4 Formato Ascendente: //forasc.h> int vc.vc<=10. Existen dos formas de implementar la sentencia for que se utilizan normalmente para implementar bucles de conteo: formato ascendente en el que la variable de control se incrementa y formato descendente en el que la variable de control se decrementa. while Programación II Modalidad Sabatina En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta que la variable de control llegue al valor límite.5 Formato Descendente: //fordesc. 4.h> int vc.c #include<stdio. } 4 . vc. vc >=1.c #include<stdio. //Declaración de una variable global void main() { for(vc =10. vc * vc).

n.n<100.n+=20) printf("%d\t%d\n". 30… dependiendo de los intervalos que se necesiten.c #include<stdio.n*n).6 Otros intervalos de incremento y decremento Los rangos de incremento/decremento de la variable o expresión de control del bucle pueden ser cualquier valor y no siempre 1. es decir: 2. 5. } Salida: 5 . //Declaración de una variable global void main() { for(n=0.h> int n. 3.Estructuras de Control en C: for. 7. //forintervaloinc. while Programación II Modalidad Sabatina Salida: 4. 20.

} Salida: • Este es un programa en C que permite: Leer N números e imprimir solamente los números positivos.h> void main() { int i=1. scanf(“%d”. float calif. 6 .h> void main() { int suma=0. prom. &ndatos). //pos_neg.c #include<stdio.2f\n".num. char nombre[30].h> #include<stdlib.h> #include<stdlib.i<=7.h> #include<string. scanf("%s". suma = suma + calif. while Programación II Modalidad Sabatina Ejemplos: • Este es un programa en C que permite: Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Programación II. printf("\n%s Tiene un PROMEDIO de: %.&calif).Estructuras de Control en C: for.i++) { printf("Calificacion[%d]: ".i).prom). for(i=1.i=1. } prom = suma /7. scanf("%f". printf(“Cuantos Datos: ”).h> #include<string.ndatos.nombre.&nombre). //promedio.c #include<stdio. printf("Introduzca el nombre: ").

if(num >0) printf("%d ES POSITIVO\n".neu=0. } printf("De los 20 numeros %d son POSITIVOS\n". for(i=1.i++) { printf("Numero[%d]: ". printf("De los 20 numeros %d son NEUTROS\n".num).c #include<stdio.&num). cuantos negativos y cuantos neutros.Estructuras de Control en C: for.h> #include<string. else printf("%d NO ES POSITIVO\n". if(num >0) pos++.neg=0.h> #include<stdlib. } } Salida: • Este es un programa en C que permite leer 20 números e imprimir cuantos son positivos. else if(num <0) neg++.i<=20. } 7 .num.neu).num). while Programación II Modalidad Sabatina for(i=1.h> void main() { int i=1.i).pos). scanf("%d". else neu++.i<=ndatos. scanf("%d".neg).&num).i++) { printf("Numero[%d]: ".i). printf("De los 20 numeros %d son NEGATIVOS\n". //n_pos_neg_neu.pos=0.

printf("La calificación MENOR del grupo de alumnos es: %d\n". //Encontrar cual es la calificacion menor if(calif< baja) baja = calif.media.i<=5. i=1.i++) { printf("Calificacion[%d]: ". while Programación II Modalidad Sabatina Salida: • Suponga que se tiene un conjunto de calificaciones de un grupo de 5 alumnos.c #include<stdio. suma = suma + calif.baja). printf("La calificación PROMEDIO del grupo de estudiantes es: %. baja=9999. scanf("%f".f\n".&calif). } media = suma/5.Estructuras de Control en C: for. for(i=1. Realizar un programa en C para calcular la calificación promedio y la calificación más baja de todo el grupo. float calif. } 8 .media).h> #include<stdlib.i). //calif_menor.h> #include<string.h> void main() { int suma = 0.

c #include<stdio.&num).i<=10. el multiplicador y el producto.i.num).num. scanf("%d".num*i). //tabla_mul. printf("\n*******TABLA DE MULTIPLICAR DEL: %d*******\n". printf("DESEO MOSTRAR LA TABLA DE MULTIPLICAR DEL: "). } Salida: 9 .h> void main() { int i=1. while Programación II Modalidad Sabatina Salida: • Este es un programa en C que permite: Calcular e imprimir la tabla de multiplicar de un número cualquiera.Estructuras de Control en C: for. for(i=1.h> #include<stdlib. //system("cls"). num.h> #include<string. Imprimir el multiplicando.i++) printf("%d * %d = %d\n".

b) Calcule e imprima el IVA (15% de la compra). Realice un programa en C para calcular la suma siguiente: 100 + 98 + 96 + 94 +. 4. 2. while Programación II Modalidad Sabatina 4. Desarrollar un programa en C que determine en un conjunto de 100 números naturales ¿cuántos son menores de 10. + 0 en este orden. Alumnos mayores de 60 kg. c) Calcule e imprima el total a pagar. Diseñe un programa en C que permita realizar las siguientes operaciones para N clientes: a) El monto de la compra de cada cliente. e) Calcule e imprime el cambio. b. Al final del día deberá imprimir la cantidad de dinero que debe haber en la caja. mayores de 50 y cuántos están comprendidos entre 100 y 200? 7. Alumnos entre 40 y 50 50kg. Realice un programa en C que calcule la suma de los números impares desde 1 hasta un número dado N. Suponga que tiene una tienda y desea registrar sus ventas por medio de una computadora. Realice un programa en C que imprima los números pares e impares entre 1 y 100. Alumnos de menos de 40 kg. 6.Estructuras de Control en C: for. Se desea realizar una estadística de los pesos de los 150 alumnos de un colegio de acuerdo a la siguiente tabla: a. . 5. . Ejemplo de Entrada y salida de datos: 10 . d. 3. Realice un programa que permita calcular el factorial de un número.7 PROBLEMAS PROPUESTOS DE LA ESTRUCTURA DE CONTROL: for 1. d) Lea la cantidad con que paga el cliente. Alumnos mayores de 50 kg y menores de 60 kg. c.

se ejecuta. de modo que cuando se ejecuta el mismo. . • En caso contrario: El control se transfiere a la sentencia siguiente al bucle while. 11 . Si la condición es inicialmente falsa. denominada el cuerpo del bucle. el cuerpo del bucle no se ejecutará. Las sentencias del cuerpo del bucle se repiten mientras que la expresión lógica (condición del bucle) sea verdadera. el cuerpo de un bucle while se ejecutará cero o más veces. sentencia-n. La forma de esta estructura es la siguiente: while(condición_bucle) sentencia. . while Programación II Modalidad Sabatina 4. En otras palabras. b) Vuelve el control al paso 1. sentencia-2. se evalúa la condición antes de que se ejecute el cuerpo del bucle. Cuando se evalúa la expresión lógica y resulta falsa. El diagrama indica que la ejecución de la sentencia o sentencias expresadas se repite mientras la condición del bucle permanece verdadera y termina cuando se hace falsa. } Donde: condición_bucle sentencia cuerpo Cuerpo es una expresión lógica o booleana es una sentencia simple o compuesta El funcionamiento de una sentencia while es: • Se evalúa la condición_bucle • Si condición_bucle es verdadera(distinto de cero): a) La sentencia especificada.Estructuras de Control en C: for. se termina y se sale del bucle y se ejecuta la siguiente sentencia de programa después de la sentencia while.8 SENTENCIA DE CONTROL: while Un bucle while tiene una condición del bucle (una expresión lógica) que controla la secuencia de repetición. La posición de esta condición del bucle es delante del cuerpo del bucle. . while(condición_bucle) { sentencia-1.

En realidad el centinela es un valor que sirve para terminar el proceso del bucle. es falsa(es cero en C). Un medio para manejar esta situación es instruir al usuario a introducir un único dato definido y especificado denominado valor centinela como último dato. printf("Introduzca la siguiente nota:"). } 12 . printf("Introduzca primera nota: "). while Programación II Modalidad Sabatina 4.10 BUCLES CONTROLADOS POR CENTINELAS Normalmente.suma = 0. printf("La suma de las notas es %d \n". const int centinela = -1. Esto se produce bien porque hay muchos datos a contar normalmente o porque el número de datos a procesar depende de cómo prosigue el proceso de cálculo. no se conoce con exactitud cuántos elementos de datos se procesarán antes de comenzar su ejecución. 4. En el siguiente fragmento de código hay un bucle con centinela. contador = 10.c /*entrada de datos numéricos.&nota). }/* fin de while*/ puts("Final"). centinela -1*/ #include <stdio. se introducen notas mientras que ésta sea distinta de centinela.9 BUCLES while CON CERO ITERACIONES El cuerpo de un bucle no se ejecuta nunca si la condición de repetición del bucle no se cumple.suma).Estructuras de Control en C: for. scanf("%d". //centinela.h> void main() { int nota. El cuerpo del bucle nunca se ejecutará. cuando se alcanza while la primera vez.&nota). La condición del bucle comprueba cada dato y termina cuando se lee el valor centinela. scanf("%d". while(nota != centinela) { suma += nota. while(contador > 100) { … } El bucle anterior nunca se ejecutará ya que la condición del bucle (contador > 100) es falsa la primera vez que se ejecuta.

//whileasc.h> void main() { int vc=1. vc. vc * vc). while Programación II Modalidad Sabatina Salida: 4. while(vc <=10) { printf("%d\t%d\n". vc++. } } Salida: 13 .c #include<stdio.11 1.Estructuras de Control en C: for. PROBLEMAS RESUELTOS CON LA ESTRUCTURA DE CONTROL: while Programa que imprime los números del 1 al 10 en formato ascendente.

2f". } } Salida: 3. printf("\nEL PROMEDIO DE NOTAS ES:%. printf("Introduzca el numero de alumnos: ").c #include<stdio.a=1. vc * vc).h> void main() { int suma=0.&calif).Estructuras de Control en C: for. Realice un programa en C que permita: Obtener el promedio de calificaciones de un grupo de N alumnos. while(a<=n_alumnos) { printf("Calificacion [%d]: ". Programa que imprime los números del 1 al 10 en formato descendente. a++.h> #include<stdlib. } prom = suma /n_alumnos. scanf("%d".c #include<stdio. vc--. while Programación II Modalidad Sabatina 2.h> #include<string. float calif. //promedio. vc.a).n_alumnos.prom). suma = suma + calif. } 14 . //whiledesc. while(vc >=1) { printf("%d\t%d\n".&n_alumnos).h> void main() { int vc=10. scanf("%f". prom.

Una compañía de seguros tiene contratados a N vendedores.n_vendedores.v1. comisiones = (v1+ v2+ v3) * 0. printf("SUELDO BASE: ").comisiones. while Programación II Modalidad Sabatina Salida: 4. printf("VENTA 3: ").total_sueldo.2f\n". y un 5% extra por comisiones de sus ventas. printf("VENDEDOR[%d] TIENE UN SUELDO DE: %. total_sueldo = sueldo_base + comisiones.05.v. Su política de pagos es que un vendedor recibe un sueldo base.v3. } } 15 .h> #include<string. printf("VENTA 2: ").&v2). scanf("%d".&v1).&n_vendedores). float sueldo_base. scanf("%f". scanf("%f". //vendedores. Cada uno hace tres ventas a la semana.&v3).c #include<stdio.v).h> #include<stdlib. El gerente de su compañía desea saber cuanto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas. while(v<=n_vendedores) { printf("\n***DATOS DEL VENDEDOR --->%d***\n".Estructuras de Control en C: for. scanf("%f".h> void main() { int v=1.&sueldo_base).v2. scanf("%f".total_sueldo). v++. y cuanto tomando en cuenta su sueldo base y sus comisiones. printf("Introduzca el numero de vendedores: "). printf("VENTA 1: ").

//mayor. if(valor >mayor) mayor = valor.c #include<stdio. } 6. mayor=0.h> #include<stdlib.h> #include<string. el cual le otorga un 2% de interés. scanf("%d". while Programación II Modalidad Sabatina Salida: 5.mayor). while(d<=ndatos) { printf("Introduzca el valor: "). d++. printf("Introduzca el numero de datos: ").valor. Encontrar el mayor valor de un conjunto de N números dados. } printf("EL NUMERO MAYOR ES:%d\n". scanf("%d". Una persona desea invertir su dinero en un banco.&valor). Realice un programa en C que le permita a esa persona saber: Cual será la cantidad de dinero que tendrá al cabo de un año si la ganancia de cada mes es reinvertida? 16 . ndatos.&ndatos).h> void main() { int d=1.Estructuras de Control en C: for.

02.&cantdinero). scanf("%f". mes++. printf("Introduzca la cantidad de dinero: ").cantdinero). printf("En el mes %d tiene en el banco %. intereses=0.mes.h> #include<string. cantdinero = cantdinero + intereses. } printf("\n\nDESPUES DE %d MESES-->TIENE EN EL BANCO:%f\n". while(mes<=12) { intereses = cantdinero * 0. } Salida: 17 .h> void main() { int mes=1.mes-1.h> #include<stdlib.cantdinero).Estructuras de Control en C: for.c #include<stdio.2f\n". while Programación II Modalidad Sabatina //intereses. float cantdinero.

Estructuras de Control en C: for. cuantos entran con calcomanía de cada color. 2. 5. Conociendo el último dígito de la placa de cada automóvil se puede determinar el color de la calcomanía utilizando la sig. jóvenes. de los N autos que entran a la ciudad de Nicaragua. tabla: CATEGORIA Niños Jóvenes Adultos Viejos EDAD 0 . de mas de 1 año y menos de 3 y de 3 o mas años. El zoológico todavía no esta seguro del animal que va a estudiar. Realice un programa en C que calcule la suma de los números pares desde 1 hasta un número dado N. y si son chimpancés tomara 40. Si se decide por elefantes solo tomara una muestra de 20 de ellos. 4.12 PROBLEMAS PROPUESTOS DE LA ESTRUCTURA DE CONTROL: while 1. Realice un programa en C que permita registrar las edades de los empleados de una fábrica (no se sabe cuántos) y verificar cuántos son mayores de edad (18 años o más) y cuántos tienen una edad menor a 18 años. adultos y viejos que existen en su zona habitacional. Encontrar el menor valor de un conjunto de N números dados.59 60 en adelante 6. 3.29 30 . Se determinan las categorías con base en la sig. relación: DÍGITO 1o2 3o4 5o6 7o8 9o0 COLOR amarilla rosa roja verde azul 18 . Un Zoólogo pretende determinar el porcentaje de animales que hay en las siguientes tres categorías de edades: de 0 a 1 año. si se decide por las jirafas. tomara 15 muestras.12 13 . El Depto. Una persona debe realizar un muestreo con 20 personas para determinar el promedio de peso de los niños. de Seguridad Publica y Transito desea saber. while Programación II Modalidad Sabatina 4.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->