Está en la página 1de 18

Universidad Nacional de Trujillo

Programacin 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 Whileend

Ejemplo mientras 01

Ejecucin

Mg. Marcelino Torres Villanueva 1


Universidad Nacional de Trujillo
Programacin en Matlab

Ejemplo mientras 02

Ejecucin

Ejemplo mientras 03

Ejecucin

12.2.- Ejemplos de procesos repetitivos for

Ejemplo for 01

Ejecucin

Mg. Marcelino Torres Villanueva 2


Universidad Nacional de Trujillo
Programacin en Matlab

Ejemplo for 02

Ejecucin

Ejemplo for 03

Ejecucin

Mg. Marcelino Torres Villanueva 3


Universidad Nacional de Trujillo
Programacin en Matlab

Ejemplo repetitivo 01

Ejecucin

Ejemplo repetitivo 02

Mg. Marcelino Torres Villanueva 4


Universidad Nacional de Trujillo
Programacin en Matlab

Ejecucin

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

Ejecucin

Ejemplo repetitivo 04

Ejecucin

Mg. Marcelino Torres Villanueva 5


Universidad Nacional de Trujillo
Programacin en Matlab

Ejemplo repetitivo 05

Ejecucin

Mg. Marcelino Torres Villanueva 6


Universidad Nacional de Trujillo
Programacin en Matlab

Ejemplo repetitivo 06

Ejecucin

Mg. Marcelino Torres Villanueva 7


Universidad Nacional de Trujillo
Programacin en Matlab

Ejemplo repetitivo 07

Ejecucin

Mg. Marcelino Torres Villanueva 8


Universidad Nacional de Trujillo
Programacin 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 multiplicacin

P = P * valor_a_multiplicar;

Ejemplo repetitivo 08

Ejecucin

Ejemplo repetitivo 09

Ejecucin

Mg. Marcelino Torres Villanueva 9


Universidad Nacional de Trujillo
Programacin en Matlab

Ejemplo 10
Calcular la suma de los n trminos de la siguiente serie:

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

Ejecucin

Ejemplo 11

Ingresar n nmeros, calcular el mximo y el mnimo de ellos.

Mg. Marcelino Torres Villanueva 10


Universidad Nacional de Trujillo
Programacin en Matlab

Ejecucin

Ejemplo 12

Realizar un programa que escriba los n trminos de la serie de Fibonacci:


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

Ejecucin

Mg. Marcelino Torres Villanueva 11


Universidad Nacional de Trujillo
Programacin 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.

Ejecucin

Ejercicios Resueltos

1.- Programa para ingresar un nmero 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
Programacin en Matlab

2.- Ingresar un nmero y reportar si es perfecto. Un nmero 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 nmero 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 nmero 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
Programacin en Matlab

5.- Ingresar 2 nmeros y calcular su mximo comn 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 nmeros y calcular su mnimo comn mltiplo

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 nmero y reportar el nmero de dgitos 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
Programacin en Matlab

8.- Ingresar un nmero y reportarlo al revs

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 nmero y reportar si es capica


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 nmero 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 nmero 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
Programacin en Matlab

Ejercicios Propuestos
1) Ingresar un numero N entero positivo y reportar la suma de los nmeros desde 1
hasta N.
2) Ingresar N nmeros enteros positivos y reporte la suma de pares.
3) Reportar la suma de los N trminos 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 trminos de la serie:
X + X2 + X3 + X4 + .
6) Hacer un programa que dado un valor de x, calcule el valor de la funcin:
f(x) = 1 x + x2/2! x3/3! + x4/4! x5/5! +
Tenga en cuenta solo los trminos de la serie que en valor absoluto son mayores o
iguales a 0.001
7) Reportar los N trminos de la serie:
17, 15, 18, 16, 19, 17, 20, 18, 21,
8) Hacer un programa que reporte los trminos de la sucesin:
2, 5, 7, 10, 12, 15, 17. 1800
Adems debe imprimir la suma de los trminos.
9) Sea n un entero positivo. Si n es par, divdalo entre 2, sino lo es, multiplquelo por 3
y smele 1. Realice este proceso hasta que el nmero que alcance sea 1. Realice un
programa en C que implemente dicho proceso. Imprima los nmeros que van
obteniendo. Por Ejemplo:
Para n = 10 la sucesin generada es: 10 5 16 8 4 2 1
10) Como parte de un experimento un bilogo 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 nmero aleatorio entre 1 y 100 y trate de adivinarlo. El resultado debe
orientar segn el resultado con los mensajes, alto y bajo. Al final debe mostrar
el nmero de intentos en los que adivino el nmero.
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 nmeros aleatorios entre 300 y 1000 hasta obtener
un nmero mltiplo de 7. Se debe mostrar los nmeros 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 nmeros 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
Programacin en Matlab

17) Escriba un programa que lea 2 nmeros 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 trmino: | Xn/Y! | < 0.001.

18) Escribir un programa que lea un nmero entero n>0 y que imprima los n trminos de
la serie:
4, 12, 24, 40, 60........ Debe imprimir tambin la suma de los n trminos.
19) Escribir un programa que lea un nmero entero n>0 y que imprima los n trminos de
la serie:
4, 9, 15, 23, 34, 49,..... Debe imprimir tambin la suma de los n trminos
20) Escribir un programa que calcule e imprima el valor de los n trminos de la serie:
2, 1, 1, 2, 8, 64.......Tambin se debe imprimir la suma de los n trminos
21) Escribir un programa que calcule e imprime los N trminos de la sumatoria
4/2 9/1 + 15/1 23/2 + 34/8 49/64 + .
Debe imprimir como mnimo k trminos por lnea. Tambin debe calcular la suma de
los N trminos
22) Escribir un programa que permita leer dos nmeros y reporte si son amigos.
Se dice que dos nmeros son amigos si cada uno de ellos es igual a la suma de los
divisores (menores que el nmero) del otro. Ejemplo: 220 y 284 son amigos.
23) Escribir un programa para ingresar 3 nmeros y reporte su mximo comn divisor y
su mnimo comn mltiplo.
24) Escribir un programa que para reducir un quebrado a su mnima expresin.
Ejemplos: 15/25 = 3/5 y 18/60 = 9/30 = 3/10
25) Escribir un programa que convierta un nmero de base b (entre 2 y 9) a un nmero
de base 10.
26) Convertir un numero de base n a un nmero de base m .
27) Escribir un programa que determine todos los nmeros primos que se encuentran
entre 2 nmeros n1 y n2.
28) Escribir un programa que permita mostrar en pantalla los N primeros nmeros
primos.
29) Escribir un programa que permita mostrar todos los nmeros perfectos menores
que 1000.
30) Escribir un programa que permita ingresar un nmero entero y reporte si es un
Cubo Perfecto. Un nmero es un cubo perfecto y es igual a la suma de sus dgitos al
cubo. Ejemplo 153 es cubo Perfecto porque 13 + 53+ 33 = 153.
31) Ingresar un nmero entero positivo y reportar el producto de sus dgitos y el mayor
de sus dgitos.
32) Ingresar N nmeros de 2 dgitos y determinar cul de ellos tiene la suma de
dgitos mayor
33) Escribir un programa que permita leer nmeros enteros diferentes de cero y que al
finalizar imprima:
a.- El nmero mayor y el nmero menor.
b.- El total de nmeros ledos.
c.- La cantidad de nmeros positivos y nmeros 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
Programacin 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