Está en la página 1de 17

Estructuras Repetitivas:

SENTENCIA WHILE EN MATLAB


INFORMTICA T2
INGENIERA INDUSTRIAL
JORNADA ESPECIAL

Significado
La sentencia while (mientras que) se usa para
que MATLAB repita un bloque de
instrucciones mientras que se cumpla una
condicin dada, la cual es evaluada cada que
se termina la ultima instruccin del bloque.

SINTAXIS
En MATLAB, la forma general de representar
un ciclo es la siguiente:
while condicion
Bloque de instrucciones que se repiten
mientras se cumpla la condicin.

end

El while en la prctica es usado para realizar


procesos que impliquen una secuencia
repetitiva de instrucciones
Un ejemplo real puede ser que yo subo una
escalera mientras haya escalones para subir,
cada que subo un escaln evalo si hay mas
escalones, en el momento que no hayan
escalones no subo mas. Es decir paro el ciclo,
si lo furamos a codificar seria de la siguiente
manera:

while (haya escalones)


subir un escaln
end

Ejemplos aplicados
Crear un programa en MATLAB que imprima los
nmeros desde cero hasta un numero ingresado
por el usuario.
En este ejemplo debemos tener en cuenta que
instruccin debe repetirse?, esta es, imprimir un
numero, ahora debemos conocer hasta cuando se
realiza la condicin?, para nuestro caso es hasta
que MATLAB llegue hasta el numero ingresado por
el usuario. Tambin debemos saber en donde
comenzaremos?, el problema nos dice que en cero.

Como nos dicen que imprimir los nmeros desde


cero hasta un numero ingresado por el usuario,
entenderemos que el ciclo se incrementa de uno en
uno.
La solucin queda de la siguiente forma:
n=input(Ingrese un nmero mayor que cero: );
i=0; % esto porque el problema nos dice que comencemos en cero. Variable contadora
while(i<=n) % esta es la condicin que debe cumplirse para continuar el ciclo
disp(i); % instruccin 1
i=i+1; % instruccin 2, conocida como incremento del contador
end

Incremento del contador diferente


a uno
% Escribe los enteros pares de 2 a 10
clc
i=2;
while i<=10
disp(i);
i=i+2;
end

Debemos tener en cuenta que el bloque de


instrucciones que va dentro del while pueden
ser instrucciones de cualquier tipo, incluidas:
sentencias if,
incrementos,
declaracin de variables,
lectura de valores ingresados por el usuario,
muestra de mensajes, o ,
incluso otros while.

Ejemplo
Realizar DFD y un programa script en MATLAB
que sume una serie de nmeros ingresados
por el usuario mientras que el nmero
ingresado sea diferente de cero.

D.F.D
inicio

inicio

n1
Sum 0
N <>0 ?

NO
n<>0?

SI
Ingrese un numero,
para terminar digite
CERO

La suma es, Sum

n
Sum Sum + n
inicio
fin

En MatLab
% programa que suma nmeros mientras no sean 0
n=1;
sumatoria=0;
while(n ~= 0)
n=input('ingrese un numero, para terminar digite 0:');
sumatoria=sumatoria + n;
end
disp(La suma de los nmeros ingresados es: );
disp(sumatoria);

Ejercicio
Escribir un programa llamado mifactorial que
calcule el factorial de un nmero n!, tenga en
cuenta que n debe ser mayor o igual a 0 y que
0!=1 y 1!=1.

Ejemplo
DADO EL SIGUIENTE VECTOR, HACER UN PROGRAMA QUE INDIQUE
EN QUE POSICIONES SE ENCUENTRAN NUMEROS NEGATIVOS
V=[1, 2, 25, -12, -8, 32, -4, 88, -7,-21 ]
SOLUCIN:
V=[1, 2, 25, -12, -8, 32, -4, 88, -7,-21 ];
i=1;
while(i<=length(V))
if(V(i)<0)
disp('En la siguiente posicin hay un numero negativo');
disp(i);
end
i=i+1;
end

Ejemplo con ndices en vectores


Crear un programa que lea un numero y luego cree un vector
con los nmeros pares desde 1 hasta el numero.
SOLUCIN:
n=input('ingrese un numero: ');
i=1;
j=1;
while(i <= n)
if(mod(i,2)==0)
pares(j)=i;
j=j+1;
end
i=i+1;
end
disp(pares);

Ejemplo While con ndices de Vectores


Crear un programa que realice lo siguiente:
Una empresa le paga a sus empleados una comisin segn el valor
de las ventas realizadas en el mes, la comisin se paga de la
siguiente manera: si vendi 400 millones o menos le paga 1% de
comisin, si vendi mas de 400 millones y menos de 1000 le paga
3%, si vendi 1000 o mas le paga 5%.

Dado un vector con las ventas de los 10 vendedores de la empresa


realizar un programa usando ciclos que presente una tabla con dos
columnas, la primera columna contendr el valor de las ventas y la
segunda el valor de la comisin.
Luego realizar un grafico de ventas contra comisiones:
ventas=[2000 5000 100 800 300 1000 2200 350 50 1300]

clc; % limpia pantalla


clear all; % borra variables
ventas=[2000 5000 100 800 300 1000 2200 350 50 1300]; % vector de ventas
i=1; % se encargar de recorrer todas las posiciones del vector ventas
while(i <= length (ventas))
if(ventas(i)<=400)
comisiones(i)=ventas(i).*0.01;
else
if(ventas(i)>400 && ventas(i)<1000)
comisiones(i)=ventas(i).*0.03;
else
comisiones(i)=ventas(i).*0.05;
end
end
i=i+1;
end
tabla=[ventas' comisiones'];
disp('las comisiones por venta son: ');
disp(tabla);
plot(ventas , comisiones, b*)

También podría gustarte