Sunteți pe pagina 1din 21
2 ÍNDICE Fundamentos de Informática E.U.P. Universidad de Sevilla (I.T. Diseño Industrial) Concepto de Algoritmo
2
ÍNDICE
Fundamentos de Informática
E.U.P. Universidad de Sevilla
(I.T. Diseño Industrial)
Concepto de Algoritmo
Datos: Variables y Constantes
Tipo de datos compuestos: Vectores y Matrices
Representación de Algoritmos
Diagrama de Flujo, Pseudo código
Lenguajes de programación: MATLAB
IntroducciIntroduccióónn aa lala AlgorAlgoríítmicatmica
yy aa lala ProgramaciProgramacióónn enen MATLABMATLAB
Programación Estructurada
Estructura Secuencial
Estructura Selectiva
Simple (If)
Doble (If-else)
Múltiple
Estructura Repetitiva
While (Mientras)
For (Para)
1
3
4
EJEMPLO DE ALGORITMO INTUITIVO:
CONCEPTO DE ALGORITMO (1)
RECETA DE COCINA
INTUITIVO: CONCEPTO DE ALGORITMO (1) RECETA DE COCINA Calabacines rehogados Un algoritmo algoritmo es un conjunto
INTUITIVO: CONCEPTO DE ALGORITMO (1) RECETA DE COCINA Calabacines rehogados Un algoritmo algoritmo es un conjunto
INTUITIVO: CONCEPTO DE ALGORITMO (1) RECETA DE COCINA Calabacines rehogados Un algoritmo algoritmo es un conjunto
INTUITIVO: CONCEPTO DE ALGORITMO (1) RECETA DE COCINA Calabacines rehogados Un algoritmo algoritmo es un conjunto
INTUITIVO: CONCEPTO DE ALGORITMO (1) RECETA DE COCINA Calabacines rehogados Un algoritmo algoritmo es un conjunto
INTUITIVO: CONCEPTO DE ALGORITMO (1) RECETA DE COCINA Calabacines rehogados Un algoritmo algoritmo es un conjunto
INTUITIVO: CONCEPTO DE ALGORITMO (1) RECETA DE COCINA Calabacines rehogados Un algoritmo algoritmo es un conjunto
INTUITIVO: CONCEPTO DE ALGORITMO (1) RECETA DE COCINA Calabacines rehogados Un algoritmo algoritmo es un conjunto

Calabacines rehogados

Un algoritmoalgoritmo es un conjunto de acciones que determinandeterminan la secuencia de los pasos a seguir para resolver un problema específico. Otras definiciones:

para resolver un problema específico. Otras definiciones: Conjunto de reglas en cierto orden para resolver un
para resolver un problema específico. Otras definiciones: Conjunto de reglas en cierto orden para resolver un
para resolver un problema específico. Otras definiciones: Conjunto de reglas en cierto orden para resolver un
para resolver un problema específico. Otras definiciones: Conjunto de reglas en cierto orden para resolver un

Conjunto de reglas en cierto orden para resolver un problema. Una forma de describir la solución de un problema en pasos sucesivos.

1. Pelar los calabacines y cortar en rodajas

2. Añadir sal a los calabacines

3. Poner los calabacines en una sartén con aceite a medio fuego

los calabacines en una sartén con aceite a medio fuego 4. Mover los calabacines hasta que
los calabacines en una sartén con aceite a medio fuego 4. Mover los calabacines hasta que
los calabacines en una sartén con aceite a medio fuego 4. Mover los calabacines hasta que
los calabacines en una sartén con aceite a medio fuego 4. Mover los calabacines hasta que

4. Mover los calabacines hasta que estén trasparentes

5. Sacar de la sartén y escurrir el aceite

6. Añadir queso parmesano rallado; sino se dispone de parmesano, utilizar queso curado.

Los pasos de un algoritmo deben estar definidos:

curado. Los pasos de un algoritmo deben estar definidos: con precisi precisi ó ó n n
curado. Los pasos de un algoritmo deben estar definidos: con precisi precisi ó ó n n
curado. Los pasos de un algoritmo deben estar definidos: con precisi precisi ó ó n n
curado. Los pasos de un algoritmo deben estar definidos: con precisi precisi ó ó n n

con precisiprecisióónn, no deben existir ambigüedades que den origen a elegir una decisión equivocada. con un orden estricto. La alteración de tal orden conduciría a que el algoritmo no resolviera el problema correctamente

 

Cualquier error no funcionará. Pensar ej. Elementos del algoritmo

error no funcionará. Pensar ej. Elementos del algoritmo COCINA Ingredientes Ingredientes intermedios PROGRAMACIÓN
error no funcionará. Pensar ej. Elementos del algoritmo COCINA Ingredientes Ingredientes intermedios PROGRAMACIÓN

COCINA Ingredientes Ingredientes intermedios

ej. Elementos del algoritmo COCINA Ingredientes Ingredientes intermedios PROGRAMACIÓN Entrada Variables, Constantes
ej. Elementos del algoritmo COCINA Ingredientes Ingredientes intermedios PROGRAMACIÓN Entrada Variables, Constantes

PROGRAMACIÓN Entrada Variables, Constantes

Acciones Orden de ejecución de las acciones

Sentencias Secuencialidad

Resultado (Plato DE calabacines)

Salida

5 6 EJEMPLO DE ALGORITMO INTUITIVO: EJEMPLO DE ALGORITMO INTUITIVO: ¿Qué pasa cuando no se
5
6
EJEMPLO DE ALGORITMO INTUITIVO:
EJEMPLO DE ALGORITMO INTUITIVO:
¿Qué pasa cuando no se especifica bien un algoritmo?
¿Qué pasa cuando no se especifica bien un algoritmo?
Un ejemplo de algoritmo: ¿está bien especificado?
El algoritmo del ejemplo anterior está mal especificado:
1. Sal de casa
2. Ve a la tienda y pide dulces.
2. Ve a la tienda y pide dulces.
3. Si la tienda no tiene, vuelve al
punto 2
3. Si la tienda no tiene, vuelve al
punto 2
4. Vuelve a casa.
OK
Va a ser
que no
7
8
al punto 2 4. Vuelve a casa. OK Va a ser que no 7 8 EJEMPLO

EJEMPLO DE ALGORITMO INTUITIVO:

OK Va a ser que no 7 8 EJEMPLO DE ALGORITMO INTUITIVO: ¿Qué pasa cuando no
OK Va a ser que no 7 8 EJEMPLO DE ALGORITMO INTUITIVO: ¿Qué pasa cuando no
OK Va a ser que no 7 8 EJEMPLO DE ALGORITMO INTUITIVO: ¿Qué pasa cuando no

¿Qué pasa cuando no se especifica bien un algoritmo?

El algoritmo bien especificado sería el siguiente:

El algoritmo bien especificado sería el siguiente: Conceptos básicos: ¿Qué pasa cuando no se especifica bien

Conceptos básicos:

bien especificado sería el siguiente: Conceptos básicos: ¿Qué pasa cuando no se especifica bien un algoritmo?
bien especificado sería el siguiente: Conceptos básicos: ¿Qué pasa cuando no se especifica bien un algoritmo?
bien especificado sería el siguiente: Conceptos básicos: ¿Qué pasa cuando no se especifica bien un algoritmo?

¿Qué pasa cuando no se especifica bien un algoritmo?

Resultado de la ejecución del algoritmo bien especificado:

1. Sal de casa Ahora sí que le has cogido el truco 2. Ve a
1. Sal de casa
Ahora sí que
le has cogido
el truco
2. Ve a la tienda más cercana que no
hayas visitado y pide dulces.
OK
3. Si la tienda no tiene y tú no estás
cansado, vuelve al punto 2
4. Vuelve a casa
tú no estás cansado, vuelve al punto 2 4. Vuelve a casa 2. Ve a la
tú no estás cansado, vuelve al punto 2 4. Vuelve a casa 2. Ve a la
2. Ve a la tienda y pide dulces. 3. Si la tienda no tiene, vuelve
2. Ve a la tienda y pide dulces.
3. Si la tienda no tiene, vuelve
al punto 2
9 10 EJEMPLOS DE ALGORITMOS CONOCIDOS EJEMPLO DE ALGORITMO DIFICIL Ejemplo 1: descubrir si un
9
10
EJEMPLOS DE ALGORITMOS CONOCIDOS
EJEMPLO DE ALGORITMO DIFICIL
Ejemplo 1: descubrir si un número es impar.
Descubrir si un número es primo: a partir de su definición
1.
Leer el número y guardarlo en num.
1. Leer numero
2.
Guardo en k el valor 2.
2. ¿rem(num,2) == 0? (es decir, ¿es num divisible por 2?)
3.
bucle
a) SI: entonces ES PAR
¿Es num divisible por k?
(es decir, ¿rem(num,k) == 0? )
4.
5.
SI: no es primo. Fin del algoritmo.
b) NO: entonces ES IMPAR
6.
NO: Aún num puede ser un número primo. Continuar con paso siguiente.
Ejemplo 2: Convertir de decimal a binario. Hay
que dividir por 2 mientras el cociente sea >= 2
Incrementar k en 1.
7.
¿Es k mayor o igual que num?
8.
9.
SI: es primo. Fin del algoritmo.
1.
Leer numero decimal y guardarlo en D
10.
NO: Continuar con el paso 3 (repetir del 3 al 10).
bucle (repetición)
11.
2.
finbucle
UN ALGORITMO CONCRETO NO TIENE POR QUÉ SER ÓPTIMO
3. Hallo el resto de D/2, es decir, R=rem(D,2). Imprimir R (digito binario)
4. Hallo el cociente: C=D/2 (me quedo con la parte entera)
Ejemplo: Mejora en el algoritmo anterior: sólo dividir por 2 e impares
¿Más mejoras? Puede que hubiera otras posibles mejoras.
5. ¿Es C mayor o igual que 2?
Elementos del algoritmo
6. Sí: Guardar C en D (D=C). Continuar con el paso 2 (repetir del 2 al 7).
7. No: Imprimir C (digito binario). Fin del algoritmo.
8.
finbucle
Datos de entrada, variables y constantes (Ej: num, k)
Sentencias: manipulan los datos (Ej: rem(num,k))
Orden de ejecución de las Sentencias (si el orden está mal error lógico)
Salida (por pantalla o datos de salida)
11
12
lógico) Salida (por pantalla o datos de salida) 11 12 CONCEPTO DE ALGORITMO (2) Componentes informáticas

