0% encontró este documento útil (0 votos)
123 vistas8 páginas

Tarea 3 Algoritmos

Programación Modular La programación modular es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa. En programación modular el programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos. Cada uno de estos módulos se analizan, codifican por separado. Cada programa contiene un módulo denominado programa principal, que controla todo lo que sucede, se transfiere el control a submódulos (posteriormente se denominan subprogramas), de modo que ellos puedan ejecutar sus funciones; sin embargo, cada submódulo devuelve el control al módulo principal cuando termina su tarea. Si la tarea asignada a cada submódulo es demasiado compleja, éste deberá dividirse en otros módulos más pequeños. El proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tenga solamente una tareas específica que ejecutar. 1. METODOLOGÍA PARA EL DISEÑO DE SOFTWARE Programación Modular Los módulos son independientes en el sentido de que ningún módulo puede tener acceso directo a cualquier otro módulo excepto el módulo al que llama y a sus propios submódulos. Sin embrago, los resultados producidos por un módulo pueden ser utilizados por cualquier otro módulo cuando se transfiera a ellos el control.

Cargado por

Abraham Ricardo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
123 vistas8 páginas

Tarea 3 Algoritmos

Programación Modular La programación modular es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa. En programación modular el programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos. Cada uno de estos módulos se analizan, codifican por separado. Cada programa contiene un módulo denominado programa principal, que controla todo lo que sucede, se transfiere el control a submódulos (posteriormente se denominan subprogramas), de modo que ellos puedan ejecutar sus funciones; sin embargo, cada submódulo devuelve el control al módulo principal cuando termina su tarea. Si la tarea asignada a cada submódulo es demasiado compleja, éste deberá dividirse en otros módulos más pequeños. El proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tenga solamente una tareas específica que ejecutar. 1. METODOLOGÍA PARA EL DISEÑO DE SOFTWARE Programación Modular Los módulos son independientes en el sentido de que ningún módulo puede tener acceso directo a cualquier otro módulo excepto el módulo al que llama y a sus propios submódulos. Sin embrago, los resultados producidos por un módulo pueden ser utilizados por cualquier otro módulo cuando se transfiera a ellos el control.

Cargado por

Abraham Ricardo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Programacin Modular

La programacin modular es uno de los mtodos de diseo ms flexibles y


potentes para mejorar la productividad de un programa. En programacin
modular el programa se divide en mdulos (partes independientes), cada una
de las cuales ejecuta una nica actividad o tarea y se codifican
independientemente de otros mdulos. Cada uno de estos mdulos se
analizan, codifican por separado.
Cada programa contiene un mdulo denominado programa principal, que
controla todo lo que sucede, se transfiere el control a submdulos
(posteriormente se denominan subprogramas), de modo que ellos puedan
ejecutar sus funciones; sin embargo, cada submdulo devuelve el control al
mdulo principal cuando termina su tarea. Si la tarea asignada a cada
submdulo es demasiado compleja, ste deber dividirse en otros mdulos
ms pequeos. El proceso sucesivo de subdivisin de mdulos contina hasta
que cada mdulo tenga solamente una tareas especfica que ejecutar.
1.
METODOLOGA PARA EL DISEO DE SOFTWARE
Programacin Modular
Los mdulos son independientes en el sentido de que ningn mdulo puede
tener acceso directo a cualquier otro mdulo excepto el mdulo al que llama y a
sus propios submdulos. Sin embrago, los resultados producidos por un
mdulo pueden ser utilizados por cualquier otro mdulo cuando se transfiera a
ellos el control.
2.
METODOLOGA PARA EL DISEO DE SOFTWARE
Programacin Modular
Ejemplo 3
o

3.

Dado que los mdulos son independientes, diferentes


programadores pueden trabajar simultneamente en diferentes partes del
mismo programa. Esto reducir el tiempo del diseo del algoritmo y de la
posterior codificacin. Adems un mdulo se puede modificar radicalmente
sin afectar a otros mdulos.

