0% encontró este documento útil (0 votos)
292 vistas8 páginas

Ejercicios de Programación: Ciclo For y While

El documento presenta tres programas en lenguaje de programación para resolver diferentes problemas matemáticos. El primer programa calcula la conjetura de Collatz para un número dado por el usuario. El segundo programa calcula el cuadrado de un número mediante la suma de los primeros números impares. El tercer programa calcula la suma de los números impares comprendidos entre dos límites introducidos por el usuario.

Cargado por

Omar Hernandez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
292 vistas8 páginas

Ejercicios de Programación: Ciclo For y While

El documento presenta tres programas en lenguaje de programación para resolver diferentes problemas matemáticos. El primer programa calcula la conjetura de Collatz para un número dado por el usuario. El segundo programa calcula el cuadrado de un número mediante la suma de los primeros números impares. El tercer programa calcula la suma de los números impares comprendidos entre dos límites introducidos por el usuario.

Cargado por

Omar Hernandez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Ejercicios de programacin: Ciclo for y while

1.

La conjetura de Collatz
Elabore un programa que muestre como dado un nmero entero y positivo (validarlo), cumple con la conjetura de Collatz.
Imprima la serie hasta que llegue a 1.
Conjetura de Collatz:
Si el nmero es par se divide entre dos
Si el nmero es impar se multiplica por tres y se le suma 1
Tras aplicarle la operacin anterior, segn corresponda, repetir el proceso con el nmero obtenido hasta obtener
El programa debe preguntar al usuario si desea realizar otro clculo.

Diagrama de flujo

Inicio

S(menu)

S=1

n>=1 &
rem(n,
1)=0

Error nmeros
no admitidos

N~=1

rem(n
,2)==0

n=3*n+1

N=n/2

Resultado de n

Fin

Codificacin
%Este programa permite calcular la conjetura de Collatz
clear all; clc
disp('calcular conjetura de Collatz: presione 1')
disp('salir: presione 0')
s=input('que desea hacer: ');
while s==1
n=input('Ingrese el nmero entero a calcular: ');
if n>=1
if rem(n,1)==0
while n~=1
disp(n);
if rem(n,2)==0
n=n/2;
else
n=3*n+1;
end
end
disp(n);
else
disp('error, el numero ingresado es decimal')
end
else
disp('error, el numero es menor a 0')
end
s=input('que desea hacer: ');
end
disp('gracias')

2.

El cuadrado de un nmero
Ejemplos:

puede calcularse mediante la suma de los


=1

1 = 1 = 1.

=2

2 = 1 + 3 = 4.

primeros nmeros impares.

Escriba un programa que calcule el cuadrado de un nmero


mediante sumas.
El programa debe validar, en primera instancia, si el nmero dado por el usuario es entero positivo.
El programa tambin debe preguntar al usuario si desea calcular el cuadrado de otro nmero, con el Suma de
impares

Diagrama de flujo

Inicio

S(menu)

S=1

N, acum

n>=1 &
rem(n,
1)=0

Error nmeros
no admitidos

a=1:2:2*n;

acum=acum+a

El resultado es

Fin

%El programa calcula el cuadrado de un numero entero positivo mediante la


%suma de numeros inpares
clear all; clc
disp('elevar al cuadrado: presione 1')
disp('salir: presione 0')
s=input('Que desea hacer: ');
while s==1
clear all
acum=0;
n=input('Ingrese el numero a calcular: ');
if rem(n,1)==0
if n>=1
for a=1:2:2*n;
acum=acum+a;
end
fprintf('El cuadrado de %g es %g \n', n,acum)
else
disp('Error, solo se admite nmeros positivos')
end
else
disp('Error, solo se admite numeros enteros')
end
disp('si: presione 1')
disp('no: presione 0')
s=input('Volver a calcular numero: ');
end
disp('gracias \n')

3. Elabore un programa que calcule la suma de los nmeros impares comprendidos entre dos nmeros naturales
diferentes y (validarlos), dados por el usuario. El programa debe empezar por el menor de los enteros
introducidos.
Ejemplo 1:
= 2;

= 10.

Secuencia generada:
Suma:

2 3 4 5 6 7 8 9 10
3 + 5 + 7 + 9 = 24
Inicio

Diagrama de flujo

S(menu)

S=1

A,b,d

rem(a,1)
=0 &
rem(b,1)
=0

Error nmeros
no admitidos
a>=0 &
b>=0
a~=b

rem(a
,2)==0

Error nmeros
no admitidos

c=a:2:b

c=a+1:2:b

d=c+d

d=c+d

Resultado de n

Fin

%Este programa calcula la suma de numeros impares entre un intervalo


clear all; clc
disp('calcular la suma: presione 1')
disp('salir: presione 0')
s=input('que desea hacer: ');
while s==1
clear all
a=input('ingrese el limite inferior: ');
b=input('ingrese el limite superior: ');
d=0;
if rem(a,1)==0 && rem(b,1)==0
if a>=0 && b>=0
if a~=b
if rem(a,2)==0
for c=a+1:2:b;
d=c+d;
end
fprintf('El resultado es: %g \n', d)
else
for c=a:2:b;
d=c+d;
end
fprintf('El resultado es: %g \n', d)
end
else
disp('Error, el numero es igual')
end
else
disp('error, los numeros son negativos')
end
else
disp('Error, los numeros son fraccionarios')
end
s=input('que desea hacer: ');
end
disp('gracias')

1. Un nmero natural

se denomina perfecto cuando es igual a la suma de todos sus divisores, excepto l mismo.

Ejemplos:
=6
6 = 1 + 2 + 3.
Otros nmeros son: 496 8128 33550336
Escriba un programa para saber si un nmero natural es perfecto o no.
El programa debe validar, en primera instancia, si el nmero dado por el usuario es natural
El programa tambin debe preguntar al usuario si desea verificar si otro nmero natural dado por l es o no
perfecto, con el mtodo descrito arriba, una vez que haya verificado uno anterior
Diagrama de flujo

Inicio

S(menu)

S=1

A, c

rem(a,1)
=0 &
a>=1

Error nmeros
no admitidos

b=1:1:a-1

rem(a
,b)==0

c=c+b

c==a

No es perfecto

Si es perfecto

Fin

Decodificacin
%este programa determina si un nmero natural es perfecto o no.
clear all; clc
disp('calcular un numero perfecto: presione 1')
disp('salir: presione cualquier tecla')
s=input('que desea hacer: ');
while s==1
a=input('ingresa el numero: ');
if a>=1
if rem(a,1)==0
c=0;
for b=1:1:a-1;
if rem(a,b)==0
c=c+b;
end
end
if c==a
fprintf('el %g si es un numero perfecto \n', a)
else
fprintf('el %g no es un numero perfecto \n', a)
end
else
disp('error,el numero que ingreso es decimal')
end
else
disp('error, el numero que ingreso es igual o menor a cero')
end
s=input('Desea calcular otro numero? ');
end
disp('gracias')

También podría gustarte