La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estructuras de repetición

Presentaciones similares


Presentación del tema: "Estructuras de repetición"— Transcripción de la presentación:

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; } 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
Operador Llamado Ejemplo Descripción ++ preincremento ++a Incrementa a en 1, luego utiliza el nuevo valor en la expresión en que reside a. posincremento a++ Toma el valor actual de a para la expresión en que reside a, luego incrementa a. -- predecremento --a Decrementa a en 1, luego utiliza el nuevo valor en la expresión en que reside a. posdecremento a-- Toma el valor actual de a para la expresión en que reside a, luego decrementa a.

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 externo lazo interno

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 = Escriba un programa para encontrar todos los números perfectos entre 1 y

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){ 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 = ; // 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( 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

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 = dfx = x = fx = dfx = x = fx = e-006 dfx = x = fx = e-012 dfx = x = raiz =


Descargar ppt "Estructuras de repetición"

Presentaciones similares


Anuncios Google