La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estructuras de Repetición (Repita para)

Presentaciones similares


Presentación del tema: "Estructuras de Repetición (Repita para)"— Transcripción de la presentación:

1 Estructuras de Repetición (Repita para)
Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

2 Estructura de Repetición “Repita para”
Diagrama de flujo Calcular valor inicial y valor final Asignar el valor inicial al contador cierto contador > valor final falso Incrementar contador acciones

3 Estructura de Repetición “Repita para”
Pseudocódigo en español Repita para (expr1; expr 2; expr3) S1 …. Sn fin_rp Código en C++ for (expr1; expr 2; expr3) { S1 …. Sn }

4 Estructura de Repetición “Repita para”
Se le conoce como “estructura controlada por un contador” y se utiliza cuando se conoce con anterioridad a que empiece a ejecutarse el lazo, el número de veces que éste se va a repetir. El Repita para requiere: Nombre del contador del lazo. El valor inicial del contador del lazo (expr1). El incremento o decremento con el cual, cada vez que se termine una repetición, el contador del lazo será modificado (expr3). La condición que compruebe la existencia del valor final del contador del lazo (expr2).

5 Estructura de Repetición “Repita para”
Repita para (expr1; expr 2; expr3) expr1: Inicializar el contador. Es evaluada una sola vez, cuando se ejecuta por primera vez el lazo. Normalmente es una sentencia de asignación. expr2: Condición de terminación del lazo. Es evaluada cada vez que se ejecuta el repita para. expr3: Modificación del contador. Se evalúa al final del lazo e inmediatamente se ejecuta el repita para. Nota: Cada una de las tres expresiones es opcional.

6 Estructura de Repetición “Repita para”
Repita para (conta = 1; conta <=10; conta = conta + 1) Nombre de la variable de control Valor final de la variable de control Valor inicial de la variable de control Incremento de la variable de control

7 Estructura de Repetición “Repita para”
Ejemplos Pseudocódigo en español Código en C++ Repita para (I=1; I < 10; I=I+1) for (I=1; I <= 10; I++) Escribir (I) cout << I << endl; fin_rp // I es la variable de control Repita para (I=0; I < n-1; I=I+1) for (I=0; I < n-1; I++) Escribir (“Numero ???”) { // I es la variable de control Leer (numero) cout << “numero???” << endl; fin_rp cin >> numero; } NOTA: Cuando hay mas de una sentencia asociada al for se escribe { }

8 Estructura de Repetición “Repita para”
Ejemplos for ( ; ; ) // Lazo infinito for ( i = 0; i < 1000; i++ ) // Variar el contador (i) de 0 a // 999 en incrementos de 1 for (conta = 1; conta <= 10; conta ++) // Variar el contador // (conta) de 1 a 10 // en incrementos de 1 for (i = 100; i >= 1; i--) // Variar el contador (i) de 100 a // en decrementos de 1

9 Estructura de Repetición “Repita para”
Ejemplos for (I = 7; I <= 77; I +=7) // Variar el contador (I) de 7 a // 77 en incrementos de 7 for (I = 20; I >= 2; I -=2) // Variar el contador (I) de 20 a // en decrementos de –2 for (j = 2; j <= 20; j +=3) // Variar el contador (j) a lo largo // de la siguiente secuencia de // valores: 2, 5, 8, 11, 14, 17, 20 for (j = 99; j >= 0; j -=11) // Variar el contador (j) a // lo largo de la siguiente // secuencia de valores: 99, 88, // 77, 66, 55, 44, 33, 22, 11, 0

10 Estructura de Repetición “Repita para”: Ejemplo 1
Calcular el seno para los valores de 0.0 < x < 1.6 con incrementos de 0.1. #include <iostream.h> #include <math.h> void main () { int i; float x; for (i = 0; i <= 16; i++) x = 0.1 * i; cout << x << " " << sin(x) << endl; }

11 Estructura de Repetición “Repita para”: Ejemplo 2
Sumar todos los enteros pares desde 2 hasta 100 Análisis E-P-S Entradas: No hay. Proceso: Para cada número par entre el 2 y el 100 Acumular su valor en el acumulador de pares (AP). Salidas: suma de los enteros pares (AP  Z+)

