You are on page 1of 79

Que es un algoritmo?

Una lista de instrucciones donde se

especifica una sucesin de operaciones


necesarias para resolver cualquier
problema de un tipo dado.
Ejemplo sumar dos nmeros

IWI-131 - Tema 1 Algoritmos

IWI-131 - Tema 1 Algoritmos

1.
2.
3.
4.
5.
6.
7.
8.

5+1=6
Anotar 6
2+9=11
Anotar 1 y guardar
1
4+0=4
4+1=5
Anotar 5
El resultado es 516
IWI-131 - Tema 1 Algoritmos

491
+ 25
516

V
+ F
F

+
V

IWI-131 - Tema 1 Algoritmos

san
+ sano
sansano
IWI-131 - Tema 1 Algoritmos

Entrada
Qu se necesita para realizar los pasos?

Salida
Que se obtiene al final del algoritmo?

Tipos de datos
Nmeros: enteros, reales, complejos
Texto: letras, palabras, frases
Otros

IWI-131 - Tema 1 Algoritmos

Sirven para resolver un tipo de


problema especifico.
Son secuencias de pasos concretos.
Requiere la definicin de la entrada y la
salida.
Adecuados para ser ejecutados por un
computador

IWI-131 - Tema 1 Algoritmos

Qu tiene que ver con la


programacin?
La programacin consiste en crear

programas de computador que resuelvan


problemas especficos.
Un programa de computador es la
implementacin de un algoritmo.

IWI-131 - Tema 1 Algoritmos

Qu es un programa de computador?
Es una secuencia de pasos a ejecutar
Los pasos estn descritos en un lenguaje

especial.
Este lenguaje se puede traducir al lenguaje
del computador.
Por lo general es un archivo de texto.
El texto escrito en dicho lenguaje se
denomina el cdigo del programa.

IWI-131 - Tema 1 Algoritmos

Es necesario contar con formas de


expresar algoritmos
Diseo del algoritmo antes de codificar
Diseo del algoritmo de manera independiente

del lenguaje de programacin

Diferentes alternativas
Pseudo - cdigo
Diagramas de flujo
Diagramas de Nassi-Schneidermann
IWI-131 - Tema 1 Algoritmos

Pseudo cdigo
El algoritmo se expresa en lenguaje

natural
Expresa de manera genrica los pasos del
algoritmo
No provee detalles de la implementacin
particular del cdigo final

IWI-131 - Tema 1 Algoritmos

Diagramas de flujo
Presentan el algoritmo de manera grfica.
De gran utilidad para seguir la ruta de un

algoritmo.
Aplicables a muchas otras disciplinas.

IWI-131 - Tema 1 Algoritmos

Diagrama de Nassi-Schneidermann
Tambin se denominan diagramas de caja.
Menos usado que el diagrama de flujo
Mas ordenado
Ocupa mucho espacio para representar

algoritmos complejos.

IWI-131 - Tema 1 Algoritmos

1.
2.
3.
4.
5.

6.
7.

Definir el problema a resolver


Identificar las entradas del algoritmo
Identificar la salida del algoritmo
Definir los pasos a seguir para convertir
las entradas en la salida
Seguir los pasos y comprobar que el
algoritmo sea correcto analizando la
salida.
Revisar los pasos y hacer las correcciones.
Resolver el problema.
IWI-131 - Tema 1 Algoritmos

Construccin de un programa
1. Definir el problema a resolver
2. Definir el algoritmo que lo resuelve
3. Escribir el programa

4.
5.
6.
7.

Escribir cada uno de los pasos del algoritmo en el


lenguaje de programacin

Ejecutar el programa en el computador


Verificar que las salidas sean correctas
Hacer correcciones al programa
Resolver el problema

IWI-131 - Tema 1 Algoritmos

Ejemplo:
Objetivo: Calcular el precio de una

manzana
Entradas
Precio (en pesos) del kilo de manzanas [K]
Peso (en gramos) promedio de una
manzana[P]

Salida
Precio (en pesos) de una manzana [M]
IWI-131 - Tema 1 Algoritmos

Inicio
Ingresar valor de K y P
Calcular G = K/100
Calcular M = G x P
Devolver el valor de M
Fin.

IWI-131 - Tema 1 Algoritmos

Ingresar K y P
G=K/1000
M=G x P
Devolver M

IWI-131 - Tema 1 Algoritmos

Ingresar K y P
G=K/1000
M=G x P
Devolver M

IWI-131 - Tema 1 Algoritmos

Operaciones bsicas

Entrada de datos
Salida de datos
Utilizacin de variables
Utilizacin de constantes
Aplicacin de operadores
Asignacin de valores

Combinacin de operaciones bsicas


Secuencial
Selectiva
Repetitiva

IWI-131 - Tema 1 Algoritmos

Los algoritmos son para solucionar


tipos de problemas
Es imprescindible poder entregar
entradas distintas en cada ejecucin
La entrada de datos se realiza
mediante algn dispositivo

IWI-131 - Tema 1 Algoritmos

Dispositivos de entrada

Teclado
Mouse
Botones
Censores de tacto
Cmaras digitales
Scanners
Archivos

IWI-131 - Tema 1 Algoritmos

IWI-131 - Tema 1 Algoritmos

Cada dispositivo tiene distintas


caractersticas.
Por lo general, sirven para cosas
distintas
Los sistemas definen un dispositivo de
entrada por defecto
Este dispositivo se denomina la entrada

estndar.
En un computador suele ser el teclado.
IWI-131 - Tema 1 Algoritmos

De nada sirve implementar un


algoritmo si no podemos saber su
resultado.
Al finalizar el algoritmo (o durante), es
imprescindible obtener la informacin
resultante de su ejecucin.
La salida de datos se realiza mediante
dispositivos.
IWI-131 - Tema 1 Algoritmos

Dispositivos de salida

Pantalla
Impresora
Parlantes
Tableros luminosos
Motores
Tarjeta de red
Archivos

IWI-131 - Tema 1 Algoritmos

C:\

IWI-131 - Tema 1 Algoritmos

Al igual que con la entrada, cada


dispositivo tiene finalidades distintas.
Los sistemas definen un dispositivo de
salida por defecto
Este dispositivo se denomina la salida

estndar.
En un computador suele ser la pantalla.

IWI-131 - Tema 1 Algoritmos

Durante la ejecucin del algoritmo, es


importante recordar los resultados
parciales de cada paso.
Estos resultados se etiquetan con un
nombre.
Al invocar con posterioridad ese
nombre, recuperamos el resultados
parcial.
IWI-131 - Tema 1 Algoritmos

K es un dato de entrada, y tambin


Se considera una variable

G=K/1000

Esta variable se denomina G y


se utiliza para recordar el
valor de un gramo de
manzana.
IWI-131 - Tema 1 Algoritmos

La principal caracterstica de una


variable es que su valor puede cambiar
en el tiempo.
Usualmente se compara con una caja
donde se puede almacenar una sola
cosa.
Por lo general, las variables se definen
con un tipo de dato.
El tipo de dato restringe que tipo de
cosas se pueden guardar en las
cajas.
IWI-131 - Tema 1 Algoritmos

Adems de las variables, un algoritmo


requiere de constantes.
A diferencia de las variables, su valor
no puede cambiar en el tiempo.
Las constantes tambin pueden recibir
nombres para mayor claridad.
Ej.: PI = 3.1415

IWI-131 - Tema 1 Algoritmos

G=K/1000
La constante 1000 sirva para
transformar el valor Por kilo a un
valor por gramo

IWI-131 - Tema 1 Algoritmos

Para obtener resultados, generalmente es


necesario transformar las entradas en
la salida.
Para esto se aplican operadores de
distinta ndole
Aritmticos ( + , - , * , / )
Lgicos (igual que, mayor que, menor que, y,

o, no)
Etc.

Los operadores requieren de operandos y


entregan un resultado.
Por lo general, los operadores son unarios
o binarios.
IWI-131 - Tema 1 Algoritmos

operandos

M=G * P
operador

IWI-131 - Tema 1 Algoritmos

El resultado de un operador se puede


almacenar en una variable.
Para esto se utiliza un tipo especial de
operador.
Este es el operador de asignacin.
Solo se pueden asignar valores a
variables, no a constantes

IWI-131 - Tema 1 Algoritmos

Operador de asignacin

M=G * P

El resultado de GxP se asigna a la variable M

IWI-131 - Tema 1 Algoritmos

Secuencial
Un conjunto de operaciones bsicas

pueden ser ejecutadas en forma


secuencial.
Una operacin no inicia hasta que la
anterior termina

IWI-131 - Tema 1 Algoritmos

Diagrama de flujo
Diagrama de Nassi-Schneidermann

Ingresar K y P
Ingresar K y P
G=K/1000
M=G * P

G=K/1000

Ingresar K=200 y P=250


G tiene el valor 0,2

M=G * P
Devolver M

Devolver M

IWI-131 - Tema 1 Algoritmos

M tiene el valor 50

Selectiva
Un algoritmo puede optar por ejecutar o no

una operacin (SI ENTONCES).


Un algoritmo puede optar por ejecutar una
u otra operacin (SI-ENTONCES-SINO).
Esta decisin se basa en un condicin.
Esta decisin controla el flujo del
algoritmo.
Por esto, se denomina una estructura de
control.
IWI-131 - Tema 1 Algoritmos

1
2
C
3
4
IWI-131 - Tema 1 Algoritmos

C: Condicin

1
2
C
si

no
3
4

IWI-131 - Tema 1 Algoritmos

C: Condicin

Inicio
Ejecutar 1
Ejecutar 2
si se cumple C entonces
Ejecutar 3
fin si
Ejecutar 4
fin
IWI-131 - Tema 1 Algoritmos

Ejemplo: levantarse en la maana


Inicio
salir de la cama
ducharse
tomar desayuno
si esta lloviendo entonces
tomar el paraguas
fin si
tomar la mochila
tomar la micro
fin

IWI-131 - Tema 1 Algoritmos

1
2
si

3a

no
3b

4
IWI-131 - Tema 1 Algoritmos

C: Condicin

1
2
C
si

no
3a

3b
4

IWI-131 - Tema 1 Algoritmos

C: Condicin

Inicio
Ejecutar 1
Ejecutar 2
si se cumple C entonces
Ejecutar 3a
si no
Ejecutar 3b
fin si
Ejecutar 4
fin
IWI-131 - Tema 1 Algoritmos

Ejemplo: levantarse en la maana


Inicio
salir de la cama
ducharse
tomar desayuno
si esta lloviendo entonces
llevar la parca
si no
llevar la chaqueta
fin si
tomar la mochila
tomar la micro
fin
IWI-131 - Tema 1 Algoritmos

Estructura de control selectiva


Una condicin es cualquier proposicin

lgica que tenga un valor verdadero o falso


definido.
Este esquema selectivo se denomina
decision binaria.
Y si hay ms de dos opciones?

IWI-131 - Tema 1 Algoritmos

Estructura de control selectiva


Toda decisin se puede llevar a un

esquema de decisin binaria.


Basta con decidir entre una alternativa y
todo el resto
Si se elige el resto, se decide entre una
alternativa y el resto del resto.
Etc

IWI-131 - Tema 1 Algoritmos

1
x mayor que 0
x?

x menor que 0

x igual a 0
2a

2b

3
IWI-131 - Tema 1 Algoritmos

2c

1
si
x mayor que 0?

x menor que 0?

no
2a

no

2b
3
IWI-131 - Tema 1 Algoritmos

si
2c

1
x mayor que 0?

si

x menor que 0?

no
2a

2b

3
IWI-131 - Tema 1 Algoritmos

no
si
2c

Inicio
Ejecutar 1
Si x es mayor que cero entonces
Ejecutar 2a
Si no
Si x es menor que cero entonces
Ejecutar 2c
Si no
Ejecutar 2b
fin si
fin si
Ejecutar 3
fin

IWI-131 - Tema 1 Algoritmos

Ejemplo: levantarse en la maana


Inicio
salir de la cama
ducharse
tomar desayuno
si esta lloviendo entonces
llevar la parca
si no esta lloviendo pero hace fro
llevar la chaqueta
si no
llevar un chaleco
fin si
tomar la mochila
tomar la micro
fin
IWI-131 - Tema 1 Algoritmos

Estructura de seleccin mltiple


Para algunos casos se puede utilizar un

esquema selectivo no binario (EN EL CASO DE)


Ejemplo: ingreso de opcin de men de un
cajero automtico

Si el usuario presion el botn 1, hacer un giro


Si el usuario presion el botn 2, entregar saldo
Si el usuario presion el botn 3, cambiar la clave
Etc.

IWI-131 - Tema 1 Algoritmos

Botn
1

giro

saldo

clave

salir
IWI-131 - Tema 1 Algoritmos

etoc

error

Botn
1

giro

saldo

etoc

clave

salir
IWI-131 - Tema 1 Algoritmos

error

Inicio
en el caso que el botn presionado
sea el 1
hacer giro
sea el 2
entregar saldo
sea el 3
cambiar clave

En cualquier otro caso


Error
fin caso
fin

IWI-131 - Tema 1 Algoritmos

Repetitiva
Adems de combinar operaciones en

forma secuencial y selectiva, se puede


repetir la ejecucin de una operacin
cuantas veces se desee.
Existen varios esquemas
Repetir MIENTRAS se cumpla una condicin.
Repetir HASTA QUE se cumpla una condicin.
Repetir un nmero de veces.

IWI-131 - Tema 1 Algoritmos

MIENTRAS
Se repite una operacin mientras una

condicin sea verdadera.


Al dejar de serlo, se rompe el ciclo
Si la condicin nunca es falsa, se tiene un
ciclo infinito.

IWI-131 - Tema 1 Algoritmos

1
C

no

si
2

3
IWI-131 - Tema 1 Algoritmos

C: Condicin

1
C

3
IWI-131 - Tema 1 Algoritmos

C: Condicin

Inicio
ejecutar 1
mientras se cumpla la condicin
ejecutar 2
fin mientras
ejecutar 3
fin

IWI-131 - Tema 1 Algoritmos

Ejemplo validar ingreso de valor positivo

Inicio
definir variable x
asignar el valor -1 a x
mientras x sea menor que cero
ingresar x por teclado
fin mientras
mostrar valor de x
fin
IWI-131 - Tema 1 Algoritmos

HASTA QUE
Se repite la ejecucin de una operacin

hasta que se cumpla una condicin.


La principal diferencia con MIENTRAS es
que la operacin se ejecuta al menos una
vez.

IWI-131 - Tema 1 Algoritmos

2
no

C
si
3

IWI-131 - Tema 1 Algoritmos

C: Condicin

C
3
IWI-131 - Tema 1 Algoritmos

C: Condicin

Inicio
ejecutar 1
repetir
ejecutar 2
hasta que se cumpla condicin
ejecutar 3
fin

IWI-131 - Tema 1 Algoritmos

Ejemplo
Mismo ejemplo anterior

Inicio
definir variable x
repetir
ingresar x por teclado
Hasta que x sea mayor que cero
mostrar valor de x
fin

IWI-131 - Tema 1 Algoritmos

Repetir un nmero fijo de veces


Muy til cuando se sabe el numero de

repeticiones a ejecutar.
Por lo general se define una variable que
sirve de contador
El contador mantiene el nmero de cada
iteracin.
Tambin se puede definir el incremento del
contador en cada iteracin.

IWI-131 - Tema 1 Algoritmos

Inicio contador, fin contador

3
IWI-131 - Tema 1 Algoritmos

1
Inicio contador, fin contador

3
IWI-131 - Tema 1 Algoritmos

Inicio
ejecutar 1
desde contador inicial hasta
contador final
ejecutar 2
fin desde
ejecutar 3
fin
IWI-131 - Tema 1 Algoritmos

Ejemplo

i
i 0

Inicio
definir variable sumatoria
asignar el valor 0 a sumatoria
desde i igual a 0 hasta i igual a 5
sumatoria = sumatoria + i
fin desde
mostrar valor de sumatoria
fin
IWI-131 - Tema 1 Algoritmos

Combinacin de estructuras de control


seriales, selectivas y repetitivas
Cualquier combinacin es posible
Pueden existir estructuras anidadas
Es importante definir el comienzo y el

termino de cada estructura

IWI-131 - Tema 1 Algoritmos

Ejemplos
Cachi-pun
Ordenar objetos

IWI-131 - Tema 1 Algoritmos