CONCEPTO DE ALGORITMO (2)

o datos de salida) 11 12 CONCEPTO DE ALGORITMO (2) Componentes informáticas de un algoritmo: proceso
o datos de salida) 11 12 CONCEPTO DE ALGORITMO (2) Componentes informáticas de un algoritmo: proceso
o datos de salida) 11 12 CONCEPTO DE ALGORITMO (2) Componentes informáticas de un algoritmo: proceso

Componentes informáticas de un algoritmo:

proceso (sentencias)

datos de entrada

de un algoritmo: proceso (sentencias) datos de entrada datos de salida ( resultados) . Lenguaje para
de un algoritmo: proceso (sentencias) datos de entrada datos de salida ( resultados) . Lenguaje para
de un algoritmo: proceso (sentencias) datos de entrada datos de salida ( resultados) . Lenguaje para
de un algoritmo: proceso (sentencias) datos de entrada datos de salida ( resultados) . Lenguaje para

datos de salida (resultados).

Lenguaje para expresarlo (SINTAXIS). Ej: MATLAB

ALGORITMO ALGORITMO
ALGORITMO ALGORITMO
ALGORITMO ALGORITMO

ALGORITMOALGORITMO

ALGORITMO ALGORITMO
ALGORITMO ALGORITMO
ALGORITMO ALGORITMO
ALGORITMO ALGORITMO
DATOSDATOS DEDE ENTRADAENTRADA PROCESAMIENTOPROCESAMIENTO RESULTADOSRESULTADOS LENGUAJELENGUAJE PANTALLAPANTALLA
DATOSDATOS DEDE ENTRADAENTRADA
PROCESAMIENTOPROCESAMIENTO
RESULTADOSRESULTADOS
LENGUAJELENGUAJE
PANTALLAPANTALLA
TECLADOTECLADO
(SINTAXIS)(SINTAXIS)
ARCHIVOARCHIVO
ARCHIVOARCHIVO
(SINTAXIS)(SINTAXIS) ARCHIVOARCHIVO ARCHIVOARCHIVO CONCEPTO DE ALGORITMO (3) La sintaxis consta de un

CONCEPTO DE ALGORITMO (3)

ARCHIVOARCHIVO ARCHIVOARCHIVO CONCEPTO DE ALGORITMO (3) La sintaxis consta de un conjunto de palabras y signos
ARCHIVOARCHIVO ARCHIVOARCHIVO CONCEPTO DE ALGORITMO (3) La sintaxis consta de un conjunto de palabras y signos
ARCHIVOARCHIVO ARCHIVOARCHIVO CONCEPTO DE ALGORITMO (3) La sintaxis consta de un conjunto de palabras y signos

La sintaxis consta de un conjunto de palabras y signos reservados que tienen una funcionalidad específica. Son comandos, nombres de variables y caracteres especiales del lenguaje de programación que usemos.

especiales del lenguaje de programación que usemos. Ej: la palabra ans se corresponde con una variable
especiales del lenguaje de programación que usemos. Ej: la palabra ans se corresponde con una variable
especiales del lenguaje de programación que usemos. Ej: la palabra ans se corresponde con una variable
especiales del lenguaje de programación que usemos. Ej: la palabra ans se corresponde con una variable
especiales del lenguaje de programación que usemos. Ej: la palabra ans se corresponde con una variable
especiales del lenguaje de programación que usemos. Ej: la palabra ans se corresponde con una variable
especiales del lenguaje de programación que usemos. Ej: la palabra ans se corresponde con una variable
especiales del lenguaje de programación que usemos. Ej: la palabra ans se corresponde con una variable

Ej: la palabra ans se corresponde con una variable creada automáticamente por MATLAB.

Ej: la palabra who se corresponde con un comando de MATLAB que sirve para conocer los nombres de las variables creadas hasta ese momento.

Ej: la palabra disp() se corresponde con el nombre de una función de MATLAB que sirve para mostrar datos por pantalla.

Ej: el signo % se utiliza para añadir comentarios que MATLAB no interpretará como código a ejecutar.

13 14 REPRESENTACIÓN DE LOS ALGORITMOS (1) REPRESENTACIÓN DE LOS ALGORITMOS (1) PSEUDOCÓDIGO: Existen diversas
13
14
REPRESENTACIÓN DE LOS ALGORITMOS (1)
REPRESENTACIÓN DE LOS ALGORITMOS (1)
PSEUDOCÓDIGO:
Existen diversas herramientas para representar un algoritmo:
Lenguajes de descripción de algoritmos:
Diagramas de Flujo
Pseudocódigo
Lenguajes de implementación de algoritmos:
Son los lenguajes de programación, entre los que se
encuentra el de MATLAB
(otros ejemplos: C, JAVA,PHP,Perl,Javascript,
)
Es una mezcla de lenguaje de programación y
español (o cualquier otro idioma). Lo importante es
entender el algoritmo y comprobar que sea
correcto.
La SINTAXIS usada no es tan importante por
tratarse de un lenguaje informal.
Ventajas: El lenguaje está cercano a nuestro
idioma. Fácil comprensión del código.
Desventaja: No es ejecutable directamente en
un ordenador.
15
16
REPRESENTACIÓN DE LOS ALGORITMOS (1)
REPRESENTACIÓN DE LOS ALGORITMOS (2)
PSEUDOCÓDIGO (Ejemplo):
DIAGRAMA DE FLUJO:

1. ALGORITMO Problema1

2. ENTRADA a, b, c SALIDA 3. p, s 4. LEE a 5. LEE b
2.
ENTRADA
a, b, c
SALIDA
3.
p, s
4.
LEE a
5.
LEE b
6.
LEE c
7.
p ←←←← (a + b + c) / 2
s ←←←← sqrt ( p * (p-a) * (p-b) * (p-c) )
8.
9.
ESCRIBE p , s

10. FIN

Es un lenguaje gráfico que sirve para expresar la solución del algoritmo. La SINTAXIS usada sí es importante. Ventajas: Muy gráfico. Permite entender de un vistazo la solución algorítmica. Desventajas:

de un vistazo la solución algorítmica. Desventajas: Ocupa mucho espacio. No es ejecutable en un ordenador.
de un vistazo la solución algorítmica. Desventajas: Ocupa mucho espacio. No es ejecutable en un ordenador.
de un vistazo la solución algorítmica. Desventajas: Ocupa mucho espacio. No es ejecutable en un ordenador.
de un vistazo la solución algorítmica. Desventajas: Ocupa mucho espacio. No es ejecutable en un ordenador.
de un vistazo la solución algorítmica. Desventajas: Ocupa mucho espacio. No es ejecutable en un ordenador.
de un vistazo la solución algorítmica. Desventajas: Ocupa mucho espacio. No es ejecutable en un ordenador.

Ocupa mucho espacio. No es ejecutable en un ordenador.