12 Estructura de Repetición “Repita para”: Ejemplo 2
Algoritmo 0. Inicio 1. AP = 0 2. Repita para (num = 2; num <= 100; num = num + 2) AP =AP + num fin_RP 3. Escribir (“Suma de enteros pares = ”, AP) 4. Fin

13 Estructura de Repetición “Repita para”: Ejemplo 2
Codificación #include <iostream.h> void main() { unsigned int AP = 0, num; for (num = 2; num <= 100; num += 2) AP += num; cout << “Suma de numeros pares”<< AP << endl; }

14 Estructura de Repetición “Repita para”: Ejemplo 3
Dadas las notas de n estudiantes de las materias de PD-I, Probabilidades y Cálculo 40. Calcular la media de cada estudiante. Análisis E-P-S Entradas: Número de estudiantes (n  Z+), nota de las tres materias para cada estudiante (nota1  Z+, nota2  Z+, nota3  Z+). Proceso: Para cada estudiante hacer: Calcular media = nota1 + nota2 + nota 3 3 Salidas: La media para cada estudiante (media  R)

15 Estructura de Repetición “Repita para”: Ejemplo 3
Algoritmo 0. Inicio 1. Escribir (“Introduzca el numero de estudiantes”) 2. Leer (n) 3. Repita para (k = 1; k < n; k = k + 1) Escribir (“Para el estudiante”, k) Escribir (“Introduzca la nota de PD-I”) Leer (nota1) Escribir (“Introduzca la nota de Probabilidades”) Leer (nota2) Escribir (“Introduzca la nota de Calculo 40”) Leer (nota3) media = (nota1 + nota2 + nota3)/3 Escribir (“Media del estudiante”, k, “= ”, media) fin_RP 4. Fin

16 Estructura de Repetición “Repita para”: Ejemplo 3
Codificación // Calcula el promedio de 3 notas para n estudiantes #include <iostream.h> void main () { unsigned integer n, k, nota1, nota2, nota3; float media; cout << “Introduzca el numero de estudiantes” << endl; cin >> n;

17 Estructura de Repetición “Repita para”: Ejemplo 3
for (k = 1; k <= n; k++) { cout << “Para el estudiante” << k << endl; cout << “Introduzca la nota de PD-I” << endl; cin >> nota1; cout << “Introduzca la nota de Probabilidades” << endl; cin >> nota2; cout “Introduzca la nota de Calculo 40” << endl; cin >> nota3; media = ((float)nota1 + (float)nota2 + (float)nota3)/3.0 cout << “Media del estudiante” << k << “= ” << media << endl; }

18 Estructura de Repetición “Repita para”: Ejemplo 4
Calcular independientemente la suma de los números pares e impares comprendidos entre 1 y n. Análisis E-P-S Entradas: Valor de n  Z+. Proceso: Para todos los números comprendidos entre 1 y n: Si número es par numPar = numPar + numero Si número es impar numImpar = numImpar + numero Salidas: Suma de los números pares (numPar  Z+) y suma de los números impares (numImpar  Z+).

19 Estructura de Repetición “Repita para”: Ejemplo 4
Algoritmo 0. Inicio 1. Repita Escribir (“Introduzca el valor de n”) Leer (n) mientras (n < 1) 2. numero = 0 3. numPar = 0 4. numImpar = 0

20 Estructura de Repetición “Repita para”: Ejemplo 4
5. Repita para (j = 1; j < n; j = j + 1) numero = numero + 1 Si (numero mod 2 = 0) entonces numPar = numPar + numero sino numImpar = numImpar + numero fin_si fin_RP 6. Escribir (“Suma de numeros pares”, numPar) 7. Escribir (“Suma de numeros impares”, numImpar) 8. Fin

21 Estructura de Repetición “Repita para”: Ejemplo 4
Codificación #include <iostream.h> void main () { unsigned int n, j, numero = 0, numPar = 0, numImpar = 0; do // validación del valor dado a n cout << “Introduzca un valor entero mayor que cero” << endl; cin >> n; } while (n < 1);

