Anda di halaman 1dari 52

LOGICA ALGORITMICA

Desarrollo de lgica algortmica


Metodologa para la solucin de problemas.
Metodologa para el diseo de software: Top down,
Bottom up, modular y programacin estructurada.
Definicin de lenguajes algortmicos.
Elementos y reglas de la representacin grafica y
manuscrita de los algoritmos (diagrama de flujo,
diagrama N-S, diagrama estructurado y pseudocdigo.
Implementacin de algoritmos secuenciales utilizando
notacin algebraica)
Pruebas y depuracin
METODOLOGIA PARA LA SOLUCION DE
PROBLEMAS
DEFINICION DEL PROBLEMA
ANALISIS DEL PROBLEMA
DISEO DEL ALGORITMO
CODIFICACION
PRUEBA Y DEPURACION
DOCUMENTACION
MANTENIMIENTO
METODOLOGIA PARA EL DISEO DE
SOFTWARE
Top Down

Botton Up

Warnier Orr


METODOLOGIA PARA EL DISEO DE
SOFTWARE
Top Down
Es una tcnica para disear que consiste en tomar el problema
en forma inicial como una cuestin global y descomponerlo
sucesivamente en problemas ms pequeos y por lo tanto, de
solucin ms sencilla.
La descomposicin del problema original (y de las etapas
subsecuentes), puede detenerse cuando los problemas
resultantes alcanzan un nivel de detalle que el programador o
analista pueden implementar fcilmente.


METODOLOGIA PARA EL DISEO DE
SOFTWARE
El problema se descompone en etapas o estructuras
jerrquicas, de modo que se puede considerar cada estructura
como dos puntos de vista : lo que hace?, y cmo lo hace?. Si
se considera un nivel n de refinamiento, las estructuras se
consideran de la siguiente forma :
nivel n : Vista desde el exterior.
"lo que hace ?"
Nivel n+1 : Vista desde el interior.
"cmo lo hace ?"


METODOLOGIA PARA EL DISEO DE
SOFTWARE
Ejemplo de un diseo descendente (top-down ) de un
control de almacn :


METODOLOGIA PARA EL DISEO DE
SOFTWARE
Botton Up
Esta tcnica consiste en partir de los detalles ms precisos del
algoritmo completando sucesivamente mdulos de mayor
complejidad, se recomienda cuando ya se cuenta con
experiencia y ya se sabe lo que se va a hacer.
Conforme se va alcanzando el desarrollo de mdulos ms
grandes se plantea como objetivo final la resolucin global del
problema.
Este mtodo es el inverso del anterior y es recomendable
cuando se tiene un modelo a seguir o se cuenta con amplia
experiencia en la resolucin de problemas semejantes.
La tcnica de Botton Up es frecuentemente utilizada para la
realizacin de pruebas a sistemas ya concluidos.


METODOLOGIA PARA EL DISEO DE
SOFTWARE
Warnier Orr
Es una tcnica que utiliza una representacin semejante a la
de cuadros sinpticos para mostrar el funcionamiento y
organizacin de los elementos que conforman el algoritmo.
Bsicamente, utiliza una notacin de llaves para organizar los
mdulos y se auxilia en la siguiente simbologa para indicar
operaciones de control.
Nota : Los diagramas Warnier Orr se leen de izquierda a
derecha y de arriba hacia abajo.


METODOLOGIA PARA EL DISEO DE
SOFTWARE
Ejemplo de un diagrama de Warnier Orr, de un control de almacn


Control de
Almacn
Compras
Conseguir
Proveedor
Conseguir Crdito
Visitan Bancos
(1,n)
Visitar casas de
Crdito +
Hipotecas
propiedades +
Transportacin
Manejo
Almacenamiento
Inventario
Captura
Introducir Clave
Introducir Precio
Repartos
Etiquetacin
Ventas
Facturacin
Reparto
Cliente acude
almacn
Reparto a
domicilio
DEFINICION DE
LENGUAJE ALGORITMICO
Es una serie de smbolos y reglas que se
utilizan para describir de manera explcita un
proceso.


TIPOS DE LENGUAJES ALGORITMICOS
Grficos: Es la representacin grfica de las operaciones que
realiza un algoritmo
(diagrama de flujo).

No Grficos: Representa en forma descriptiva las operaciones
que debe realizar un algoritmo (pseudocodigo).

TIPOS DE LENGUAJES ALGORITMICOS

Diagramas de Flujo
Se basan en la utilizacin de diversos smbolos para
representar operaciones especficas.
Se les llama diagramas de flujo porque los smbolos utilizados
se conectan por medio de flechas para indicar la secuencia de
operacin.
La simbologa utilizada para la elaboracin de diagramas de
flujo es variable y debe ajustarse a un patrn definido
previamente.

