Sunteți pe pagina 1din 8

Informática

Facultad de Ingeniería
UNRC

Práctico 4 – Informática 2013

Estructuras Repetitivas. Instrucción while en MatLab

La estructura repetitiva while (en español mientras) es aquella en la que, el


cuerpo del bucle (acciones),se repite mientras se cumple una determinada
condición.

CONDICIÓN NO

SI

ACCIONES

Cuando se ejecuta la instrucción mientras, lo primero que sucede es que se


evalúa la condición (expresión booleana ). Si el resultado de esta evaluación
es falso, no se toma ninguna acción y el programa continúa en la siguiente
instrucción del bucle. Si el resultado de la condición es verdadero, se ejecuta
el cuerpo del bucle, luego de lo cual se evalúa nuevamente la condición. Este
proceso se repite una y otra vez mientras la expresión booleana sea
verdadera.

Siempre se debe indicar algún mecanismo para terminar un bucle.

Los siguientes ejercicios serán resueltos en MATLAB. En ellos realizar:


- Definición del problema.

-Análisis del problema: - Especificaciones de entrada: Variables donde se


guardan los datos de entrada.
-Especificaciones de salida: Variables donde se
guardan los resultados.
-Diseño del algoritmo: Pseudocódigo o diagrama de flujo.

-Ejecución del algoritmo a mano mediante la prueba de escritorio.


- Codificación en MATLAB.

Ejercicio modelo de estructura repetitiva

Problema
Utilizar MATLAB para construir un archivo de instrucción que permita duplicar una
variable x con valor inicial igual a 1, siempre que su valor sea igual o inferior a 15.

1
Informática
Facultad de Ingeniería
UNRC

Especificaciones de entrada y salida

En el problema planteado el dato de entrada y salida es la variable x. El valor de x no se


ingresa desde teclado sino que se asigna un valor unitario al comienzo del algoritmo.

Diseño del algoritmo: Diagrama de flujo

Inicio

x=1

x<=15 No

Si

x=2*x fin

Diseño del algoritmo: Pseudocódigo

Asignar a x el valor 1.
mientras ,
asignar a x el valor de 2x
fin mientras

Codificación en MATLAB
% EL archivo de instrucción permite comenzando desde un valor unitario
% duplicar el mismo siempre que este nuevo valor sea menor o igual a
% 15.
clear all
x=1;
while x<=15
x=2*x;
disp('x')
disp(x)
end

2
Informática
Facultad de Ingeniería
UNRC

Ejecución en MATLAB
>> duplica

x
2
x
4
x
8
x
16

Ejercicio 1
Codificar en un archivo de instrucción de MATLAB, el ejercicio 10 del práctico 2:
Calcular el valor de la suma de los 10 primeros números naturales
1+2+3+4+……+9+10

Ejercicio 2
En un archivo de instrucción, calcular el cubo de una secuencia de números. Para ello,
es necesario conocer previamente la cantidad de números de dicha secuencia. Mostrar
resultados.
Ejecutar el algoritmo a mano y luego en MATLAB, completando las tablas, cuando la
cantidad de números en la secuencia es cero y para una secuencia de 5 números.
Cantidad de Número o Cubo del número
Nro. Vueltas en el números en la variables de o variable de
ciclo secuencia entrada salida
N Numero cubo
0 0

Cantidad de Número o Cubo del número


Nro. Vueltas en el números en la variables de o variable de
ciclo secuencia entrada salida
N numero cubo
0 5
1
2
3
4
5

3
Informática
Facultad de Ingeniería
UNRC

Ejercicio 3
En un archivo de instrucción, contar cuantos ceros tiene una secuencia de números.
Para ello, es necesario conocer la cantidad de números de dicha secuencia para luego
ingresar la misma.
Ejemplo
Cantidad de Número o Contador de ceros
Nro. Vueltas en el Números en la variables de en la secuencia
ciclo secuencia entrada o variable de salida
N numero contcero
0 8 0
1 2 no se cuenta
2 0 1
3 1 no se cuenta
4 0 2
5 0 3
6 10 no se cuenta
7 15 no se cuenta
8 0 4

Probar el algoritmo a mano y en MATLAB, para los datos de la tabla anterior.

Ejercicio 4
En un archivo de instrucción, dados como datos una cantidad definida de números
enteros, obtener las suma de los números impares y la cantidad de números pares.
Probar el algoritmo a mano y en MATLAB, para los datos de la tabla.
Cantidad de Contador de Acumulador de
números en la Número o pares en la suma de impares
Nro. Vueltas en secuencia variables de secuencia o variable salida
el ciclo entrada o variable de
salida
N numero contpares sumimpar
0 8 0 0
1 2 1 no se suma
2 0 2 no se suma
3 -1 no se cuenta -1
4 3 no se cuenta 2
5 4 3 no se suma
6 10 4 no se suma
7 15 no se cuenta 17
8 5 no se cuenta 22

4
Informática
Facultad de Ingeniería
UNRC

Ejercicio 5
Realizar un archivo de instrucción, que lea un número entero positivo, y calcule el
resultado de la siguiente serie:

Probar el algoritmo a mano y en MATLAB, para N=0, N=4, N=10.


En los ejercicio del 1 al 5, ¿Cuándo se detiene la ejecución del algoritmo?

Ejercicio 6
Codificar en un archivo de instrucción de MATLAB, el ejercicio 9 del práctico 2.

Ejercicio 7
En un archivo de instrucción, calcular el cubo de una secuencia de números positivos.
El programa se detiene cuando se ingresa un número negativo o cero.
Probar el algoritmo a mano y en MATLAB, para los datos de la tabla.