METODOLOGA PARA EL DISEO DE SOFTWARE


Programacin Estructurada
Los trminos programacin modular, programacin descendente y
programacin estructurada se introdujeron en la segunda mitad de la dcada
de los sesenta y a menudo sus trminos se utilizan como sinnimos aunque no
significan lo mismo.
La programacin estructurada significa escribir un programa de acuerdo a las
siguientes reglas:
El programa tiene un diseo modular
Los mdulos son diseados de modo descendente
Cada mdulo se codifica utilizando las tres estructuras de control bsicas:
secuencia, seleccin y repeticin.
4.
METODOLOGA PARA EL DISEO DE SOFTWARE
Programacin Estructurada
El trmino programacin estructurada se refiere a un conjunto de tcnicas que
han ido evolucionando desde los primeros trabajos de Edgar Dijkstra. Estas
tcnicas aumentan considerablemente la productividad del programa,
reduciendo en elevado grado el tiempo requerido para escribir, verificar,

depurar y mantener los programas. La programacin estructurada utiliza un


nmero limitado de estructuras de control que minimizan la complejidad de los
programas y, por consiguiente, reducen los errores, hace los programas ms
fciles de escribir, verificar, leer y mantener.
La programacin estructurada es el conjunto de tcnicas que incorporan:
Recursos abstractos
Diseo descendente (top-down)
Estructuras bsicas
5.
METODOLOGA PARA EL DISEO DE SOFTWARE
Diseo descendente (top-down)
El diseo descendente (top-down) es el proceso mediante el cual un problema
se descompone en una serie de niveles o pasos sucesivos de refinamiento
(stepwise). La metodologa descendente consiste en efectuar una relacin
entre las sucesivas etapas de estructuracin de modo que se relacionen unas
con otras mediante las entradas y salidas de informacin. Es decir, se
descompone el problema en etapas o estructuras jerrquicas, de forma que se
puede considerar cada estructura desde el punto de vista: qu hace? Y
cmo lo hace?

Bottom-up hace nfasis en la programacin y pruebas tempranas, que pueden


comenzar tan pronto se ha especificado el primer mdulo. Este enfoque tiene el
riesgo de programar cosas sin saber como se van a conectar al resto del
sistema, y esta conexin puede no ser tan fcil como se crey al comienzo. La
reutilizacin del cdigo es uno de los mayores beneficios del enfoque bottomup.
El desarrollo de software moderno usualmente combina tanto Topdown como Bottom-up. Aunque un conocimiento completo del sistema se
considera usualmente necesario para un buen diseo, haciendo que
tericamente sea un enfoque top-down, la mayora de proyectos de desarrollo
de software tratan de usar cdigo existente en algn grado. El uso de mdulos
existentes le dan al diseo un sabor 'bottom-up'. Algunos enfoques usan un
enfoque en el que un sistema parcialmente funcional es diseado y
programado completamente, y este sistema se va expandiendo para llenar los
requisitos del proyecto.

B) PSEUDOCODIGO:
este permite definir lo que realmente hara el algoritmo y la solucion a la que se
desea llegar pues solo es una representacion como un borrador para saber en
que posible paso se puede modificar o pueda este tener errores digamos que

es una prueba de escritorio.


C)DIAGRAMAS DE FLUJO
es una representacion con simbolos de un algoritmo este sirve solo para
disear los procesos con simbologia propia de una diagrama de flujo pues es
muy util su estructura para que el algoritmo tenga un cierto orden para su
elaboracion.
D) DIAGRAMAS NS:
este consta de cuadros o cajas que especifican un proceso realizado de la
estructura de un algoritmo. pues represneta de manera especifica las acciones
que realizara el proceso y son claramente detallados los procesos que sean por
ejemplo de seleccion, o decision y otros que se realizan dentro de un algoritmo.
Las reglas son:

se escirben de arriba hacia abajo y de izquierda a derecha

siempre se usan flechas verticales u horizontales y no curvas

