Sie sind auf Seite 1von 26

Desarrollo de lgica

algortmica

Algoritmos y lenguajes de programacin


M.C. Edgar Omar Bauelos Lozoya

Introduccin
Algoritmo
Mtodo para resolver un problema.

Pasos para la resolucin de un problema:


1. Analizar el problema.
2. Disear el algoritmo sin ambigedades- que conduzca a la solucin.
3. Expresar el algoritmo como un programa en un lenguaje de programacin
(codificacin).
4. Ejecucin y validacin del programa.
Problema

Diseo del
algoritmo

Programa de
computadora
2

Introduccin (cont.)
Los algoritmos son independientes tanto del lenguaje de programacin como de
la computadora que los ejecuta.
Ejemplo, analoga cmo preparar espaguetti?
Receta de espaguetti

Un lenguaje de programacin es tan slo un medio para expresar


Spaghetti
recipe y una computadora es slo un procesador para
un algoritmo
ejecutarlo!
Spaghetti recette
3

Caractersticas de los algoritmos


Preciso:
Sin ambigedades e indicar el orden de realizacin de cada paso.

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

Finito:
Se debe terminar en algn momento, debe tener un nmero finito
de pasos.
4

Caractersticas de los algoritmos (cont.)


La definicin de un algoritmo debe describir tres partes:
1. Entrada
2. Proceso
3. Salida
Por ejemplo para el algoritmo de la receta:
1. Entrada
2. Proceso
3. Salida

Ingredientes y utensilios empleados


Elaboracin de la receta en la cocina
Terminacin del plato, el platillo en s
5

Caractersticas de los algoritmos (cont.)


Ejercicios:
1. Un cliente ejecuta un pedido a una fbrica. La fbrica 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 disear un algoritmo para saber si un nmero es primo o no.
3. Disear un algoritmo para obtener el nmero mayor de tres nmeros dados
por el usuario.

Caractersticas de los algoritmos (cont.)


Un cliente ejecuta un pedido a una fbrica. La fbrica 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
7

Caractersticas de los algoritmos (cont.)


Algoritmo para saber si un nmero es primo o no:

