algoritmos simples
Short Description
Download algoritmos simples...
Description
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
Introducción a la Algorítmica y a la la Programación en MATLAB
Programación Estructurada
1
Diagrama de Flujo, Pseudo código Lenguajes de programación: MATLAB Estructura Secuencial Estructura Selectiva Simple (If) Doble (If-else) Múltiple Estructura Repetitiva While (Mient (Mientras) ras) Forr (P Fo (Par ara) a)
3
4
EJEMPLO DE ALGORITMO INTUITIVO: RECETA DE COCINA
CONCEPTO DE ALGORITMO (1)
Calabacines rehogados
Un algoritmo es un conjunto de acciones acciones que determinan secuencia de los pasos pasos aa seguir para determinan la secuencia resolver un problema específico. Otras definiciones:
Conjunto de reglas en cierto orden para resolver un problema. Una forma de describir la solución de un problema en pasos sucesivos.. sucesivos
Pelar los calabacines y cortar en rodajas Añadir sal a los calabacines Poner los calabacines en una sartén con aceite a medio fuego Mover los calabacines hasta que estén trasparentes Sacar de la sartén y escurrir el aceite Añadir queso parmesano rallado; sino se dispone de parmesano, utilizar queso curado.
1. 2. 3. 4. 5. 6.
Cualquier error no funcionará. Pensar ej. Elementos del algoritmo
Los pasos de un algoritmo deben estar definidos:
con precisi ó ón n, 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
COCINA Ingredientes Ingredientes intermedios Acciones Orde Or denn de de eje ejecu cuci ción ón de la lass acc accio ione ness
PROGRAMACIÓN Entrada Variables, Constantes Sentencias Secu Se cuen enci cial alid idad ad
5
EJEMPLO DE ALGORITMO INTUITIVO: ¿Qué pasa cuando no se especifica bien un algoritmo?
6
EJEMPLO DE ALGORITMO INTUITIVO: ¿Qué pasa cuando no se especifica bien un un algoritmo?
Un ejemplo de algoritmo: ¿está bien especificado?
El algoritmo del ejemplo anterior está mal especificado:
1. Sal Sal de de cas casaa 2. Ve a la tien tienda da y pide pide dulce dulces. s. 3. Si la ttienda ienda no tiene, tiene, vuelve vuelve al punto 2 4. Vu Vuel elve ve a cas casa. a.
2. Ve a la tienda y pide dulces. 3. Si la tienda no tiene, vuelve al punto 2
OK Va a ser que no
7
EJEMPLO DE ALGORITMO INTUITIVO: ¿Qué pasa cuando no se especifica bien un algoritmo? El algoritmo bien especificado especificado sería el siguiente:
Ahora sí que Ahora le has cogido el truco
OK
8
Conceptos básicos: ¿Qué pasa cuando no no se especifica bien bien un algoritmo? Resultado de la ejecución del algoritmo bien especificado:
1. Sal Sal de de cas casaa 2. Ve a la la tienda más cercana que no hayas visitado y pide dulces. 3. Si la la tienda tienda no no tiene tiene y tú no est estás ás cansado, vuelve al punto 2 4. Vu Vuel elve ve a ca casa sa
2. Ve a la tienda y pide dulces. 3. Si la tienda no tiene, vuelve al punto 2
13
REPRESENTACIÓN DE LOS ALGORITMOS (1)
REPRESENTACIÓN DE LOS ALGORITMOS (1)
PSEUDOCÓDIGO:
Existen diversas herramientas para representar un algoritmo:
Es
Lenguajes de descripción de algoritmos:
Diagramas de Flujo
Pseudocódigo
Lenguajes de implementación de algoritmos:
14
Son los lenguajes de programación, entre los que se encuentra el de MATLAB (otros ejemplos: C, JAVA,PHP,Perl,Javascript,...)
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
3. SALIDA
p, s
4.
LEE a
5.
LEE b
6.
LEE c
7.
p ← (a + b + c) / 2
8.
s ← sqrt ( p * (p-a) * (p-b) * (p-c) )
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: 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 (Ejemplo): ALUMNO INTERESADO EN HACER EVALUACIÓNALTERNATIVA
ALUMNO INTERESADO EN HACER SÓLO EVALUACIÓN CLÁSICA
EX. PARCIAL BLOQUE TEMÁTICO 1 >= 3.5
NO
SI EX. PARCIAL BLOQUE TEMÁTICO 2 >= 3.5
NO
SI EVALUACIÓN BLOQUE TEMÁTICO 3 >=3.5
NO
SI NOTA FINAL= (Nota Blq1 * 0.15) + (Nota Blq2 * 0.6)+ (Nota Blq3*0.25)
SI
LENGUAJE DE PROGRAMACIÓN: un lenguaje PROCESABLE POR EL Es ORDENADOR que sirve para expresar el código del algoritmo. La SINTAXIS usada sí es MUY importante. Ventaja: Es ejecutable en un ordenador. Desventajas: 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.
, s e a s v a r a i l t r c e a a p n r u t e o s d l n e a e d n i t ó n i s ó i c s i a a c u p l r i o a u a v g l e e r s e n o e i e p d t a e o r u n u p t a a n o y g n i o s m r u e a l a a p l l E
Evaluación Clásica
Nota FINAL >=5
Un único examen en las convocatorias oficiales
NO
APROBADO, NOTABLE, SOBRESALIENTE
(60% Bloque 2)+ (40% Bloques 1 y 3)
SI
Nota FINAL >=5
APROBADO, NOTABLE, SOBRESALIENTE
NO SUSPENSO
19
20
Introducción a la programación imperativa (1)
REPRESENTACIÓN DE LOS ALGORITMOS (3)
LENGUAJE DE PROGRAMACIÓN (Ejemplo: MATLAB)
Hay dos grandes “paradigmas de la programación”:
function result= negativo() img1=imread('foto.jpg');
img2=img1 [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 image(img2) imwrite (img2,imagen_resultante.jpg);
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)
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,…)
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
25
26
DATOS: VARIABLES Y CONSTANTES
En MATLAB una variable se crea la primera vez que se utiliza.
Los nombres distinguen mayúsculas de minúsculas
DATOS: VARIABLES Y CONSTANTES
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 ñ.
A las variables hay que darles un valor inicial en una sentencia de asignación : 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 % si invertimos el orden x=y entonces la x tomará el valor 5
Ej: anio %en lugar de año
Si el nombre de la variable está compuesto por más de una palabra usar un guión bajo _ para unirlas.
En MATLAB una variable se crea la primera vez que se utiliza.
Ej (incorrecto): x=z+1 %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: nombre_empleado %en lugar de nombre empleado que MATLAB interpretaría como dos variables nombre y empleado.
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
DATOS: VARIABLES Y CONSTANTES
En MATLAB la variable ans (del inglés answer) contiene el valor de la última operación calculada por el programa en ejecución.
28
SENTENCIA DE ASIGNACIÓ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 ans = 25
>> n=1+3*8 n= 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 comparación de igualdad.
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 ==
En la sentencia de asignación : nombre_de_variable= expresion_o_valor
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 ARITMÉTICA
Resultado de la expresión
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
EXPRESIONES LÓGICAS (CONDICIONES)
Se modelan como variables y/o expresiones del Álgebra de Boole una expresión de condición es cierta ó falsa.
Expresión RELACIONAL Operando1 > Operando2
- Expresión funcion (lista_parámetros )
El resultado es la Expresión cambiada de signo El resultado de la expresión es el valor devuelto por la función
Resultado de la expresión Es verdadero si Operando1 ES MAYOR QUE Operando2
Operando1 >= Operando2 Es verdadero si Operando1 ES Operando1 85 70 < TEMP 32 disp ('Esquí') else disp ('Marcha') end
32
63
EJEMPLO DE ESTRUCTURA SELECTIVA MULTIPLE (Problema 4B: enunciado)
64
EJEMPLO DE ESTRUCTURA SELECTIVA MULTIPLE (Problema 4B: solución) hora=input('Introduce la hora: '); min=input ('Introduce los minutos: ');
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 telefónica, teniendo en cuenta la siguiente tabla:
min_total=hora*60 + min; if min_total
View more...
Comments