Вы находитесь на странице: 1из 78

Tema 1

Algoritmos
Algoritmos
 ¿Que es un algoritmo?
 “Una lista de instrucciones donde se
especifica una sucesión de operaciones
necesarias para resolver cualquier
problema de un tipo dado”.
 Ejemplo sumar dos números
Algoritmos
Algoritmos
1. 5+1=6

491 2.

3.
Anotar 6
2+9=11

+ 25
4. Anotar 1 y guardar
1
5. 4+0=4

516 6.

7.
4+1=5
Anotar 5
8. El resultado es 516
Algoritmos

V V V
+
V
+ F V F F
F V F
F F F F
Algoritmos

san
+ sano
sansano
Algoritmos
 Entrada
 ¿Qué se necesita para realizar los
pasos?
 Salida
 ¿Que se obtiene al final del algoritmo?
 Tipos de datos
 Números: enteros, reales, complejos
 Texto: letras, palabras, frases
 Otros

ENTRADA PROCESO SALIDA


Algoritmos
 Sirven para resolver un tipo de
problema especifico.
 Son secuencias de pasos concretos.
 Requiere la definición de la entrada
y la salida.
 Adecuados para ser ejecutados por
un computador
Algoritmos
 ¿Qué tiene que ver con la
programación?
 La programación consiste en crear
programas de computador que
resuelvan problemas específicos.
 Un programa de computador es la
implementación de un algoritmo.

PROBLEMA ALGORITMO PROGRAMA


Algoritmos
 ¿Qué es un programa de
computador?
 Es una secuencia de pasos a ejecutar
 Los pasos están 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 código del programa.
Descripción de un algoritmo
 Es necesario contar con formas de
expresar algoritmos
 Diseño del algoritmo antes de codificar
 Diseño del algoritmo de manera independiente
del lenguaje de programación
 Diferentes alternativas
 Pseudo - código
 Diagramas de flujo
 Diagramas de Nassi-Schneidermann
Descripción de un algoritmo
 Pseudo – código
 El algoritmo se expresa en lenguaje
natural
 Expresa de manera genérica los pasos
del algoritmo
 No provee detalles de la
implementación particular del código
final
Descripción de un algoritmo
 Diagramas de flujo
 Presentan el algoritmo de manera
gráfica.
 De gran utilidad para seguir la “ruta”
de un algoritmo.
 Aplicables a muchas otras disciplinas.
Descripción de un algoritmo
 Diagrama de Nassi-Schneidermann
 También se denominan diagramas de
caja.
 Menos usado que el diagrama de flujo

 Mas ordenado

 Ocupa mucho espacio para representar


algoritmos complejos.
Construcción de un algoritmo
1. Definir el problema a resolver
2. Identificar las entradas del algoritmo
3. Identificar la salida del algoritmo
4. Definir los pasos a seguir para convertir las
entradas en la salida
5. Seguir los pasos y comprobar que el
algoritmo sea correcto analizando la salida.
6. Revisar los pasos y hacer las correcciones.
7. Resolver el problema.
Construcción de un programa
1. Definir el problema a resolver
2. Definir el algoritmo que lo resuelve
3. Escribir el programa
 Escribir cada uno de los pasos del algoritmo
en el lenguaje de programación
4. Ejecutar el programa en el computador
5. Verificar que las salidas sean correctas
6. Hacer correcciones al programa
7. Resolver el problema
Construcción de un algoritmo
 Ejemplo:
 Objetivo: Calcular la suma de dos
números
 Entradas
 Los dos números (M1, M2)
 Salida
 La suma de los números (Suma)
Construcción de un algoritmo

Inicio
Ingresar dos números M1 y M2

Calcular Suma = M1 + M2

Devolver el valor de Suma

Fin.
Construcción de un algoritmo

Ingresar M1 y M2

Suma= M1 + M2

Devolver Suma
Construcción de un algoritmo