de un vistazo la solución algorítmica. Desventajas: Ocupa mucho espacio. No es ejecutable en un ordenador.
de un vistazo la solución algorítmica. Desventajas: Ocupa mucho espacio. No es ejecutable en un ordenador.
17 18 REPRESENTACIÓN DE LOS ALGORITMOS (2) REPRESENTACIÓN DE LOS ALGORITMOS (3) DIAGRAMA DE FLUJO
17
18
REPRESENTACIÓN DE LOS ALGORITMOS (2)
REPRESENTACIÓN DE LOS ALGORITMOS (3)
DIAGRAMA DE FLUJO (Ejemplo):
LENGUAJE DE PROGRAMACIÓN:
ALUMNO INTERESADO EN HACER
EVALUACIÓN ALTERNATIVA
ALUMNO INTERESADO EN HACER
SÓLO EVALUACIÓN CLÁSICA
NO
EX. PARCIAL BLOQUE TEMÁTICO 1 >=3.5
SI
NO
EX. PARCIAL BLOQUE TEMÁTICO 2 >=3.5
SI
NO
EVALUACIÓN BLOQUE TEMÁTICO 3 >=3.5
Es un lenguaje PROCESABLE POR EL
ORDENADOR que sirve para expresar el código del
algoritmo.
La SINTAXIS usada sí es MUY importante.
Ventaja: Es ejecutable en un ordenador.
Desventajas:
SI
NOTA FINAL= (Nota Blq 1 * 0.15) + (Nota Blq 2 * 0.6)+ (Nota Blq 3*0.25)
Evaluación Clásica
SI
NO
Nota FINAL >=5
Un único examen en las
convocatorias oficiales
APROBADO,
(60% Bloque 2)+ (40% Bloques 1 y 3)
NOTABLE,
SOBRESALIENTE
SI
NO
Nota FINAL >=5
SUSPENSO
La sintaxis suele estar en inglés, pero es fácil
acostumbrarse (son sólo un conjunto limitado de
palabras reservadas).
La sintaxis es estricta. Hay que aprenderla
bien, y también aprender a detectar los errores.
APROBADO,
NOTABLE,
SOBRESALIENTE
19
20
Introducción a la programación imperativa (1)
REPRESENTACIÓN DE LOS ALGORITMOS (3)
Hay dos grandes “paradigmas de la programación”:
LENGUAJE DE PROGRAMACIÓN (Ejemplo: MATLAB)
function result = negativo()
img1=imread('foto.jpg');
img2=img1
Programación Imperativa (es la más básica y la que aprenderemos en
nuestro curso)
Programación Orientada a Objetos (es más avanzada, y hace uso de la
programación imperativa)
[numfil,numcol,canales]=size(img2);
image(img1);
for i=1:numfil
for j=1:numcol
for k=1:canales
img2(i,j,k)= 255 - img1(i,j,k);
img2(i,j,k)= 255 - img1(i,j,k);
img2(i,j,k)= 255 - img1(i,j,k);
end
end
end
figure
En cualquiera de los dos paradigmas el ordenador sólo
reconoce el lenguaje máquina (lenguaje ensamblador).
Las programadores tienen dificultades para trabajar con el
lenguaje máquina por estar muy cercano a la arquitectura del
ordenador (CPU, Sistema Operativo,etc.).
Solución: lenguajes de programación de alto nivel
(Ej: lenguaje C, MATLAB, JAVA,…)
image(img2)
imwrite (img2,imagen_resultante.jpg);
end
Pueden sustituir varias instrucciones del lenguaje máquina por una
sola instrucción de un lenguaje más cercano al lenguaje matemático
de fácil compresión para el programador Más fácil desarrollo y
mantenimiento del software.
No es necesario conocer el hardware del ordenador Portabilidad
del software.
El alumno puede seguir asistiendo a clases,
pero ya no tiene la opción de superar
la asignatura por evaluación alternativa
21 22 Introducción a la programación imperativa (2) Introducción a la programación imperativa (3) Código
21
22
Introducción a la programación imperativa (2)
Introducción a la programación imperativa (3)
Código ensamblador
Código lenguaje MATLAB
MOV R3, [R4]
; R3  variable2
variable3 = variable2 + 5;
ADD R3, 5
; R3  variable2 + 5
MOV [R5], R3
; variable3  R3
Compilar: mediante un programa llamado compilador se genera un
fichero ejecutable a partir de un fichero con código fuente escrito en
un lenguaje de alto nivel. Ej: lenguaje C.
Interpretar: mediante un programa llamado intérprete se traduce
sentencia a sentencia (instrucción a instrucción) y a continuación se
ejecuta el código de la sentencia traducida. Ej: MATLAB es un
lenguaje interpretado (aunque también permite compilar).
Ventajas/desventajas:
Es necesario un proceso de traducción de
lenguaje en alto nivel al lenguaje máquina
(lenguaje ensamblador) Traducción
Dos posibilidades de traducción de un programa
escrito en un lenguaje de alto nivel:
Compilar el código
Interpretar el código
La compilación permite la ejecución más rápida de programas, da
la posibilidad de optimizar código, y hace la aplicación
independiente del compilador.
Pero tiene la desventaja de que el fichero ejecutable final ocupa
más espacio (al ser código máquina), y además es más difícil
depurar errores.
La interpretación ahorra compilación, ocupa menos tamaño,
facilita la portabilidad entre sistemas operativos, y la depuración de
errores sintácticos es más fácil porque sólo te da el primero que
encuentra (hasta que es depurado y entonces te da el siguiente
error, si lo hay).
Pero tiene la desventaja de depender del intérprete para ejecutarse.
23
24
DATOS: VARIABLES Y CONSTANTES
DATOS: VARIABLES Y CONSTANTES
DATO es cualquier objeto manipulable por el
ordenador y que contiene información
Los valores que pueden tomar las variables y las constantes pertenecen
a un TIPO (tipo de dato).
Así, por ejemplo existen tipos:
Numéricos: enteros, reales, etc.
Caracteres: contienen texto
Ejemplo: Una variable que contenga el nombre de una persona.
Se distinguen dos clases de datos:
Booleanos: su valor sólo puede ser verdadero o falso
VARIABLES: Objeto cuyo valor cambia durante la
ejecución de un programa.
Ejemplo: Las variables num y k del algoritmo de los números
primos
Ejemplo: Las respuestas a preguntas ¿rem(num,k)==0?
Normalmente en los lenguajes de programación el valor numérico 0 se
corresponde con el valor falso, y el resto de los valores numéricos se
corresponden con el valor verdadero.
CONSTANTES: Objeto cuyo valor NO cambia durante
la ejecución de un programa.
En MATLAB todas las variables serán reales de doble precisión
(double) mientras no se fuerce a que sean de otro tipo.
Ej: num, k en el algoritmo de los número primos serían variables reales.
el algoritmo de los número primos serían variables reales. Ejemplo: el número pi . Una variable
el algoritmo de los número primos serían variables reales. Ejemplo: el número pi . Una variable
el algoritmo de los número primos serían variables reales. Ejemplo: el número pi . Una variable
el algoritmo de los número primos serían variables reales. Ejemplo: el número pi . Una variable

Ejemplo: el número pi. Una variable que creemos y le demos sólo un valor inicial sin modificarlo funciona como una constante. Ej: x=0 %si x no varia su valor dentro del algoritmo funciona como constante

varia su valor dentro del algoritmo funciona como constante Al ser todas las variables por defecto
varia su valor dentro del algoritmo funciona como constante Al ser todas las variables por defecto
varia su valor dentro del algoritmo funciona como constante Al ser todas las variables por defecto
varia su valor dentro del algoritmo funciona como constante Al ser todas las variables por defecto

Al ser todas las variables por defecto de tipo real de doble precisión, en MATLAB NO ES NECESARIO DECLARAR LAS VARIABLES ANTES DE USARLAS (mientras que la declaración de variables es obligaroria en la mayoría de los lenguajes de programación).

25 26 DATOS: VARIABLES Y CONSTANTES DATOS: VARIABLES Y CONSTANTES En MATLAB una variable se
25
26
DATOS: VARIABLES Y CONSTANTES
DATOS: VARIABLES Y CONSTANTES
En MATLAB una variable se crea la primera vez que
se utiliza.
En MATLAB una variable se crea la primera vez que se utiliza.
A las variables hay que darles un valor inicial en una
sentencia de asignación:
Los nombres distinguen mayúsculas de minúsculas
Ej: La variable Var1 no es la misma que las variables VAR1,
var1,…
CONSEJOS PARA CREAR NOMBRES DE VARIABLES:
Utilizar siempre nombres en minúsculas.
No usar caracteres raros ni acentos ni la letra ñ.
nombre_de_variable= expresión_o_valor
donde el nombre_de_variable siempre tiene que estar a la
izquierda de la asignación
Ej:
x=3; y=5; y=x
% la variable y tomará el valor 3
Ej: anio %en lugar de año
% si invertimos el orden x=y entonces la x tomará el valor 5
Si el nombre de la variable está compuesto por más de una
palabra usar un guión bajo _ para unirlas.
Ej (incorrecto):
x=z+1
Ej: nombre_empleado
%en lugar de nombre empleado que MATLAB interpretaría como
dos variables nombre y empleado.
%dará un error porque la variable z no tiene valor inicial y por tanto no se le puede
sumar 1. Es decir, una variable no debe aparecer por primera vez en lectura (como
la variable z) antes que en escritura.
Ej (correcto):
x=2
x=x+1 % al final x valdrá 3. Es correcto porque en la variable x se escribió primero
un valor inicial 2.
27
28
DATOS: VARIABLES Y CONSTANTES
SENTENCIA DE ASIGNACIÓN
En MATLAB la variable ans (del inglés answer) contiene el
valor de la última operación calculada por el programa en
ejecución.
En la sentencia de asignación:
nombre_de_variable= expresion_o_valor
Esta variable es creada automáticamente por MATLAB y no
podemos crear otra variable con el mismo nombre.
Ej: al ejecutar la operación 1+3*8 en MATLAB nos devolverá
el valor resultante en la variable ans, a no ser que la metamos
explícitamente en una variable creada por nosotros:
>> 1+3*8
>> n=1+3*8
ans =
n=
25
25
nombre_de_variable: nombre de variable
definida previamente en alguna sentencia de
declaración.
‘=‘ operador de asignación. Indica que el
valor calculado en expresión debe ser
almacenado en nombre_de_variable.
expresion_o_valor: indica cómo se calcula el
valor a almacenar.
29 30 SENTENCIA DE ASIGNACIÓN SENTENCIA DE ASIGNACIÓN CUIDADO! No confundir la asignación con una
29
30
SENTENCIA DE ASIGNACIÓN
SENTENCIA DE ASIGNACIÓN
CUIDADO! No confundir la asignación con
una comparación de igualdad.
En la sentencia de asignación:
nombre_de_variable= expresion_o_valor
Para la asignación se emplea un único =
Ej: x=z
%da a x el valor que tenga z
donde la expresion_o_valor puede ser:
Para la comparación se emplea doble ==
Ej: x==z
%compara si x e z tienen el mismo valor
Para la desigualdad se usa ~=
Ej: x~=z
%compara si x e z tienen distinto valor
un valor
una expresión aritmética,
una expresión lógica (que expresa una
condición, y está sujeta al Álgebra de Boole)
o una mezcla, es decir una expresión
aritmético-lógica.
31
32
EXPRESIONES ARITMÉTICAS Expresión Resultado de la expresión ARITMÉTICA Constante El resultado de la expresión es
EXPRESIONES ARITMÉTICAS
Expresión
Resultado de la expresión
ARITMÉTICA
Constante
El resultado de la expresión es el valor de la constante
Nombre_de_Variable
El resultado de la expresión es el valor de la variable
Expresión1 + Expresión2
Suma Expresión1 y Expresión2, que son, a su vez,
expresiones más pequeñas
Expresión1 – Expresión2
Resta Expresión2 a Expresión1
Expresión1 * Expresión2
Multiplica Expresión1 y Expresión2
Expresión1 / Expresión2
Divide Expresión1 entre Expresión2
- Expresión
El resultado es la Expresión cambiada de signo
funcion(lista_parámetros)
El resultado de la expresión es el valor devuelto por la
función
de la expresión es el valor devuelto por la función EXPRESIONES LÓGICAS (CONDICIONES) Se modelan como

EXPRESIONES LÓGICAS (CONDICIONES)

devuelto por la función EXPRESIONES LÓGICAS (CONDICIONES) Se modelan como variables y/o expresiones del Álgebra de
devuelto por la función EXPRESIONES LÓGICAS (CONDICIONES) Se modelan como variables y/o expresiones del Álgebra de
devuelto por la función EXPRESIONES LÓGICAS (CONDICIONES) Se modelan como variables y/o expresiones del Álgebra de

