Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Las estructuras repetitivas, son sentencias que permitan repetir varias veces una
porción de código, una cantidad finita. Estas estructuras podrán aprovechar mejor los
recursos del computador, ya que permitirá repetir sentencias tantas veces que
podríamos hacer sentir los tiempos de demora al usuario, ya que la demora podría
darse en minutos, horas o días para terminar las veces programada. Usualmente estas
estructuras se detienen porque se dio una cantidad de veces fija o una cantidad de
veces que dependen de condiciones lógicas. Las aplicaciones son infinitas, en diversos
campos como la inteligencia artificial, procesamiento masivo de datos, etc. Para los
principiantes, deberían tener mucho cuidado con los bucles infinitos ya que podría
provocar hasta el congelamiento del computador.
Sentencia 1;
• for
Sentencia 2;
Sentencia 3;
……
Sentencia n;
• while
ESTRUCTURA FOR
El formato de la serie que se genera en el for es:
a:c(el incremento es 1) o a:b:c (el incremento es b)
1:4 ➔1 2 3 4 2:5 ➔2 3 4 5 1.2:4 ➔1.2 2.2 3.2 4:3 ➔(ningún valor)
1:2:5 ➔1 3 5 0.5:0.2:0.7 ➔0.5 0.7 20:7:40➔20 27 34 4:-1:2➔4 3 2
E1: Muestre 4 veces la palabra E2: Muestre los 4 primeros E3: Muestre los 4 primeros números
hola. números naturales. naturales y sus cuadrados.
Solución Solución Solución
clear;clc; clc;clear; clc;clear;
for i=1:4 % 1 2 3 4 for i=1:4 % 1 2 3 4 for i=1:4 % 1 2 3 4
fprintf('Hola'); fprintf('%d\n',i); fprintf('%d^2 = %d\n',i,i^2);
end end end
Nota: Se obtiene el mismo resultado
en pantalla si cambiamos i=1:4 por:
• i=2:5
• i=7000:7003
• i=-3:0
• i=2:5.3
• i=2.8:5.99
E8: Lea n notas numerándolas y muestre la cantidad E9: Lea 4 lanzamientos de un dado y muestre cuantas
de alumnos que tienen nota par y la suma de esas veces salió el número 5.
notas. Solución
Solución clc;clear;
clc;clear; na=4;
n=input('Ingrese la cantidad de alumnos:');%4 con=0;%contador
con=0;%contador for i=1:na % 2 3 4 5
sum=0; dado=input('Ingrese valor del dado:');
for i=1:n % if dado==5
fprintf('\tIngrese nota %d:',i); con=con+1;
nota=input(''); end
if mod(nota,2)==0 end
con=con+1; fprintf('Las veces de 5 es %d\n',con);
sum=sum+nota;
end
end
fprintf('La cantidad de nota par es %d\n',con);
fprintf('La suma de las notas par es %d\n',sum);
E14: Mostrar el promedio de edades de n alumnos. E15: Lea las edades de n alumnos y cuente cuantas
Solución edades fueron pares y cuantas impares.
clc;clear; Solución
n=input('Ingrese la cantidad de alumnos:'); clc;clear;
s=0; n=input('Ingrese la cantidad de alumnos:');
for i=1:n c=0;
e=input('Ingrese la edad:'); for i=1:n
s=s+e; a=input('Ingrese la edad:');
end if mod(a,2)==0
p=s/n; c=c+1;
fprintf('El promedio de edades es: %.2f\n',p); end
end
fprintf('La cantidad de edades pares son:%d\n',c);
fprintf('La cantidad de edades impares son:%d\n',n-c);
break: Interrumpir una iterativa. continue: Cancela todas líneas que están
después de continue dentro de la iterativa.
Sentencia 1; Sentencia 1;
Sentencia 2; Sentencia 2;
break; continue;
Sentencia 3; Sentencia 3;
…… ……
Sentencia n; Sentencia n;
Dado 4:6
Gano con 100 puntos
Expresiones booleanas
Operadores Comparadores
&& y > mayor
|| o >= mayor o igual
~ negación < menor
<=menor o igual
== igual (comparación)
~= diferente
ezplot('sin(1/(x+2)+x^2)*x^0.1',[1,5]);grid;
E1: Hallar todas las raíces aproximadas en el intervalo E2: Hallar los máximos y mínimos.
[1,5]. Solución
Solución clc;clear;a=1;b=5;h=1e-3;
a=1;b=5;h=1e-4; f=inline('sin(1/(x+2)+x^2)*x^0.1');
f=inline('sin(1/(x+2)+x^2)*x^0.1'); for x=a+h:h:b-h
for x=a:h:(b-h) y1=f(x-h);
y1=f(x); y2=f(x);
y2=f(x+h); y3=f(x+h);
%if y1>=0 &&y2<=0 || y1<=0 &&y2>=0 if y2<y1 && y2<y3
if y1*y2<=0 fprintf('minimo=%.3f\n',x)
fprintf('raiz=%.3f\n',x+h/2) end
end if y2>y1 && y2>y3
end fprintf('maximo=%.3f\n',x)
end
end
Ejemplo propuesto
Usando el método de los pasos, halle lo siguiente:
• Hallar la integral aproximada.
• Hallar la longitud de curva.
E5: Mostrar todos los primos que E6: Estime el número pi mediante una
están en el intervalo [a,b] cantidad de términos de la serie:
Ejemplo:
Ingrese a:10
Ingrese b:20
Los primos son: 11 13 17 19
E7: Estime el número pi mediante la E8: Estime el valor de √7mediante la
serie: secuencia:
(𝑖+1)
𝑥 (𝑖) 7
𝑥 = + (𝑖)
2 2𝑥
y con una cantidad de decimales Partiendo de 𝑥 (0)
Problema 7: Calcule el número π= 3.1415926…, a partir de la siguiente serie, usando los n primeros términos.
4 4 4 4 4 4
𝜋= − + − + − +⋯
1 3 5 7 9 11
Problema 10: Dentro de las maravillosas expresiones que se pueden construir en las matemáticas, se tiene la siguiente
𝑥 1
fórmula de recurrencia: 𝑥 = 𝑓(𝑥) = 2 + 𝑥 , que nos permite calcular la √2 usando solamente sumas y divisiones. Lo
interesante de esta expresión es que empieza con un valor de x0 cualquiera, con la cual obtenemos f(x0), la cual viene
a ser x1, luego evalúas f(x1) para obtener x2, luego f(x2) para obtener x3 y así sucesivamente.
Por ejemplo:
X0=5 =>f(x0)=2.7 (el valor de x0=5 es un valor cualquiera diferente de 0)
x1=2.7 =>f(x1)=1.72
x2=1.72=>f(x2)=1.44
…
Observa que el número se va aproximando a √2 = 1.4142 …
Desarrolle un programa que lea como dato de entrada x0 y n, y muestre la √2 después de n iteraciones y compare este
resultado con el valor exacto.
Problema 11: Usando el procedimiento anterior, considerando n iteraciones y partiendo de un x0 cualquiera:
2𝑥 1
Calcule √3, sabiendo que la fórmula de recurrencia es 𝑓(𝑥) = 3 + 𝑥 2
3𝑥 1
Calcule √4, sabiendo que la fórmula de recurrencia es 𝑓(𝑥) = + 𝑥3
4
4𝑥 1
Calcule √5, sabiendo que la fórmula de recurrencia es 𝑓(𝑥) = + 𝑥4
5
Calcule √𝑎 por deducción de las fórmulas anteriores.
Problema 12: En todos los problemas anteriores que usan una serie o una fórmula de recurrencia, se ha usado como
criterio de parada la cantidad de iteraciones. Intente ahora usar el error aparente como criterio de parada, la cual está
definido por:
𝐄𝐫𝐫𝐨𝐫 𝐚𝐩𝐚𝐫𝐞𝐧𝐭𝐞 = |𝐮𝐥𝐭𝐢𝐦𝐚 𝐚𝐩𝐫𝐨𝐱𝐢𝐦𝐚𝐜𝐢ó𝐧 − 𝐩𝐞𝐧ú𝐥𝐭𝐢𝐦𝐚 𝐚𝐩𝐫𝐨𝐱𝐢𝐦𝐚𝐜𝐢ó𝐧|
Entonces las iteraciones se deben realizar hasta que este error sea menor que un error máximo, que previamente se
ha tenido que leer como dato de entrada.