1. inicio
2.
leer el nmero (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 nmero primo
7.
ir al paso 12
8.
fin si
9.
aumentar x en 1
10.
fin mientras
11.
escribir num es un nmero primo
12. fin

Caractersticas de los algoritmos (cont.)


Algoritmo para obtener el nmero mayor de tres nmeros dados por el usuario:

1. inicio
2.
leer el nmero 1 (num1)
3.
leer el nmero 2 (num2)
4.
leer el nmero 3 (num3)
5.
si num1>=num2 y num1>=num3:
6.
escribir num1 es el nmero mayor
7.
si no si num2>=num1 y num2>=num3:
8.
escribir num2 es el nmero mayor
9.
si no:
10.
escribir num3 es el nmero mayor
11.
fin si
12. fin

Diseo del algoritmo


La tcnica de diseo descendente es la ms comn.
Diseo descendente:
Descomposicin del problema original en subproblemas ms simples y a
continuacin la divisin de estos subproblemas en otros ms simples.

Al proceso de ampliar la primera descripcin del problema en una descripcin


ms detallada con ms pasos especficos 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.
10

Diseo del algoritmo (cont.)


Diseo descendente (cont.)

Ejemplo, realizar el algoritmo para calcular el rea de un tringulo a partir del valor
de sus lados:

Problema original

Subproblemas

Refinamiento

1. calcular rea de un tringulo


a partir del valor de sus lados

1. leer valores de los lados

1a. leer valor de lado1 (l1)


1b. leer valor de lado2 (l2)
1c. leer valor de lado3 (l3)
2. p = l1 + l2 + l3
3. s = p / 2
4. a = s(s l1)(s l2)(s l3)
5. escribir p, s y a

2. calcular permetro
3. calcular semiperimetro
4. calcular rea
5. escribir resultados

11

Diseo del algoritmo (cont.)


Diseo descendente (cont.)
Ventajas:
El problema se comprende mejor al dividirse en partes ms simples
denominadas mdulos.
Las modificaciones en los mdulos son ms fciles.
La comprobacin del problema se puede verificar fcilmente.

12

Diseo del algoritmo (cont.)

Diseo de un algoritmo

Escritura del algoritmo:


Diseo descendente

Refinamiento por casos

-pseudocdigo

(1)

(2)

-diagrama de flujo
-diagrama N-S
(3)
13

Pseudocdigo
Es un lenguaje de especificacin (descripcin) de algoritmos con una gran similitud al
lenguaje natural, pero utilizando ciertas palabras reservadas.
facilita la traduccin a un lenguaje de programacin.

Originalmente se representaban las acciones con palabras reservadas en el idioma ingls:


start, end, read, write, repeat, while

El algoritmo comienza con la palabra inicio y termina con la palabra fin.


La lnea precedida por // se denomina comentario.

La escritura de pseudocdigo exige normalmente la indentacin (sangra en el margen


izquierdo) de las diferentes lneas acorde al bloque al que pertenecen.
14

Pseudocdigo (cont.)
Ejemplo, clculo del salario de un trabajador:

INICIO
// Clculo 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

15

Diagrama de flujo
Forma de representacin de un algoritmo utilizando smbolos (cajas)
estndar unidas por flechas (denominadas lneas de flujo) que indican la
secuencia en que se debe ejecutar.
Los smbolos son normalizados por la ANSI (American National Standars
Institute) y son muy variados, los ms utilizados representan:

inicio/fin
proceso
decisin
entrada/salida
conectores
direccin del flujo
16

Diagrama de flujo (cont.)


Plantilla tpica para diagramas de flujo:
Terminador, representa el comienzo y final de un algoritmo,
puede representar tambin una parada o interrupcin
programada.
Entrada/Salida, cualquier tipo de introduccin de datos (entrada)
o registro de la informacin procesada en un perifrico (salida).

Proceso, cualquier tipo de operacin que pueda originar un


cambio de valor, formato o posicin de la informacin
almacenada en memoria: operaciones aritmticas, de
asignacin, etc.

17

Diagrama de flujo (cont.)


Plantilla tpica para diagramas de flujo (cont.):
no

Decisin, indica operaciones lgicas o de comparacin entre


datos, en funcin del resultado determina con cul de los
caminos alternativos el algoritmo debe continuar.
Conector, sirve para enlazar dos partes cualesquiera del flujo del
diagrama a travs de un conector en la salida y otro conector en
la entrada. Se refiere a la conexin en la misma pgina del
diagrama.
Conector, conexin entre dos puntos del algoritmo situado en
diferentes pginas.

18

Diagrama de flujo (cont.)


Plantilla tpica para diagramas de flujo (cont.):
Llamada a subrutina o a un proceso predeterminado, una
subrutina es una parte independiente del algoritmo que recibe
una entrada, realiza una tarea determinada y regresa, al
terminar, al algoritmo principal.
Comentario, se utiliza para aadir comentarios a otros smbolos
del diagrama de flujo, se pueden dibujar a cualquier lado del
smbolo.

19

Diagrama de flujo (cont.)


Ejemplo, clculo del salario de un trabajador:
inicio
clculo del salario
leer nombre,
horas_trabajadas,
pago_por_hora,
deducciones

Es posible agregar varias acciones


similares en un solo smbolo:

salario = horas_trabajadas * pago_por_hora


salario = horas_trabajadas * pago_por_hora
salario_neto = salario deducciones
salario_neto = salario deducciones
escribir nombre,
salario, salario_neto
fin

20

Diagrama de flujo (cont.)


Ejercicio:
1. Realizar los diagramas de flujo de los algoritmos realizados
anteriormente:
Determinar si un nmero es primo.
Obtener el nmero mayor de tres nmeros dados por el usuario.

2. Realizar el diagrama de flujo de un algoritmo que sume los nmeros


pares entre dos nmeros dados por el usuario.

21

Diagrama de flujo (cont.)


Determinar si un nmero es primo.

22

Diagrama de flujo (cont.)


Obtener el nmero
mayor de tres
nmeros.

23

Diagrama de flujo (cont.)


Sumar nmeros pares entre dos nmeros.

24

Diagrama de Nassi-Schneiderman (N-S)


Diagrama N-S tambin conocido como diagrama de Chapin, es un
diagrama de flujo en el que se omiten las flechas de unin y las cajas
son contiguas.
Las acciones sucesivas se escriben en cajas sucesivas y, como en los
diagramas de flujo, se pueden escribir diferentes acciones en una
caja.
Un algoritmo se representa con un rectngulo en el que cada banda
es una accin a realizar.
25

Diagrama de Nassi-Schneiderman (N-S)


(cont.)
Ejemplo, clculo del salario de un trabajador:
Algoritmo clculo del salario
leer nombre, horas_trabajadas, pago_por_hora, deducciones
calcular salario = horas_trabajadas * pago_por_hora
calcular salario_neto = salario deducciones
escribir nombre, salario, salario_neto
fin

26

Das könnte Ihnen auch gefallen