Repet Ici On

47
 Estructuras de repetición Computación

Transcript of Repet Ici On

Page 1: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 1/47

 

Estructuras de repetición

Computación

Page 2: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 2/47

 

Motivación

Suponga que se desea sumar una lista de 20 números y obtener elpromedio.

Sin estructuras de repetición habría que escribir 20 sentencias de

entrada o declarar 20 variables diferentes.Algo como:

int n,suma =0;

cout << “tecle n: “; 

cin >> n;

suma = suma + n;

… 

Repetir 20 veces

int n1,n2, … ,n20, suma = 0; cout << “tecle los 20 valores “; cin >> n1>>n2>>…>n20; 

suma = n1 + n2 + …+ n20; 

Para estos casos existen las repeticiones.

Page 3: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 3/47

 

Ciclo while

La sentencia while permite repetir unbloque de instrucciones.

La sintaxis del ciclo while es:

while(condición)

sentencia o bloque;

Si la condición se cumple se ejecutan lassentencias del bloque y se regresa el flujode control a evaluar nuevamente lacondición. El proceso se repite hasta que

la condición sea falsa.El ciclo puede ejecutarse 0 veces si lacondición no se cumple al entraren él.

condición sentencias

verdadero

falso

Page 4: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 4/47

 

Ejemplo

Cálculo de el promedio de 20 números.#include <iostream.h> 

int main(){

float suma = 0.0, num, promedio;

int contador = 0;

 while(contador < 20){

cout << "Teclee un número:";

cin >> num;

suma = suma + num;

contador = contador + 1;

}

 promedio = suma/20;

cout << "\nEl promedio es: " << promedio << endl;

system(“PAUSE”); 

}

Page 5: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 5/47

 

Ejemplo mejorado#include <iostream.h> 

int main(){

float suma = 0.0, num, promedio;

int contador = 0;

cout << "****************************************"<<endl;

cout << "* Calcula el promedio de 20 valores *"<<endl;

cout << "****************************************"<<endl;

 while(contador < 20){

cout << "Teclee el número "<<contador+1<<" de 20: ";

cin >> num;

suma = suma + num;

contador = contador + 1;

}

 promedio = suma/20;

cout << "****************************************"<<endl;

cout << "El promedio es: " << promedio << endl;

cout << "****************************************"<<endl;

system("PAUSE");

}

Page 6: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 6/47

 

Tarea

Escriba un programa que lea un número entero n y luego lea nnúmeros reales y calcule la suma de los números reales. Considere elcaso en que el número n es positivo.

Page 7: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 7/47

Ciclos controlados por centinela

Si no se conoce de antemano el número de datos, se utiliza un valor deentrada especial como una bandera o centinela para terminar laentrada de datos.

En el caso del promedio el centinela puede ser -1.

Algoritmo1. Solicitar un nuevo valor para promediar

2. Mientras valor diferente de -1 hacer

3. Acumular suma e incrementar contador

4. Solicitar nuevo valor para promediar

5. Fin ciclo

6 si contador > 0

7. Calcular promedio e imprimir 

Page 8: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 8/47

ciclo controlado por centinelaCálculo de el promedio de N (desconocido) números. Se utiliza un valorespecial 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();

}

 

Page 9: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 9/47

EjemploSe desea un programa para leer las calificaciones de un grupo dealumnos y calcular el promedio general, así como el número de alumnosaprobados y reprobados.

No conocemos el número de alumno, por tanto es adecuado el esquemadel centinela.

Primer esbozo de algoritmo 

Leer siguiente calificación Mientras calificación diferente de -1

acumular suma 

si calificación>= 6 

incrementar aprobados 

sino 

incrementar reprobados 

Incrementar total de alumnos 

Leer siguiente calificación 

Fin ciclo 

Calcular promedio 

Imprimir resultados 

 

Page 10: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 10/47

Variables:

contador – contador de calificaciones

aprobados – contador de aprobados

reprobados – contador de reprobados

cal – calificación

suma – suma de calidficacionesprom – promedio de calificaciones

Iniciación

int total = 0, aprobados = 0, reprobados = 0;

float cal, suma = 0, prom;

 

Page 11: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 11/47

Lectura de calificación

cout << “teclee calificacion (-1 para terminar):”; 

cin >> cal;

Ciclo de lectura

 while(cal != -1){

suma += cal;

if(cal >= 6)

aprobados++;

else

reprobados++;

total++;

cout << “teclee calificacion (-1 para terminar):”; 

cin >> cal;

}

 

