Title: Tema 1
1Tema 1
2Algoritmos
- 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
3Algoritmos
4Algoritmos
- 516
- Anotar 6
- 2911
- Anotar 1 y guardar 1
- 404
- 415
- Anotar 5
- El resultado es 516
5Algoritmos
V V V
V F F
F V F
F F F
6Algoritmos
sansano
7Algoritmos
- 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
8Algoritmos
- 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
9Algoritmos
- 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.
10Algoritmos
- 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.
11Descripció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
12Descripció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
13Descripció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.
14Descripció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.
15Construcción de un algoritmo
- 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.
16Construcción de un algoritmo
- Construcción de un programa
- Definir el problema a resolver
- Definir el algoritmo que lo resuelve
- Escribir el programa
- Escribir cada uno de los pasos del algoritmo en
el lenguaje de programación - Ejecutar el programa en el computador
- Verificar que las salidas sean correctas
- Hacer correcciones al programa
- Resolver el problema
17Construcción de un algoritmo
- Ejemplo
- Objetivo Calcular el precio de una manzana
- Entradas
- Precio (en pesos) del kilo de manzanas K
- Peso (en gramos) promedio de una manzanaP
- Salida
- Precio (en pesos) de una manzana M
18Construcción de un algoritmo
Inicio Ingresar valor de K y P Calcular G
K/100 Calcular M G x P Devolver el valor de
M Fin.
19Construcción de un algoritmo
Ingresar K y P
GK/1000
MG x P
Devolver M
20Construcción de un algoritmo
Ingresar K y P
GK/1000
MG x P
Devolver M
21Construcció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
22Entrada 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
23Entrada de datos
- Dispositivos de entrada
- Teclado
- Mouse
- Botones
- Censores de tacto
- Cámaras digitales
- Scanners
- Archivos
24Entrada de datos
25Entrada de datos
- Cada dispositivo tiene distintas características.
- Por lo general, sirven para cosas distintas
- Los sistemas definen un dispositivo de entrada
por defecto - Este dispositivo se denomina la entrada estándar.
- En un computador suele ser el teclado.
26Salida 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.
27Salida de datos
- Dispositivos de salida
- Pantalla
- Impresora
- Parlantes
- Tableros luminosos
- Motores
- Tarjeta de red
- Archivos
28Salida de datos
C\
29Salida 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 estándar.
- En un computador suele ser la pantalla.
30Utilizació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.
31Utilización de variables
K es un dato de entrada, y también Se considera
una variable
GK/1000
Esta variable se denomina G y se utiliza para
recordar el valor de un gramo de manzana.
32Utilizació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.
33Utilizació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
34Utilización de constantes
GK/1000
La constante 1000 sirva para transformar el
valor Por kilo a un valor por gramo
35Aplicació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.
36Aplicación de operadores
operandos
MG P
operador
37Asignació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
38Asignación de valores
Operador de asignación
MG P
El resultado de GxP se asigna a la variable M
39Combinació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
40Combinación de operaciones básicas
Diagrama de flujo
Diagrama de Nassi-Schneidermann
Ingresar K200 y P250 G tiene el valor 0,2 M
tiene el valor 50
41Combinació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.
42Combinación de operaciones básicas
1
2
C
3
4
C Condición
43Combinación de operaciones básicas
1
2
C
si
no
3
4
C Condición
44Combinación de operaciones básicas
- Inicio
- Ejecutar 1
- Ejecutar 2
- si se cumple C entonces
- Ejecutar 3
- fin si
- Ejecutar 4
- fin
45Combinació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
46Combinación de operaciones básicas
1
2
si
no
C
3a
3b
4
C Condición
47Combinación de operaciones básicas
1
2
C
si
no
3a
3b
4
C Condición
48Combinació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
49Combinació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
50Combinació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?
51Combinació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
52Combinación de operaciones básicas
1
x mayor que 0
x menor que 0
x?
x igual a 0
2a
2b
2c
3
53Combinación de operaciones básicas
1
si
no
no
si
2b
2a
2c
3
54Combinación de operaciones básicas
1
x mayor que 0?
si
no
2a
x menor que 0?
si
no
2b
2c
3
55Combinació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
56Combinació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 esta lloviendo pero hace
frío llevar la chaqueta si no llevar un
chaleco fin si tomar la mochila tomar la
micro fin
57Combinación de operaciones básicas
- Estructura de selección múltiple
- Para algunos casos se puede utilizar un esquema
selectivo no binario (EN EL CASO DE) - Ejemplo ingreso de opción de menú de un cajero
automático - Si el usuario presionó el botón 1, hacer un giro
- Si el usuario presionó el botón 2, entregar saldo
- Si el usuario presionó el botón 3, cambiar la
clave - Etc.
58Combinación de operaciones básicas
etoc
Botón
1
3
2
giro
saldo
clave
error
salir
59Combinación de operaciones básicas
Botón
etoc
1
2
3
giro
clave
saldo
error
salir
60Combinación de operaciones básicas
- 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
61Combinació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.
62Combinació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.
63Combinación de operaciones básicas
1
no
C
si
2
3
C Condición
64Combinación de operaciones básicas
1
C
2
3
C Condición
65Combinación de operaciones básicas
- Inicio
- ejecutar 1
- mientras se cumpla la condición
- ejecutar 2
- fin mientras
- ejecutar 3
- fin
66Combinació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
67Combinació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.
68Combinación de operaciones básicas
1
2
no
C
si
3
C Condición
69Combinación de operaciones básicas
1
2
C
3
C Condición
70Combinación de operaciones básicas
Inicio ejecutar 1 repetir ejecutar 2 hasta
que se cumpla condición ejecutar 3 fin
71Combinació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
72Combinació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.
73Combinación de operaciones básicas
1
Inicio contador, fin contador
2
3
74Combinación de operaciones básicas
1
Inicio contador, fin contador
2
3
75Combinación de operaciones básicas
Inicio ejecutar 1 desde contador inicial hasta
contador final ejecutar 2 fin desde ejecutar
3 fin
76Combinación de operaciones básicas
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
77Combinació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
78Combinación de operaciones básicas
- Ejemplos
- Cachi-pun
- Ordenar objetos
79Fin tema 1