Ingresar M1 y M2
Suma= M1 + M2
Devolver Suma
Construcción de un algoritmo
 Operaciones básicas
 Entrada de datos
 Salida de datos
 Utilización de variables
 Utilización de constantes
 Aplicación de operadores
 Asignación de valores
 Combinación de operaciones básicas
 Secuencial
 Selectiva
 Repetitiva
Entrada de datos
 Los algoritmos son para solucionar
tipos de problemas
 Es imprescindible poder entregar
entradas distintas en cada ejecución
 La entrada de datos se realiza
mediante algún dispositivo
Entrada de datos
 Dispositivos de entrada
 Teclado
 Mouse
 Botones
 Censores de tacto
 Cámaras digitales
 Scanners
 Archivos
Entrada de datos
Entrada de datos
 Cada dispositivo tiene distintas
características.
 Por lo general, sirven para cosas
distintas
 Los sistemas definen un dispositivo
de entrada por defecto
 Estedispositivo se denomina la
entrada estándar.
 En un computador suele ser el teclado.
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
información resultante de su
ejecución.
 La salida de datos se realiza
mediante dispositivos.
Salida de datos
 Dispositivos de salida
 Pantalla
 Impresora
 Parlantes
 Tableros luminosos
 Motores
 Tarjetade red
 Archivos
Salida de datos

C:\
Salida de datos
 Al igual que con la entrada, cada
dispositivo tiene finalidades
distintas.
 Los sistemas definen un dispositivo
de salida por defecto
 Estedispositivo se denomina la salida
estándar.
 En un computador suele ser la pantalla.
Utilización de variables
 Durante la ejecución 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.
Utilización de variables

Variable: Zona M1 es un dato de entrada, y también


de memoria que Se considera una variable
almacena un
dato
Suma = M1 + M2

Esta variable se denomina


Suma y se utiliza para
recordar el valor de la suma
Utilización de variables
 La principal característica 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”.
Utilización de constantes
 Además de las variables, un algoritmo
requiere de constantes.
 A diferencia de las variables, su valor
no puede cambiar en el tiempo.
 Las constantes también pueden
recibir nombres para mayor claridad.
 Ej.: PI = 3.1415
Utilización de constantes

Multi = PI * M1

La constante “PI”
Aplicación de operadores
 Para obtener resultados, generalmente es
necesario “transformar” las entradas en la
salida.
 Para esto se aplican operadores de distinta
