4.1 Programacion y Algo
4.1 Programacion y Algo
alturas=[63 78 65 45 75];
El comando find encuetra los indices de los elementos que satisfacen un criterio
aceptado=find(alturas>=66)
aceptado = 1×2
2 5
Si se quiere saber cuáles son los numero o los valores reales de los elementos utilizamos la siguiente
expresión
alturas(aceptado)
ans = 1×2
78 75
prompt =
'digite el valor '
x=input(prompt)
x = 3
el valor es incorrecto
Ejemplo:
1
Defina la matriz y encuentre los números índice de los elementos en la columna 1 que sean mayores que 66.
Entonces se encuentra cuáles de dichos elementos en la columna 2 son también mayores que o iguales a 18 y
menores que o iguales a 35.
dat=[63,18;67,19;65,18;72,20;69,36;78,34;75,12]
dat = 7×2
63 18
67 19
65 18
72 20
69 36
78 34
75 12
elem = 3×1
2
4
6
disp('Los siguientes son los datos que cumplen los criterios exigidos: ')
Los siguientes son los datos que cumplen los criterios exigidos:
dat(elem)
ans = 3×1
67
72
78
if enunciados de comparacion
end
count=0;
promt='ingrese el valor de g'
promt =
'ingrese el valor de g'
g=input(promt)
g = -1
if g<50
count=count+1
disp(count)
end
count = 1
1
2
El if simple le permite ejecutar una serie de enunciados si una condición es verdadera y saltar dichos pasos
si la condición es falsa. La cláusula else le permite ejecutar un conjuto de eneunciados si la comparación es
verdaderea y un conjunto de enunciados si la comparación es falsa.
k=input(promt)
k = 3
if k>0
y = log(g)
else
disp('la entrada a la función log debe ser positiva')
end
y = 0.0000 + 3.1416i
la estructura elseif
cuando se anida varios niveles de enunciados if/esle, puede ser difícil determinar cuáles expresiones lógicas
deben ser verdaderas (o falsas) con la finalidad de ejecutar cada conjutno de enenciados.
Racionales
3
m='ingrese la edad';
age=input(m)
age = 80
if age < 16
disp('Lo siento eres menor de edad')
elseif age < 18
disp('Puedes obtener licencia de conductor provisional')
elseif age<70
disp('Tu liciencia de conducir es estandar')
else
disp('los mayores de 70 requieren una licencia especial')
end
se usa con frecuencia cuando existe una serie de opciones de ruta de programación para una variable dada,
dependiendo de su valor. Es similar a la de if/else/elseif
case opción1
código a ejecutar
4
case opción_n
codigo a ejecutar
otherwise
codigo a ejecutar
end
Se usan cuando necesita repetir un conjunto de instrucciones muchas una cantidad definida. MATLAB soporta
dos tipos diferentes de bucles: el bucle for y el bucle while.
BUCLE FOR:
su estructura es simple. la primera línea identifica el bucle y un índice que es su número que cambia en cada
paso a través del bucle. Después de la línea de identificación viene el grupo de comandos que se quiere
ejecutar.
comandos a ejecutar
end
for k=[1,3,7,10,20]
k
end
k = 1
k = 3
k = 7
k = 10
k = 20
otra ejemplo
for k=1:7
a=2*k
end
a = 2
a = 4
5
a = 6
a = 8
a = 10
a = 12
a = 14
una de las formas más comunes de usar un bucle for es para definir una nueva matriz.
for k= 1:5
for l= 1:5
a(k,l)= k^2
end
end
a = 1
a = 1×2
1 4
a = 1×3
1 4 9
a = 1×4
1 4 9 16
a = 1×5
1 4 9 16 25
SUGERENCIA:
La mayoría de cómputo no tiene la habilidad de MATLAB para manipular matrices fácilmente: por tanto, se
apoyan en bucles similares al recién presentado prar definir arreglos, Sería mas fácil crear el vector a en
MATLAB de la siguiente forma:
k=1:5
k = 1×5
1 2 3 4 5
a=k.^2
a = 1×5
1 4 9 16 25
Bucles While
son similares a los bucles for. La gran diferencia es la forma en que MATLAB decide cuántas veces repetir el
bucle. Los bucles while continúan hasta que se satisfacen algún criterio.
while criterio
comandos a ejecutar
end
k=0;
while k<3
k=k+1
end
6
k = 1
k = 2
k = 3
Genralmente se interpre que mientras se cumple la sentencia, ejecuta una serie de instrucciones u
operaciones
puntos= [79,45,98,97];
cont=0;
k=0;
while k<4
k=k+1
if puntos (k)>90
cont=cont+1
end
end
%disp (cont)
Break y continue
m =
'ingrese un valor mayor que cero'
n=0;
while (n<10)
n=n+1;
a=input(m)
if (a<=0)
disp('debe ingresar un número positivo')
disp('Este programa terminará')
break
end
disp('El log natural de este número es ')
disp(log(a))
end
a = 3
El log natural de este número es
1.0986
a = 6
El log natural de este número es
1.7918
a = 2
El log natural de este número es
0.6931
a = 6
El log natural de este número es
1.7918
a = 8
El log natural de este número es
2.0794
7
a = 5
El log natural de este número es
1.6094
a = 6
El log natural de este número es
1.7918
a = -9
debe ingresar un número positivo
Este programa terminará
El comando continue es similar break; sin embargo, en lugar de terminar el bucle, el programa sólo salta el
paso al siguiente:
m =
'ingrese un valor mayor que cero'
n=0;
while (n<10)
n=n+1;
a=input(m)
if (a<=0)
disp('debe ingresar un número positivo')
disp('Intentalo de nuevo')
continue
end
disp('El log natural de este número es ')
disp(log(a))
end
a = -3
debe ingresar un número positivo
Intentalo de nuevo
a = -6
debe ingresar un número positivo
Intentalo de nuevo
a = -8
debe ingresar un número positivo
Intentalo de nuevo
a = 8
El log natural de este número es
2.0794
a = 8
El log natural de este número es
2.0794
a = 9
El log natural de este número es
2.1972
a = 6
El log natural de este número es
1.7918
a = 9
El log natural de este número es
2.1972
a = 2
El log natural de este número es
0.6931
a = 6
El log natural de este número es
8
1.7918