TIPOS DE LENGUAJES ALGORITMICOS
SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO

TIPOS DE LENGUAJES ALGORITMICOS
SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO

TIPOS DE LENGUAJES ALGORITMICOS
SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO

EJERCICIOS
IMPLEMENTACION DE ALGORITMOS


PRUEBAS Y DEPURACION

Ejemplo:
Calcular el salario neto de un trabajador en funcin del nmero
de horas trabajadas, precio de la hora de trabajo y
considerando unos descuentos fijos al salario bruto en
concepto de impuestos (20 por 100).
EJERCICIOS
inicio
Leer nombre,
horas, precio
Salario_Bruto =
horas * precio
Impuestos =
salario_neto *
0.20
Salario_neto =
salario_bruto -
impuestos
Escribir nombre,
salario_bruto,
salario_neto
Fin
Ejemplo:
Realizar un diagrama de flujo que permita mostrar en pantalla
un mensaje de mayora o minora de edad segn sea el caso
para un nombre especfico.
EJERCICIOS
inicio
Nombre:
Nom, eres menor
de edad
nom
Edad:
ed
Ed >= 18
Nom, eres mayor
de edad
fin
falso
verdadero
TIPOS DE LENGUAJES ALGORITMICOS
Pseudocdigo
Es un lenguaje de especificacin de algoritmos. El uso de tal
lenguaje hace el paso de codificacin final (esto es, la
traduccin a un lenguaje de programacin) relativamente
fcil.
El pseudocdigo naci como un lenguaje similar al ingls y era
un medio representar bsicamente las estructuras de control
de programacin estructurada.
TIPOS DE LENGUAJES ALGORITMICOS
Pseudocdigo
Se considera un primer borrador, dado que el pseudocdigo
tiene que traducirse posteriormente a un lenguaje de
programacin. Cabe sealar que el pseudocdigo no puede
ser ejecutado por una computadora.
La ventaja del pseudocdigo es que en su uso en la
planificacin de un programa, el programador se puede
concentrar en la lgica y en las estructuras de control y no
preocuparse de las reglas de un lenguaje especfico.

TIPOS DE LENGUAJES ALGORITMICOS
Pseudocdigo
Es tambin fcil modificar el pseudocdigo si se descubren
errores o anomalas en la lgica del programa, adems de
todo esto es fcil su traduccin a lenguajes como pascal,
COBOL, C, FORTRAN o BASIC.
El pseudocdigo utiliza para representar las acciones sucesivas
palabras reservadas en ingls (similares a sus homnimos en
los lenguajes de programacin), tales como star,begin, end,
stop, if-then-else, while, repeat-until.etc

TIPOS DE LENGUAJES ALGORITMICOS
Pseudocdigo
Secuencia
Inicio
accin1
accin2
:
accin n
Fin

TIPOS DE LENGUAJES ALGORITMICOS
Decisin Simple
si condicin entonces
accin1
accin2
:
accin n

TIPOS DE LENGUAJES ALGORITMICOS
Decisin Doble
si condicin then
accin1
accin2
:
en caso contrario
accin1
acci2

TIPOS DE LENGUAJES ALGORITMICOS
Iteraccin Fija
para var. Entera inicial hasta final hacer
accin1
accin2
:
accin n


TIPOS DE LENGUAJES ALGORITMICOS
Iteraccin Condicional al inicio
mientras condicin hacer
accin1
accin2
:
accin n



TIPOS DE LENGUAJES ALGORITMICOS
Iteraccin Condicional al final
Repetir
accin1
accin2
:
accin n
Hasta que condicin




TIPOS DE LENGUAJES ALGORITMICOS
Iteraccin Seleccin
casos selector de
valor1 : accin1
accin2
valor2 : accin1
accin2
valor n : accin1
accin2