22 Estructura de Repetición “Repita para”: Ejemplo 4
for (j = 1; j <= n; j++) { // Calculo de la suma de los numeros pares e impares numero ++; if (numero % 2 ==0) numPar += numero; else numImpar += numero; } cout << “Suma de numeros pares” << numPar << endl; cout << “Suma de numeros impares” << numImpar << endl;

23 Estructura de Repetición “Repita para”: Ejemplo 5
Dado un número entero n, calcular su factorial (n!). Análisis E-P-S Entradas: Valor de n  N. Proceso: Calcular factorial = n x (n-1) x (n-2) x …. x 3 x 2 x 1 Salidas: Valor del n! (factorial  N)

24 Estructura de Repetición “Repita para”: Ejemplo 5
Algoritmo 0. Inicio 1. Hacer Escribir (“Introduzca un numero >= 0”) Leer (n) mientras (n < 0) 2. Factorial = 1 3. Repita para (I = 1, I <=n, I = I + 1) Factorial = Factorial * I fin_RP 4. Escribir (“n! = “, Factorial) 5. Fin

25 Estructura de Repetición “Repita para”: Ejemplo 5
Codificación #include <iostream.h> void main () { int n, Factorial = 1, I; do { cout << “Introduzca un numero entero >= 0” << endl cin >> n; } while (n < 0); for (I = 1; I <=n; I++) Factorial *= I; cout << “n! = “ << Factorial << endl; }

26 Ejercicios El siguiente programa lee una lista de números enteros, y calcula su suma. El tamaño de la lista de números se lee antes de comenzar a leer los números. #include <iostream.h> void main () { int suma, contador, n, numero; suma = 0; contador = 0; cout << “Introduzca el número de elementos: ” << endl; cin >> n;

27 Ejercicios while (contador < n) {
cout << “Introduzca elemento: ” << endl; cin >> numero; suma += numero; contador++; } cout << “La suma es: “ << suma << endl; Supóngase que el tamaño de la lista es desconocido de antemano, pero que se sabe que todos los números de ella son positivos. Modifique el programa para que se siga comportando de la misma forma. Modifique el programa nuevamente, pero sustituyendo la estructura while por la estructura for.

28 Ejercicios Para cada uno de los siguientes problemas realizar el análisis E-P-S, algoritmo y codificación. Calcular la conversión de grados Celsius a grados Fahrenheit comenzando desde 5º C y decrementando hasta -5º C . Dadas las notas de n estudiantes correspondientes al segundo examen de PD-I en el rango de 0 a 20. Calcular el número de estudiantes sobresalientes (16-20), el número de estudiantes satisfactorios (10-15) y el número de estudiantes no satisfactorios (0-9).

29 Ejercicios Calcular e imprimir la suma de los cuadrados de los 100 primeros números naturales. Dado el valor de n > 1. Calcular la suma de la serie … + 1 n n

30 Ejercicios Una persona invierte una cierta cantidad de bolívares en una cuenta de ahorros que produce intereses del 5% (tasa de interés). Suponiendo que todos los intereses quedan en depósito, calcular el imprimir la cantidad de dinero que habrá en la cuenta al final de cada año durante 10 años. Utilice la siguiente fórmula para determinar dichas cantidades. a = p(1 + r)n donde p = cantidad original de bolívares invertida r = tasa de interés anual n = número de años a = cantidad en depósito al final del n-ésimo año

31 Ejercicios Modifique el programa del ejercicio anterior de modo que repita sus pasos para tasas de interés del 6%, 7%, 8%, 9% y 10%. Calcular la suma de los 10 primeros términos de la serie:  ___1____ j = j + 1 Dada una lista de n números, determinar cual es el mayor.

32 Ejercicios Dado un entero positivo N, calcular:
La suma de los primeros N enteros no negativos pares. La suma de los primeros N enteros no negativos impares. El producto de los primeros N enteros positivos pares. El producto de los primeros N enteros positivos impares. La suma de los cuadrados de los primeros N enteros positivos. Una compañía paga a sus empleados Bs. por semana mas una comisión por sus ventas en esa semana, la cual viene especificada en la siguiente tabla:

33 Ejercicios Ventas Comisión Ventas =5.000 Bs. No hay comisión
5.000 Bs. < ventas < % de las ventas Ventas > Bs %8 de las ventas Suponga que la prima por Seguro de Salud se descuenta del sueldo de un empleado, de acuerdo a las siguientes normas:

34 Ejercicios Características Prima Soltero. 1.000 Bs.
Casado sin hijos Bs. Casado con hijos Bs. Suponga que el estado civil del empleado viene dado como dato de entrada de la siguiente manera: 1 si es soltero 2 si es casado

35 Ejercicios Suponga que la información si el empleado tiene o no hijos viene dada como dato de entrada de la siguiente manera: - 0 si no tiene hijos - 1 si tiene hijos Dados los datos de n empleados, donde para cada empleado se tiene: monto de sus ventas en una semana, estado civil y si tiene o no hijos, escribir un programa utilizando funciones que lea los datos de cada empleado, determine y escriba: a)La comisión del empleado de acuerdo al monto de sus ventas en una semana. b)El sueldo neto semanal del empleado. c)La prima por Seguro de Salud que se descuenta del sueldo del empleado. d)El sueldo final que recibirá el empleado. e)Las ventas totales semanal de la compañía.