Page 12: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 12/47

Cálculo del promedio:

 prom = suma/total;

Impresión de resultados:

cout << “Total de alumnos: “<<total<<endl; 

cout << “Promedio: “ << prom << endl; 

cout << “# de aprobados: “ << aprobados << endl; 

cout << “# de reprobados: “ << reprobados << endl; 

 

Page 13: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 13/47

ejemplo

Se desea un programa que funcione como una calculadora.

El programa aceptará expresiones de la forma:

numero op numero

Donde op puede ser: +, -, *, / y ^ (potencia)Ejem.: 5.7+4.2, 6.7/2.5,

El programa terminará cuando se teclee la secuencia 0x0, donde x escualquier carácter.

El programa puede hacerse con un esquema de ciclo con centinela.

 

Page 14: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 14/47

Algoritmo1. Iniciar programa

2. Leer siguiente expresión

3. Mientras expresión diferente de “0*0” hacer  

4. Calcular e imprimir resultado

5. Leer siguiente expresión

6. Fin cicloEl paso 4 sería

4. en caso de que op sea

4.1. „+‟ sumar los dos números 

4.2. „-‟ restar los dos números 

4.3. „+‟ multiplicar los dos números 

4.4. „/‟ dividir los dos números 

4.5. „^‟ potencia de los dos números  

Page 15: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 15/47

Programa

#include <iostream.h> 

#include <math.h>  main(){

float x,y,r;//datos de entrada y resultado

char op;//operador

cout <<">";//indicador

cin >> x>> op >> y;//lectura de datos

 while (!(x==0&&y==0)){switch(op){

case '+':r = x+y;break;

case '-':r = x-y;break;

case '*':r = x*y;break;

case '/':r = x/y;break;

case '^':r = pow(x,y);break;

default:r=0;}

cout << r << endl;

cout <<">";

cin >> x>> op >> y;

}

}

 

Page 16: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 16/47

Tarea casera

Escriba programa con un ciclo controlado por centinela para leer unaserie de números hasta que el usuario teclee el número 9999. Dentrodel ciclo cuente los múltiplos de 2, de 3 y de 5. Imprima cuantosmúltiplos se teclearon en cada caso.

Ejemplo:

Teclee un número: 6

Teclee un número: 9

Teclee un número: 15

Teclee un número: 20Teclee un número: 8

Teclee un número: 9999

Múltiplos de 2: 3

Múltiplos de 3: 3Múltiplos de 5: 2

 

Page 17: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 17/47

Ciclos anidados

Muchos algoritmos se definen mediante ciclos dentro de otros ciclos.

Es posible incluir dentro de un ciclo cualquier estructura de controlincluyendo otro ciclo.

 

Page 18: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 18/47

Ejemplo

Programa para imprimir un rectángulo de asteriscos („*‟) leyendo eltamaño del lado y la altura con un máximo de 20.

Ejemplo:

Si se teclea 10 8, imprimirá

**********

**********

**********

**********

**********

********************

**********

 

Page 19: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 19/47

Este problema puede resolverse fácilmente haciendo un ciclodentro de otro. El algoritmo es

1. Leer el valor de n y m

2. Si n > 1 y n < 20 y m>1 y m<20

3. r = 0

4 Mientras r < m hacer

5. c = 06. Mientras c<n hacer

7. Imprimir “*” 

8. Incrmentar c

9. Fin ciclo

10. Cambiar de línea

11. Incrementar r

12 Fin ciclo 

Page 20: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 20/47

#include <iostream.h> 

#include <iomanip.h> 

 main(){

int n,m,c,r;

cout << "ancho del rectangulo (maximo 20):";cin >> n;

cout << "alto del rectangulo (maximo 20):";

cin >> m;

if(n>1 && n<20&&m>1&&m<20){

r=0;

 while(r<m){c = 0;

 while(c<n){

cout << '*';

c++;

}

cout << endl;r++;

}

}

cout<<endl;

system("PAUSE");

}

 

Page 21: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 21/47

Tarea casera

Escriba un programa para dibujar un patrón de tablero de ajedrez detamaño 2 a 20 como se muestra:

* * * *

* * * *

* * * ** * * *

Utilice ciclos anidados y sentencias de salida que impriman unasterisco y espacio en blanco.

Ayuda: note que las lí

neas impares comienzan con asterisco y laspares con espacio.

 

Page 22: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 22/47

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

 

