Está en la página 1de 18

Universidad Nacional de Trujillo

Programación en Matlab

12. - Estructuras Repetitivas

1) while …. End

while condicion

Instrucciones
end
2) for

for v = vi : inc: vf

Instrucciones
end

donde :
vi: valor inicial
inc: incremento
vf: valor final

Si el incremento es de 1 en 1, se omite el incremento

for v=vi:vf

Instrucciones
end

Contador: Es una variable comienza con valor inicial y se incrementa en un


valor constante.
Inicializamos C=0;
Y en el proceso
C=C+Valor_constante;

12.1.- Ejemplos While…end

Ejemplo mientras 01

Ejecución

Mg. Marcelino Torres Villanueva 1


Universidad Nacional de Trujillo
Programación en Matlab

Ejemplo mientras 02

Ejecución

Ejemplo mientras 03

Ejecución

12.2.- Ejemplos de procesos repetitivos for

Ejemplo for 01

Ejecución

Mg. Marcelino Torres Villanueva 2


Universidad Nacional de Trujillo
Programación en Matlab

Ejemplo for 02

Ejecución

Ejemplo for 03

Ejecución

Mg. Marcelino Torres Villanueva 3


Universidad Nacional de Trujillo
Programación en Matlab

Ejemplo repetitivo 01

Ejecución

Ejemplo repetitivo 02

Mg. Marcelino Torres Villanueva 4


Universidad Nacional de Trujillo
Programación en Matlab

Ejecución

Acumulador: Variable que comienza con un valor inicial que generalmente es cero y
se incrementa una cantidad variable
Inicializamos S=0
Y en el proceso de suma
S = S + valor_a_sumar;

Ejemplo repetitivo 03

Ejecución

Ejemplo repetitivo 04

Ejecución

Mg. Marcelino Torres Villanueva 5


Universidad Nacional de Trujillo
Programación en Matlab

Ejemplo repetitivo 05

Ejecución

Mg. Marcelino Torres Villanueva 6


Universidad Nacional de Trujillo
Programación en Matlab

Ejemplo repetitivo 06

Ejecución

Mg. Marcelino Torres Villanueva 7


Universidad Nacional de Trujillo
Programación en Matlab

Ejemplo repetitivo 07

Ejecución

Mg. Marcelino Torres Villanueva 8


Universidad Nacional de Trujillo
Programación en Matlab

Multiplicador: Variable que comienza con un valor inicial que generalmente es uno y
se multiplica una cantidad variable

Inicializamos P = 1;

Y en el proceso de multiplicación

P = P * valor_a_multiplicar;

Ejemplo repetitivo 08

Ejecución

Ejemplo repetitivo 09

Ejecución

Mg. Marcelino Torres Villanueva 9


Universidad Nacional de Trujillo
Programación en Matlab

Ejemplo 10
Calcular la suma de los n términos de la siguiente serie:

s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 +...... 1/n.

Ejecución

Ejemplo 11

Ingresar n números, calcular el máximo y el mínimo de ellos.

Mg. Marcelino Torres Villanueva 10


Universidad Nacional de Trujillo
Programación en Matlab

Ejecución

Ejemplo 12

Realizar un programa que escriba los n términos de la serie de Fibonacci:


1, 1, 2, 3, 5, 8, 13,.......

Ejecución

Mg. Marcelino Torres Villanueva 11


Universidad Nacional de Trujillo
Programación en Matlab

Ejemplo 13

Calcular la sumatoria:

s = 1 + x + x 2/2! + x3 /3! + x4 /4! + ........ + xn /n! Se debe ingresar x real y n entero


positivo.

Ejecución

Ejercicios Resueltos

1.- Programa para ingresar un número y reportar todos sus divisores

clc
n=input('ingrese numero :');
disp('Los divisores son ');
for i=1:n
if rem(n,i)==0
fprintf('%d ',i);
end
end

Mg. Marcelino Torres Villanueva 12


Universidad Nacional de Trujillo
Programación en Matlab

2.- Ingresar un número y reportar si es perfecto. Un número es perfecto si es igual a la


suma de divisores menores que el

clear all
clc
n=input('Ingrese numero :');
s=0;

for i=1:n-1
if rem(n,i)==0
s= s+i;
end
end
if n==s
disp('es perfecto');
else
disp('no es perfecto');
end

3.- Ingresar un número y reportar si es primo.

clear all
clc
n=input('Ingrese numero :');
cd=0;

for i=1:n
if rem(n,i)==0
cd= cd+1;
end
end
if cd==2
disp('es primo');
else
disp('no es primo');
end

4.- Escribir un programa que descomponga un número N en todos sus factores