EJERCICIOS
Se requiere preguntar dos valores, y a continuacin ofrecer un men con
las operaciones bsicas (+, -, *, /). Despus de presentar el resultado se
ofrecer la posibilidad de una nueva operacin.
Declaracin de variables :
Real : X, Y, RESPUESTA
Entero : OPCION
Carcter : OP
Inicio
Repetir
escribir(Primer valor : )
leer(X)
escribir(Segundo valor : )
leer(Y)
EJERCICIOS
escribir(1) Suma )
escribir(2) Resta )
escribir(3) Multiplicacin )
escribir(4) Divisin )
escribir(Qu operacin deseas realizar ? : )
leer(OPCION)
casos OPCION de
1 : RESULTADO X+Y
2 : RESULTADO X-Y
3 : RESULTADO X*Y
4 : si Y=0 entonces
escribir( Error )
RESULTADO 0
en caso contrario
RESULTADO X/Y
escribir (Resultado : ,RESULTADO)
escribir(Deseas otro clculo : *S/N+ )
leer(OP)
Hasta que RES = N
Fin
EJERCICIOS
Preguntar un nombre y repetirse en pantalla tantas veces como se desee.
(preguntar cantidad de repeticiones), indicando el nmero de repeticin.
Declaracin de variables
Cadena : nom
entero : x, n
Inicio
escribir(Nombre : )
leer(nom)
escribir(Cuntas veces quieres repetirlo ? : )
leer(n)
para x 1 hasta n hacer
escribir(x.- , nom)
Fin
Estructura Secuencial
Es aqulla en la que una accin (instruccin) sigue a otra en secuencia. Las
tareas se suceden de tal modo que la salida de una es la entrada de la
siguiente y as sucesivamente hasta el fin del proceso. La estructura
secuencial tiene una entrada y una salida. Su representacin grfica es la
siguiente:
inicio
Accin 1
Accin 2
Accin 3
fin
Estructura Secuencial
PSEUDOCODIGO DE UNA ESTRUCTURA SECUENCIAL
Inicio
:
:
acciones
:
:
fin
Estructura Secuencial
Pseudocdigo
Inicio
{clculo salario neto}
leer nombre, horas, precio_hora
salario_bruto horas * precio
impuestos 0.20 * salario_bruto
salario_neto salario_bruto_impuestos
escribir nombre, salario_bruto, salario_neto_bruto,
salario_neto
Fin
Ejemplo:
Calcular el salario neto de un trabajador en funcin del nmero de
horas trabajadas, precio de la hora de trabajo y considerando unos
descuentos fijos al sueldo bruto en concepto de impuestos (20 por
100).
inicio
Leer nombre,
horas, precio
Salario_Bruto =
horas * precio
Impuestos =
salario_neto *
0.20
Salario_neto =
salario_bruto -
impuestos
Escribir nombre,
salario_bruto,
salario_neto
Fin
Condicionales
La especificacin formal de algoritmos tiene realmente utilidad
cuando el algoritmo requiere una descripcin ms complicada que
una lista sencilla de instrucciones.

Este es el caso cuando existen un nmero de posibles alternativas
resultantes de la evaluacin de una determinada condicin.

Las estructuras selectivas se utilizan para tomar decisiones lgicas;
de ah que se suelan denominar tambin estructuras de decisin o
alternativas.

En las estructuras selectivas se evala una condicin y en funcin
del resultado la misma se realiza una opcin u otra.
Condicionales
Las condiciones se especifican usando expresiones lgicas. La
representacin de una estructura selectiva se hace con palabras en
pseudocdigo (if, then, else o bien en espaol si, entonces, sino), con
una figura geomtrica en forma de rombo o bien con un tringulo en el
interior de una caja rectangular.

Las estructuras selectivas o alternativas pueden ser:
Simples
Mltiples
Alternativa Simple (si-entonces/if-then)




La estructura alternativa simple si-entonces (en ingls if-then o bien
IF-THEN ) ejecuta una determinada accin cuando se cumple una
determinada condicin.

La seleccin si-entonces evala la condicin y . . .
Si la condicin es verdadera, entonces ejecuta la accin S1 (o
acciones caso de ser S1 una accin compuesta y constar de
varias acciones).
Si la condicin es falsa, entonces no hacer nada.

Alternativa Simple (si-entonces/if-then)

A continuacin se muestra la grfica de la estructura condicional
simple.
Pseudocdigo en espaol
Si <condicin> Entonces
<accin S1>
Fin_si
Pseudocdigo en ingls
If <condicin> then
<accin S1>
end_if
Condicin?
accin
verdadero
falso
Alternativas Mltiples (segn_sea, caso de / case)
Cuando existen ms de dos elecciones (alternativas) posibles, es
cuando se presenta el caso de alternativas mltiples. Si el nmero de
alternativas es grande puede plantear serios problemas de escritura
del algoritmo y naturalmente de legibilidad.

La estructura de decisin mltiple evaluar una expresin que podr
tomar n valores distintos 1,2,3,4,..n . Segn que elija uno de estos
valores en la condicin, se realizar una de las n acciones, o lo que es
igual, el flujo del algoritmo seguir un determinado camino entre los n
posibles.

Alternativas Mltiples (segn_sea, caso de / case)
La representacin grfica se muestra a continuacin:

