Sei sulla pagina 1di 21

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Analizar el problema, diseñar un algoritmo y codificar en C++ para:

Ejercicio 1

A. ANALISIS DEL PROBLEMA

Definición del problema

Escriba todos los números pares comprendidos entre 1 y 50.

Especificaciones de entrada

Variables

entre 1 y 50. Especificaciones de entrada Variables Especificaciones de salida   Números Pares entre 1

Especificaciones de salida

 

Números Pares entre 1 y 50

 

Variables

2

4

6

8

10

12

14

16

18

20

22

24

26

28

30

32

34

36

38

40

i (tipo entero)

42

44

46

48

50

Memoria i
Memoria
i

B. ALGORITMO

i1

ESCRIBIR(“Números Pares entre 1 y 50)

Para(i;i<=25;i++)

ESCRIBIR(2*i)

C. CODIGO

#include<conio.h> #include<iostream.h> int main ()

{

cout<<"\n N\243meros Pares entre 1 y

50"<<endl;

cout<<"\n";

for(int i=1;i<=25;i++)

cout<<"

"<<2*i<<endl;

getch();

return 0;

}

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 2

A. ANALISIS DEL PROBLEMA

Definición del problema

Lea el valor inicial y el valor final de un rango de números enteros y escriba todos los números comprendidos en el rango.

Especificaciones de entrada

Variables

I

(tipo float)

F

(tipo float)

Ingrese valor inicial:

Ingrese valor final:

Especificaciones de salida

Variables

I (tipo float)

B. ALGORITMO

Los números son:

I, F

ESCRIBIR(“Números Pares en un rango) ESCRIBIR(“Ingrese valor inicial:”) LEER(I) ESCRIBIR (“Ingrese valor final: ”) LEER(F)

Para(I;I<=F;I++)

ESCRIBIR(I)

Memoria I F
Memoria
I
F

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

C. CODIGO

#include<conio.h> #include<iostream.h> int main ()

{

float I,

F, valor1, valor2;

cout<<"N\meros pares en un rango "<<endl; do{cout<<"Ingrese valor inicial: "; cin>>I;

valor1=I-int(I);

if(I<0||valor1!=0)

cout<<"Valor no aceptado. Debe ser un numero entero positivo o 0"<<endl;

}while(I<0||valor1!=0);

do{

//validación: entero positivo

cout<<"Ingrese valor final: "; cin>>F;

valor2=F-int(F);

if(F<0||valor2!=0||F<=I)

cout<<"ERROR: Debe ser un numero entero positivo y mayor que el inicial"<<endl;

}while(F<0||valor2!=0||F<=I); //validación: entero positivo y mayor que I

cout<<"\n Rango ingresado correctamente"<<endl; cout<<"El rango ingresado es: ( "<<I<<" , "<<F<<" )"; cout<<"\n\n Los numeros son: "<<endl;

for(I;I<=F;I++) cout<<" "<<I<<endl; getch(); return 0;

}

//condición de rango

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 3

A. ANALISIS DEL PROBLEMA

Definición del problema

Encuentre el primer valor N para el cual la siguiente suma excede a 10000:

Especificaciones de entrada

Variables

1 + 2 + 3 + 4 +

+ N

Especificaciones de entrada Variables 1 + 2 + 3 + 4 + + N Especificaciones de

Especificaciones de salida

 

SUMA DE NUMEROS

Variables

Número encontrado:

N(tipo int)

B. ALGORITMO

C. CODIGO

Memoria N 1 suma
Memoria
N
1
suma

N1, suma

ESCRIBIR(“SUMA DE NUMEROS”)

Para(N;N<=1000000;N++)

sumaN*(N+1)/2

suma>10000 V F
suma>10000
V
F

ESCRIBIR(“Numero encontrado: ”, N)

#include<conio.h> #include<iostream.h> int main ()

{

double N=1, suma;

cout<<"SUMA DE NUMEROS"<<endl;

for(N;N<=1000000;N++)

{

suma=N*(N+1)/2;

if(suma>10000)

{

cout<<"Numero encontrado: "; cout<<N<<endl; cout<<"La suma es: "<<suma; break;

}

}

getch();

return 0;

}

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 4

A. ANALISIS DEL PROBLEMA

Definición del problema

Mostrar los N primeros términos de la serie: 5, 7, 10,14,19,… ,

Especificaciones de entrada

Variables

N (tipo int)

