Está en la página 1de 15

Algoritmos y lenguajes de programación

Desarrollo de lógica
algorítmica
Introducción 2

 Algoritmo
 Método para resolver un problema.

 Pasos para la resolución de un problema:


1. Analizar el problema.
2. Diseñar el algoritmo –sin ambigüedades- que conduzca a la solución.
3. Expresar el algoritmo como un programa en un lenguaje de programación (codificación).
4. Ejecución y validación del programa.

Problema Diseño del Programa de


algoritmo computadora
Introducción (cont.) 3

 Los algoritmos son independientes tanto del lenguaje de programación como de la computadora que los
ejecuta. ¡Un lenguaje de programación es tan sólo
un medio para expresar un algoritmo y
una computadora es sólo un procesador
 Ejemplo, analogía ¿cómo preparar espaguetti?
para ejecutarlo!

Receta de espaguetti

Spaghetti recipe

Spaghetti recette
Características de los algoritmos 4

 Preciso:
 Sin ambigüedades e indicar el orden de realización de cada paso.

 Definido:
 Si se sigue dos veces se debe obtener el mismo resultado cada vez.

 Finito:
 Se debe terminar en algún momento, debe tener un número finito de
pasos.
Características de los algoritmos (cont.) 5

La definición de un algoritmo debe describir tres partes:

1. Entrada
2. Proceso
3. Salida

Por ejemplo para el algoritmo de la receta:


4. Entrada Ingredientes y utensilios empleados
5. Proceso Elaboración de la receta en la cocina
6. Salida Terminación del plato, el platillo en sí
Características de los algoritmos (cont.) 6

 Ejercicios:
1. Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos
la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en
caso contrario, rechazará el pedido. Redactar el algoritmo correspondiente.
2. Se desea diseñar un algoritmo para saber si un número es primo o no.
3. Diseñar un algoritmo para obtener el número mayor de tres números dados por el
usuario.
Características de los algoritmos (cont.) 7

 Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos la ficha del cliente, si el
cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazará el pedido. Algoritmo:

1. inicio
2. leer el pedido
3. examinar la ficha del cliente
4. si el cliente es solvente:
5. aceptar pedido
6. si no:
7. rechazar pedido
8. fin si
9. fin
Características de los algoritmos (cont.) 8

 Algoritmo para saber si un número es primo o no:

1. inicio
2. leer el número (num)
3. establecer una variable x a 2
4. mientras x < num hacer:
5. si el resultado de num/x es entero:
6. escribir num no es un número primo
7. ir al paso 12
8. fin si
9. aumentar x en 1
10. fin mientras
11. escribir num es un número primo
Características de los algoritmos (cont.) 9

 Algoritmo para obtener el número mayor de tres números dados por el usuario:

1. inicio
2. leer el número 1 (num1)
3. leer el número 2 (num2)
4. leer el número 3 (num3)
5. si num1>=num2 y num1>=num3:
6. escribir num1 es el número mayor
7. si no si num2>=num1 y num2>=num3:
8. escribir num2 es el número mayor
9. si no:
10. escribir num3 es el número mayor
11. fin si
Diseño del algoritmo 10

 La técnica de diseño descendente es la más común.


 Diseño descendente:
 Descomposición del problema original en subproblemas más simples y a continuación
la división de estos subproblemas en otros más simples.

 Al proceso de ampliar la primera descripción del problema en una descripción más


detallada con más pasos específicos se le denomina refinamiento por pasos.

 Para problemas complejos se necesitan con frecuencia diferentes niveles de


refinamiento antes de que se pueda obtener un algoritmo claro, preciso y completo.
Diseño del algoritmo (cont.) 11

 Diseño descendente (cont.)


 Ejemplo, realizar el algoritmo para calcular el área de un triángulo a partir del valor de sus lados:

Problema original Subproblemas Refinamiento


1. calcular área de un triángulo 1. leer valores de los lados 1a. leer valor de lado1 (l1)
a partir del valor de sus lados 1b. leer valor de lado2 (l2)
1c. leer valor de lado3 (l3)
2. calcular perímetro 2. p = l1 + l2 + l3
3. calcular semiperimetro 3. s = p / 2
4. calcular área 4. a =
5. escribir resultados 5. escribir p, s y a
Diseño del algoritmo (cont.) 12

 Diseño descendente (cont.)


 Ventajas:
El problema se comprende mejor al dividirse en partes más
simples denominadas módulos.
Las modificaciones en los módulos son más fáciles.
La comprobación del problema se puede verificar fácilmente.
Diseño del algoritmo (cont.) 13

Diseño de un
algoritmo

Escritura del
Refinamiento por algoritmo:
Diseño descendente -pseudocódigo
casos
(1) -diagrama de flujo
(2)
-diagrama N-S
(3)
Pseudocódigo 14

 Es un lenguaje de especificación (descripción) de algoritmos con una gran similitud al lenguaje natural,
pero utilizando ciertas palabras reservadas.
… facilita la traducción a un lenguaje de programación.

 Originalmente se representaban las acciones con palabras reservadas en el idioma inglés:


 start, end, read, write, repeat, while…

 El algoritmo comienza con la palabra “inicio” y termina con la palabra “fin”.

 La línea precedida por “//” se denomina comentario.

 La escritura de pseudocódigo exige normalmente la indentación (sangría en el margen izquierdo) de las


diferentes líneas acorde al bloque al que pertenecen.
Pseudocódigo (cont.) 15

 Ejemplo, cálculo del salario de un trabajador:

INICIO
// Cálculo del salario:
LEER nombre, horas_trabajadas, pago_por_hora, deducciones
salario = horas_trabajadas * pago_por_hora
salario_neto = salario – deducciones
ESCRIBIR nombre, salario, salario_neto
FIN

También podría gustarte