se tiene que eviatr el cruce de flujo

en cada paso se tiene que especificar una accion concreta

En otros tipos de representacion se escribe asi_:

1.

tiene un inicio

lectura de datos

proceso realizado

salida o impresion de resultados

un final

Caractersticas de los algoritmos


Las caractersticas fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe
obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en
algn momento; o sea debe tener un nmero finito de pasos.
La definicin de un algoritmo debe describir tres partes: Entrada, Proceso y
Salida.

2.

Elementos y reglas de la representacin grfica y manuscrita de los


algoritmos
Ejemplo 4:
En un algoritmo de receta de cocina se tiene que:
Entrada: Ingredientes y utensilios empleados.
Proceso: Elaboracin de la receta de cocina.
Salida: Terminacin del platillo, por ejemplo enchiladas.

3.

Fin del ejemplo 4


Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Ejemplo 5:
Un cliente ejecuta un pedido a una fbrica. La fbrica examina en su base 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.
Solucin:
Los pasos del algoritmo son:
Inicio
Leer el pedido
Examinar la ficha del cliente
Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido.
Fin

4.

Fin del ejemplo 5.


Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Ejemplo 6
Se desea disear un algoritmo para saber si un nmero es primo o no.
Un nmero es primo si slo puede dividirse entre s mismo y entre la unidad, es
decir, no tiene ms divisores que l mismo y la unidad. Por ejemplo, 9, 8 6, 4,
12, 16, 20 no son primos, ya que son divisibles pro nmeros distintos a ellos
mismos y a la unidad. El 9 es divisible entre 3, el 8 es divisible entre 2 y entre 4,
etc.
Solucin:
Inicio
Hacer X igual a 2 (X = 2, X variable que representa a los divisores del nmero
N que se busca)
Dividir N entre X (N/X)
Si el resultado de N/X es entero, entonces N no es un nmero primo y
continuar con el paso 7; en caso contrario, continuar con el siguiente paso.
Sumar 1 a X (X = X+1)
Si X es igual a N, entonces N es un nmero primo; en caso contrario, continuar
con el paso 3.
Fin.

Fin del ejemplo 6.


5.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Diseo de un algoritmo
Una computadora no tiene capacidad para solucionar problemas a menos de
que se le proporcionen los pasos sucesivos a realizar. Estos pasos sucesivos
que indican las instrucciones a ejecutar constituyen, como ya se mencion, el
algoritmo.
La informacin proporcionada al algoritmo constituye su entrada y la
informacin producida por el algoritmo constituye su salida.
Los problemas complejos pueden resolverse ms eficazmente con la
computadora cuando se divide en subproblemas que sean ms fciles de
solucionar que el problema original. Este mtodo suele denominarse divide y
vencers, y consiste en dividir el problema complejo en otros ms simples.
6.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Ejemplo 7:
Un problema que pretende encontrar el permetro y el rea de un crculo puede
dividirse en tres problemas ms simples, como se muestra en la siguiente
figura:
7.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
La descomposicin del problema original en subproblemas ms simples y a
continuacin dividir estos subproblemas en otros ms simples que pueden
implementarse para su solucin en la computadora se denomina diseo
descendente (top-downdesign). Normalmente los pasos diseados en el primer
esbozo del algoritmo son incompletos e indican slo unos pocos pasos (un
mximo de doce). Tras esta primera descripcin, estos se amplan en una
descripcin ms detallada con ms pasos especficos. Este proceso se
denomina refinamiento del algoritmo (stepwiserefinement). Para problemas
complejos se necesitan con frecuencia diferentes niveles de refinamiento antes
de que se pueda obtener un algoritmo claro, preciso y completo.
El problema de clculo del permetro y rea del crculo se puede descomponer
en subproblemas ms simples:
Leer datos de entrada
Calcular el permetro y rea del crculo
Escribir resultados (datos de salida)
8.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Las ventajas ms importantes del diseo descendente son:
o

El problema se comprende ms fcilmente al dividirse en partes