Se modelan como variables y/o expresiones del Álgebra de Boole una expresión de condición es cierta ó falsa.

Expresión
Expresión
una expresión de condición es cierta ó falsa. Expresión RELACIONAL Operando1 > Operando2 Operando1
una expresión de condición es cierta ó falsa. Expresión RELACIONAL Operando1 > Operando2 Operando1
una expresión de condición es cierta ó falsa. Expresión RELACIONAL Operando1 > Operando2 Operando1

RELACIONAL

Operando1 > Operando2

Operando1 >= Operando2

Operando1 < Operando2

Operando1 <= Operando2

Operando1 == Operando2

Operando1 ~= Operando2

Resultado de la expresión

Es verdadero si Operando1 ES MAYOR QUE Operando2

Es verdadero si Operando1 ES MAYOR O IGUAL QUE Operando2

Es verdadero si Operando1 ES MENOR QUE Operando2

Es verdadero si Operando1 ES MENOR O IGUAL QUE Operando2

Es verdadero si Operando1 ES IGUAL QUE Operando2

Es verdadero si Operando1 ES DISTINTO QUE Operando2

Es verdadero si Operando1 ES IGUAL QUE Operando2 Es verdadero si Operando1 ES DISTINTO QUE Operando2
Es verdadero si Operando1 ES IGUAL QUE Operando2 Es verdadero si Operando1 ES DISTINTO QUE Operando2
Es verdadero si Operando1 ES IGUAL QUE Operando2 Es verdadero si Operando1 ES DISTINTO QUE Operando2
Es verdadero si Operando1 ES IGUAL QUE Operando2 Es verdadero si Operando1 ES DISTINTO QUE Operando2
33 EXPRESIONES LÓGICAS (CONDICIONES) Expresión LÓGICA (sintaxis en MATLAB) Resultado de la expresión Operando1
33
EXPRESIONES LÓGICAS (CONDICIONES)
Expresión LÓGICA
(sintaxis en MATLAB)
Resultado de la expresión
Operando1 & Operando2
Es verdadero si Operando1 es verdadero Y Operando2 es verdadero
and (Operando1, Operando 2)
Operando1 | Operando2
Es verdadero si Operando1 es verdadero O Operando2 es verdadero
or (Operando1, Operando 2)
~ Operando1
Es verdadero si Operando1 NO es verdadero
not (Operando1)
NOTA: Para poner el operador de negación ~ se puede hacer de dos formas:
1. Pulsando la tecla
Shift (la que sirve para poner las mayúsculas)
y tecleando el número 126 rápidamente sin soltar la techa Shift
2. Pulsando las teclas Alt-Gr
el número 4
y
la barra de espacio

¡Pruébalo, es fácil!

34

número 4 y la barra de espacio ¡Pruébalo, es fácil! 34 EXPRESIONES LÓGICAS (CONDICIONES) Se suelen

EXPRESIONES LÓGICAS (CONDICIONES)

es fácil! 34 EXPRESIONES LÓGICAS (CONDICIONES) Se suelen emplear en las condiciones que controlan las
es fácil! 34 EXPRESIONES LÓGICAS (CONDICIONES) Se suelen emplear en las condiciones que controlan las
es fácil! 34 EXPRESIONES LÓGICAS (CONDICIONES) Se suelen emplear en las condiciones que controlan las

Se suelen emplear en las condiciones que controlan las estructuras selectivas e iterativas.

Ej: El siguiente código pide al usuario un número y averigua si es par y positivo. num=input(‘Introduzca un número: ’); if rem(num,2)==0 & num>0 disp(‘El número es par y positivo’);

& num>0 disp(‘El número es par y positivo’); end; Ej: El siguiente código pide al usuario
& num>0 disp(‘El número es par y positivo’); end; Ej: El siguiente código pide al usuario
& num>0 disp(‘El número es par y positivo’); end; Ej: El siguiente código pide al usuario
& num>0 disp(‘El número es par y positivo’); end; Ej: El siguiente código pide al usuario

end; Ej: El siguiente código pide al usuario un número, evalúa si es entero, y le da la oportunidad de meterlo de nuevo num=input(‘Introduzca un número entero: ’); while floor(num)~=num disp(‘Error. El número es real, tiene decimales’); num=input(‘Tiene que introducir un número entero: ‘);

end;
end;
que introducir un número entero: ‘); end; Representación de la lógica Álgebra de Boole Inventada
que introducir un número entero: ‘); end; Representación de la lógica Álgebra de Boole Inventada
que introducir un número entero: ‘); end; Representación de la lógica Álgebra de Boole Inventada

Representación de la lógica

un número entero: ‘); end; Representación de la lógica Álgebra de Boole Inventada para lógica filosófica

Álgebra de Boole

‘); end; Representación de la lógica Álgebra de Boole Inventada para lógica filosófica (s.XIX). Así trabajan
‘); end; Representación de la lógica Álgebra de Boole Inventada para lógica filosófica (s.XIX). Así trabajan
‘); end; Representación de la lógica Álgebra de Boole Inventada para lógica filosófica (s.XIX). Así trabajan

Inventada para lógica filosófica (s.XIX). Así trabajan los computadores actuales pues con transistores se implementa muy fácilmente. Álgebra con sólo dos elementos: 0 (FALSO) y 1 (VERDADERO) Y con un conjunto de operaciones definidas sobre tales elementos :

un conjunto de operaciones definidas sobre tales elementos : not(A) and(A,B) or(A,B) xor(A,B) Operaciones UNARIAS:
not(A) and(A,B)
not(A)
and(A,B)

or(A,B)

xor(A,B)

Operaciones UNARIAS:

Negación lógica (NOT): ~A Operaciones BINARIAS:

Y lógico (AND): A & B O lógico (OR): A | B O exclusivo (XOR):

A ~A 0 1 1 0
A
~A
0
1
1
0