índole
 Aritméticos ( + , - , * , / )
 Lógicos (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.
Aplicación de operadores

operandos

M=G * P

operador
Asignación 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 asignación.
 Solo se pueden asignar valores a
variables, no a constantes
Asignación de valores

Operador de asignación

M=G * P

El resultado de GxP se asigna a la variable M


Combinación de operaciones básicas

 Secuencial
 Un conjunto de operaciones básicas
pueden ser ejecutadas en forma
secuencial.
 Una operación no inicia hasta que la
anterior termina
Combinación de operaciones básicas
Diagrama de flujo
Diagrama de Nassi-Schneidermann

Ingresar K y P
Ingresar K y P Ingresar K=200 y P=250
G=K/1000 G=K/1000 G tiene el valor 0,2
M=G * P
M=G * P
Devolver M M tiene el valor 50
Devolver M
Combinación de operaciones básicas

 Selectiva
 Un algoritmo puede optar por ejecutar o no
una operación (SI –ENTONCES).
 Un algoritmo puede optar por ejecutar una u
otra operación (SI-ENTONCES-SINO).
 Esta decisión se basa en un condición.

 Esta decisión controla el flujo del algoritmo.

 Por esto, se denomina una estructura de


control.
Combinación de operaciones básicas

C
3

4 C: Condición
Combinación de operaciones básicas

1
2

C
si no
3
4

C: Condición
Combinación de operaciones básicas

Inicio
Ejecutar 1
Ejecutar 2
si se cumple C entonces
Ejecutar 3
fin si
Ejecutar 4
fin
Combinación de operaciones básicas

 Ejemplo: levantarse en la mañana

Inicio
salir de la cama
ducharse
tomar desayuno
si esta lloviendo entonces
tomar el paraguas
fin si
tomar la mochila
tomar la micro
fin
Combinación de operaciones básicas

si no
C

3a 3b

4
C: Condición
Combinación de operaciones básicas

1
2

C
si no
3a 3b
4

C: Condición
Combinación de operaciones básicas

Inicio
Ejecutar 1
Ejecutar 2
si se cumple C entonces
Ejecutar 3a
si no
Ejecutar 3b
fin si
Ejecutar 4
fin
Combinación de operaciones básicas

 Ejemplo: levantarse en la mañana


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
Combinación de operaciones básicas

 Estructura de control selectiva


 Una condición es cualquier proposición
lógica que tenga un valor verdadero o
falso definido.
 Este esquema selectivo se denomina
“decision binaria”.
 ¿Y si hay más de dos opciones?
Combinación de operaciones básicas

 Estructura de control selectiva


 Toda decisión se puede llevar a un
esquema de decisión 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…
Combinación de operaciones básicas
1

x mayor que 0 x menor que 0


x?

x igual a 0

2a 2b 2c

3
Combinación de operaciones básicas
1

si no
x mayor que 0?

x menor que 0?
no si

2a 2b 2c

3
Combinación de operaciones básicas

1
x mayor que 0?
si no
x menor que 0?
no si

2a
2b 2c

3
Combinación de operaciones básicas
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
Formato Lineal
Inicio
en el caso que el botón presionado
sea el 1
hacer giro
sea el 2
entregar saldo
sea el 3
cambiar clave

En cualquier otro caso
Error
fin caso
fin
Combinación de operaciones básicas
 Repetitiva
 Además de combinar operaciones en
forma secuencial y selectiva, se puede
repetir la ejecución de una operación
cuantas veces se desee.
 Existen varios esquemas
 Repetir MIENTRAS se cumpla una
condición.
 Repetir HASTA QUE se cumpla una
condición.
 Repetir un número de veces.
Combinación de operaciones básicas

 MIENTRAS
 Se repite una operación mientras una
condición sea verdadera.
 Al dejar de serlo, se rompe el ciclo

 Si la condición nunca es falsa, se tiene


un ciclo infinito.
Combinación de operaciones básicas

no
C
si

3
C: Condición
Combinación de operaciones básicas

1
C

C: Condición
Combinación de operaciones básicas

Inicio
ejecutar 1
mientras se cumpla la condición
ejecutar 2
fin mientras
ejecutar 3
fin
Combinación de operaciones básicas

 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
Combinación de operaciones básicas

 HASTA QUE
 Se repite la ejecución de una operación
hasta que se cumpla una condición.
 La principal diferencia con MIENTRAS es
que la operación se ejecuta al menos
una vez.
Combinación de operaciones básicas

no
C
si
3
C: Condición
Combinación de operaciones básicas

C
3

C: Condición
Combinación de operaciones básicas

Inicio
ejecutar 1
repetir
ejecutar 2
hasta que se cumpla condición
ejecutar 3
fin
Combinación de operaciones básicas

 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
Combinación de operaciones básicas
 Repetir un número 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 número de
cada iteración.
 También se puede definir el incremento
del contador en cada iteración.
Combinación de operaciones básicas

Inicio contador, fin contador

3
Combinación de operaciones básicas

1
Inicio contador, fin contador

3
Combinación de operaciones básicas

Inicio
ejecutar 1
desde contador inicial hasta contador
final
ejecutar 2
fin desde
ejecutar 3
fin
Combinación de operaciones básicas
5

∑i
 Ejemplo

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
Combinación de operaciones básicas

 Combinación de estructuras de
control seriales, selectivas y
repetitivas
 Cualquier combinación es posible
 Pueden existir estructuras anidadas

 Es importante definir el comienzo y el


termino de cada estructura
Combinación de operaciones básicas

 Ejemplos
 Cachi-pun

 Ordenar objetos
Fin tema 1

Algoritmos