Vous êtes sur la page 1sur 31

ALGORTMICA

Dpto. Ingeniera de Sistemas y Automtica Facultad de Ciencias Universidad de Valladolid.

Indce
Algoritmo Elementos de un algoritmo:
Variables, Constantes, Expresiones

Datos:
Definicin y Tipos de datos

Representacin de algoritmos:
Pseudocdigo Diagramas de flujo

Sentencias:
Asignacin Entrada/salida Estructuras de control: condicional, bucles, funciones.

Algoritmos
Algoritmo: es una secuencia finita de operaciones que resuelve un problema en un tiempo finito. Sus caractersticas son:
Finito: debe tener un nmero finito de pasos, por lo que debe estar limitado tanto en tiempo de realizacin como por el nmero de pasos que realiza Definido: para los mismos datos de entrada obtienen los mismos de salida Preciso: debe indicarse el orden de realizacin de cada paso Independiente del lenguaje de programacin

Elementos de un algoritmo
Un algoritmo consta de datos y de sentencias Datos
Se almacenan

Variables y constantes
Son involucrados

En expresiones Las sentencias describen las acciones que pueden ser ejecutadas, en general realizan clculos, entradas/salidas y control de flujo del algoritmo

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 declaracin consta de una sentencia que especifica: el tipo de dato, su nombre y un valor inicial en algunas ocasiones

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 Expresin: es una combinacin de variables, constantes, valores constantes, operadores y funciones especiales que, en cada momento, al evaluarla tiene un valor concreto Las expresiones ms representativas son las numricas y las lgicas

Expresiones
Las expresiones numricas tienen como resultado datos numricos Los operadores: ^, Signo: (+,-), *,/, +, Orden de precedencia de mayor a menor Las operaciones entre parntesis se evalan primero Las operaciones aritmticas se evalan segn el orden de prioridad

Expresiones
Las expresiones lgicas son las que ofrecen como resultado despus de su operacin un valor lgico. Los operadores lgicos que involucran son: AND, OR,NOT y los relacionales: <, >, ==, <=, >=, ~=

NOT, AND, OR, operadores relacionales Orden de precedencia

Tipos de datos
Dato es una informacin 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 direccin de memoria, y es el nombre por el que se conoce a ese dato. Existen datos elementales y estructurados

Tipos de datos
Simples Entero Real Lgico Carcter Puntero Enumerado Subrango

Tipos de Datos Estructurados Arrays, cadenas, registros, listas, rboles

Tipos de datos
Enteros: Representan nmeros positivos o negativos
sin decimales, en el rango [-2n-1, 2n-1-1]

Reales: Almacenan un valor de la forma N=M*BE Carcter: Representan elementos individuales de un


conjunto finito de caracteres.

Lgico o booleano: Solo pueden tener dos posibles


valores verdadero o falso

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, carcter 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 direccin en


memoria de otro dato

Datos estructurados
Una estructura es esttica cuando el tamao en memoria ocupado se define antes de la ejecucin del programa y no puede modificarse durante la ejecucin. Una estructura dinmica es aquella en la que no se define a priori su tamao en memoria Un conjunto homogneo 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

Datos estructurados
Array es una estructura de datos homognea, esttica y ordenada, formada por una cantidad fija de datos de un mismo tipo, cada uno tiene asociado uno o ms ndices que determinan la posicin 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 homognea, esttica y de acceso por posicin

Datos estructurados
Registros: formada por varios elementos o campos
que se refieren a una misma entidad, es heterognea, esttica y de acceso por nombre

Lista: es una estructura de datos homognea,


dinmica 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 homognea y


dinmica que ordena los elementos que la integran en forma de rbol, usando nodos y subrboles

Representacin de algoritmos
Pseudocdigo. Diagramas de flujo.
ALGORITMO nombre del algoritmo ENTRADA descripcin de los datos de entrada al algoritmo SALIDA descripcin de los datos de salida del algoritmo VARIABLES lista de variables usadas separadas por comas INICIO
cuerpo del algoritmo

FIN

Representacin de los algoritmos


Sentencias: Describen lo que debe hacer el
algoritmo. Varios tipos: Asignacin: almacena un valor en una variable o constante. Se representa con el operador :

Variable

Expresin

Identificador declarado anteriormente

Deben ser del mismo tipo

Una variable, constante, constante literal o frmula a evaluar.

Representacin 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

Representacin de los algoritmos


En Matlab:
Sentencias de asignacin: 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 .....

Representacin de los algoritmos


Sentencias de control de flujo del algoritmo: Secuenciales: todas las instrucciones se ejecutan una detrs de otra: Ejemplo: calcular el rea de un triangulo Selectivas (bifurcaciones): se evala una expresin lgica o relacional, y en funcin de su resultado se selecciona cual de las posibles opciones se toma Ejemplo: dados dos nmeros imprime el mayor de ellos

Representacin de los algoritmos


Speudocdigo
SI condicin ENTONCES sentencia 1 . SI NO sentencia 2 . FIN_SI

Diagrama de flujo

NO CONDICION

SI

Representacin de los algoritmos


En Matlab:
If condicin sentencia 1 if condicin sentencia 1 . else sentencia 2 . end .......... elseif condicion sentencia 2 ...... else sentencia 3 ....... end

Representacin de los algoritmos


Otra forma de estructura de control selectiva EN CASO DE QUE expresin VALGA Valor 1: bloque sentencias 1 Valor 2: bloque sentencias 2 Valor 3: bloque sentencias 3 [EN OTRO CASO bloque sentencia x] FIN_CASO

Representacin de los algoritmos


Repetitivas: (cclicas, 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 1

Entrar en el bucle Sentencias del bucle i=0 Sentencias del bucle i=1 Sentencias del bucle i=9

Salida del bucle

Representacin de los algoritmos


En pseudocdigo:
PARA contador = vi HASTA vf CON INCREMENTO n
HACER Bloque de sentencias FIN_PARA

Ejemplo: escribir los nmeros pares del 2 al 50

Representacin de los algoritmos


En diagrama de flujo En Matlab:
ENTRADA

PARA i=vi HASTA vf CON INCREMENTO n

for i=vi:incremento:vf
Bloque de sentencias end SENTENCIAS BUCLES

SALIDA

Representacin de los algoritmos


Ciclo condicional: se repiten las sentencias mientras se cumple una condicin. Bucle MIENTRAS

Entrar en el bucle

se cumple la condicin?

SI

NO

Sentencias del bucle Salir del bucle

Representacin de los algoritmos


En pseudocdigo MIENTRAS condicin HACER Bloque de sentencias FIN_MIENTRAS En Matlab: While condicin Bloque de sentencias end CONDICION NO En diagrama de flujo

SI Sentencias bucle

Subalgoritmos
Un subalgoritmo es una parte de un algoritmo. Se utiliza para descomponer en varias partes un algoritmo que resuelve un problema complejo. Esta caracterstica permite que los algoritmos sean simples, modulares y reutilizables
Suabalgoritmo 2 Suabalgoritmo 1

Paso de parmetros

Suabalgoritmo 3

Subalgoritmos
Parmetros formales son las variables que utiliza el algoritmo llamado para emitir o recibir datos a o desde el algoritmo llamante Parmetros actuales son las variables, constantes o expresiones utilizadas por el algoritmo llamante. El paso de parmetros se puede realizar por valor o por referencia Existen datos globales y datos locales

Subalgoritmos
Las funciones reciben valores de entrada y devuelven un valor que es el resultado de la funcin Cmo se utiliza una funcin?

El algoritmo invoca a la funcin con un nombre y una lista de parmetros actuales

Vous aimerez peut-être aussi