Algoritmica

753 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
753
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Algoritmica

  1. 1. ALGORÍTMICADpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.
  2. 2. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y Tipos de datos Representación de algoritmos: Pseudocódigo Diagramas de flujo Sentencias: Asignación Entrada/salida Estructuras de control: condicional, bucles, funciones.
  3. 3. Algoritmos Algoritmo: es una secuencia finita de operaciones que resuelve un problema en un tiempo finito. Sus características son: Finito: debe tener un número finito de pasos, por lo que debe estar limitado tanto en tiempo de realización como por el número de pasos que realiza Definido: para los mismos datos de entrada obtienen los mismos de salida Preciso: debe indicarse el orden de realización de cada paso Independiente del lenguaje de programación
  4. 4. Elementos de un algoritmo Un algoritmo consta de datos y de sentencias Se almacenan Datos Variables y constantes Son involucrados En expresionesLas sentencias describen las acciones que pueden serejecutadas, en general realizan cálculos,entradas/salidas y control de flujo del algoritmo
  5. 5. Variables, constantes y expresiones Variable: elemento del algoritmo que posee un valor, conocido por un nombre o identificador y que pertenece a un tipo de dato definido al inicio del algoritmo Debe ser declarada antes de usarse !!!!!!!! En un algoritmo la declaración consta de una sentencia que especifica: el tipo de dato, su nombre y un valor inicial en algunas ocasiones
  6. 6. Variables, constantes y expresiones Constante: los elementos del algoritmo que no cambian de valor a lo largo del algoritmo Las constantes deben ser inicializadas de acuerdo con el tipo de dato al que pertenecen Expresión: es una combinación de variables, constantes, valores constantes, operadores y funciones especiales que, en cada momento, al evaluarla tiene un valor concreto Las expresiones más representativas son las numéricas y las lógicas
  7. 7. Expresiones Las expresiones numéricas tienen como resultado datos numéricosLos operadores: ^, Signo: (+,-), *,/, +, - Orden de precedencia de mayor a menor Las operaciones entre paréntesis se evalúan primero Las operaciones aritméticas se evalúan según el orden de prioridad
  8. 8. Expresiones Las expresiones lógicas son las que ofrecen como resultado después de su operación un valor lógico. Los operadores lógicos que involucran son: AND, OR,NOT y los relacionales: <, >, ==, <=, >=, ~= NOT, AND, OR, operadores relacionales Orden de precedencia
  9. 9. Tipos de datos Dato es una información relativa a un objeto que es manipulable por el ordenador, que posee un valor y que es conocido en un programa o algoritmo por un nombre o identificador del dato. El identificador indica una dirección de memoria, y es el nombre por el que se conoce a ese dato. Existen datos elementales y estructurados
  10. 10. Tipos de datos Entero Simples Real Lógico Carácter Puntero Tipos de Datos Enumerado Subrango EstructuradosArrays, cadenas,registros, listas, árboles
  11. 11. Tipos de datos Enteros: Representan números positivos o negativos sin decimales, en el rango [-2n-1, 2n-1-1] Reales: Almacenan un valor de la forma N=M*BE Carácter: Representan elementos individuales de un conjunto finito de caracteres. Lógico o booleano: Solo pueden tener dos posibles valores verdadero o falso
  12. 12. Tipos de datos Enumerado: este tipo de dato requiere que el programador defina el rango de valores que puede tomar Subrango: este tipo de dato se define a partir del tipo de dato entero, carácter o enumerado, con solo decir que el tipo de dato definido podrá tomar un conjunto de valores limitado del original Puntero: es aquel cuyo valor es la dirección en memoria de otro dato
  13. 13. Datos estructurados Una estructura es estática cuando el tamaño en memoria ocupado se define antes de la ejecución del programa y no puede modificarse durante la ejecución. Una estructura dinámica es aquella en la que no se define a priori su tamaño en memoria Un conjunto homogéneo es aquel que está formado por datos del mismo tipo, y es ordenado si se puede acceder a cada uno de sus elementos usando un identificador
  14. 14. Datos estructurados Array es una estructura de datos homogénea, estática y ordenada, formada por una cantidad fija de datos de un mismo tipo, cada uno tiene asociado uno o más índices que determinan la posición del dato en el array. A(3) A 1 2 3 4 Cadenas de caracteres está formada por una secuencia de caracteres en un orden determinado, por lo tanto es una estructura homogénea, estática y de acceso por posición
  15. 15. Datos estructurados Registros: formada por varios elementos o campos que se refieren a una misma entidad, es heterogénea, estática y de acceso por nombre Lista: es una estructura de datos homogénea, dinámica y de acceso por clave. Se constituye por una cantidad no prefijada de registros, con al menos dos campos, uno de los cuales sirve para localizar al sgte. elemento de la lista Árbol: es una estructura de datos homogénea y dinámica que ordena los elementos que la integran en forma de árbol, usando nodos y subárboles
  16. 16. Representación de algoritmos Pseudocódigo. Diagramas de flujo.ALGORITMO nombre del algoritmoENTRADA descripción de los datos de entrada al algoritmoSALIDA descripción de los datos de salida del algoritmoVARIABLES lista de variables usadas separadas por comasINICIO cuerpo del algoritmoFIN
  17. 17. Representación de los algoritmos Sentencias: Describen lo que debe hacer el algoritmo. Varios tipos: Asignación: almacena un valor en una variable o constante. Se representa con el operador : Variable Expresión Deben ser del a b Una variable,Identificador mismo tipo constante,declarado constante literal oanteriormente fórmula a evaluar.
  18. 18. Representación de los algoritmos Entrada/salida: Pueden almacenarse de tres formas: asociados con constantes, asignados a una variable o una sentencia de lectura. Entrada: Leer lista de variables separadas por comas Salida: Escribir lista de variables o expresiones separadas por comas Leer b Escribir a
  19. 19. Representación de los algoritmos En Matlab: Sentencias de asignación: A=23 b = 48*A+b ....... Sentencias de entada /salida: Entrada: n=input(‘dame el valor n’); Salida: nombre de la variable sin ; : • N • A • .....
  20. 20. Representación de los algoritmos Sentencias de control de flujo del algoritmo: Secuenciales: todas las instrucciones se ejecutan una detrás de otra: Ejemplo: calcular el área de un triangulo Selectivas (bifurcaciones): se evalúa una expresión lógica o relacional, y en función de su resultado se selecciona cual de las posibles opciones se toma Ejemplo: dados dos números imprime el mayor de ellos
  21. 21. Representación de los algoritmos Speudocódigo Diagrama de flujoSI condición ENTONCES sentencia 1 …. NOSI NO SI CONDICION sentencia 2 ….FIN_SI
  22. 22. Representación de los algoritmos En Matlab: If condición sentencia 1if condición .......... sentencia 1 elseif condicion …. sentencia 2else sentencia 2 ...... …. elseend sentencia 3 ....... end
  23. 23. Representación de los algoritmos Otra forma de estructura de control selectiva EN CASO DE QUE expresión VALGA Valor 1: bloque sentencias 1 Valor 2: bloque sentencias 2 Valor 3: bloque sentencias 3 … [EN OTRO CASO bloque sentencia x] FIN_CASO
  24. 24. Representación de los algoritmos Repetitivas: (cíclicas, bucles o lazos): Se utilizan para realizar varias veces el mismo conjunto de operaciones. • Ciclo determinista: bucle PARA PARA i=0 HASTA i=9 CON INCREMENTO 1Entrar en Salidael bucle del bucle Sentencias Sentencias Sentencias del bucle del bucle del bucle i=0 i=1 i=9
  25. 25. Representación de los algoritmos En pseudocódigo:PARA contador = vi HASTA vf CON INCREMENTO nHACER Bloque de sentenciasFIN_PARA Ejemplo: escribir los números pares del 2 al 50
  26. 26. Representación de los algoritmos En diagrama de flujo ENTRADA En Matlab: PARA i=vi HASTA vf CON INCREMENTO nfor i=vi:incremento:vf Bloque de sentenciasend SENTENCIAS BUCLES SALIDA
  27. 27. Representación de los algoritmos Ciclo condicional: se repiten las sentencias mientras se cumple una condición. Bucle MIENTRASEntrar enel bucle ¿se cumple la SI condición? NO Sentencias del bucle Salir del bucle
  28. 28. Representación de los algoritmos En pseudocódigo En diagrama de flujo MIENTRAS condición HACER Bloque de sentencias NO CONDICION FIN_MIENTRASEn Matlab: SI While condición Sentencias bucle Bloque de sentencias end
  29. 29. Subalgoritmos Un subalgoritmo es una parte de un algoritmo. Se utiliza para descomponer en varias partes un algoritmo que resuelve un problema complejo. Esta característica permite que los algoritmos sean simples, modulares y reutilizables Suabalgoritmo 2Suabalgoritmo 1 Paso de Suabalgoritmo 3 parámetros
  30. 30. Subalgoritmos Parámetros formales son las variables que utiliza el algoritmo llamado para emitir o recibir datos a o desde el algoritmo llamante Parámetros actuales son las variables, constantes o expresiones utilizadas por el algoritmo llamante. El paso de parámetros se puede realizar por valor o por referencia Existen datos globales y datos locales
  31. 31. Subalgoritmos Las funciones reciben valores de entrada y devuelven un valor que es el resultado de la función ¿Cómo se utiliza una función? El algoritmo invoca a la función con un nombre y una lista de parámetros actuales

×