Cubo de numero
Datos o variables
Nro. Vueltas en el o variable de
de entrada
ciclo salida
cubo numero
0 5
1 125 10
2 100 2
3 8 3
4 27 4
5 64 -5
Ejercicio 8
En un archivo de instrucción, calcular la media de un conjunto de notas de alumnos.
Una nota negativa indica el fin del proceso.
Probar el algoritmo a mano y en MATLAB.

En los ejercicio del 6 al 8, ¿Cuándo se detiene la ejecución del algoritmo?

5
Informática
Facultad de Ingeniería
UNRC

Ejercicio 9
En un archivo de instrucción, calcular el cubo de una secuencia de números. El
programa se detiene cuando el operador lo decida.
Nota: Se sugiere que el fin del bucle llegue cuando el operador ingresa un “0”, el
ingreso de un “1”, indica que el proceso continúe.
Probar el algoritmo a mano y en MATLAB, para los datos de la tabla.

Cubo de numero
Datos o variables
Nro. Vueltas en el o variable de Variable de
de entrada
ciclo salida control del ciclo
numero cubo seguir
0 1
1 5 125 1
2 10 100 1
3 -2 -8 1
4 3 27 1
5 -4 -64 0

Ejercicio 10
En un archivo de instrucción leer una secuencia de números enteros y contar cuántos de
ellos son nulos.
El programa se detiene cuando el operador lo decida.
Nota: Se sugiere que el fin del bucle llegue cuando el operador ingresa un “0”, el
ingreso de un “1”, indica que el proceso continúe.
Probar el algoritmo a mano y en MATLAB.

En los ejercicio del 9 al 10, ¿Cuándo se detiene la ejecución del algoritmo

Ejercicio 11
Comparar los ejercicios 2, 7 y 9.
Comparar los ejercicios 3 y 10.

Ejercicio 12 ( ejercicio resuelto para pensar)


Las siguientes funciones, encuentran el número natural más grande t, para el cual la
suma de los primeros números naturales 1+2+3+….+t, es menor o igual a un valor
límite leído por teclado. Comparar ambas funciones.
%{
La función retorna el entero positivo más grande "mayor", cuya suma de
los primeros "i-1" números naturales es menor igual a un número "n"
ingresado a la función como argumento.
%}
function mayor=enteromayor(n)
suma=0;
i=0;
while suma<=n
i=i+1;
suma=suma+i;

end
mayor=i-1;

6
Informática
Facultad de Ingeniería
UNRC

______________________________________________________________________
%{
La función retorna el entero positivo más grande "aux", cuya suma de
los primeros "aux" números naturales es menor igual a un número n
ingresado a la función como argumento.
%}
function mayor=enteromayor(n)
suma=0;
i=0;
while suma<=n
aux=i;
i=i+1;
suma=suma+i;

end
mayor=aux;

Ejercicio 13
Realizar un archivo de función, que calcule cual es el primer valor de t, para el cual la
suma de los primeros términos de la siguiente serie sea mayor a 3.

¿En qué difiere del ejercicio 12?

Ejercicio 14
Dados dos números enteros positivos, realizar un programa en una archivo de función,
que calcule su cociente y su resto, sin utilizar el operador división (/). Sólo se pueden
realizar sumas y restas.
El algoritmo es el siguiente:
Sean dos números m y n. El método para obtener el resto y el cociente, es por restas
sucesivas. Consiste en restar sucesivamente el divisor del dividendo hasta obtener un
resultado menor que el divisor, que será el resto de la división; el número de restas
efectuada es el cociente. Por ejemplo:

50 13 50 - 13=37 c=1
11 3 37 - 13=24 c=2
24 - 13=11 c=3
Como 11 es menor que el divisor 13, se terminan las restas sucesivas y 11 es el resto, y
3 (número de restas) el cociente.

7
Informática
Facultad de Ingeniería
UNRC

Problemas Propuestos

Aproximación al número pi
Escribir un programa en un archivo de función, que calcule la siguiente expresión:

Ejecutar la función para argumentos de entrada m=10, m=1000 y m=10000. Comparar


resultados con el número .

Trayectoria de un cohete
Se está diseñando un cohete pequeño para medir las fuerzas de corte del viento en las
inmediaciones de tormentas. Antes de iniciar las pruebas, los diseñadores están creando
una simulación de la trayectoria del cohete, y han deducido la siguiente ecuación que,
según creen, puede predecir el desempeño del cohete, donde t es el tiempo transcurrido
en segundos:
altura = 60 + 2.13t2 - 0.0013t4 + 0.000034t4.751
La ecuación, da la altura sobre el suelo en el instante t. El primer término (60) es la
altura en pies sobre el suelo de la punta del cohete.
Escribir un archivo de instrucción, para calcular y mostrar el tiempo y la altura del
cohete desde t=0 hasta el instante en que toque el suelo, en incrementos de 2 segundos.
Si el cohete no ha tocado el suelo en 100 segundos, mostrar valores sólo hasta t = 100 s.

Secuencia de Fibonacci
Secuencia de Fibonacci: 0,1,1,2,3,5,8,13,21,34……….

Primer Término: 0
Segundo Término:1
Tercer término: Primero + Segundo
Cuarto término: Segundo + Tercero
Y así sucesivamente.
Realizar una función que retorne el último elemento de la secuencia de Fibonacci. El
último elemento deberá ser menor a un valor pasado a la función como argumento.

Ejemplo
Si el escalar ingresado es 25, la secuencia es la siguiente 0 1 1 2 3 5 8 13 21. La función
retorna el número 21.

S-ar putea să vă placă și