Tema 2. Algoritmos
Tema 2. Algoritmos
Tema 2. Algoritmos
TEMA 2.
DISEÑO DE ALGORITMO
En la etapa de Análisis se determina QUE hará el programa, mientras que en la etapa de Diseño se determina
COMO hará el programa la tarea solicitada.
Una computadora NO tiene capacidad para solucionar problemas más que cuando se le proporcionan los
pasos sucesivos a realizar. Estos pasos sucesivos que indican las instrucciones a ejecutar por la máquina
constituyen un ALGORITMO.
2.1.2. Algoritmo
La palabra "algoritmo" es de origen árabe. Viene de "al-Khwārizmī", sobrenombre del célebre matemático
Mohamed ben Musa. Khwārizmī quiere decir "de Khwārizm", el estado donde nació Ben Musa. Al-Khwārizmī
vivió en entre los años 780-840, y es quien recibe el crédito de haber implementado reglas para realizar
sumas, restas, multiplicaciones y divisiones de número decimales paso a paso.
Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del
proceso.
Preciso, es decir que debe indicar claramente el orden de realización de cada paso.
Definido, es decir que si se sigue un algoritmo varias veces se debe obtener el mismo resultado
cada vez.
Finito, es decir que debe tener un número finito de pasos, que debe terminar en algún momento.
Proceso, son los cálculos necesarios para encontrar la solución del problema.
I.N.C.O.S. 13
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
Salida, son las respuestas proporcionadas por el algoritmo o resultados finales del proceso.
Ejemplo
Inicio
P1. Llenar la olla con agua
P2. Encender el fuego de la cocina
P3. Poner la olla al fuego
P4. Esperar hasta que hierva el agua
P5. Introducir el huevo en la olla
P6. Esperar 10 minutos
P7. Apagar el fuego
P8. Vaciar el agua
P9. Sacar el huevo de la olla
Fin
Inicio
P1. Pelar las papas
P2. Echar las papas en una olla con agua
P3. Echar sal a gusto
P4. Repetir
Esperar
Hasta que las papas estén cocidas
P5. Vaciar el agua de la olla
P6. Sacar las papas a una cacerola
P7. Cortar las papas
P8. Sacar el huevo de la nevera
P9. Romper el huevo y botar las cáscaras
P10. Batir el huevo en un plato hondo
P11. Encender el fuego
P12. Poner la sartén
P13. Repetir
Esperar
Hasta que el aceite esté hirviendo
P14. Meter las papas en la sartén
P15. Esperar a que las papas estén doradas
P16. Verter los huevos en la sartén
P17. Echar un poco de sal
P18. Repetir
Batir huevos y papas por ambos lados
Hasta que la tortilla esté dorada
P19. Retirar la sartén
P20. Colocar la tortilla en un plato.
Fin
I.N.C.O.S. 14
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
Los algoritmos y los programas de computadoras, independientemente del lenguaje en que están escritos,
están diseñados para manipular información o datos. Estos datos pueden ser las notas de los alumnos de la
universidad, los sueldos de los empleados de una empresa, etc.
Los datos son los objetos sobre los que opera una computadora.
Simples
Estructurados
Vectores
Estáticos Matrices
Registros
Archivos
Pilas
Colas
Dinámicos Listas
Árboles
Grafos
2.3.2.1. DATOS SIMPLES
Enteros
Numéricos
Reales
Lógicos
I.N.C.O.S. 15
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
a) 984
b) 86
c) -75
d) 132
Los reales son números con parte entera y parte decimal y pueden ser positivos o negativos.
Ejemplos:
a) 0.98
b) 938.83
c) 123.6555
d) 6.87
a) ‘A’
b) ‘b’
c) ‘S’
d) ‘N’
e) ‘F’
f) ‘M’
Un dato de tipo cadena es una sucesión de caracteres que se encuentran encerrados entre comillas
simples (apóstrofos) o comillas dobles.
Ejemplos:
a) “Juan Pérez”
b) “ c. Comercio # 345”
c) “26 de Enero de 1981”
d) “2453567”
Los datos lógicos o booleanos son aquellos que sólo pueden tomar uno de dos posibles valores: verdadero o
falso.
I.N.C.O.S. 16
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
Los identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un
identificador es una secuencia de caracteres que sirve para identificar una posición en la memoria de la
computadora, que nos permite accesar a su contenido.
Un identificador es un nombre simbólico que se refiere a un dato o programa determinado. Es muy fácil elegir
identificadores cuyo nombre guarde estrecha relación con el sentido físico, matemático o real del dato que
representan. Así por ejemplo, es lógico utilizar un identificador llamado salario_bruto o salarioBruto para
representar el coste anual de un empleado. El usuario no tiene nunca que preocuparse de direcciones físicas
de memoria: el sistema se preocupa por él por medio de una tabla, en la que se relaciona cada identificador
con el tipo de dato que representa y la posición de memoria en la que está almacenado.
Ejemplo: Nombre
Num_hrs
Calif2
Ejemplos:
I.N.C.O.S. 17
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
Las palabras reservadas (KeyWords), son palabras clave y propias de cada lenguaje de programación.
Ejemplos:
Las constantes son datos cuyo valor no cambia durante la ejecución del programa.
Ejemplos:
a) 3.1416
b) 2.71828
c) ‘Error’
Las variables son datos cuyo valor puede cambiar durante la ejecución del programa.
Ejemplos:
Son elementos que relacionan de forma diferente, los valores de una o más variables y/o constantes. Es decir,
los operadores nos permiten manipular valores.
Aritméticos
Tipos de Operadores Relaciónales
Lógicos
2.3.5 EXPRESIONES
Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres
de funciones especiales.
Ejemplos:
a) Pi * radio
I.N.C.O.S. 18
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
Según sea el tipo de objetos que manipulan las expresiones pueden ser:
Aritméticas
Lógicas
Carácter
Las expresiones aritméticas son análogas a las fórmulas matemáticas. Las variables y constantes son de tipo
numérico y las operaciones son las aritméticas.
12 + 5 = 17 resultado
operandos
c) 15 - 8 = 7
d) 3 * 8 = 24
e) 6 ^ 3 = 216
f) 15/3 = 5.0
g) 15 div 3 = 5 18 div 4 = 4
h) 15 mod 3 = 0 18 mod 4 = 2
OA) 15 3
(0) 5 cociente
I.N.C.O.S. 19
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
residuo
** OA significa operaciones auxiliares
i) 27 div 4 = 6
j) 27 mod 4 = 3
OA) 27 4
(3) 6 cociente
residuo
k) 156 div 10 = 15
l) 156 mod 10 = 6
OA) 156 10
(6) 15
cociente
residuo
2.3.5.2 EXPRESIONES LÓGICAS
Son aquellas que pueden tomar uno de dos posibles valores: verdadero o falso. Se forman combinando
constantes y variables con operadores lógicos y relacionales.
A > B es falso
6 > 5 es V
(A + 5) >= (B + 2) es verdad
c) si A = 12
A mod 2 = 1 es falso
I.N.C.O.S. 20
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
d) si MAX = 345
p q p and q p or q
V V V V
V F F V
F V F V
F F F F
p not p
V F
F V
Ejemplos:
a) (21 > 10) and (4 = 4) es verdad
Las expresiones tienden a tener una regla de prioridad, ya que puede haber confusión por cual operación
el computador debe comenzar es por eso que a continuación se describen éstas reglas:
a) Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen
diferentes paréntesis anidados(interiores unos a otros), las expresiones más internas se
evalúan primero.
b) Las operaciones aritméticas dentro de una expresión pueden seguir el siguiente orden de
prioridad.
Operador exponencial
Operador de *, /
Operadores +, -
Operadores div, mod
En caso de coincidir varios operadores de igual prioridad en una expresión o subexpresión encerrada entre
paréntesis, el orden de prioridad en éste caso es de izquierda a derecha.
Ej. 7 * 10 - 15 mod 3 * 4 + 9
I.N.C.O.S. 21
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
70 - 15 mod 12 + 9
35 mod 21
13
Ej. (7*(10 – 5) mod 3) * 4 + 9
(7 * 5 mod 3) * 4 + 9
(35 mod 3) * 4 + 9
2*4 +9
8 + 9
17
Y el resultado de la operación será verdadero o falso. Así, por ejemplo, si A=4 y B=3, entonces A>B es
verdadero. Mientras que (A-2) < (B-4) es falso.
Los operadores de relación se pueden aplicar a cualquiera de los cuatro tipos de datos estándar
Las expresiones lógicas se forman combinando constantes lógicas, variables lógicas y otras expresiones
lógicas, utilizando los operadores lógicos NOT, AND Y OR. Y los operadores relacionales. (de relación o
comparación) =, <, >, <=, >=, <>.
Ej.
I.N.C.O.S. 22
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
a) sqrt (25) =5
b) sqr (6) = 36
c) trunc (6.58) = 6
e) abs (-45) = 45
f) round (3.6) = 4
g) round (3.23) = 3
h) Si A = 5; B = 4; C = 3
Solución
X = sqr( 5 ) + sqrt( 4 ) + 3
X = 25 + 2 + 3
X = 30
Herramientas de Programación
Una vez que se ha obtenido el algoritmo que resolverá el problema, es preciso representarlo mediante una
determinada HERRAMIENTA DE PROGRAMACION:
Diagrama de flujo
Pseudocódigo
Diagramas Nassi-Shneiderman (diagramas N-S)
Diagramas de Flujo
I.N.C.O.S. 23
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
Un diagrama de flujo (flowchart) es un diagrama que utiliza símbolos estándar y en el que cada paso del
algoritmo se visualiza dentro del símbolo adecuado y el orden en que estos pasos se ejecutan se indica
conectándolos con flechas llamadas líneas de flujo porque indican el flujo lógico del algoritmo.
En esencia el diagrama de flujo es un medio de presentación visual y gráfica del flujo de datos a través del
algoritmo, las operaciones ejecutadas y el orden en que se ejecutan.
Los símbolos utilizados en los diagramas de flujo han sido normalizados por las organizaciones ANSI
(American National Institute) y por ISO (International Standard Organization), los más utilizados son:
Ejemplo
Ejemplos
A
Lee un valor desde un periférico de entrada y lo almacena en la
variable A
A, B
Lee dos valores desde un periférico de entrada y los almacena
en las variables A y B respectivamente
I.N.C.O.S. 24
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
Ejemplos
Ejemplos
I.N.C.O.S. 25
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
I.N.C.O.S. 26
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
Ejemplos
Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a
derecha.
Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas
palabras.
Pseudocódigo
I.N.C.O.S. 27
Materia: Programación I. Lic. Carla Aguirre Montalvo – Lic. Miriam Lopez Surco
Hasta ahora los algoritmos se han expresado en lenguaje común. Sin embargo, los programas deben ser
escritos en un lenguaje que pueda entender la computadora. Es natural, por lo tanto, describir los algoritmos
en un lenguaje que se parezca más al lenguaje utilizado para escribir programas de computadora, es decir en
un lenguaje de pseudoprogramación, una imitación del código de las computadoras o como se le conoce
PSEUDOCODIGO.
El pseudocódigo fue creado para superar las dos principales desventajas del diagrama de flujo: el diagrama
de flujo es lento de crear y difícil de modificar sin tener que dibujarlo de nuevo. Es una mezcla de lenguaje
natural y símbolos, términos y otras características comúnmente utilizadas en los lenguajes de alto nivel.
Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación.
I.N.C.O.S. 28