correspondientes. Ej.:
27 = 3*3*3
180 = 2*2*3*3*3
clear all
clc
n=input('Ingrese numero :');
d=2;
while n>1
if rem(n,d)==0
fprintf('%d ',d);
n=n/d;
else
d=d+1;
end
end

Mg. Marcelino Torres Villanueva 13


Universidad Nacional de Trujillo
Programación en Matlab

5.- Ingresar 2 números y calcular su máximo común divisor

clc
clear all
n1=input('Primer numero :');
n2=input('Segundo numero :');
d=2;
mcd=1;
while d<=n1 & d<=n2
if rem(n1,d)==0 & rem(n2,d)==0
mcd=mcd*d;
n1=n1/d;
n2=n2/d;
else
d=d+1;
end
end
fprintf('El m.c.d. es : %d ',mcd);

6.- Ingresar 2 números y calcular su mínimo común múltiplo

clc
clear all
n1=input('Primer numero :');
n2=input('Segundo numero :');
d=2;
mcm=1;
while n1~=1 | n2~=1
if rem(n1,d)==0 | rem(n2,d)==0
mcm=mcm*d;
if rem(n1,d)==0
n1=n1/d;
end
if rem(n2,d)==0
n2=n2/d;
end
else
d=d+1;
end

7.- Ingresar un número y reportar el número de dígitos que tiene

clc;
n=input('Ingrese numero :');
x=n;
cd=0;
while x>0
dig= rem(x,10);
cd=cd+1;
x=fix(x/10);
end
fprintf('El numero %d tiene %d digitos ',n,cd);

Mg. Marcelino Torres Villanueva 14


Universidad Nacional de Trujillo
Programación en Matlab

8.- Ingresar un número y reportarlo al revés

clc;
n=input('Ingrese numero :');
x=n;
disp('El numero al reves es :');
while x>0
dig= rem(x,10);
fprintf('%d',dig);
x=fix(x/10);
end

9.- Ingresar un número y reportar si es capicúa


clc;
n=input('Ingrese numero :');
x=n;
inv=0;
while x>0
dig= rem(x,10);
inv=inv*10+dig;
x=fix(x/10);
end
if n==inv
disp('el numero es capicua');
else
disp('el numero no es capicua');
end

10.- Ingresar un número en base 10 y convertirlo a base 2


clc;
n=input('Ingrese numero :');
x=n;
b2=0;p=1;
while x>0
r= rem(x,2);
b2=b2+r*p;
p=p*10;
x=fix(x/2);
end
fprintf('el numero en base 2 es : %d ',b2);
11.- Ingresar un número en base 2 a base 10
clc;
b2=input('Ingrese numero en base 2:');
x=b2;
n=0;p=1;
while x>0
r= rem(x,10);
n=n+r*p;
p=p*2;
x=fix(x/10);
end
fprintf('el numero en base 10 es : %d ',n);

Mg. Marcelino Torres Villanueva 15


Universidad Nacional de Trujillo
Programación en Matlab

Ejercicios Propuestos
1) Ingresar un numero N entero positivo y reportar la suma de los números desde 1
hasta N.
2) Ingresar N números enteros positivos y reporte la suma de pares.
3) Reportar la suma de los N términos de la serie:
1, 4, 7, 10, 13..
4) Hacer un programa para calcular el valor de XN. X real y N entero. (No usar el
operador ^).
5) Determinar la suma de los N términos de la serie:
X + X2 + X3 + X4 + ….
6) Hacer un programa que dado un valor de x, calcule el valor de la función:
f(x) = 1 – x + x2/2! – x3/3! + x4/4! – x5/5! + …
Tenga en cuenta solo los términos de la serie que en valor absoluto son mayores o
iguales a 0.001
7) Reportar los N términos de la serie:
17, 15, 18, 16, 19, 17, 20, 18, 21,…
8) Hacer un programa que reporte los términos de la sucesión:
2, 5, 7, 10, 12, 15, 17…. 1800
Además debe imprimir la suma de los términos.
9) Sea n un entero positivo. Si n es par, divídalo entre 2, sino lo es, multiplíquelo por 3
y súmele 1. Realice este proceso hasta que el número que alcance sea 1. Realice un
programa en C que implemente dicho proceso. Imprima los números que van
obteniendo. Por Ejemplo:
Para n = 10 la sucesión generada es: 10 5 16 8 4 2 1
10) Como parte de un experimento un biólogo requiere tomar la temperatura exterior
de un lugar cada hora por un periodo de 6 horas. Realice un programa que reciba
como datos las temperaturas tomadas y determine la mayor y la menor.
11) Generar un número aleatorio entre 1 y 100 y trate de adivinarlo. El resultado debe
orientar según el resultado con los mensajes, “alto” y “bajo”. Al final debe mostrar
el número de intentos en los que adivino el número.
12) Generar n notas aleatoriamente y reportar el promedio, la nota mayor y la nota
menor.
13) Hacer un programa que simule varios lanzamientos de un dado hasta obtener un
seis. Muestre los puntajes del dado mientras se vayan generando y muestre al final
cuantos lanzamientos fueron necesarios efectuar.
14) Hacer un programa que genere números aleatorios entre 300 y 1000 hasta obtener
un número múltiplo de 7. Se debe mostrar los números generados, su suma, el mayor
y el menor.
15) Hacer un programa que genera la nota de n alumnos y que imprima cada nota y al
costado tantos asteriscos como indique la nota.

