< UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERIA
INGENIERIA DE SISTEMAS
LENGUAJES DE PROGRAMACION (CIVIL) - GUIA N° 04
GuiA 04
TEMA Estructura repetitivas / Algoritmos repetitivos
DOCENTES Ing. Luis enrique Del Carpio Cuentas
TEM.
: ESTRUCTURA REPETITIVAS / Algoritmos repetitivos
1, OBJETIVOS DE LA PRACTICA.
Al finalizar la practica el estudiante estard en la capacidad de escribir compilar y
ejecutar programas con estructuras repetitivas
2. BASE TEORICA COMPLEMENTARIA.
Los ordenadores se disefiaron inicialmente para realizar tareas sencillas y
repetitivas. El ser humano es de lo mas torpe acometiendo tareas repetitivas:
pronto le falla Ia concentracién y comienza a tener descuidos. Los ordenadores
programables, en cambio, pueden realizar 1a misma tarea muchas veces por
segundo durante afios y nunca se abutren (o, al menos, hasta hoy no se ha tenido
constancia de ello)
La estructura repetitiva, por tanto, reside en la naturaleza misma de los
ordenadores y consiste, simplemente, en repetir varias veces un conjunto de
instruceiones. Las estructuras repetitivas también se Haman bucles, lazos 0
iteraciones, Nosotros preferiremos la denominacién bucle(LOOP).
Los bucles tienen que repetir un conjunto de instrucciones un nimero finito de
veces. Si no, nos encontraremos con un bucle infinito y el algoritmo no
funcionaré, En rigor, ni siquiera ser un algoritmo, ya que no cumplira la
condicién de finitud
Por tanto, los bucles se componen, bisicamente. de dos elementos:
* Un cuerpo del bucle 0 conjunto de instrucciones que se ejecutan
repetidamente.
+ Una condicién de salida para dejar de repetir las instrucciones y continuar
con el resto del algoritmo.
3. TIPOS DE BUCLES
Dependiendo de dénde se coloque la condicién de salida (al principio o al final
del conjunto de instrucciones repetidas), y de la forma de realizarla, existen tres
tipos de bucles. aunque hay que resaltar que. con el primer tipo. se puede
programar cualquier estructura iterativa. Pero con los otfos dos, a veces el
programa resulta mis claro y legible. Los tres tipos de bucle se denominan:
* Bucle™
tras™: la condicién de salida esta al principio del bucle
eal<< UNIVERSIDAD ANDINA DEL CUSCO .
FACULTAD DE INGENIERIA
INGENIERIA DE SISTEMAS
+ Bucle “repetir™ la condicién de salida esté al final del bucle
+ Bucle “para: la condicién de salida esta al principio y se realiza con un
contador automitico
A. Estructura repetitiva del bucle “mientras”
El bucle “mientras” es una estructura que se repite mientras una condicién sea
verdadera. La condicién, en forma de expresién logica, se escribe en la cabecera
del bucle, y a continuacién aparecen las acciones que se repiten (cuerpo del
bucle)
Sintaxis-While
While (condicién)
{
}
Acciones (cuerpo del bucle)
Concepto de contadores
Este es un elemento importante a la hora de hacer algoritmos repetitivos, la
misién de un contador es contar las veces que algo se repite 0 las veces
que se cumple cierta condicion.
Los contadores tienen de forma obligatoria dos partes, estas son’
+ La inicializacién. Significa en cuanto comienza el contador,
normalmente los contadores los inicializamos en cero (contador = 0)
+ La actualizacién. Aqui definimos el incremento del contador. es
contador se incrementa de uno en uno (contador = contador + 1).
/Mnicializacion
X=0:
J Sctualizacion
X=X+1,
X=X+
X=X+h,
X=X+1
X=X+1
Al final X=5;
Ejemplo02: Los menores de edad
Algoritmo que lee 100 edades y cuenta la cantidad de menores que hay
eesUNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERIA
INGENIERIA DE SISTEMAS.
Aigoritmo Menores
Inicio Inicializacin det
Entero edad, j,cn___ ‘contador cn en cero
aso (Fuera del bucle)
Paraj = 1 hasta 100
Leer(edad)
Si edad < 18 Entonces
ace Increment del
contador en uno
ie {Dentro de buce)
FinPara
Escribir(en)
Concepto de acumutadores
Los acumuladores permiten sumar cantidades diferentes cada vez que se
actualizan, también tienen dos partes, estas son:
+ La Inicializacién. Es el valor inicial que tiene el acumulador,
normalmente se pone cero.
+ La actualizacién, Es el momento en el cual el acumulador hace una suma
para cambiar su contenido, es decir, para acumular, la acumulacién
puede ser cualquier cantidad.
Observemos las siguientes érdenes para entender este proceso:
0
at+7
atl
at3
at4
Al final el valor de a es 15 ya que todos los valores se han ido sumando una y
otra vez
Ejemplo03: La tienda
Una tienda hace 33 ventas y desea sumar estas cantidades.
Algoritmo LaTienda
Inicio Inicializacion del
Enteroi acumulador “sum”
Real sum, dato (fuera del bucle)
sum = 0
Para i=1 hasta 33
Leer(dato)
sum = sum + dato ‘Actualizacion del
FinPara acumulador “sunt”
Escribir(sum) (dentro del bucle)
eosUNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERIA
INGENIERIA DE SISTEMAS.
Ejemplo 01:
Hacer un programa que encuentre el primer entero que haga que la suma de la
serie 1. 2, 3,4, 5,6, 7, 8.9,..: supere 30.
static void Main(string!] args)
//oeclarar variables
Ane is
int suma=0;
/verificar si 1a suma de la serie es mayor a 30
while (suma <= 30)
t
icaitn
)
/MMostrar e1 numero que hace que 1a suma de la serie sea
mayor a 30
Console.Write ("numero:"};
console.Weite (i);
console. ReadKey ()?
,
Ejemplo 02:
Hacer un programa que calcule la suma de ciertos niimeros ingresados por el
teclado. El célculo de la suma se hard en cualquier momento.
static void Main(string!] args}
int num = 17
int suma = 0;
Console.WriteLine ("CUANDO PULSE 0, TERMINA EL PROGRAMA.
An")?
white (num != 0)
t
Console.Writeline(" ingrese un nimero.. ");
nun = int. Parse (Console.ReadLine()}+
)
Console.Writenine ("La suma es:
Console. WriteLine (suma) ;
console: ReadKey ()7
i
Ejemplo 03:
Escriba un programa que cuente el numero de cifras de un entero de entrada
hhasta 32000. Asi para una entrada de 583 la salida debe ser "3 ciffas",
asegirese que el programa funcione para | y 10, Para cero la salida debe ser
"UNA CIFRA" El programa no debe cerrarse hasta ingresar el nimeto 0,
static void Main(string!] args}
console.Writenine ("PULSE 0 PARA TERMINAR Y OTRO
NUMERO PARA CONTINUAR") 7
while (x < 32000 && x != 0)UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERIA
INGENIERIA DE SISTEMAS.
1
console.writenine("ingrese un nimero ");
x= int-Parse(Console-Readzine(}}i 7
if (x >= 0 && x <= 9) Console.Writenine ("TENE 1
CIERA", x);
else if (x >= 10 g& x <= 99) Console.writeLine ("ZENE
2 CIFRAS", x)?
else if (x >= 100 64 x <= 999)
Console.WeiteLine("TIENE 3 CIFRAS", x);
else if (x >= 1000 a6 x <= 9999)
Console.WriteLine("TIENE 4 CIFRAS", x);
else if (x >= 10000 6% x <= 32000)
Console.WeiteLine(" TIENE $ CIFRAS", x);
)
Ejercicios Propuestos:
i) Escriba un programa en el que se pida al usuario (estudiante de Ing, Civil)
ingresar 10 mumeros enteros impares para sumarlos. Elabore el programa de
manera que no se arruine si el usuario escribe algunos enteros pares. El
programa debe salir del ciclo e imprimir la suma s6lo cuando se hayan
ingresado los 10 enteros impares.
i) Hacer un programa que imprima todos los niimeros primos entre 2 nimeros
ingresados por el teclado.
Eee