Especificaciones de salida

Variables

T (tipo int)

Serie 5;7 ; 10; 14; 19…

Ingrese el número de términos que desea ver:

14; 19… Ingrese el número de términos que desea ver: Memoria N i 0 T 4
Memoria N i 0 T 4
Memoria
N
i
0
T
4

B. ALGORITMO

N, i0, T4

ESCRIBIR(“Serie: 5; 7; 10; 14; 19 ECRIBIR (“Ingrese el número de términos que desea ver: ”)

)

ii+1

TT+i

ESCRIBIR(T)

i<N

C. CODIGO

#include<conio.h>

#include<iostream.h> int main ()

{

float N, i=0, T=4, val; cout<<"Serie: 5; 7; 10; 14; 19 "<<endl; do{cout<<"Ingrese el n\243mero de terminos que desea ver: "; cin>>N; val=N-int(N);

if(val!=0||N<=0)

cout<<"\n ERROR: el n\243mero debe ser natural"<<endl; }while(val!=0||N<=0); //validación:

número natural

do{i++; T=T+i; cout<<T<<" "; }while(i<N); getch(); return 0;}

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 5

A. ANALISIS DEL PROBLEMA

Definición del problema

Ingrese una serie de números hasta ingresar el valor 0. Luego reporte cuántos de los números ingresados fueron impares y cuantos pares.

Especificaciones de entrada

Variables

N (tipo int)

Especificaciones de salida

Variables c1 (tipo int) c2 (tipo int)

Ingrese número:

La cantidad de números PARES es:

La cantidad de números IMPARES es:

Memoria N c1 0 c2 0
Memoria
N
c1
0
c2
0

B. ALGORITMO

N, c10, c20

ESCRIBIR(“PARES E IMPARES”)

ESCRIBIR(“Ingrese numero:”) LEER(N)

V N==0 F ESCRIBIR(“Numero 0 ingresado”) c1←c1-1
V
N==0
F
ESCRIBIR(“Numero 0 ingresado”)
c1←c1-1
V Nmod2==0 F c1←c1+1 c2←c2+1
V
Nmod2==0
F
c1←c1+1
c2←c2+1

N!=0

ESCRIBIR(“La cantidad de numeros PARES es: “)

ESCRIBIR(c1)

ESCRIBIR(“La cantidad de números IMPARES es: “)

ESCRIBIR(c2)

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

C. CODIGO

#include<conio.h> #include<iostream.h> int main ()

{

float N, c1=0, c2=0, val; int NE; cout<<" \20 \250PARES E IMPARES\77"<<endl; cout<<"\n Presione 0 para terminar"<<endl; do{

do{ cout<<"\n Ingrese n\243mero: "; cin>>N; val=N-int(N);

if(val!=0)

cout<<"\n ERROR: el n\243 debe ser entero";

}while(val!=0); //validación: número entero

NE=N;

//cambio de tipo float a int

if(N==0)

{cout<<"\n Numero 0 ingresado"<<endl;

c1=c1-1;}

//el 0 no será contado como par

if(NE%2==0)

c1=c1+1;

//contador números pares

else

c2=c2+1;

//contador números impares

}while(NE!=0);

cout<<"\n La cantidad de n\243meros PARES es: "<<c1<<endl; cout<<"\n La cantidad de n\243meros IMPARES es: "<<c2<<endl; getch(); return 0;

}

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 6

A. ANALISIS DEL PROBLEMA

Definición del problema

Calcular la suma de los cuadrados de los N primeros números enteros. N es un entero positivo ingresado desde teclado

Especificaciones de entrada

Variables

N (tipo int)

Especificaciones de salida

Variables

suma (tipo int)

B. ALGORITMO

Ingrese el número N:

La suma es:

C. CODIGO

Memoria N i suma
Memoria
N
i
suma

N, i, suma

ESCRIBIR(“SUMA DE LOS PRIMEROS N 2 NATURALES”)

ESCRIBIR(“Ingrese el numero N:”) LEER(N)

N<0

Para(i=1;i<=N;i++)

sumasuma+i*i

ESCRIBIR(“La suma es: ”, suma)

#include<conio.h> #include<iostream.h> int main ()