Page 23: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 23/47

Ejemplos

a = a + 3; a += 3

c = 2*c; c *= 2;

x = x – z; x –= z;

s = s*b – s*c; s *= b – c;

d = d/(f + 5); d /= f + 5;

r = r % 5; r %= 5;

 

Page 24: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 24/47

Operadores de Incremento ydecremento

Operador Llamado Ejemplo Descripción

++ preincremento ++a Incrementa a en 1, luego

utiliza el nuevo valor en laexpresión en que reside a.

++ posincremento a++ Toma el valor actual de a parala expresión en que reside a,luego incrementa a.

-- predecremento --a Decrementa a en 1, luego

utiliza el nuevo valor en laexpresión en que reside a.

-- posdecremento a-- Toma el valor actual de a parala expresión en que reside a,luego decrementa a.

 

Page 25: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 25/47

Números primosUn número primo es aquel que solo es divisible entre si mismo y entre1. Por ejemplo: 1, 2, 5, 47.

Para saber si un número es primo debemos obtener el residuo de ladivisión del número entre todos los números desde 2 hasta su raízcuadrada. Si el residuo es diferente de cero, el número es primo.

Algoritmo

1. Leer el numero 8. div++

2. div = 2; 9. finlazo

3. esPrimo = 1 10. si esPrimo

4. limite = raiz de numero 11 imprime “primo” 

5. mientras div<limite o esPrimo 12 sino

6. si numero%div == 0 13 imprime “NO primo” 

7. esPrimo = 0 

Page 26: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 26/47

Determinación de número primo

int main(){int div = 2, num, esPrimo = 1, limite;

cout << "Teclee un número > 2: ";

cin >> num;

limite = (int)sqrt(num);

 while(div <= limite && esPrimo){if(num % div == 0) //es divisible entre n

esPrimo = 0;

div++;

}

if(esPrimo)

cout << "\nEl número " << num << " es primo\n";

else

cout << "\nEl número " << num << " NO es primo\n";

getch();

return 0;

}

 

Page 27: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 27/47

Tarea¿Cuál es la salida de los siguientes ciclos?

i = 0;

while(i < 10)

cout << 2*i << setw(10)<< 3*i*i;

i += 3;

}

i = 5;

while(i > -20)

cout << 2*i << setw(10)<< 2*i+1;

i -= 3;

}

 

Page 28: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 28/47

Tarea casera

Escriba un programa para encontrar todos los divisores de un número.

Ejemplo:

Teclee un número: 246

Los divisores de 246 son: 2, 3, 6, 41, 82, 123

 

Page 29: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 29/47

Ciclo forLa sentencia for permite definir fácilmente ciclos controlados porcontador.

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 

Page 30: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 30/47

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)

 

Page 31: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 31/47

Cálculo de interés

El interés que otorgan los bancos por invertir un capital puedecalcularse con la siguiente fórmula

I = C (1 + r)n

Donde C es el capital, r es la tasa de interés y n es el número de

periodos

Ejemplo:

Si C = 20,000, r = 7% y n = 3,

I = 20000(1 + 0.07)3 = 24,500.86

 

Page 32: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 32/47

#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;

}

Cálculo de interés compuesto

precisión

ancho del

campo

punto fijo

 

Page 33: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 33/47

Salida del programa

Anio Monto del depósito

1 1050.00

2 1102.50

3 1157.634 1215.51

5 1276.28

6 1340.10

7 1407.10

8 1477.46

9 1551.33

10 1628.89

 

Page 34: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 34/47

Grafica de función seno

Podemos hacer una gráfica muy rudimentaria de una función en lapantalla de consola.

El método consiste en dibujar espacios hasta el valor de la función yluego dibujar un carácter.

Algoritmo

1. Para i = 0 hasta N

2. Para j = 0 hasta 40+valor función hacer

3. Escribir „ ‟ 

4. Escribir „*‟ y un fin de línea 

5. fin

 

Page 35: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 35/47

Programa senoFor.cpp

#include <iostream.h> 

#include <math.h> 

 main(){

int i,j;

float x;

for(i=0;i<50;i++){for(j=0;j<40+20*exp(-i/20)*sin(i*3.1416/10);j++)

cout <<' ';

cout << '*'<<endl;

}

cout << endl;system("pause");

}

 

Page 36: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 36/47

Tarea

Escriba un programa que despliegue las primeras 20 potencias de 2 y de3 usando un ciclo for. Establezca el formato de números en punto fijo con0 decimales y ajuste el ancho de los campos.

