DOCENTE: Ing. Ronald Rentería Ayquipa MARCO TEÓRICO: ESTRUCTURAS REPETITIVAS La programación estructurada es un paradigma que consiste en la organización de un código en bloques conformados por estructuras del tipo: Secuencial (asignación, lectura, escritura) Decisión, selección o condicional (simple, doble, múltiple) Repetición (Mientras, Hacer-Mientras, Para) Estructuras de Repetición o bucle Permite que un conjunto de sentencias (bloque) de un programa puedan ser ejecutadas repetidamente según el resultado de una expresión lógica. Tipos de estructuras de repetición Repetición condicional o controlada por un centinela: MIENTRAS y HACER-MIENTRAS. Repetición controlada por un contador: PARA. Conceptos Básicos Contador Acumulador Centinela UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN Contador Variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o acción. Se debe realizar primeramente una operación de inicialización y posteriormente los correspondientes incrementos o decrementos. Inicialización: contador = valor inicial Incremento/decremento: Ejemplo: contador = contador + valor_constante contador = contador - valor_constante int i=0, j=1000; // inicialización i++; // incremento j--; // decremento i+=15; // incremento j-=10; // decremento Universidad Tecnológica de los Andes Fundamentos de Programación 1/5
Sintaxis: ESTRUCTURA MIENTRAS Pseudocódigo: inicialización Mientras condición hacer Instrucciones actualización C++ inicialización while (condición) Instrucciones actualización Las instrucciones (una o más) del cuerpo del lazo se ejecutan mientras la condición (expresión lógica) es cierta. Cuando la condición es falsa, termina la ejecución del lazo. Se pregunta al principio por la condición, por tanto el lazo se ejecuta cero (si la primera vez la condición es falsa) o más veces. Si la condición nunca se hace falsa, el programa entra en un "lazo infinito", es decir, las sentencias del cuerpo del lazo se ejecutarán indefinidamente. Hay que estar pendientes de INICIALIZAR las variables que intervienen en la condición antes de ejecutar el lazo por primera vez, ya que lo primero que hace la estructura es evaluar la condición. Hay que estar pendientes de ACTUALIZAR o modificar dentro del cuerpo del lazo los valores de las variables que intervienen en la condición, para garantizar que en algún momento ésta se haga falsa y el lazo pueda terminar su ejecución y así tratar que el lazo no sea infinito. EJERCICIOS RESUELTOS Ejemplo Nº 01: El factorial de un número es el producto de todos los números entre 1 y ese número. Por ejemplo, el factorial de 4 es 4x3x2x1 = 24. Haga un programa para calcular el factorial de un número n. Proceso FACTORIAL fact<-1 Escribir "Ingrese n" Leer n i<-2 Mientras i<=n Hacer fact<-fact*i i<-i+1 Escribir n,"!=",fact Universidad Tecnológica de los Andes Fundamentos de Programación 2/5
long fact=1, n; cout << "Entre n: "; cin >> n; int i=2; while (i<=n) fact=fact*i; // fact*=i; i++; // i=i+1; cout << n << "!=" << fact << endl; Ejemplo Nº 02: Implemente un programa que calcule los divisores de un número entero. Proceso DIVISORES Escribir "Ingrese un numero"; Leer numero; Escribir "Los divisores de ",numero," son:"; Escribir "-------------------------"; i<-1; Mientras i<=numero Hacer Si numero mod i = 0 Entonces Escribir i; FinSi i<-i+1; Universidad Tecnológica de los Andes Fundamentos de Programación 3/5
int numero,i; cout << "Ingrese un numero: "; cin >> numero; cout<<"los divisores de "<<numero<<" son:"<<endl; cout<<"-----------------------------------"<<endl; i=1; // desde 1 while (i<=numero) // hasta numero if (numero%i==0) // comprobara si i es divisor de numero i++; // i=i+1; cout<<i<<"\t"; // si es divisor entonces imprimirlo Ejemplo Nº 03: Implemente un programa que muestre por pantalla la tabla de multiplicar que el usuario quiera. Proceso TABLA_MULTIPLICAR Escribir "Ingrese un numero"; Leer numero; Escribir "TABLA DE MULTIPLICAR DEL ",numero; Escribir "---------------------------"; i<-1; Mientras i<=12 Hacer Escribir numero," x ",i," = ",numero*i; i<-i+1; Escribir "---------------------------"; Escribir "FIN DE TABLA"; Universidad Tecnológica de los Andes Fundamentos de Programación 4/5
int numero,i; cout << "Ingrese un numero: "; cin >> numero; cout<<"tabla DE MULTIPLICAR DEL "<<numero<<endl; cout<<"---------------------------"<<endl; i=1; // desde 1 while (i<=12) // hasta 12, las tablas de multiplicar son hasta el 12 cout<<numero<<" x "<<i<<" = "<<numero*i<<endl; //imprimir algo como 5 x 3 = 15 i++; // i=i+1; incrementar el contador cout<<"---------------------------"<<endl; cout<<"fin DE TABLA"; Universidad Tecnológica de los Andes Fundamentos de Programación 5/5