Pseudocdigo En ingls la estructura de
decisin mltiple se representa
Case expresin of
[e1]: accin S1
[e2]: accin S2
:
[en]: accin Sn
else
accin Sx
end_case
Condicin
Accin S1
Accin S2
Accin S3 Accin S5
Accin S4
Ejercicio
Ejemplo:
Se desea disear un algoritmo que escriba los nombres de los
das de la semana en funcin del valor de una variable DIA introducida
por teclado.
Los das de la semana son 7; por consiguiente, el rango de
valores de DIA ser 1..7, y caso de que DIA tome un valor fuera de
este rango se deber producir un mensaje de error advirtiendo la
situacin anmala.
:

Inicio
Leer DIA
Segn_sea DIA hacer
1: escribir('Lunes')
2: escribir('Martes')
3: escribir('Mircoles')
4: escribir('Jueves')
5: escribir('Viernes')
6: escribir('Sabado')
7: escribir('Domingo')
else
escribir('Error')
fin_segn
fin
Estructuras Repetitivas
Las estructuras que repiten una secuencia de instrucciones un nmero
determinado de veces se denominan Bucles y se denomina Iteracin
al hecho de repetir la ejecucin de una secuencia de acciones.

Entre las estructuras repetitivas se encuentran:

Mientras (while)
Repetir (repeat)
Desde (for)
:

Estructura Mientras (while)
La estructura repetitiva while, es aqulla en que el cuerpo del bucle
se repite mientras se cumple una determinada condicin, su
representacin grfica es:

Pseudocdigo en
espaol Pseudocdigo en ingls
Mientras condicin
hacer while condicin do
Accin S1 <Acciones>
Accin S2 :
: End_while
accin Sn
Fin_mientras
Condicin
acciones
verdadero
falso
Ejercicio
Ejemplo:

Contar los nmeros enteros positivos introducidos por teclado.
Se consideran dos variables enteras NUMERO y CONTADOR
(contar el nmero de enteros positivos). Se supone que se
leen nmeros positivos y se detiene el bucle cuando se lee un
nmero negativo o cero.


Ejercicio
Pseudocdigo
Inicio
contador 0
Leer (numero)
Mientras numero > 0 hacer
contador contador+1
Leer (numero)
Fin_Mientras
Escribir('El nmero de enteros
positivos es : ', contador)
Fin
C = 0
Incrementar variable
ndice
Numero >
0
falso
verdadero
Leer numero
Inicio
C = c + 1
Leer Nmero
Escribir
nmeros
enteros, C
fin
Estructura Repetir (repeat)
Esta estructura se ejecuta hasta que se cumpla una condicin
determinada que se comprueba hasta el final del bucle. Se ejecuta al
menos una vez.
El bucle repetir-Hasta_que se repite mientras el valor de la
expresin booleana de la condicin sea falsa, justo la opuesta de la
sentencia mientras.


Pseudocdigo en Espaol Pseudocdigo en Ingls
Repetir Repeat
<acciones> <acciones>
: :
Hasta que <condicin> Until <condicin>
verdadero
Condicin
acciones
falso
Estructura Desde/Para (for)
En muchas ocasiones se conoce de antemano el nmero de veces que
se desean ejecutar las acciones de un bucle. En estos casos en el que
el nmero de iteraciones es fija, se debe usar la estructura desde o
para.

La estructura Desde ejecuta las acciones del cuerpo del bucle un
nmero especfico de veces y de modo automtico controla el nmero
de iteraciones o pasos a travs del cuerpo del bucle.


Estructura Desde/Para (for)
Pseudocdigo en Espaol Pseudocdigo en Ingls
Desde variable(v)= vi Hasta vf hacer For variable (v)= vi To vf Do
<acciones> <acciones>
:
Fin_desde
Calcular valor inicial y
valor final
Fijar la variable ndice al
valor inicial
Acciones
Incrementar variable
ndice
Variable
ndice >
valor final
verdadero
falso
Cuerpo del Bucle
Tarea
1. Desarrolle el pseudocdigo y diagrama de flujo para poder
llevar el conteo de personas mayores de edad que ingresan a
una discoteca as como las menores de edad que intentaron
ingresar.
2. Desarrolle el pseudocdigo y diagrama de flujo que permita
el ingreso de 3 numeros enteros mayores que cero y que
determine el mayor y el menor de los 3.
3. Desarrolle el pseudocdigo y diagrama de flujo que permita
realizar la sumatoria de 10 valores ingresados, imprimiendo
el valor de la misma.

Anda mungkin juga menyukai