36 Estructuras de Repetición Anidadas
Estructuras de repetición unas dentro de otras. Reglas de anidamiento La(s) estructura(s) interna(s) debe(n) estar completamente contenida(s) en la estructura externa. No deben existir solapamientos.

37 Estructuras de Repetición Anidadas
Ejemplos (a) (b) (c) (d) (e)

38 Estructuras de Repetición Anidadas: Ejemplo 1
Un triángulo rectángulo puede tener lados que sean enteros. El conjunto de tres valores enteros para los lados de un triángulo rectángulo es una tripleta pitagórica. Estos tres lados deben satisfacer la relación de que la suma de los cuadrados de dos de los lados (cateto1, cateto2) es igual al cuadrado de la hipotenusa. Encontrar todas las tripletas pitagóricas tal que cateto1 < 500, cateto2 < 500 e hipotenusa < 500.

39 Estructuras de Repetición Anidadas: Ejemplo 1
Algoritmo 0. Inicio 1. Repita para (i = 1, i < 500, i = i + 1) Repita para (j = 1, j < 500, j = j + 1) Repita para (k = 1, k < 500, k = k + 1) Si (i2 + j2 = k2) entonces Escribir (“Tripla pitagórica”, “(“, i, “,”, j, “,”, k, “)”) fin_si fin_RP 2. Fin

40 Estructuras de Repetición Anidadas: Ejemplo 1
Codificación #include <iostream.h> void main () { int i, j, k; for (i = 1; i <= 500; i++) for (j = 1; j <= 500; j = j++) for (k = 1; k <= 500; k++) if (i*i + j*j = k*k) cout << “Tripla pitagórica” << “(“ << i << “,” << j << “,” << k << “)” << endl; }

41 Estructuras de Repetición Anidadas: Ejemplo 2
Se conoce la población de cada una de las cinco ciudades mas importantes de veintiocho países y se desea identificar e imprimir la población de la ciudad mas grande (en número de habitantes) de cada país. REALIZAR EL ANALISIS E-P-S !!!!!

42 Estructuras de Repetición Anidadas: Ejemplo 2
Algoritmo 0. Inicio 1. j = 1 2. Repita mientras (j < 28) mayor = 0 Repita para (k = 1, k < 5, k = k + 1) Escribir (“Introduzca población de ciudad”, k) Leer (pob_ciudad) Si (pob_ciudad > mayor) mayor = pob_ciudad fin_si fin_RP Escribir (“Poblacion mayor del pais”, j, “=“, mayor) j = j + 1 fin_RM 3. Fin

43 Estructuras de Repetición Anidadas: Ejemplo 2
Codificación #include <iostream.h> void main () { int j = 1, mayor, k; while (j < 28) { mayor = 0; for (k = 1; k <= 5; k++) cout << “Introduzca población de ciudad” << k << endl; cin >> pob_ciudad; if (pob_ciudad > mayor) mayor = pob_ciudad; } cout <<“Poblacion mayor del pais” << j << “=“ << mayor << endl; j++; }

44 Ejercicios Calcular el factorial de cada uno de una lista de m números dados. Calcular el máximo común divisor de n pares de números (x1, y1), (x2, y2), …, (xn, yn) mediante el algoritmo de Euclides: Sean los números A y B. El método para hallar el máximo común divisor (mcd) de dos números A y B por el método de Euclides es: Dividir el número mayor por el menor. Si el residuo de la división es 0, el número menor es el mcd. Si la división no es exacta, se divide el número menor por el residuo de la división anterior. Se siguen los pasos anteriores hasta obtener un resto cero. El último divisor es el mcd buscado.


Descargar ppt "Estructuras de Repetición (Repita para)"

Presentaciones similares


Anuncios Google