1 / 20

Estructuras de repetición

Estructuras de repetición. Curso Propedéutico Maestría en Ingeniería Electrónica. Ciclo while. La sentencia while permite repetir un bloque de instrucciones. La sintaxis del ciclo while es: while(condición) sentencia o bloque;

keita
Download Presentation

Estructuras de repetición

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Estructuras de repetición Curso Propedéutico Maestría en Ingeniería Electrónica

  2. Ciclo while La sentencia while permite repetir un bloque de instrucciones. La sintaxis del ciclo while es: while(condición) sentencia o bloque; Si la condición se cumple se ejecutan las sentencias del bloque y se regresa el flujo de control a evaluar nuevamente la condición. El proceso se repite hasta que la condición sea falsa. El ciclo puede ejecutarse 0 veces si la condición no se cumple al entraren él. verdadero condición sentencias falso

  3. Ejemplo Cálculo de el promedio de 10 números. #include <iostream.h> #include <conio.h> int main(){ float suma = 0.0, num, promedio; int contador = 0; while(contador < 10){ cout << "Teclee un número:"; cin >> num; suma = suma + num; contador = contador + 1; } promedio = suma/contador; cout << "\nEl promedio es: " << promedio << endl; getch(); }

  4. ciclo controlado por centinela Cálculo de el promedio de N números. Se utiliza un valor especial para detener la entrada de datos. int main(){ float suma = 0.0, num, promedio; int contador = 0; cout << "Teclee un número (-1 = fin):"; cin >> num; while(num != -1){ suma = suma + num; contador = contador + 1; cout << "Teclee un número (-1 = fin):"; cin >> num; } if(contador>0){ promedio = suma/contador; cout << "\nEl promedio es: " << promedio << endl; } else cout << "\nNo se teclearosn valores" << endl; getch(); }

  5. Operadores de asignación En C existen operadores para abreviar las operaciones de asignación. Por ejemplo: c = c + 3 puede escribirse como c += 3. En general variable = variable operador expresión es equivalente a variable operador= expresión Ojo a *= c + d equivale a a = a*(c + d) no a = a*c + d

  6. Incremento y decremento

  7. Determinación de número primo int main(){ int n = 2, num, esPrimo = 1, limite; cout << "Teclee un número > 2: "; cin >> num; limite = (int)sqrt(num); while(n <= limite && esPrimo){ if(num % n == 0) //es divisible entre n esPrimo = 0; n++; } if(esPrimo) cout << "\nEl número " << num << " es primo\n"; else cout << "\nEl número " << num << " NO es primo\n"; getch(); return 0; }

  8. Determinar los primos de 1 a 100 int main(){ int n, num = 2, esPrimo, limite; while(num<=100){ esPrimo = 1; n = 2; limite = (int)sqrt(num); while(n <= limite && esPrimo){ if(num % n == 0) //es divisible entre n esPrimo = 0; n++; } if(esPrimo) cout << num << " "; num++; } getch(); return 0; } lazo interno lazo externo

  9. Tarea #5 Escriba un programa para encontrar todos los divisores de un número. Un número es perfecto si es igual a la suma de sus divisores, por ejemplo 6 es perfecto porque 6 = 1 + 2 + 3. Escriba un programa para encontrar todos los números perfectos entre 1 y 10000.

  10. Ciclo for La sentencia for permite definir fácilmente ciclos controlados por contador. El formato general de la estructura for es: for(expresion1; expresion2; expresion3) instrucción; Esta es equivalente a la siguiente sentencia while: expresion1; while(expresion2){ instrucción; expresion3; } expresion1 = sentencia de iniciación expresion2 = condición de terminación expresion3 = sentencia de incremento

  11. ejemplos de lazos for a) modifica la variable de control de 1 a 100 en incrementos de 1. for(i = 1; i <= 100; i++) b) modifica la variable de control de 100 a 1 en decrementos de 1. for(i = 100; i >= 1; i--) c) modifica la variable de control de 7 a 77 en incrementos de 7. for(i = 7; i <= 77; i += 7) d) modifica la variable de control de 20 a 2 en decrementos de -2. for(i = 20; i >= 2; i -= 2) e) modifica la variable de control de 2 a 20 en incrementos de 3. for(i = 2; i <= 20; i += 3) f) modifica la variable de control de 99 a 0 en decrementos de -11. for(i = 99; i >= 0; i -= 11)

  12. Cálculo de interés compuesto #include <iostream> #include <iomanip> #include <cmath> // permite al programa utilizar la función pow int main() { double monto; // monto del depósito double principal = 1000.0; // monto principal (al inicio) double tasa = .05; // tasa de interés cout << "Anio" << setw( 21 ) << "Monto del depósito" << endl; cout << fixed << setprecision( 2 ); for ( int anio = 1; anio <= 10; anio++ ) { monto = principal * pow( 1.0 + tasa, anio ); cout << setw( 4 ) << anio << setw( 21 ) << monto << endl; } return 0; } punto fijo precisión ancho del campo

  13. Salida del programa Anio Monto del depósito 1 1050.00 2 1102.50 3 1157.63 4 1215.51 5 1276.28 6 1340.10 7 1407.10 8 1477.46 9 1551.33 10 1628.89

  14. Suma de series Es común el tener que sumar series de valores. Por ejemplo: La serie anterior es igual a p. El siguiente trozo de código evalúa 1000 términos la serie anterior. serie = 4; signo = -1; for(int i = 3; i <=1000 ; i +=2){ serie += signo*4/i; signo = -signo; }

  15. Serie de potencias Evaluemos la serie de potencias del seno de un ángulo Se requiere una variable para almacenar la potencia de x, otra para el factorial y otra para el signo. seno = x; signo = -1; fact = 1; pot = x; for(int i = 3; i <=50 ; i +=2){ fact *= (i-1)*i; pot *= x*x; serie += signo*pot/fact; signo = -signo; }

  16. Tarea #6 Escriba un programa que lea un ángulo en grados y calcule el coseno del ángulo utilizando la serie de potencias

  17. Ciclo do - while El ciclo do-while es similar al ciclo while excepto que la prueba se realiza al final del ciclo, esto fuerza a que se ejecute por lo menos una vez. Sintaxis do{ sentencias; }while(condición); sentencias condición verdadero falso

  18. ciclo do-while controlado por centinela Cálculo de el promedio de N números. Se utiliza un valor especial para detener la entrada de datos. int main(){ float suma = 0.0, num, promedio; int contador = 0; do{ cout << "Teclee un número (-1 = fin):"; cin >> num; if(num != -1){ suma = suma + num; contador = contador + 1; } }while(num != -1); if(contador>0){ promedio = suma/contador; cout << "\nEl promedio es: " << promedio << endl; } else cout << "\nNo se teclearosn valores" << endl; getch(); }

  19. Método de newton Se desea calcularla raíz de la ecuación sen(x) – e-x = 0 por el método de Newton. #include <iostream.h> #include <conio.h> #include <math.h> int main() { double x, xOld, fx, dfx; x = 0.5; do{ xOld = x; fx = sin(x)-exp(-x); dfx = cos(x)+exp(-x); x = xOld - fx/dfx; cout << "fx = " << fx << " dfx = " << dfx << " x = " << x << endl; }while(fabs(fx)>1e-6); cout << "raiz = " << x << endl; getch(); return 0; }

  20. Resultado del método de Newton fx = -1 dfx = 2 x = 0.5 fx = -0.127105 dfx = 1.48411 x = 0.585644 fx = -0.00401128 dfx = 1.3901 x = 0.588529 fx = -4.62025e-006 dfx = 1.3869 x = 0.588533 fx = -6.16098e-012 dfx = 1.3869 x = 0.588533 raiz = 0.588533

More Related