ms simples denominadas mdulos.

Las modificaciones en los mdulos son ms fciles.

La comprobacin del problema se puede verificar fcilmente.

Tras los pasos anteriores (diseo descendente y refinamiento sucesivo por


pasos) es preciso representar el algoritmo mediante una determinada
herramienta de programacin: diagrama de flujo, pseudocdigo o diagrama NS.
9.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Diagramas de flujo
Un diagrama de flujo (flowchart) es una de las tcnicas de representacin del
algoritmo ms antigua y a la vez ms utilizada, aunque su empleo ha
disminuido considerablemente, sobre todo desde la aparicin de lenguajes de
programacin estructurados.
Smbolos de diagramas de flujo
10.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Smbolos de diagramas de flujo
11.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
o
12.

Smbolos de diagramas de flujo

Elementos y reglas de la representacin grfica y manuscrita de los


algoritmos
Ejemplo 8:
Se desea realizar el algoritmo que resuelva el siguiente problema: Clculo de
los salarios mensuales de los empleados de una empresa, sabiendo que stos
se calculan en base a las horas semanales trabajadas y de acuerdo a un precio
especificado por horas. Si se pasan de cuarenta horas semanales, las horas
extraordinarias se pagarn a razn de 1.5 veces la hora ordinaria.
Solucin:

Algoritmo
Leer datos del archivo de la empresa, hasta que se encuentre la ficha final del
archivo (HORAS, PRECIO_HORA, NOMBRE).
Si HORAS <= 40, entonces SALARIO es el producto de HORAS por
PRECIO_HORA.
Si HORAS > 40, entonces SALARIO = 40 x PRECIO_HORA + 1.5 x
PRECIO_HORA x (HORAS 40)
13.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Diagrama de flujo
Fin del ejemplo 8
14.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Pseudocdigo
El pseudocdigo es en 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 de


representar bsicamente las estructuras de control de programacin
estructurada.
El pseudocdigo original utiliza para representar las acciones sucesivas
palabras reservadas en ingls, similares a sus homnimos en lenguajes de
programacin, tales como start, end, stop, if-then-else, repeat-until, etc. La
escritura de pseudocdigo exige normalmente la indentacin (sangra en el
margen izquierdo) de diferentes lneas.
15.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Pseudocdigo
Ejemplo 9:
El pseudocdigo correspondiente al diagrama de flujo del ejemplo 2.3.3 es el
siguiente:
Start
/ clculo de impuesto y salarios
read HORAS, PRECIO_HORA, NOMBRE
if HORAS >= 40 then
SALARIO= HORAS * PRECIO_HORA
else
SALARIO=40*PRECIO_HORA + 1.5*PRECIO_HORA*(HORAS 40)
endif
Write SALARIO
end
fin del ejemplo 9.
16.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Pseudocdigo
El algoritmo comienza con la palabra start y finaliza con la palabra end, en
ingls (en espaol, inicio, fin). Entre estas palabras, slo se escribe una
instruccin o accin por lnea.
La lnea precedida por // se denomina comentario. Es una informacin para el
lector del programa y no realiza ninguna instruccin ejecutable, slo tiene
efecto de documentacin interna del programa.
17.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Diagramas de Nassi-Scheneiderman (N-S)
El diagrama N-S de Nassi-Schneiderman, tambin conocido como diagrama de
Chapin, es como 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 misma caja.
Un algoritmo se representa con un rectngulo en el que cada banda es una
accin a realizar:
18.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Ejemplo 10:

19.

Elementos y reglas de la representacin grfica y manuscrita de los


algoritmos
Otro ejemplo es la representacin de la estructura condicional:
20.
Elementos y reglas de la representacin grfica y manuscrita de los
algoritmos
Implementacin de algoritmos secuenciales
En un algoritmo secuencial se ejecutan las sentencias en orden secuencial, es
decir, cuando termina la ejecucin de una sentencia comienza la que est
inmediatamente despus.

También podría gustarte