Está en la página 1de 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

Se almacenan
Datos 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

Entero
Simples Real
Lgico
Carcter
Puntero
Tipos de Datos Enumerado
Subrango
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)

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

Deben ser del a b


Una variable,
Identificador mismo tipo
constante,
declarado
constante literal o
anteriormente
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 Diagrama de flujo

SI condicin
ENTONCES
sentencia 1
.
NO
SI NO SI
CONDICION
sentencia 2
.
FIN_SI
Representacin de los algoritmos

En Matlab:
If condicin
sentencia 1

if condicin ..........
sentencia 1 elseif condicion
.
sentencia 2
else
sentencia 2 ......
. else
end
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 Salida
el bucle del bucle
Sentencias Sentencias Sentencias
del bucle del bucle del bucle

i=0 i=1 i=9


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 ENTRADA


En Matlab:

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 SI
condicin?

NO Sentencias
del bucle

Salir del
bucle
Representacin de los algoritmos

En pseudocdigo En diagrama de flujo

MIENTRAS condicin
HACER
Bloque de sentencias
NO
CONDICION
FIN_MIENTRAS

En Matlab: SI
While condicin Sentencias
bucle
Bloque de sentencias
end
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 Suabalgoritmo 3
parmetros
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

También podría gustarte