algoritmos simples

June 28, 2018 | Author: Jose Antonio RV | Category: Programming Language, Algorithms, Compiler, Computer Programming, Assembly Language
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF