Está en la página 1de 107

Semana No 1

Algoritmos
ING. SALDAA GOLDSCHMIDT,
JUAN

Algoritmos

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

Algoritmos

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

491
+ 25
516

Algoritmos

V
+F
F

+
V

Algoritmos

san
+ sano
sansano

Algoritmos

Entrada

Qu se necesita para realizar los


pasos?.

Proceso
Transformacin, efectuar las
operaciones.

Salida

Que se obtiene al final del algoritmo?

Tipos de datos

Nmeros: enteros, reales, complejos


Texto: letras, palabras, frases
Otros

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

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 en cdigo (algn lenguaje de
programacin) de un algoritmo.

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.

Descripcin de un
algoritmo

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 (Tcnicas)


Pseudo - cdigo
Diagramas de flujo
inicio
Leer a , b
suma = a + b
Imprimir suma
Fin

a,b;
int b int
=));
integer.parseInt(JOptionPane.ShowInputDialog(a));
int suma
= a +b;
integer.parseInt(JOptionPane.ShowInputDialog(b));
System.out.println(suma);
int suma = a +b;
System.out.println(suma);

Descripcin de un
algoritmo

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

Descripcin de un
algoritmo

Diagramas de flujo
Presentan el algoritmo de manera grfica.
De gran utilidad para seguir la ruta de un
algoritmo.
Aplicables a muchas otras disciplinas.

Construccin de un
algoritmo
1.
2.
3.
4.

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. Ej.
(suma = x + y)

5.

6.
7.

Seguir los pasos y comprobar que el


algoritmo sea correcto analizando la
salida.
Revisar los pasos y hacer las
correcciones.
Resolver el problema.

Construccin de un
algoritmo

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

Construccin de un
algoritmo

Ejemplo:
Objetivo: Calcular el precio de una manzana
Entradas
Precio (en soles) del kilo de manzanas [K]
Peso (en gramos) promedio de una manzana[P]

Salida
Precio (en soles) de una manzana [M]

IWI-131 - Tema 1 Algoritmos

Construccin de un
algoritmo
Inicio
Ingresar valor de K y P
Calcular G = K/1000
Calcular M = G x P
Devolver el valor de M
Fin.

Construccin de un
algoritmo
Ingresar K y P

G=K/1000

M=G x P

Devolver M

IWI-131 - Tema 1 Algoritmos

Construccin de un
algoritmo

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

IWI-131 - Tema 1 Algoritmos

Construccin de un
algoritmo

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

Entrada de datos
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

Entrada de datos

Dispositivos de entrada

Teclado
Mouse
Botones
Censores de tacto
Cmaras digitales
Scanners
Archivos

IWI-131 - Tema 1 Algoritmos

Entrada de datos

IWI-131 - Tema 1 Algoritmos

Entrada de datos
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

Salida de datos
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

Salida de datos

Dispositivos de salida

Pantalla
Impresora
Parlantes
Tableros luminosos
Motores
Tarjeta de red
Archivos

IWI-131 - Tema 1 Algoritmos

Salida de datos
C:\

IWI-131 - Tema 1 Algoritmos

Salida de datos
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

Utilizacin de variables
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

Utilizacin de variables
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

Utilizacin de variables
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

Utilizacin de constantes
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

Utilizacin de constantes

G=K/1000

La constante 1000 sirva para


transformar el valor Por kilo a un
valor por gramo

IWI-131 - Tema 1 Algoritmos

Aplicacin de operadores
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

Aplicacin de operadores
operandos

M=G * P

operador

IWI-131 - Tema 1 Algoritmos

Asignacin de valores
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

Asignacin de valores
Operador de asignacin

M=G * P

El resultado de GxP se asigna a la variable M

IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas
Diagrama de flujo
Diagrama de Nassi-Schneidermann
Ingresar K y P
Ingresar K y P
G=K/1000

M=G * P

G=K/1000
M=G * P

Ingresar K=200 y P=250


G tiene el valor 0,2
M tiene el valor 50

Devolver M
Devolver M

IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas
1
2

C
3

C: Condicin

IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
1
2

C
si

no
3
4

C: Condicin
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
Inicio
Ejecutar 1
Ejecutar 2
si se cumple C entonces
Ejecutar 3
fin si
Ejecutar 4
fin

IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas
1
2
si

3a

no

3b

C: Condicin
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
1
2

C
si

no
3a

3b
4

C: Condicin
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
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

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas
1

x mayor que 0

x menor que 0
x?

x igual a 0
2a

2b

2c

3
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
1

si

no
x mayor que 0?

x menor que 0?

no

2a

si

2b

2c

3
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
1
x mayor que 0?

si

no
x menor que 0?

no

si

2a
2b

IWI-131 - Tema 1 Algoritmos

2c

Combinacin de operaciones
bsicas
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

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas

etoc
Botn
1

giro

saldo

clave

error

salir
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
Botn
1

giro

saldo

etoc

clave

salir

IWI-131 - Tema 1 Algoritmos

error

Combinacin de operaciones
bsicas
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

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas
1
no
C
si
2

3
C: Condicin
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
1
C

3
C: Condicin
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
Inicio
ejecutar 1
mientras se cumpla la condicin
ejecutar 2
fin mientras
ejecutar 3
fin

IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas
1

no
C
si
3
C: Condicin
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
1

C
3
C: Condicin
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
Inicio
ejecutar 1
repetir
ejecutar 2
hasta que se cumpla condicin
ejecutar 3
fin

IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas

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

Combinacin de operaciones
bsicas
1

Inicio contador, fin contador

3
IWI-131 - Tema 1 Algoritmos

Combinacin de operaciones
bsicas
1
Inicio contador, fin contador

IWI-131 - Tema 1 Algoritmos

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

Combinacin de operaciones
bsicas

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 operaciones
bsicas

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

Programacin Estructurada

Anlisis del problema

La descripcin inicial puede ser un tanto


vaga
Ejemplo:
Explicar al alumno la construccin de la oracin simple
(sujeto y predicado).

Anlisis

El primer paso en el desarrollo de software


es la especificacin precisa del problema.
Ejemplo:
Desarrollar una pgina web con HTML para la
explicacin al alumno de la construccin de la
oracin simple a partir de sus componentes sujeto y
predicado.

Anlisis

En la especificacin del problema se deben


describir las entradas de informacin, es
decir, qu informacin se da y qu
elementos son importantes para resolver el
problema y la salida qu informacin
debe producirse como solucin del
problema.

Anlisis

En el desarrollo de software conviene


aplicar la generalizacin: el programa
debe ser lo suficientemente flexible para
resolver no slo un ejemplo, sino varios
problemas del mismo estilo
Ejemplo:
La pgina web no slo muestra un caso de oracin
simple, sino varios modelos.

Diseo

El diseo de software educativo debe


considerar dos elementos fundamentales:
Las estructuras para organizar y almacenar los
datos
Los procedimientos para procesar y mostrar la
informacin.

Diseo
La programacin estructurada consiste en
el diseo del problema a solucionar a partir
de un flujo lgico.
A diferencia de la programacin lineal, la
programacin estructurada considera el uso
de elementos de control a partir de
decisiones.

Programacin
estructurada

Las tres estructuras bsicas en este tipo de


programacin son:
Secuenciacin
Seleccin
Repeticin

Estructura secuencial

Es la ejecucin de una secuencia de


instrucciones en el orden que aparecen, de
tal manera que se ejecutan una sola vez.
Ejemplo
En una pgina web para explicar el concepto de
oracin simple, la estructura de secuencia estar
marcada en su inicio por la etiqueta <HTML> y en su
trmino por </HTML>.

Estructura de seleccin

Permite la seleccin de una o varias


acciones alternativas, dependiendo de la
decisin del usuario o de una decisin en el
flujo del programa.
Ejemplo
En la pgina web de oracin simple se puede dar al
usuario la oportunidad de ir a una explicacin ms
profunda sobre cierto trmino, por ejemplo: la
composicin del predicado.

Estructura de repeticin

Hace posible la ejecucin repetida de una o


ms instrucciones
Ejemplo
En la pgina web de oracin simple se puede incluir
un video o audio que se repita constantemente al
momento de seleccionarlo o desde la primera vez
que se carga la pgina.

Algoritmo

La programacin estructurada (anlisis y


diseo del problema) se expresa
textualmente como un algoritmo.

Es un conjunto finito de instrucciones que


sirven para ejecutar una tarea o resolver un
problema.

Algoritmos en la vida
cotidiana
Instrucciones para el uso de un aparato
Partitura de msica
Instrucciones de construccin de un modelo
a escala
Trucos de magia
Recetas de cocina

Definicin formal de
algoritmo

Secuencia finita de instrucciones realizables,


no ambiguas, cuya ejecucin conduce a la
solucin de un problema.

Caractersticas de los algoritmos

Dan la solucin genrica a un problema y se


puede emplear siempre que se presente el
mismo problema.
Una vez dado el algoritmo ya no se necesita
entender cmo funciona, sino seguir las
instrucciones. La inteligencia reside en el
algoritmo.
Las mquinas algortmicas interpretan
algoritmos. El mejor ejemplo es la computadora.

Inteligencia para la computadora

Un programa o software consiste en emplear una


regla o lenguaje para codificar el algoritmo y que
sea entendible por la computadora.

La inteligencia que se le puede transmitir a la


computadora reside en la manera en que se le
comuniquen pensamientos y sol.uciones a
problemas por medio de algoritmos.

El algoritmo de Euclides

Mtodo para calcular el mximo comn divisor de


dos nmeros enteros

Algoritmo

Inicio
Obtener los dos datos de entrada
Sea A el mayor y B el menor
Asegurarse que sean enteros positivos
Mientras B no sea igual a cero hacer las siguientes 4
instrucciones en secuencia:

El algoritmo de Euclides
1.
2.
3.
4.

Dividir A entre B
Asignar el valor del residuo a R
El nuevo valor de A ser el valor de B
El nuevo valor de B ser el valor de R

.
.

El resultado es el ltimo valor de A


Fin

Pseudocdigo

Es una manera genrica de escribir un


algoritmo usando las convenciones de los
lenguajes de programacin.

Es una mezcla de frases en lenguaje comn,


instrucciones de programacin y palabras
clave que definen la estructura de un
programa.

Pseudocdigo

El objetivo es centrarse en la solucin del


problema antes de la redaccin en el
lenguaje o reglas especficas de cmputo.

Dado que el pseudocdigo no es un


lenguaje formal, la descripcin de la
solucin a un problema puede variar de un
programador a otro, no as la lgica.

Pseudocdigo de
secuencia
Inicio
Accin 1
Accin 2
.
Accin n

Fin

Pseudocdigo de decisin simple

Si CONDICIN entonces
Accin 1
Accin 2
.
Accin n

Fin del Si

Pseudocdigo de decisin doble

Si CONDICION entonces
Accin 1
Accin 2
.
Accin n

En caso contrario
Accin 1

Accin n

Fin del Si

Pseudocdigo de iteracin
fija
Para INICIO hasta FIN hacer
Accin 1
Accin 2
.
Accin n

Fin del Para

Pseudocdigo de iteracin condicional


al inicio
Mientras CONDICION hacer
Accin 1
Accin 2

Accin n

Fin del Mientras

Pseudocdigo de iteracin condicional


al final

Repetir
Accin 1
Accin 2
.
Accin n

Hasta que CONDICION

Pseudocdigo de seleccin
Caso de SELECTOR
Valor 1 : Accin 1
Accin 2
Valor 2: Accin 1
Accin 2
Valor n: Accin 1
Accin 2

Fin del Caso

Ejemplo de Pseudocdigo

Operaciones entre dos elementos dados por


el usuario:
Declaracin de Variables
Real: X, Y, RESPUESTA
Entero: OPCION
Carcter: OP

Ejemplo
Inicio
Repetir
escribir(Primer valor: )
leer(X)
escribir(Segundo valor: )
leer(Y)
escribir(1) Suma )
escribir(2) Resta )
escribir(3) Multiplicacin )
escribir(4) Divisin )
escribir(Qu operacin deseas realizar?: )

Ejemplo
leer(OPCION)
casos OPCION de
1:
2:
3:
4:

RESULTADO X+Y
RESULTADO X-Y
RESULTADO X*Y
si Y=0 entonces

Ejemplo
escribir( Error )
RESULTADO 0
en caso contrario
RESULTADO X/Y
escribir (Resultado: ,RESULTADO)
escribir(Deseas otro clculo?: [S/N] )
leer(OP)

Hasta que RES = N

Fin

También podría gustarte