16) Escribir un programa que lea 3 números enteros positivos a, b, n>0, calcule la
sumatoria de :
1! 2! 3! 4! (n+1)!

- + - + .....

A A+B A + 2B A + 3B A + nB

Mg. Marcelino Torres Villanueva 16


Universidad Nacional de Trujillo
Programación en Matlab

17) Escriba un programa que lea 2 números X1 y X2 tal que X1<X2. Se debe calcular e
imprimir el valor de f(x) para todos los valores de X , desde X=X1 hasta x=X2
f(x) = 1 + x/3! – x2/5! + x3/7! – x4/9! + …
La sumatoria termina cuando se tiene un término: | Xn/Y! | < 0.001.

18) Escribir un programa que lea un número entero n>0 y que imprima los n términos de
la serie:
4, 12, 24, 40, 60........ Debe imprimir también la suma de los n términos.
19) Escribir un programa que lea un número entero n>0 y que imprima los n términos de
la serie:
4, 9, 15, 23, 34, 49,..... Debe imprimir también la suma de los n términos
20) Escribir un programa que calcule e imprima el valor de los n términos de la serie:
2, 1, 1, 2, 8, 64.......También se debe imprimir la suma de los n términos
21) Escribir un programa que calcule e imprime los N términos de la sumatoria
4/2 – 9/1 + 15/1 – 23/2 + 34/8 – 49/64 + ….
Debe imprimir como mínimo k términos por línea. También debe calcular la suma de
los N términos
22) Escribir un programa que permita leer dos números y reporte si son amigos.
Se dice que dos números son amigos si cada uno de ellos es igual a la suma de los
divisores (menores que el número) del otro. Ejemplo: 220 y 284 son amigos.
23) Escribir un programa para ingresar 3 números y reporte su máximo común divisor y
su mínimo común múltiplo.
24) Escribir un programa que para reducir un quebrado a su mínima expresión.
Ejemplos: 15/25 = 3/5 y 18/60 = 9/30 = 3/10
25) Escribir un programa que convierta un número de base b (entre 2 y 9) a un número
de base 10.
26) Convertir un numero de base n a un número de base m .
27) Escribir un programa que determine todos los números primos que se encuentran
entre 2 números n1 y n2.
28) Escribir un programa que permita mostrar en pantalla los N primeros números
primos.
29) Escribir un programa que permita mostrar todos los números perfectos menores
que 1000.
30) Escribir un programa que permita ingresar un número entero y reporte si es un
Cubo Perfecto. Un número es un cubo perfecto y es igual a la suma de sus dígitos al
cubo. Ejemplo 153 es cubo Perfecto porque 13 + 53+ 33 = 153.
31) Ingresar un número entero positivo y reportar el producto de sus dígitos y el mayor
de sus dígitos.
32) Ingresar N números de 2 dígitos y determinar cuál de ellos tiene la suma de
dígitos mayor
33) Escribir un programa que permita leer números enteros diferentes de cero y que al
finalizar imprima:
a.- El número mayor y el número menor.
b.- El total de números leídos.
c.- La cantidad de números positivos y números negativos.
El programa termina cuando se ingresa el cero.
34) Escribir un programa que lea las edades de personas y calcule la edad mayor, la
edad menor y la edad promedio.
El programa termina cuando se ingresa una edad menor o igual que cero.

Mg. Marcelino Torres Villanueva 17


Universidad Nacional de Trujillo
Programación en Matlab

35) Dado un numero entero positivo N, dibujar el siguiente triangulo:


Si N=5 saldrá
1
12
123
1234
12345

36) Dado un numero entero positivo N,dibujar en la pantalla el siguiente triangulo:


Si N=4
****
***
**
*
37) Dado un numero entero positivo N, dibujar el siguiente cuadrado:
Ingrese N: 4
1234
2341
3412
4123

Mg. Marcelino Torres Villanueva 18

También podría gustarte