NOTA: La operación OR también se llama “suma lógica”, pero no tiene nada que ver
NOTA: La operación OR también
se llama “suma lógica”, pero
no tiene nada que ver con la suma
aritmética de números binarios:
1
+ 1 = 10
(suma aritmética)
(2
1 |
1
=
1
(álgebra de Boole)
A B A & B A | B xor(A,B) 0 0 0 0 0 0
A
B
A & B
A | B
xor(A,B)
0
0
0
0
0
0
1
0
1
1
1
0 1
0 1
1
1 0
1 1

35

36

Álgebra de Boole

1 0 1 1 1 0 1 0 1 1 1 0 1 1 35 36

Leyes fundamentales

0 1 1 1 0 1 1 35 36 Álgebra de Boole Leyes fundamentales Ley conmutativa,
0 1 1 1 0 1 1 35 36 Álgebra de Boole Leyes fundamentales Ley conmutativa,
0 1 1 1 0 1 1 35 36 Álgebra de Boole Leyes fundamentales Ley conmutativa,

Ley conmutativa, asociativa, distributiva

 

OR (suma)

AND (producto)

Ley de idempotencia

A | A = A

A & A = A

Ley de absorción

A | (A & B) = A

A & (A | B) = A

A & (A | B) = A

Ley de De Morgan

~(A | B) = (~ A) & (~ B)

~(A & B) = (~ A) | (~ B)

= ( ~ A) & ( ~ B) ~ (A & B) = ( ~ A)
= ( ~ A) & ( ~ B) ~ (A & B) = ( ~ A)
= ( ~ A) & ( ~ B) ~ (A & B) = ( ~ A)

El Álgebra de Boole y estas leyes son útiles a la hora de operar y

de Boole y estas leyes son útiles a la hora de operar y Ejercicio 19 Ejercicio
de Boole y estas leyes son útiles a la hora de operar y Ejercicio 19 Ejercicio
de Boole y estas leyes son útiles a la hora de operar y Ejercicio 19 Ejercicio
de Boole y estas leyes son útiles a la hora de operar y Ejercicio 19 Ejercicio

Ejercicio 19

Ejercicio 20

Ejercicio 21

Y usar el test de autoevaluación correspondiente en Enseñanza

simplificar expresiones de condición en nuestros programas y de pensar en las condiciones que deben cumplirse en los programas Hacer los siguientes ejercicios del enunciado de la práctica 1

Virtual para comprobar los resultados.

37 38 Álgebra de Boole Álgebra de Boole Leyes fundamentales Leyes fundamentales Demostración de la
37
38
Álgebra de Boole
Álgebra de Boole
Leyes fundamentales
Leyes fundamentales
Demostración de la Ley de Absorción
Utilidad del Álgebra de Boole en programación:
A | (A & B) = A
Esto quiere decir que nos da igual lo que valga B
Si A==0
0 | (0 & B)
Ejemplos prácticos:
Comprobar si una variable num está en el intervalo [0,10]
(num >=0) & (num<=10)
%el valor 0 en (0 & B) hace que este operando sea falso. Por tanto 0 | 0
vale 0, es decir no importa qué valor tiene B. Prima el valor de A.
Si A==1
1 | (1 & B)
Comprobar si una variable num está fuera del intervalo
[0,10], es decir la condición contraria a la anterior.
%el valor 1 | (lo que sea) hace que el resultado sea directamente verdadero.
Es decir no importa qué valor tiene B. Prima el valor de A.
~((num >=0) & (num<=10))
y aplicando las Leyes de De Morgan queda
Ejercicio para el alumno: De forma análoga a la mostrada en la
demostración anterior A | (A & B) = A, pruebe a demostrar que la siguiente
ley de absorción también es cierta: A & (A | B) = A
(num<0) | (num >10)
39
40
EXPRESIONES ARITMÉTICAS Y LÓGICAS
FUNCIONES DE DE MATLAB
(ORDEN DE PRIORIDAD)
Operador
Prioridad
Alta
-(operador unario
PrecedenciaPrecedencia dede
de signo)
loslos operadores:operadores:
~
*
/
+
-
<
<=
>
>=
IMPORTANTE:
Los paréntesis alteran el orden
de evaluación de la expresión
==
~=
MATLAB ofrece una serie de funciones que
se pueden utilizar/llamar directamente en
nuestro código.
Estas funciones se agrupan dentro de
librerías.
Las funciones reciben unos parámetros de
entrada y devuelven uno o más resultados.
Ej: rem(), floor(), ceil(), round(), factorial(),…
&
Ej: 3*2+1 no es igual que 3*(2+1)
Ej: rem(15,3) %devuelve el resto de la división entera de 15/3
| Baja
41 FUNCIONES DE MATLAB Para saber cómo usar una función concreta de las que tiene
41
FUNCIONES DE MATLAB
Para saber cómo usar una función concreta de las que
tiene MATLAB poner en la ventana de comandos:
help nombre_comando
Ej: help rem
IMPORTANTE: En la ayuda de MATLAB las funciones aparecen
con nombres en mayúsculas, pero en realidad se emplean en
minúsculas.
Para saber el nombre de todas las variables activas en un
momento dado de la ejecución de un programa, usar el
comando who.
Para eliminar las variables activas en un momento dado de
la ejecución de un programa, usar el comando clear.
Para distinguirlas de otras palabras reservadas las
nombraremos como nombre_funcion() es decir seguidas
de dos paréntesis ( ).
nombre_funcion() es decir seguidas de dos paréntesis ( ). SALIDA DE DATOS POR PANTALLA Un programa

SALIDA DE DATOS POR PANTALLA

de dos paréntesis ( ). SALIDA DE DATOS POR PANTALLA Un programa puede imprimir por pantalla
de dos paréntesis ( ). SALIDA DE DATOS POR PANTALLA Un programa puede imprimir por pantalla
de dos paréntesis ( ). SALIDA DE DATOS POR PANTALLA Un programa puede imprimir por pantalla

Un programa puede imprimir por pantalla el valor de una variable. En MATLAB se utiliza la función disp() usando como argumento un texto entre comillas simples ‘ ’ .

como argumento un texto entre comillas simples ‘ ’ . 42 Ej: disp(‘Hola mundo’); Ej: disp
como argumento un texto entre comillas simples ‘ ’ . 42 Ej: disp(‘Hola mundo’); Ej: disp
como argumento un texto entre comillas simples ‘ ’ . 42 Ej: disp(‘Hola mundo’); Ej: disp
como argumento un texto entre comillas simples ‘ ’ . 42 Ej: disp(‘Hola mundo’); Ej: disp

42

Ej: disp(‘Hola mundo’); Ej: disp (var1); % siendo var1 el nombre de una variable

Ej: disp (var1); % siendo var1 el nombre de una variable Para saber más sobre esta
Ej: disp (var1); % siendo var1 el nombre de una variable Para saber más sobre esta

Para saber más sobre esta función ejecutar en la ventana de comandos de MATLAB help
Para saber más sobre esta función ejecutar en la ventana de comandos de MATLAB help
Para saber más sobre esta función ejecutar en la ventana de comandos de MATLAB help
Para saber más sobre esta función ejecutar en la ventana de comandos de MATLAB help

Para saber más sobre esta función ejecutar en la ventana de comandos de MATLAB help disp

43

ejecutar en la ventana de comandos de MATLAB help disp 43 ENTRADA DE DATOS POR TECLADO

ENTRADA DE DATOS POR TECLADO

de MATLAB help disp 43 ENTRADA DE DATOS POR TECLADO El usuario puede dar un valor
de MATLAB help disp 43 ENTRADA DE DATOS POR TECLADO El usuario puede dar un valor
de MATLAB help disp 43 ENTRADA DE DATOS POR TECLADO El usuario puede dar un valor

El usuario puede dar un valor a una variable a través del teclado mediante la función input(‘Texto a mostrar al usuario’). Esta función de MATLAB muestra el mensaje que le ponemos entre comillas simples ‘ ’ dentro de los paréntesis ( ), y además lee del teclado el valor que introduzca el usuario cuando éste presione la tecla INTRO.

introduzca el usuario cuando éste presione la tecla INTRO. Ej: var_edad = input(‘Introduce tu edad’) Para
introduzca el usuario cuando éste presione la tecla INTRO. Ej: var_edad = input(‘Introduce tu edad’) Para
introduzca el usuario cuando éste presione la tecla INTRO. Ej: var_edad = input(‘Introduce tu edad’) Para
introduzca el usuario cuando éste presione la tecla INTRO. Ej: var_edad = input(‘Introduce tu edad’) Para
introduzca el usuario cuando éste presione la tecla INTRO. Ej: var_edad = input(‘Introduce tu edad’) Para
introduzca el usuario cuando éste presione la tecla INTRO. Ej: var_edad = input(‘Introduce tu edad’) Para
introduzca el usuario cuando éste presione la tecla INTRO. Ej: var_edad = input(‘Introduce tu edad’) Para
introduzca el usuario cuando éste presione la tecla INTRO. Ej: var_edad = input(‘Introduce tu edad’) Para

Ej: var_edad = input(‘Introduce tu edad’)

Para saber más sobre esta función ejecutar en la ventana de comandos de MATLAB help input

ejecutar en la ventana de comandos de MATLAB help input PROGRAMACIÓN ESTRUCTURADA Un programa se escribe

PROGRAMACIÓN ESTRUCTURADA

de comandos de MATLAB help input PROGRAMACIÓN ESTRUCTURADA Un programa se escribe utilizando los siguientes tipos
de comandos de MATLAB help input PROGRAMACIÓN ESTRUCTURADA Un programa se escribe utilizando los siguientes tipos
de comandos de MATLAB help input PROGRAMACIÓN ESTRUCTURADA Un programa se escribe utilizando los siguientes tipos

Un programa se escribe utilizando los siguientes tipos de estructuras de control:

Secuencial: Una acción se ejecuta una tras otra, es

Secuencial : Una acción se ejecuta una tras otra, es decir, una instrucción sigue a otra
Secuencial : Una acción se ejecuta una tras otra, es decir, una instrucción sigue a otra
Secuencial : Una acción se ejecuta una tras otra, es decir, una instrucción sigue a otra
Secuencial : Una acción se ejecuta una tras otra, es decir, una instrucción sigue a otra

decir, una instrucción sigue a otra en secuencia.

Selectiva: Se evalúa la condición y en función del

resultado se ejecuta un conjunto de instrucciones u otro. Hay tres tipos de selectivas (simple, doble o múltiple).

Hay tres tipos de selectivas ( simple, doble o múltiple ). Repetitiva: Contienen un bucle (conjunto

Repetitiva: Contienen un bucle (conjunto de

múltiple ). Repetitiva: Contienen un bucle (conjunto de instrucciones que se repiten un número finito de
múltiple ). Repetitiva: Contienen un bucle (conjunto de instrucciones que se repiten un número finito de
múltiple ). Repetitiva: Contienen un bucle (conjunto de instrucciones que se repiten un número finito de

instrucciones que se repiten un número finito de veces). Cada repetición del bucle se llama iteración. Todo bucle tiene que llevar asociada una condición, que determina si el bucle se repite o no.

44

ESTRUCTURA SECUENCIAL Sentencia 1 Sentencia 2 Sentencia N Se caracteriza porque las acciones se ejecutan
ESTRUCTURA SECUENCIAL
Sentencia 1
Sentencia 2
Sentencia N
Se caracteriza porque las acciones se
ejecutan una tras otra, es decir una sentencia
sigue a otra en secuencia.

45

otra, es decir una sentencia sigue a otra en secuencia. 45 EJEMPLO DE ESTRUCTURA SECUENCIAL (Problema

EJEMPLO DE ESTRUCTURA SECUENCIAL

a otra en secuencia. 45 EJEMPLO DE ESTRUCTURA SECUENCIAL (Problema 1: enunciado) Escriba un algoritmo en

(Problema 1: enunciado)

45 EJEMPLO DE ESTRUCTURA SECUENCIAL (Problema 1: enunciado) Escriba un algoritmo en MATLAB tal que, dadas
45 EJEMPLO DE ESTRUCTURA SECUENCIAL (Problema 1: enunciado) Escriba un algoritmo en MATLAB tal que, dadas

Escriba un algoritmo en MATLAB tal que, dadas tres variables que contienen la longitud de los lados de un triángulo a, b y c, calcule su área S aplicando las siguientes ecuaciones:

, calcule su área S aplicando las siguientes ecuaciones: p = (a + b + c)/2

p = (a + b + c)/2

S aplicando las siguientes ecuaciones: p = (a + b + c)/2 S = p (
S aplicando las siguientes ecuaciones: p = (a + b + c)/2 S = p (
S aplicando las siguientes ecuaciones: p = (a + b + c)/2 S = p (

S =

p ( p a )( p b )( p c )

+ c)/2 S = p ( p − a )( p − b )( p −
+ c)/2 S = p ( p − a )( p − b )( p −
+ c)/2 S = p ( p − a )( p − b )( p −
+ c)/2 S = p ( p − a )( p − b )( p −
+ c)/2 S = p ( p − a )( p − b )( p −

El valor de las variables a, b y c debe leerse del teclado, y el resultado s debe mostrarse por pantalla.

Usar la función sqrt() de MATLAB para calcular la raíz cuadrada.

46

47 EJEMPLO DE ESTRUCTURA SECUENCIAL (Problema 1: solución) Guardamos el código que tenemos en el
47
EJEMPLO DE ESTRUCTURA SECUENCIAL
(Problema 1: solución)
Guardamos el código que tenemos en el fichero de script problema1.m

a= input('Introduzca el valor del primer lado del triángulo: ');

b= input('Introduzca el valor del segundo lado del triángulo: ');

el valor del segundo lado del triángulo: '); c= input('Introduzca el valor del tercer lado del
el valor del segundo lado del triángulo: '); c= input('Introduzca el valor del tercer lado del
el valor del segundo lado del triángulo: '); c= input('Introduzca el valor del tercer lado del

c= input('Introduzca el valor del tercer lado del triángulo: ');

valor del segundo lado del triángulo: '); c= input('Introduzca el valor del tercer lado del triángulo:

p=(a+b+c)/2;

   

s= sqrt (p * (p-a) * (p-b) * (p-c));

 

disp(‘La superficie del triángulo vale: ‘);

 
disp(‘La superficie del triángulo vale: ‘);  

disp(s);

disp(s);
disp(s);
disp(s);
48 CÓMO CREAR NUESTRA PROPIA FUNCIÓN (Sintaxis) - Una función hay que definirla y luego
48
CÓMO CREAR NUESTRA PROPIA FUNCIÓN
(Sintaxis)
- Una función hay que definirla y luego llamarla (para usarla).
Para definir una función se sigue la siguiente sintaxis:
function [varsal1, varsal2,…]= nombre_funcion (varent1, varent2,…)
<código en MATLAB que resuelve esta función>
end
- La función comienza con la palabra reservada de MATLAB function
- A continuación, van los nombres de las variables de salida separadas por comas y
entre corchetes [ ]. En una función que no devuelve nada no hay variables de
salida. En una función que sólo hay una única variable de salida no es necesario
poner los [ ].
- Después de las variables de entrada va un = , a no ser que la función no devuelva
ninguna variable de salida, en cuyo caso no es necesario poner el =
- Después va el nombre de la función que siempre debe estar presente y debe
coincidir con el nombre del fichero de MATLAB que contiene la función (con
extensión .m), es decir el fichero se llamará nombre_funcion.m
- Siguiendo el nombre de la función van los nombres de las variables de entrada
separadas por comas y entre ( ). Podría ocurrir que una función no recibiera datos
de entrada de esta manera, pero suele ser habitual que sí las lleve.
49 EJEMPLO DE FUNCIÓN (Problema 1F: Cómo convertir en función un script, en este caso
49
EJEMPLO DE FUNCIÓN
(Problema 1F: Cómo convertir en función un script, en este caso la
solución del problema1)
1. Guardamos el código que tenemos en el fichero fproblema1.m (fichero con el mismo nombre que la
función que tiene codificada dentro).
2. Averiguamos cuáles son las variables de entrada y de salida
En este ejemplo las variables de entrada son a, b, c y la variable de salida es s
3. Añadimos la cabecera de la función
function s = fproblema1(a,b,c)
4. Quitamos el código que sobra, que suele tener que
a= input('Introduzca el valor del primer lado del triángulo: ');
ver con las asignaciones de valores inciales a las
variables de entrada (en este caso: a,b,c, ya que estas
b= input('Introduzca el valor del segundo lado del triángulo: ');
variables se crean en memoria justo cuando se llama
a la función y reciben los valores de la llamada. Por
c= input('Introduzca el valor del tercer lado del triángulo: ');
tanto no es necesario pedirle su valor al usuario
mediante el uso de la función input()

p=(a+b+c)/2;

s= sqrt (p * (p-a) * (p-b) * (p-c)); disp(‘La superficie del triángulo vale: ‘);
s= sqrt (p * (p-a) * (p-b) * (p-c));
disp(‘La superficie del triángulo vale: ‘);
disp(s);
5. Cerramos la función con un end
end
‘); disp(s); 5. Cerramos la función con un end end 50 EJEMPLO DE FUNCIÓN (Problema 1F:

50

EJEMPLO DE FUNCIÓN

Cerramos la función con un end end 50 EJEMPLO DE FUNCIÓN (Problema 1F: ¿Qué se obtiene
Cerramos la función con un end end 50 EJEMPLO DE FUNCIÓN (Problema 1F: ¿Qué se obtiene
Cerramos la función con un end end 50 EJEMPLO DE FUNCIÓN (Problema 1F: ¿Qué se obtiene
Cerramos la función con un end end 50 EJEMPLO DE FUNCIÓN (Problema 1F: ¿Qué se obtiene

(Problema 1F: ¿Qué se obtiene al llamar a la función?)

Por tanto, la definición de la función completa quedaría de la siguiente forma:

function s = fproblema1(a,b,c)

p=(a+b+c)/2;

s= sqrt (p * (p-a) * (p-b) * (p-c));

p=(a+b+c)/2; s= sqrt (p * (p-a) * (p-b) * (p-c)); disp(‘La superficie del triángulo vale: ‘);
p=(a+b+c)/2; s= sqrt (p * (p-a) * (p-b) * (p-c)); disp(‘La superficie del triángulo vale: ‘);

disp(‘La superficie del triángulo vale: ‘);

disp(s);

end

superficie del triángulo vale: ‘); disp(s); end Al llamar a la función desde línea de comandos,
superficie del triángulo vale: ‘); disp(s); end Al llamar a la función desde línea de comandos,
superficie del triángulo vale: ‘); disp(s); end Al llamar a la función desde línea de comandos,

Al llamar a la función desde línea de comandos, se obtiene el resultado en la ventana de MATLAB.

Ej: El resultado para un triangulo con lados de longitud 20,20 y 20 sería el devuelto por la llamada a la función, en este caso daría 173.205

por la llamada a la función, en este caso daría 173.205 >> fproblema1(20,20,20) La superficie del
por la llamada a la función, en este caso daría 173.205 >> fproblema1(20,20,20) La superficie del

>> fproblema1(20,20,20)

La superficie del triángulo vale:

173.205

51 EJEMPLO DE FUNCIÓN (Problema 1F: ¿Qué ocurre en la memoria en tiempo de ejecución?)
51
EJEMPLO DE FUNCIÓN
(Problema 1F: ¿Qué ocurre en la memoria en tiempo de ejecución?)
Al ejecutar en la línea de comando la sentencia
>> res = fproblema1(20,20,20)
%ver paso1
%ver paso5
en la memoria del ordenador se reserva espacio para la variable global res
function s = fproblema1(a,b,c) %ver paso2 p=(a+b+c)/2; %ver paso3 s= sqrt (p * (p-a) *
function s = fproblema1(a,b,c)
%ver paso2
p=(a+b+c)/2;
%ver paso3
s= sqrt (p * (p-a) * (p-b) * (p-c));
%ver paso4
disp(‘La superficie del triángulo vale: ‘);
disp(s);
end
Al ejecutarse la función desde la línea de comando lo primero que se reserva es espacio en memoria son las
variables locales s, a, b, c y luego la variable auxiliar p. Se hacen los cálculos de p y s, y luego se imprime ‘La
superficie del triángulo vale’ 173.205
res
res
res
res
res
173.205
s
s
s
173.205
s
173.205
a
20
a
20
a
20
a
20
b
20
b
20
b
20
b
20
c
20
c
20
c
20
c
20
p
p
30
p
30
p
30
%paso1
%paso2
%paso3
%paso4
%paso5

Al terminar de ejecutarse la función, las variables locales desaparecen de memoria, y el valor de la variable s, (en este caso 173.205) es devuelta por la función y queda guardada en la variable global res.

la función y queda guardada en la variable global res . EJEMPLO DE ESTRUCTURA SECUENCIAL (Problema

EJEMPLO DE ESTRUCTURA SECUENCIAL

la variable global res . EJEMPLO DE ESTRUCTURA SECUENCIAL (Problema 1B: enunciado para el alumno) Escriba
la variable global res . EJEMPLO DE ESTRUCTURA SECUENCIAL (Problema 1B: enunciado para el alumno) Escriba
la variable global res . EJEMPLO DE ESTRUCTURA SECUENCIAL (Problema 1B: enunciado para el alumno) Escriba

(Problema 1B: enunciado para el alumno)

Escriba un algoritmo en MATLAB tal que, dado el radio de una esfera r (que debe leerse del teclado), calcule e imprima por pantalla la longitud de su ecuador l, su superficie S y su volumen V, aplicando las siguientes ecuaciones:

l = 2 π r S
l = 2 π r
S

= 4 π r 2 = 2 r l

ecuaciones: l = 2 π r S = 4 π r 2 = 2 r l
ecuaciones: l = 2 π r S = 4 π r 2 = 2 r l
ecuaciones: l = 2 π r S = 4 π r 2 = 2 r l

V = 4/3 π r 3 = r S/3

r S = 4 π r 2 = 2 r l V = 4/3 π r

Para calcular las potencias puede usar en MATLAB el operador ^ Ej: r^3

π r 2 = 2 r l V = 4/3 π r 3 = r S/3
π r 2 = 2 r l V = 4/3 π r 3 = r S/3
π r 2 = 2 r l V = 4/3 π r 3 = r S/3

52

53 54 EJEMPLO DE ESTRUCTURA SELECTIVA SIMPLE ESTRUCTURA SELECTIVA (SIMPLE) (Problema 2: enunciado) if condicion
53
54
EJEMPLO DE ESTRUCTURA SELECTIVA SIMPLE
ESTRUCTURA SELECTIVA (SIMPLE)
(Problema 2: enunciado)
if condicion
sentencias
end
Construya un algoritmo en MATLAB tal que, dados los valores enteros P
y Q, que deben leerse del teclado, determine si los mismos satisfacen la
siguiente expresión:
3
4
2
P
+ Q
2
P
<
680
Se evalúa la condicion,
si es verdadera, se ejecutan las sentencias;
en caso contrario, se salta dicho grupo de
sentencias.
En caso afirmativo debe escribir por pantalla los valores de P y Q.
55
56
EJEMPLO DE ESTRUCTURA SELECTIVA SIMPLE
EJEMPLO DE ESTRUCTURA SELECTIVA SIMPLE
(Problema 2: solución)
(Problema 2B: enunciado para el alumno)

P=input('Introduce el valor de P ');

para el alumno) P=input('Introduce el valor de P '); Q=input('Introduce el valor de Q '); if
para el alumno) P=input('Introduce el valor de P '); Q=input('Introduce el valor de Q '); if
para el alumno) P=input('Introduce el valor de P '); Q=input('Introduce el valor de Q '); if

Q=input('Introduce el valor de Q ');

if (P^3 + Q^4 - 2 * P^2) < 680

disp('La expresión aritmética es menor que 680');

end

expresión aritmética es menor que 680'); end Construya un algoritmo en MATLAB tal que, dados los
expresión aritmética es menor que 680'); end Construya un algoritmo en MATLAB tal que, dados los

Construya un algoritmo en MATLAB tal que, dados los valores de una ecuación de segundo grado a, b, c (que deben leerse del teclado), determine si el discriminante es negativo. En tal caso debe imprimir el valor del discriminante, y también debe informar al usuario que la ecuación no tiene soluciones reales.

al usuario que la ecuación no tiene soluciones reales. Recordar que para la ecuación: ax 2
al usuario que la ecuación no tiene soluciones reales. Recordar que para la ecuación: ax 2
al usuario que la ecuación no tiene soluciones reales. Recordar que para la ecuación: ax 2
al usuario que la ecuación no tiene soluciones reales. Recordar que para la ecuación: ax 2

Recordar que para la ecuación:

no tiene soluciones reales. Recordar que para la ecuación: ax 2 +bx+c=0 El discriminante se define

ax 2 +bx+c=0

no tiene soluciones reales. Recordar que para la ecuación: ax 2 +bx+c=0 El discriminante se define

El discriminante se define como:

b 2 -4ac

no tiene soluciones reales. Recordar que para la ecuación: ax 2 +bx+c=0 El discriminante se define
57 58 EJEMPLO DE ESTRUCTURA SELECTIVA DOBLE ESTRUCTURA SELECTIVA (DOBLE) (Problema 3: enunciado) if condicion
57
58
EJEMPLO DE ESTRUCTURA SELECTIVA DOBLE
ESTRUCTURA SELECTIVA (DOBLE)
(Problema 3: enunciado)
if condicion
sentencias 1
else
sentencias 2
end
Calcular si estás aprobado o suspenso, a partir de la media
aritmética de la nota de tres exámenes parciales, que se
leerán del teclado.
Esta estructura permite elegir entre dos posibles bloques de
acciones en función de una condición.
Se evalúa la condicion
Si es verdadera: se ejecutan las sentencias 1.
Si es falsa: se ejecutan las sentencias 2.
donde condición es:
• Cualquier expresión que toma el valor verdadero (valor distinto
de 0) o falso (valor 0).
La expresión relacional (operadores <,<=,>,>=,= =,~=) es la más
utilizada.
Uso de expresión lógica (operadores &,|,~) como combinación de
condiciones.
59
60
EJEMPLO DE ESTRUCTURA SELECTIVA DOBLE
ESTRUCTURA SELECTIVA MULTIPLE
(Problema 3: solución)
Existen dos posibles sintaxis:
-En la mostrada en la izquierda la palabra else y el siguiente if van separados por
un espacio en blanco. Y por cada if else hay un end al final.

ex1=input('Introduce la nota del primer examen: ');

ex2=input('Introduce la nota del segundo examen: ');

ex2=input('Introduce la nota del segundo examen: '); ex3=input('Introduce la nota del tercer examen: ');
ex2=input('Introduce la nota del segundo examen: '); ex3=input('Introduce la nota del tercer examen: ');
ex2=input('Introduce la nota del segundo examen: '); ex3=input('Introduce la nota del tercer examen: ');
ex2=input('Introduce la nota del segundo examen: '); ex3=input('Introduce la nota del tercer examen: ');

ex3=input('Introduce la nota del tercer examen: ');

media=(ex1+ex2+ex3)/3;

disp('La nota media es: ');

disp (media);

disp('La nota media es: '); disp (media); - En la mostrada en la derecha los elseif
disp('La nota media es: '); disp (media); - En la mostrada en la derecha los elseif

-En la mostrada en la derecha los elseif van unidos y sólo hay un end al final.

derecha los elseif van unidos y sólo hay un end al final. - En cualquier de

-En cualquier de las dos sintaxis, no aparece nunca una condición inmediatamente después de un else. Para que aparezca una nueva condición debe haber un else if o bien elseif.

nueva condición debe haber un else if o bien elseif . - El último caso siempre
nueva condición debe haber un else if o bien elseif . - El último caso siempre
nueva condición debe haber un else if o bien elseif . - El último caso siempre

-El último caso siempre va tras un else sin ninguna condición detrás (en ambas sintaxis).

if condicion1

if condicion1

sentencias1

else
else
sintaxis). if condicion1 if condicion1 sentencias1 else if condición2 sentencias2 else sentencias3 sentencias1

if condición2

sentencias2

else

sentencias3

sentencias1 elseif condicion2 sentencias2 elseif condicion3 sentencias3 else
sentencias1
elseif condicion2
sentencias2
elseif condicion3
sentencias3
else

end

sentencias4

end

end

61 62 EJEMPLO DE ESTRUCTURA SELECTIVA MULTIPLE EJEMPLO DE ESTRUCTURA SELECTIVA MULTIPLE (Problema 4: enunciado)
61
62
EJEMPLO DE ESTRUCTURA SELECTIVA MULTIPLE
EJEMPLO DE ESTRUCTURA SELECTIVA MULTIPLE
(Problema 4: enunciado)
(Problema 4: solución)
cent= input('Introduce la temperatura en grados Farenheit: ');
Elabore un algoritmo en MATLAB que lea del teclado una temperatura en
grados centígrados, calcule los grados Fahrenheit y escriba por pantalla
el deporte que es apropiado practicar a esa temperatura, teniendo en
fah=(9 / 5) * cent + 32;
disp('El deporte recomendado para esta temperatura es:')
cuenta la siguiente tabla:
if fah >85
disp ('Natación')
TEMPERATURA en grados
Fahrenheit
DEPORTE
TEMP> 85
Natación
elseif fah >70
disp ('Tenis')
70
< TEMP <= 85
Tenis
35
< TEMP <= 70
Golf
32
< TEMP <= 35
Esquí
elseif fah >35
disp ('Golf')
TEMP<= 32
Marcha
Para convertir grados centígrados (variable c) a fahrenheit (variable f)
se utiliza la siguiente ecuación:
elseif fah >32
disp ('Esquí')
9
f
= c ∗
+ 32
else
5
disp ('Marcha')
end
63
64
EJEMPLO DE ESTRUCTURA SELECTIVA MULTIPLE
EJEMPLO DE ESTRUCTURA SELECTIVA MULTIPLE
(Problema 4B: enunciado)
(Problema 4B: solución)
hora=input('Introduce la hora: ');
min=input ('Introduce los minutos: ');
min_total=hora*60 + min;
Elabore un programa en MATLAB que lea del teclado la hora del día y
los minutos y escriba por pantalla el precio por minuto de una llamada
if min_total<0
telefónica, teniendo en cuenta la siguiente tabla: Franja Horaria: Minutos Precio Por Minuto (en centimos
telefónica, teniendo en cuenta la siguiente tabla:
Franja Horaria: Minutos
Precio Por Minuto (en centimos de euro)
De 0:00 a 7:59
6
De 8:00 a 14:59
10
De 15:00 a 19:29
15
De 19:30 a 23:59
30
disp ('Error: Hora no válida') elseif min_total<(8*60) disp('El precio por minuto es de 6 céntimos
disp ('Error: Hora no válida')
elseif min_total<(8*60)
disp('El precio por minuto es de 6 céntimos de
euro')
elseif min_total<(15*60)
disp('El precio por minuto es de 10 céntimos de
euro')
elseif min_total<(19*60+30)
disp('El precio por minuto es de 15 céntimos de
euro')
elseif min_total<=(23*60+59)
disp('El precio por minuto es de 30 céntimos de
euro')

else

disp ('Error: Hora no válida')

end

65 66 ESTRUCTURAS REPETITIVAS: VARIABLES ESPECIALES EJEMPLO DE CONTADOR Y ACUMULADOR Contadores: Son variables que
65
66
ESTRUCTURAS REPETITIVAS: VARIABLES ESPECIALES
EJEMPLO DE CONTADOR Y ACUMULADOR
Contadores:
Son variables que se utilizan para contar.
Normalmente su valor se incrementa o decrementa en 1.
Incrementa c cada vez que
imprime una letra 'a'
En la variable ac acumula los
valores leídos del teclado
Ejemplos:
c=0;
ac=0
contador=0
disp(‘a’)
v=input(‘Introduce valor:’)
contador = contador + 1
c=c+1
ac = ac + v
indice=10
disp(‘a’)
v=input(‘Introduce valor:’)
indice = indice - 1
Acumuladores:
c=c+1
ac = ac + v
Se utilizan para almacenar el resultado de sumas sucesivas.
Su valor se incrementa en cantidades variables.
disp(‘a’)
c=c+1
Ejemplos:
valor=input(‘Introduce un valor: ‘)
total=0;
%hay que inicializarlo al valor neutro de la suma, el 0
total = total + valor
producto_multiple=1 %hay que inicializarlo al valor neutro del producto, el 1
producto_multiple = producto_multiple * valor
67
68
ESTRUCTURA REPETITIVA while (MIENTRAS)
PARTES DE UN BUCLE
while condicion
sentencias
Cuando el bucle empieza a ser complejo,
interesa seguir un método para no equivocarse.
Todo bucle debe tener:
end
I
Inicialización
La condición del bucle se evalúa al principio, antes ejecutar las sentencias
del bucle,
Si es verdadera, se ejecutan las sentencias del bucle y después se
vuelve a evaluar la condición. Es decir, mientras la condición sea cierta se
ejecutan las sentencias.
En el momento en el que la condición es falsa se sale del bucle.
C Condición de salida
B cuerpo del Bucle
A Actualización (si no existiera, la condición siempre
se cumpliría y el bucle repetiría infinitas veces)
Como la condición es evaluada, la primera vez, antes de entrar en el bucle,
puede que el bucle se ejecute 0 veces.
Cuando el bucle se acaba, la condición seguro que es falsa
Sólo en casos excepcionales pueden faltar I, B
El orden de ejecución será:
I
CBA CBA CBA
Para finalizar un bucle, el valor de la condición debe ser modificado en las
sentencias que componen el bucle.
Mientras el bucle itera:
Cuando el bucle se acabe:
C es verdadero
C es falso
69 70 ESTRUCTURA REPETITIVA while : EJEMPLO EJERCICIOS ESTR. REPETITIVA while Problema 5: enunciado I
69
70
ESTRUCTURA REPETITIVA while : EJEMPLO
EJERCICIOS ESTR. REPETITIVA while
Problema 5: enunciado
I
c
← 1
c=1
C
comienzo bucle
while c<3
B
Escriba un programa en MATLAB que lea del teclado un
número y compruebe si es menor que 5.
Si no lo es, debe volver a leer un número, repitiendo la
operación hasta que el usuario escriba un valor correcto.
disp(‘a’)
Finalmente debe escribir por pantalla el valor leído.
NO: fin del bucle
A
c=c+1
c
< 3
end
SI
disp(c)
ESCRIBIR 'a'
ESCRIBIR c
c ← c + 1
Ejercicios para el alumno: Identificar ICBA en los bucles
de las soluciones de los próximos ejercicios.
71
72
EJERCICIOS ESTR. REPETITIVA while
Problema 5: solución
EJERCICIOS ESTR. REPETITIVA while
Problema 5B: enunciado
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while
EJERCICIOS ESTR. REPETITIVA while Problema 5B: enunciado num=input('Teclee un número menor que 5: '); while

num=input('Teclee un número menor que 5: ');

while (num>=5)

Escriba un algoritmo en MATLAB que lea del teclado un número y compruebe que el número introducido sea negativo. Es decir, mientras que sea mayor o igual que 0, debe volver a leer un número, repitiendo la operación hasta que el usuario escriba un valor negativo. Finalmente debe escribir por pantalla el valor leído.

Finalmente debe escribir por pantalla el valor leído. num=input('Teclee un número menor que 5: '); end
Finalmente debe escribir por pantalla el valor leído. num=input('Teclee un número menor que 5: '); end
Finalmente debe escribir por pantalla el valor leído. num=input('Teclee un número menor que 5: '); end
Finalmente debe escribir por pantalla el valor leído. num=input('Teclee un número menor que 5: '); end

num=input('Teclee un número menor que 5: ');

num=input('Teclee un número menor que 5: '); end disp('El primer número leído menor que 5 es:
num=input('Teclee un número menor que 5: '); end disp('El primer número leído menor que 5 es:

end

disp('El primer número leído menor que 5 es: ');

disp(num);

un número menor que 5: '); end disp('El primer número leído menor que 5 es: ');
73 74 EJERCICIOS ESTR. REPETITIVA while EJERCICIOS ESTR. REPETITIVA while Problema 5B: solución Problema 6:
73
74
EJERCICIOS ESTR. REPETITIVA while
EJERCICIOS ESTR. REPETITIVA while
Problema 5B: solución
Problema 6: enunciado
num=input('Teclee un número negativo: ');
while num>=0
num=input('Teclee un número negativo: ');
end
Escriba un programa en MATLAB que lea del teclado un
número y compruebe si se encuentra en el rango (5,15).
Si no lo es, debe volver a leer un número, repitiendo la
operación hasta que el usuario escriba un valor correcto.
Finalmente debe escribir por pantalla el valor leído.
disp('El primer número negativo leído es: ');
disp(num);
75
76
EJERCICIOS ESTR. REPETITIVA while
Problema 6: solución
EJERCICIOS ESTR. REPETITIVA while
Problema 6B: enunciado
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no
EJERCICIOS ESTR. REPETITIVA while Problema 6B: enunciado num=input('Teclee un número entre 5 y 15 (no

num=input('Teclee un número entre 5 y 15 (no incluidos): ');

while (num<=5) | (num>=15)

Escriba un algoritmo en MATLAB que lea del teclado un número y compruebe que el número introducido sea negativo e impar. Es decir, mientras que sea mayor o igual que 0 o sea par, debe volver a leer un número, repitiendo la operación hasta que el usuario escriba un valor negativo. Finalmente debe escribir por pantalla el valor leído.

Finalmente debe escribir por pantalla el valor leído. num=input('Teclee un número entre 5 y 15 (no
Finalmente debe escribir por pantalla el valor leído. num=input('Teclee un número entre 5 y 15 (no
Finalmente debe escribir por pantalla el valor leído. num=input('Teclee un número entre 5 y 15 (no
Finalmente debe escribir por pantalla el valor leído. num=input('Teclee un número entre 5 y 15 (no

num=input('Teclee un número entre 5 y 15 (no incluidos): ');

un número entre 5 y 15 (no incluidos): '); end disp('El primer número dentro del intervalo
un número entre 5 y 15 (no incluidos): '); end disp('El primer número dentro del intervalo

end

disp('El primer número dentro del intervalo (5,15) ha sido: ');

disp(num);

5 y 15 (no incluidos): '); end disp('El primer número dentro del intervalo (5,15) ha sido:
77 78 EJERCICIOS ESTR. REPETITIVA while Problema 6B: solución EJERCICIOS ESTR. REPETITIVA while Problema 7:
77
78
EJERCICIOS ESTR. REPETITIVA while
Problema 6B: solución
EJERCICIOS ESTR. REPETITIVA while
Problema 7: enunciado
num=input('Teclee un número negativo e impar: ');
while (num>=0) | (rem(num,2)==0)
num=input('Teclee un número negativo e impar: ');
end
disp('El primer número negativo e impar ha sido: ');
Escriba un programa en MATLAB que lea del teclado un
número y compruebe si se encuentra en el rango (5,15).
Si no lo es, debe volver a leer un número, repitiendo la
operación hasta que el usuario escriba un valor correcto.
Además debe contar el número de veces que se
introduce un número por teclado.
Finalmente debe escribir por pantalla el contador del
número de veces.
disp(num);
79
80
EJERCICIOS ESTR. REPETITIVA while
Problema 7: solución
EJERCICIOS ESTR. REPETITIVA while
Problema 7B: enunciado
num=input('Teclee un número entre 5 y 15 (no incluidos): ');
cont=1;
while (num<=5) | (num>=15)
num=input('Teclee un número entre 5 y 15 (no incluidos): ');
cont=cont+1;
end
disp('El primer número dentro del intervalo (5,15) ha sido: ');
disp(num);
Escriba un programa en MATLAB que lea del teclado un
número y compruebe si se encuentra en el rango (5,15).
Si no lo es, debe volver a leer un número, repitiendo la
operación hasta que el usuario escriba un valor correcto.
Además debe contar el número de veces que se
introduce un número por teclado.
En cada iteración del bucle debe escribir por pantalla
el mensaje ‘El número de equivocaciones cometidas
hasta el momento es de: contador’, donde contador
mostrará el valor de la variable correspondiente.
disp('y el número de veces que se ha leído un número ha sido: ');
disp(cont);
81 82 EJERCICIOS ESTR. REPETITIVA while Problema 7B: solución EJERCICIOS ESTR. REPETITIVA while Problema 7C:
81
82
EJERCICIOS ESTR. REPETITIVA while
Problema 7B: solución
EJERCICIOS ESTR. REPETITIVA while
Problema 7C: enunciado para el alumno
num=input('Teclee un número entre 5 y 15 (no incluidos): ');
cont=1;
while (num<=5) | (num>=15)
disp('El número de equivocaciones cometidas hasta el momento es de: ');
disp(cont);
num=input('Teclee un número entre 5 y 15 (no incluidos): ');
cont=cont+1;
end
disp('El primer número dentro del intervalo (5,15) ha sido: ');
disp(num);
disp('y el número de veces que se ha leído un número ha sido: ');
disp(cont);
Escriba un programa en MATLAB que lea del teclado un
número y compruebe si se encuentra en el rango (5,15).
Si no lo es, debe volver a leer un número, repitiendo la
operación hasta que el usuario escriba un valor correcto.
Además debe contar el número de veces que se
introduce un número por teclado, mostrarlo por pantalla,
y el bucle debe permitir realizar 10 lecturas del
teclado como máximo.
En cada iteración del bucle debe escribir por pantalla
el mensaje ‘El número de equivocaciones cometidas
hasta el momento es de: contador’, donde contador
mostrará el valor de la variable correspondiente.
83

EJERCICIOS ESTR. REPETITIVA while Problema 7D: enunciado para el alumno

REPETITIVA while Problema 7D: enunciado para el alumno Escriba un programa en MATLAB que lea del
REPETITIVA while Problema 7D: enunciado para el alumno Escriba un programa en MATLAB que lea del
REPETITIVA while Problema 7D: enunciado para el alumno Escriba un programa en MATLAB que lea del
REPETITIVA while Problema 7D: enunciado para el alumno Escriba un programa en MATLAB que lea del

Escriba un programa en MATLAB que lea del teclado un número, lo meta en la variable num, y que compruebe si está en el rango (5,15). Si no lo está, debe volver a leer un número, repitiendo la operación hasta que el usuario escriba un valor correcto. Además debe contar el número de veces que se introduce un número por teclado, mostrarlo por pantalla, y el bucle debe permitir realizar 10 lecturas del teclado como máximo. Y si tras el bucle se descubre que se realizaron ya las 10 lecturas (y por eso se salió del mismo), escriba por pantalla: 'Has cometido el máximo de errores permitido‘. Si se salió porque el número estaba en el intervalo, imprimir la frase ‘El primer valor del intervalo ha sido: ‘ y el valor de la variable num correspondiente.

imprimir la frase ‘El primer valor del intervalo ha sido: ‘ y el valor de la
imprimir la frase ‘El primer valor del intervalo ha sido: ‘ y el valor de la
imprimir la frase ‘El primer valor del intervalo ha sido: ‘ y el valor de la
imprimir la frase ‘El primer valor del intervalo ha sido: ‘ y el valor de la
imprimir la frase ‘El primer valor del intervalo ha sido: ‘ y el valor de la
imprimir la frase ‘El primer valor del intervalo ha sido: ‘ y el valor de la
imprimir la frase ‘El primer valor del intervalo ha sido: ‘ y el valor de la
imprimir la frase ‘El primer valor del intervalo ha sido: ‘ y el valor de la