n 2^n 3^n

1 2 3

2 4 9

3 8 27

4 16 81

20 1048576 3486784401

 

Page 37: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 37/47

Tarea casera

Escriba un programa que despliegue la siguiente tabla de multiplicar.Asegúrese que las columnas estén bien alineadas.

1 2 3 4 5 6 7 8 9 10

2 4 6 8 10 12 14 16 18 20

3 6 9 12 15 18 21 24 27 30

...

10 20 30 40 50 60 70 80 90 100

 

Page 38: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 38/47

Ciclo do - while

El ciclo do-while es similar al ciclo while excepto que la prueba serealiza al final del ciclo, esto fuerza a que se ejecute por lo menos unavez.

condición

sentencias

verdadero

falso

Sintaxis

do{

sentencias;

}while(condición);

 

Page 39: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 39/47

Lectura con validación

El ciclo do-while puede usarse para validar la entrada de datos.

Algoritmo de validación:

1. Hacer2. Leer datos

3. Mientras datos inválidos

 

Page 40: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 40/47

Ejemplo de validación

#include <iostream.h> 

 main(){

int a,b;

do{

cout << "Teclee un número positivo para A: ";cin >> a;

}while(a<=0);

do{

cout << "Teclee un número positivo para B: ";

cin >> b;}while(b<=0);

cout <<"a * b = " << a*b << endl;

system("pause");

}

 

Page 41: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 41/47

Validación de una fechaPara validar una fecha debemos asegurar que los días caigan en elrango de 1 a 31 y los meses de 1 a 12.

Una mejora consiste en verificar los días de acuerdo al mes.

Para febrero en año bisiesto el máximo de días es 29.

Para verificar año bisiesto usamos

anyoBisiesto = (a%4==0)&&(a%100!=0);Para los meses de 30 y 31 días:

 mes30dias = (m==4 || m==6 || m==9 || m==11);

 mes31dias = (m==1 || m==3 || m==5 || m==7 ||

 m==8 || m==10 || m==12);

Expresión para checar fecha:

fechaValida = (d<=31 && mes31dias)|| (d<=30 &&

 mes30dias)||(d<=28 && m==2)||(d<=29&& anyoBisiesto);

 

Page 42: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 42/47

Programa#include <iostream.h> 

 main(){

int d,m,a;//día, mes, año

int anyoBisiesto,mes30dias,mes31dias,fechaValida;

do{

cout << "Teclee una fecha (dd mm aa): ";cin >> d >> m >> a;

anyoBisiesto = (a%4==0)&&(a%100!=0);

 mes30dias = (m==4 || m==6 || m==9 || m==11);

 mes31dias = (m==1 || m==3 || m==5 || m==7

|| m==8 || m==10 || m==12);fechaValida = (d<=31 && mes31dias)|| (d<=30 &&

 mes30dias)||(d<=28 && m==2)||(d<=29 &&

anyoBisiesto);

}while(!fechaValida);

 

Page 43: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 43/47

cout << d << " de ";

switch(m){

case 1:cout << "enero";break;

case 2:cout << "febrero";break;case 3:cout << "marzo";break;

case 4:cout << "abril";break;

case 5:cout << "mayo";break;

case 6:cout << "junio";break;

case 7:cout << "julio";break;case 8:cout << "agosto";break;

case 9:cout << "septiembre";break;

case 10:cout << "octubre";break;

case 11:cout << "noviembre";break;

case 12:cout << "diciembre";break;}

cout << " de " << a << endl;

system("pause");

}

 

Page 44: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 44/47

tarea

Escriba un programa que lea tres números enteros positivos, eltercero de los cuales deberá ser mayor que los otros dos y menor oigual a la suma de los dos primeros.

 

ciclo do-while controlado por

Page 45: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 45/47

ciclo do while controlado porcentinela

Cálculo de el promedio de N números. Se utiliza un valor especial para detenerla 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();

}

 

Page 46: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 46/47

Determinar los primos de 1 a 100int 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;

}

   l  a  z  o 

   i  n   t  e  r  n  o 

   l  a  z  o 

  e  x   t  e  r  n  o

 

 

Page 47: Repet Ici On

5/16/2018 Repet Ici On - slidepdf.com

http://slidepdf.com/reader/full/repet-ici-on 47/47

Tarea casera

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 unprograma para encontrar todos los números perfectos entre 1y 10000.