{

int suma=0, i; float N, val; do{cout<<" \n \20SUMA DE LOS PRIMEROS N\375 NATURALES"<<endl; cout<<"\n Ingrese el n\243mero N:

";

cin>>N; val=N-int(N); }while(val!=0||N<0); //validación

número natural

for(i=1;i<=N;i++)

suma=suma+i*i;

//suma de los N

cout<<"\n La suma es: "<<suma; getch();

return 0;

}

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 7

A. ANALISIS DEL PROBLEMA

Definición del problema

Calcule la suma de los números pares comprendidos entre INICIO y FIN. INICIO y FIN son ingresados por el usuario.

Especificaciones de entrada

 

SUMA DE PARES ENTRE INICIO Y FIN Ingrese INICIO:

Variables

Ingrese FIN:

I (tipo float) F (tipo float)

 

Especificaciones de salida

 

Variables

La suma es:

suma

B.

ALGORITMO

C. CODIGO

Memoria I F i suma
Memoria
I
F
i
suma
I, F, suma, i ESCRIBIR(“SUMA DE PARES ENTRE INICIOY FIN) ESCRIBIR(“Ingrese INICIO: ”) LEER(I) ESCRIBIR
I, F, suma, i
ESCRIBIR(“SUMA DE PARES ENTRE
INICIOY FIN)
ESCRIBIR(“Ingrese INICIO: ”)
LEER(I)
ESCRIBIR (“Ingrese FIN: ”)
LEER(F)
F<=I
Para(i←I+1;i<F;i←i+1)
imod2==0
V
F
suma←suma+i
ESCRIBIR(“La suma es: ”, suma)

#include<conio.h>

#include<iostream.h> int main ()

{float I,

F;

int i, suma=0; cout<<"\n \20 SUMA DE PARES ENTRE INICIO Y FIN"<<endl; cout<<"\n Ingrese INICIO: "; cin>>I; do{cout<<"\n Ingrese FIN: "; cin>>F; if(F<I) cout<<"\n ERROR: FIN debe ser mayor que INICIO"; }while(F<=I); cout<<"\n El rango ingresado es: ( "<<I<<" ; "<<F<<" )";

for(i=I+1;i<F;i++)

if(i%2==0)

suma=suma+i; cout<<"\n\n La suma es: "<<suma; getch(); return 0;}

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 8

A. ANALISIS DEL PROBLEMA

Definición del problema

Que simule un reloj digital. (HH:MM:SS). Ejemplo: 12:06:13

Especificaciones de entrada

Variables

Especificaciones de salida

Variables

h (tipo int)

m (tipo int)

s (tipo int)

B. ALGORITMO

h (tipo int) m (tipo int) s (tipo int) B. ALGORITMO Reloj Digital 0 : 0

Reloj Digital

0

: 0

:

1

C. CODIGO

Memoria h m s V
Memoria
h
m
s
V
H, m, s, V ESCRIBIR(“Reloj Digital”) Para(h←0;h<=24;h←h+1) #include<conio.h>
H, m, s, V
ESCRIBIR(“Reloj Digital”)
Para(h←0;h<=24;h←h+1)
#include<conio.h>
#include<iostream.h>
#include<conio2.h> //librería con
funciones “gotoxy” y “clreol”
int main ()
Para(m←0;m<60;m←m+1)
{
Para(s←0;s<60;s←s+1)
int h, m, s, V;
cout<<"\n \16 Reloj Digital \16";
for(h=0;h<=24;h++)
Para(V←0;V<60;V←V+1)
{
ESCRIBIR(h)
for(m=0;m<60;m++)
ESCRIBIR(m)
{
ESCRIBIR(s)
for(s=0;s<60;s++)
{
for(V=0;V<30000;V++)
gotoxy(20,10);clreol();cout<<h<<" :
"<<m<<" : "<<s;
}
}
}
getch();

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 9

A. ANALISIS DEL PROBLEMA

Definición del problema

Lea una base real y un exponente entero positivo y calcule su potencia.

Especificaciones de entrada

Variables

b

(tipo float)

e

(tipo int)

Especificaciones de salida

Variables

P (tipo float)

B. ALGORITMO

POTENCIA DE UN NÚMERO Ingrese base:

Ingrese exponente:

La potencia es:

C. CODIGO

Memoria e b i 1 P
Memoria
e
b
i
1
P

e, b, i, P1

ESCRIBIR(“POTENCIA DE UN NUMERO”) ESCRIBIR(“Ingrese base: ”) LEER(b)

ESCRIBIR (“Ingrese exponente”) LEER(e)

e<0

Para(i1;i<=e;ii+1)

P=P*b

ESCRIBIR(“La potencia es: ”, P)

#include<conio.h> #include<iostream.h> int main () {float b, e, val, i, P=1; cout<<"\n \257 POTENCIA DE UN NUMERO

\256"<<endl;

cout<<"\n Ingese base: "; cin>>b; do{cout<<"\n Ingrese exponente: "; cin>>e; val=e-int(e);

if(val!=0||e<0)

cout<<"\n ERROR: debe ser n\243mero entero positivo"<<endl; }while(val!=0||e<0); //validación

número entero

for(i=1;i<=e;i++)

P=P*b; cout<<"\n La potencia es: "<<P; getch(); return 0;}

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 10

A. ANALISIS DEL PROBLEMA

Definición del problema

Lea dos números enteros e imprima todos sus divisores comunes, excepto la unidad.

Especificaciones de entrada

Variables

A (tipo int)

B (tipo int)

Especificaciones de salida

Variables

i (tipo int)

B. ALGORITMO

DIVISORES COMUNES DE 2 NUMEROS Ingrese 1er numero:

Ingrese 2do numero:

Los divisores comunes son:

Memoria A B i men
Memoria
A
B
i
men
A, B, men, i V A<B F men ← A men ← B ESCRIBIR (“Ingrese
A, B, men, i V A<B F men ← A men ← B ESCRIBIR (“Ingrese

A, B, men, i

V

A<B

F
F

menA

menB

A, B, men, i V A<B F men ← A men ← B ESCRIBIR (“Ingrese 1er
A, B, men, i V A<B F men ← A men ← B ESCRIBIR (“Ingrese 1er

ESCRIBIR (“Ingrese 1er número: ”) LEER(A) ESCRIBIR (“Ingrese 2do número: ”) LEER(B)

LEER(A) ESCRIBIR (“Ingrese 2do número: ”) LEER(B) ESCRIBIR(“Los divisores comunes son: ”) Para(i ←

ESCRIBIR(“Los divisores comunes son: ”)

Para(i2;i<=men;ii+1)

Amodi==0 and F Bmodi==0 V ESCRIBIR(i)
Amodi==0 and
F
Bmodi==0
V
ESCRIBIR(i)
ESCRIBIR(“Los divisores comunes son: ”) Para(i ← 2;i<=men;i ← i+1) Amodi==0 and F Bmodi==0 V ESCRIBIR(i)

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

C. CODIGO

#include<conio.h>

#include<iostream.h>

#include<math.h> //librería con función “abs”

int main ()

{

float A, B, val; int a, b, i, men; cout<<"\n \376 DIVISORES COMUNES DE 2 NUMEROS \376"<<endl; do{cout<<"\n Ingrese 1er N\243mero: "; cin>>A;

val=A-int(A);

if(val!=0)

cout<<" ERROR: el n\243mero debe ser entero"<<endl;

}while(val!=0); //Validacion: número entero

do{cout<<" Ingrese 2do N\243mero: "; cin>>B; val=B-int(B);

if(val!=0)

cout<<" ERROR: el n\243mero debe ser entero"<<endl;

}while(val!=0); //validación: número entero

a=A;

b=B;

//conversion de variable tipo float a tipo int

if(a==b) cout<<" N\243meros iguales"<<endl; //mensaje amigable if(a<b)

men=a;

else

men=b;

//variable "men" para determinar nº de iteraciones

cout<<"\n Los divisores comunes son: "<<endl;

//se consideran los numeros negativos de acuerdo a la //def. de DIVISOR(d): (D/d)=k D es entero, d es entero //postivo y k entero

for(i=2;i<=abs(men);i++)

//conversion de - a + con "abs" (para poder ejecutar el bucle)

{

if(a%i==0&&b%i==0)

cout<<"

"<<i; }

getch();

return 0;

}

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 11

A. ANALISIS DEL PROBLEMA

Definición del problema

Lea un número entero positivo y determine si es un número perfecto. (Un número entero positivo es perfecto si es igual a la suma de todos sus divisores enteros positivos, excepto el mismo. Ejemplo: 6 es un número perfecto, ya que sus divisores son: 1,2,3 y 1+2+3 = 6)

Especificaciones de entrada

Variables

N (tipo int)

Especificaciones de salida

Variables

B. ALGORITMO

NUMERO PERFECTO Ingrese un número:

El número es perfecto El número no es perfecto

Memoria N suma i
Memoria
N
suma
i
N, suma, i ESCRIBIR(“NUMERO PERFECTO”) ESCRIBIR(“Ingrese un numero: ” ) LEER(N) V Para(i ← 1;i<N;i

N, suma, i

N, suma, i ESCRIBIR(“NUMERO PERFECTO”) ESCRIBIR(“Ingrese un numero: ” ) LEER(N) V Para(i ← 1;i<N;i ←
N, suma, i ESCRIBIR(“NUMERO PERFECTO”) ESCRIBIR(“Ingrese un numero: ” ) LEER(N) V Para(i ← 1;i<N;i ←
N, suma, i ESCRIBIR(“NUMERO PERFECTO”) ESCRIBIR(“Ingrese un numero: ” ) LEER(N) V Para(i ← 1;i<N;i ←

ESCRIBIR(“NUMERO PERFECTO”) ESCRIBIR(“Ingrese un numero: ”) LEER(N)

PERFECTO”) ESCRIBIR(“Ingrese un numero: ” ) LEER(N) V Para(i ← 1;i<N;i ← i+1) V F Nmodi==0
PERFECTO”) ESCRIBIR(“Ingrese un numero: ” ) LEER(N) V Para(i ← 1;i<N;i ← i+1) V F Nmodi==0
PERFECTO”) ESCRIBIR(“Ingrese un numero: ” ) LEER(N) V Para(i ← 1;i<N;i ← i+1) V F Nmodi==0

V

PERFECTO”) ESCRIBIR(“Ingrese un numero: ” ) LEER(N) V Para(i ← 1;i<N;i ← i+1) V F Nmodi==0

Para(i1;i<N;ii+1)

V
V
F
F

Nmodi==0

sumasuma+1

1;i<N;i ← i+1) V F Nmodi==0 suma ← suma+1 N==suma F ESCRIBIR(“El numero no es perfecto”)

N==suma

F

ESCRIBIR(“El numero no es perfecto”)

ESCRIBIR(“El numero es perfecto”)
ESCRIBIR(“El
numero es
perfecto”)
suma ← suma+1 N==suma F ESCRIBIR(“El numero no es perfecto”) ESCRIBIR(“El numero es perfecto”)

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

C. CODIGO

#include<conio.h> #include<iostream.h> int main(void)

{

float N, val; int NE, suma=0, i; cout<<"\n \257 NUMERO PERFECTO \256"<<endl; do{cout<<"\n Ingrese un n\243mero: "; cin>>N; val=N-int(N);

if(val!=0||N<0)

cout<<" El n\243mero debe ser entero positivo"<<endl;

}while(val!=0||N<0); //validacion: numero entero positivo

NE=N;

for(i=1;i<NE;i++)

{ if(NE%i==0) suma=suma+i; }

if(NE==suma) cout<<"\n El n\243mero es perfecto"; else cout<<"\n El n\243mero NO es perfecto"; getch(); return 0;}

//conversion variable tipo float a tipo int

//suma de los divisores de NE

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 12

A. ANALISIS DEL PROBLEMA

Definición del problema

Lea número entero y lo escriba en forma inversa. (2345, su inverso 5432).

Especificaciones de entrada

Variables

A (tipo int)

Especificaciones de salida

Variables

C (tipo int)

B. ALGORITMO

NUMERO INVERSO

Ingrese numero entero positivo:

El inverso es:

A, C, N

ESCRIBIR(“NUMERO INVERSO”) ESCRIBIR(“Ingrese numero entero positivo: ”) LEER(A) ESCRIBIR(“El inverso es: ”)

CAmod10

AA/10

ESCRIBIR(C)

A>=1

Memoria A C N
Memoria
A
C
N

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

C. CODIGO

#include<conio.h> #include<iostream.h> #include<math.h> int main ()

{

//librería para usar valor absoluto

float A, val; int N, C; cout<<" NUMERO INVERSO "<<endl; do{cout<<"\n Ingrese un n\243mero entero positivo: "<<endl; cin>>A; val=A-int(A);

if(val!=0||A<0)

cout<<" ERROR"<<endl;

}while(val!=0||A<0); //validacion: numero entero

N=A; cout<<"\n El inverso es: ";

do{C=N%10;

//C almacena las cifras

N=N/10;

//reduciendo numero

cout<<C;

}while(N>=1);

getch();

return 0;

}

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 13

A. ANALISIS DEL PROBLEMA

Definición del problema

Lea dos números enteros y determine su mínimo común múltiplo.

Especificaciones de entrada

Variables

A (tipo int)

B (tipo int)

Especificaciones de salida

Variables

MCM (tipo int)

B. ALGORITMO

MINIMO COMUN MULTIPLO

Ingrese 1er Número:

Ingrese 2do Número:

El mínimo común múltiplo es:

A, B, MCM, men, p1

ESCRIBIR(“MINIMO COMUN MULTIPLO”) ESCRIBIR(“Ingrese 1er número natural”) LEER(A) ESCRIBIR(“Ingrese 2do número natural”) LEER(B)

V A<B F
V
A<B
F

menA

menB

Para(i1;i<=men;ii+1)

Amodi==0 and Bmodi==0 F V p←1
Amodi==0 and
Bmodi==0
F
V
p←1

MCMA*B/p ESCRIBIR(“El minimo común múltiplo es:”, MCM)

Memoria A B men i p 1 MCM
Memoria
A
B
men
i
p
1
MCM

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

C. CODIGO

#include<conio.h> #include<iostream.h> int main ()

{

float A, B, val; int a, b, i, p=1, men, MCM; cout<<"\n \256 MINIMO COMUN MULTIPLO \257"<<endl; do{cout<<"\n Ingrese 1er n\243mero natural: "; cin>>A; val=A-int(A);

if(val!=0||A<0)

cout<<" ERROR"<<endl;

}while(val!=0||A<0); //validación: número natural

do{cout<<"\n Ingrese 2do n\243mero natural: "; cin>>B; val=B-int(B);

if(val!=0||B<0)

cout<<" ERROR"<<endl;

}while(val!=0||B<0); //validación: número natural

a=A;

b=B;

//cambio de tipo float a int

if(a<b) men=a; else men=b;

for(i=1;i<=men;i++)

{ if(a%i==0&&b%i==0)

p=i;

}

//p es máximo común divisor

MCM=a*b/p; //simplificacion de p*(a/p)*(b/p)

cout<<"\n El minimo comun multiplo es: "; cout<<MCM; getch(); return 0;}

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

Ejercicio 14

A. ANALISIS DEL PROBLEMA

Definición del problema

Lea dos números enteros y determine su máximo común divisor

Especificaciones de entrada

Variables

A (tipo int)

B (tipo int)

Especificaciones de salida

Variables

p (tipo int)

B. ALGORITMO

MAXIMO COMUN DIVISOR

Ingrese 1er numero:

Ingrese 2do numero:

El MCD es:

A, B, MCM, men, p1

ESCRIBIR(“MAXIMO COMUN DIVISOR”) ESCRIBIR(“Ingrese 1er número”) LEER(A) ESCRIBIR(“Ingrese 2do número”) LEER(B)

V A<B F
V
A<B
F

menA

menB

Para(i1;i<=men;ii+1)

Amodi==0 and F Bmodi==0 V p←1
Amodi==0 and
F
Bmodi==0
V
p←1

ESCRIBIR(“EL MCD es”, p)

Memoria A B men i p 1
Memoria
A
B
men
i
p
1

Algoritmos y Programación : ESTRUCTURAS REPETITIVAS

Ms. Ing. Yenny Sifuentes Díaz

C. CODIGO

#include<conio.h>

#include<iostream.h> #include<math.h> int main ()

{

//libreria con funcion abs

float A, B, val; int a, b, i, p, men; cout<<"\n \25 ALOGIRTMO: MAXIMO COMUN DIVISOR \25"<<endl; do{cout<<"\n Ingrese 1er n\243mero entero: ";

cin>>A; val=A-int(A);

if(val!=0)

cout<<"\n ERROR"<<endl;

}while(val!=0);

do{cout<<"\n Ingrese 2do n\243mero entero: "; cin>>B;

//validacion: numero entero

val=B-int(B);

if(val!=0)

cout<<"\n ERROR"<<endl;

}while(val!=0);

//validacion: numero entero

a=A;

b=B;

//cambio de tipo float a int

if(a<b)

men=a;

else

men=b;

//condicion para el final del bucle

for(i=1;i<=abs(men);i++)

{

 

if(a%i==0&&b%i==0)

p=i;

//almacenamiento de MCD en p

}

cout<<"\n El MCD es: "; cout<<p; getch(); return 0;}