Algoritmos.pdf by ramses merel sanchez
-
Upload
rafael-damaso-santos -
Category
Documents
-
view
238 -
download
0
Transcript of Algoritmos.pdf by ramses merel sanchez
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
1/36
Algoritmos
2ALGORITMOS
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
2/36
Tema 2
2.1 Introduccin
El objetivo principal de la materia es el de ensear a resolver problemas mediante una
computadora. Un programador de computadoras antes de nada es un resolvedor de
problemas.
Por lo que para llegar a ser un programador eficaz se necesita aprender a resolver
problemas de un modo riguroso y sistemtico.
Por esto la materia tiene como nombre Metodologa de la programacin.
Antes de comenzar con el tema vamos a considerar el significado de la palabra
ALGORITMO esta palabra se deriva de la traduccin al latn de la palabra rabeALKHWARZMI, nombre de un matemtico y astrnomo rabe que escribi un tratadosobre la manipulacin de nmeros y ecuaciones en el siglo IX, tituladoKITAB AL-JABRWALMUGALABA, la palabra lgebra se deriv por su semejanza sonora deAL-JABR.
Etimolgicamente la palabra problema deriva del griego PROBALLEIN y significa algolanzado hacia delante. Un problema es un asunto o conjunto de cuestiones que seplantean para ser resueltas, la naturaleza de los problemas varia con el mbito o con el
contexto donde estn planteados: as existen problemas matemticos, fsicos, filosficos,
etc.,
Fig.2 .1 Esquema del desarrollo de algoritmos
2.2 Definicin
Un Algoritmo es una secuencia de operaciones detalladas y no ambiguas, que al ejecutarsepaso a paso, conducen a la solucin de un problema. En otras palabras es un conjunto de
reglas para resolver una cierta clase de problema.
Algoritmo es un conjunto de instrucciones que especifican la secuencia de operaciones a
Problema Diseo del
algoritmo
Programa de
computadora
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
3/36
Algoritmos
Todo algoritmo es independiente del lenguaje
2.3 Caractersticas De Los Algoritmos.
Las propiedades de un algoritmo son las siguientes:
a) El algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.b) El algoritmo debe ser definido, si se sigue un algoritmo dos veces, se debe obtener el
mismo resultado cada vez.
c) El algoritmo debe ser finito, si se sigue un algoritmo se debe terminar en algnmomento; o sea debe tener un nmero finito de pasos.
El algoritmo debe ser planteado como un sistema de informacin.
Fig 2 2 Representacin de un algoritmo como un sistema de Informacin
Entrada Proceso Salida
Modelo Resultados
Anlisis
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
4/36
Tema 2
2.5 Tipos De Algoritmos
Cualitativos: Son aquellos en los que se describen los pasos utilizando
palabras.
Cuantitativos: Son aquellos en los que se utilizan clculos numricos paradefinir los pasos del proceso.
2.6 Lenguajes Algoritmicos
Es una serie de smbolos y reglas que se utilizan para describir de manera explcita un
proceso.
2.7 Tipos De Lenguajes Algoritmicos
Grficos: Es la representacin grfica de las operaciones que realiza unalgoritmo (diagrama de flujo).
No Grficos: Representa en forma descriptiva las operaciones que deberealizar un algoritmo (pseudocodigo).
Un algoritmo puede ser expresado de las siguientes formas.
a) Lenguaje Natural : el uso de trminos del lenguaje natural, es una formade representar un algoritmo.
b) Lenguaje Simblico: es otra forma de representacin de un algoritmo,que adems permite una introduccin a la programacin estructural.
c) Lenguaje Grfico : es una forma de escribir una secuencia de pasos enforma de diagrama, en la practica se denomina Diagramas de Flujo.
Una receta de un plato de cocina se puede expresar en espaol, ingles o francs pero
cualquiera sea el lenguaje los pasos para la elaboracin del plato se realizarn sin importarel cocinero.
2.8 Las Tecnicas De Diseo De Algoritmos
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
5/36
Algoritmos
resultan inmediatos de resolver, otros son bastante complejos. la investigacin en esta rea
ha permitido descubrir un conjunto de mtodos y esquemas de diseo hacia los cualespuede orientarse la realizacin de muchos algoritmos. Idear un algoritmo continua siendo
una labor bastante creativa donde los conocimientos y las experiencias del propio diseador
tiene un papel fundamental.
2.8.1 Divide y vencersConsiste en descomponer un problema en subproblemas, resolver independientemente los
subproblemas para luego combinar sus soluciones y obtener una solucin del problema
original.
Esta tcnica puede ser utilizada con xito en problemas como multiplicacin de matrices,
ordenacin de vectores, etc.
Ejemplo. Encontrar el ngulo entre dos vectores A(x,y,z) y B(x,y,x).
A
= ?
B
Determinar la ecuacin del ngulo entre dos vectores. del producto escalar se tiene
Determinar las operaciones intermedias
BA
BA
COSBABA
*
*cos
)(***
=
=
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
6/36
Tema 2
Determinar la solucin general.
2.8.2 Mtodo voraz
Este mtodo trata de producir algn tipo de mejor resultado a partir de un conjunto deopciones candidatas. Par ello se va procediendo paso a paso realizndose la mejor
eleccin(utilizando un funcin objetivo que respeta un conjunto de restricciones) de entre
las posibles. Puede emplearse en problemas de optimizacin, como el conocido de lamochila, en la bsqueda de caminos mnimos sobre grafos, la planificacin en la ejecucin
de programas en un computador, etc.
Ejemplo Dar cambio utilizando el menor nmero de billetes.
Conjunto de billetes =
{"doscientos","cien","cincuenta","veinte","diez","cinco","dos","uno"};
Conjunto de cantidades ={200,100,50,20,10,5,2,1};Cambiar (dato, posicin)
si (dato es distinto de 0) entonces
cuantos = dato DIV cantidades[posicin];si (cuantos es distinto de 0) entoncesimprimir ("hay , cuantos, billetes de , billetes [ posicin]);
fin_si
Cambiar (dato MOD cantidades[posicin], posicin+1);Fin_si
Fin_cambiar
inicio
cambiar(1388,0);fin
El estilo y calidad de los algoritmos van fuertemente unidos, ante la pregunta Cuales son
las caractersticas de un buen algoritmo? la respuesta identifica los factores de calidad delos algoritmos.
)/()/(cos 1 DNARCCOSDNANG ==
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
7/36
Algoritmos
problema. Consiste en efectuar una relacin entre las etapas de la estructuracin de forma
que una etapa jerrquica y su inmediato inferior se relacionen mediante entradas y salidasde informacin.
Este diseo consiste en una serie de descomposiciones sucesivas del problema inicial, que
recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte delprograma.
La utilizacin de la tcnica de diseo Top-Down tiene los siguientes objetivos bsicos:
Simplificacin del problema y de los subprogramas de cada descomposicin.
Las diferentes partes del problema pueden ser programadas de modo independiente eincluso por diferentes personas.
El programa final queda estructurado en forma de bloque o mdulos lo que hace massencilla su lectura y mantenimiento.
PRIMER SEGUNDO ULTIMO
REFINAMIENTO REFINAMIENTO REFINAMIENTO
Problema
Inicial
Sub Problema
1
Sub Problema
Sub problema1.1
Sub problema1.2
Sub problemaM.1
Modulo 1
Modulo 2
Modulo 3
Modulo 4
Modulo N-3
Modulo N-2
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
8/36
Tema 2
2.8.4 Bottom Up
El diseo ascendente se refiere a la identificacin de aquellos procesos que necesitan
computarizarse con forme vayan apareciendo, su anlisis como sistema y su codificacin, o
bien, la adquisicin de paquetes de software para satisfacer el problema inmediato.
Cuando la programacin se realiza internamente y haciendo un enfoque ascendente, es
difcil llegar a integrar los subsistemas al grado tal de que el desempeo global, sea fluido.Los problemas de integracin entre los subsistemas son sumamente costosos y muchos deellos no se solucionan hasta que la programacin alcanza la fecha limite para la integracin
total del sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia
de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, seignoran.
Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema
como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoqueascendente. Uno de ellos es la duplicacin de esfuerzos para accesar el software y ms aun
al introducir los datos. Otro es, que se introducen al sistema muchos datos carentes de
valor. Un tercero y tal vez l mas serio inconveniente del enfoque ascendente, es que losobjetivos globales de la organizacin no fueron considerados y en consecuencia no se
satisfacen.
2.9 Metodologa Para La Solucin De Problemas PorMedio De Computadora
La principal razn para que las personas aprendan lenguajes de programacin es utilizar lacomputadora como una herramienta para la resolucin de problemas. Dos fases pueden ser
identificadas en el proceso de resolucin de problemas.
Fase de resolucin del problema.
Fase de implementacin (realizacin) en un lenguaje de programacin.
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
9/36
Algoritmos
Fase de resolucin del Problema Fase de Implementacin
Fig. 2.4 Solucin de problemas empleando Computadoras
2.9.1 Definicin del Problema
Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara yprecisa.
Tomar en cuenta que la solucin del problema debe estar en funcin de lo que el problema
requiera y no en funcin de lo que el programador quiera.
Definicin del
problema
Anlisis del
problema
Diseo del
Algoritmo
Verificacin del
Algoritmo
Codificacin del
Algoritmo
Ejecucin delprograma
Verificacin del
Programa
Documentacin
Mantenimiento
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
10/36
Tema 2
Al comenzar a abordar un problema hay que tener en cuenta que para la mayora de elloshay muchas maneras de resolver y pueden existir muchas soluciones, se plantean algunos
criterios o estrategias generales que se deben tomar en cuenta, las cuales son tiles en el
anlisis del problema.
Usar toda la informacin til (no superficial) disponible en el enunciado
del problema. Hacer explcita las reglas y datos que aparezcan implcitos (en muchos
problemas numricos se pueden utilizar reglas de la aritmtica o lgebra)
Profundizar en el problema considerado (emplear algn tipo denotacin).
Dividir el problema complejo en subproblemas ms simples. que sepueden resolver independientemente y despus combinar sus soluciones.
Otra forma de abordar el problema consiste en trabajar hacia atrs es
decir parir de la solucin e intentar llegar al estado inicial.
El propsito del anlisis del problema es ayudar al programador para llegar a una cierta
comprensin de la naturaleza del problema. Una buena definicin del problema junto conuna descripcin detallada de las especificaciones de entrada y de salida, son los requisitos
ms importantes para llegar a una solucin eficaz.
Fig. 2.5 Anlisis del Problema
Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:
Anlisis delproblema
Definicin del
problema
Especificacin de
datos de Entrada
Especificacin de
datos de Salida
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
11/36
Algoritmos
Definicin del problema.
Calcular la superficie de una circunferencia
Anlisis del problema
La entrada a este problema es el radio de la circunferencia y de tipo real.
La salida de este problema es la superficie que tambin es de tipo real.
2.9.3 Diseo del AlgoritmoUn computador no tiene capacidad para solucionar problemas ms que cuando se le
proporciona los sucesivos pasos a realizar. Estos pasos indican las instrucciones a ejecutar
por la mquina y se denomina algoritmo.
Las caractersticas de un buen algoritmo son:
Debe tener un punto particular de inicio.
Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, es decir, soportar la mayora de las variantes que sepuedan presentar en la definicin del problema.
Debe ser finito en tamao y tiempo de ejecucin.
Se pueden utilizar cualquier tcnica de diseo de algoritmos, diseo descendente, divide y
vencers.
Normalmente los pasos diseados en un primer esbozo del algoritmo son incompletos eindican solo unos pocos pasos, tras esta primera descripcin estos se amplan en una
descripcin ms detallada con pasos especficos este proceso se denomina refinamiento del
algoritmo.
Ejemplo problema calculo de la superficie de una circunferencia.
Calcular la superficie de un circulo
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
12/36
Tema 2
2.9.4 Verificacin del algoritmo
Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza
las tareas para las que ha sido diseado y produce el resultado correcto y esperado.
El modo ms normal de comprobar un algoritmo es mediante la ejecucin manual (prueba
de escritorio), usando datos significativos que abarquen todo el posible rango de valores yanotando en una hoja de papel las modificaciones que se producen en las diferentes fases
hasta la obtencin de los resultados,
2.9.5 Fase de Implementacin
Una vez que el algoritmo est diseado, representado grficamente mediante unaherramienta y verificado se debe pasar a la fase de codificacin, traducir el algoritmo a undeterminado lenguaje de programacin que deber ser completada con la ejecucin y
verificacin de resultado en el computador.
Diseo del algoritmo
Diseo Descendente
Divide y vencers
Refinamiento por
pasos
Herramienta de representacin
Diagramas de flujo Pseudocdigo
Diagramas Nassi/Shneiderman-S(Chapin)
Mtodo Warnier
Mtodo Jackson
Mtodo Bertini
Mtodo Tabourier
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
13/36
Algoritmos
2.9.7 Prueba y Depuracin
Los errores humanos dentro de la programacin de computadoras son muchos y aumentan
considerablemente con la complejidad del problema. El proceso de identificar y eliminar
errores, para dar paso a una solucin sin errores se le llama depuracin.
La depuracin o prueba resulta una tarea tan creativa como el mismo desarrollo de la
solucin, por ello se debe considerar con el mismo inters y entusiasmo.
Resulta conveniente observar los siguientes principios al realizar una depuracin, ya que de
este trabajo depende el xito de nuestra solucin.
2.9.8 Documentacin
Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados,
procedimientos, dibujos o diagramas.
A menudo un programa escrito por una persona, es usado por otra. Por ello ladocumentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras
modificaciones (mantenimiento).
La documentacin se divide en tres partes:
Documentacin Interna
Documentacin Externa
Manual del Usuario
Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo fuentepara hacer mas claro el entendimiento de un proceso.
Documentacin Externa: Se define en un documento escrito los siguientes puntos:
Descripcin del Problema
Nombre del Autor
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
14/36
Tema 2
2.9.9 Mantenimiento
Se lleva acabo despus de terminado el programa, cuando se detecta que es necesario hacer
algn cambio, ajuste o complementacin al programa para que siga trabajando de manera
correcta. Para poder realizar este trabajo se requiere que el programa este correctamentedocumentado.
2.10 Tecnicas Para La Formulacion De Algoritmos
Para representar una algoritmo se debe utilizar algn mtodo que permita independizar
dicho algoritmo del lenguaje de programacin elegido. Ello permitir que un algoritmopueda ser codificado inmediatamente en cualquier lenguaje.
Las herramientas utilizadas comnmente para disear algoritmos son:
Pseudocodigo
Diagrama de Flujo.
Diagramas Nassi/Shneiderman-S (Chapin)
Mtodo Warnier
Mtodo Jackson
Mtodo Bertini
Mtodo Tabourier
2.10.1 Pseudocodigo
Mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro idioma) que seemplea, dentro de la programacin estructurada, para realizar el diseo de un programa. En
esencial, el pseudocodigo se puede definir como un lenguaje de especificaciones dealgoritmos.
Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
15/36
Algoritmos
InicioLeer (lado)Alado * lado
Imprimir( A)
Fin
2.10.1.1 Acciones simples
Las acciones simples, tambin denominadas instrucciones primitivas, son aquellas que elprocesador ejecuta de forma inmediata.
Asignacin Almacena en una variable el resultado de evaluar unaexpresin
Variableexpresin
EntradaToma un dato del dispositivo de entrada
Leer (Variable)
SalidaDevuelve un dato al dispositivo de salida
Imprimir (variable)
2.10.1.2 Sentencias de control
Tambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otras
instrucciones.
Secuencia.Se ejecutan instrucciones de I1,I2,...,In en el mismo orden enel que aparece
I1,I2,...,I3
Al i E i i l di i b l
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
16/36
Tema 2
Opcin Expresin deV1 Hacer I1,I2,...,InV2 Hacer J1,J2,...,In
V3 Hacer K1,K2,...,Kn
...
VN Hacer L1,L2,...,LnOtro Hacer M1,M2,...,Mn
Fin_opcin
Repeticin o bucles. En un bucle hay una o varias acciones que se hande repetir y una condicin que determina el nmero de veces que se
repiten las instrucciones.
Mientras
Mientras condicin hacerI1,I2,...,In
Fin_mientras
Repetir
RepetirI1,I2,...,In
Hasta condicin
ParaPara Variable de Valinc a ValFin hacer
I1,I2,...,In
Fin_para
2.10.2 Diagrama De Flujo
Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
17/36
Algoritmos
2.10.2.1 CaractersticasToda representacin grfica, de cualquier tipo sea, debe cumplir las siguientes cualidades.
Sencillez. Un mtodo grfico de diseo de algoritmo debe permitir laconstruccin de estos de manera fcil y sencilla
Claridad. Cuando un algoritmo es representado por un mtodo grfico
necesita ser interpretado por otra persona distinta de la que lo dise,debe estar lo suficientemente claro para su un fcil reconocimiento de
todos los elementos.
Normalizacin. Tanto los diseadores de programas como los usuariosque necesitan la documentacin de estos deben utilizar las mismasnormas de documentacin.
Flexibilidad. Todo mtodo grfico de representacin debe permitir, singrandes dificultades, posteriores modificaciones de algunas partes de unalgoritmo y la insercin de alguna nueva.
2.10.2.2 Descripcin de los bloques utilizados
Los smbolos utilizados han sido normalizados por el instituto norteamericano denormalizacin (ANSI).
Terminal. Indica el inicio y el final de nuestro
diagrama de flujo.
Indica la entrada y salida de datos.
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
18/36
Tema 2
Smbolo de proceso y nos indica la asignacinde un valor en la memoria y/o la ejecucin de
una operacin aritmtica.
Smbolo de decisin indica la realizacin de
una comparacin de valores. No si
Subrprogramas
Conector dentro de pagina. Representa lacontinuidad del diagrama dentro de la misma
pagina.
Conector de pagina. Representa la continuidaddel diagrama en otra pagina.
Lneas de flujo o direccin. Indican la
secuencia en que se realizan las operaciones.
Smbolo de decisin , con opciones mltiples
comentarios
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
19/36
Algoritmos
Ciclo repetitivo Mientras NO SI
Ciclo repetitivo Repetir
No si
Diferencia entre organigrama y ordinograma (D.F.)
Organigrama diagramas de flujo del sistema.
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
20/36
Tema 2
Ordinogramasdiagramas de flujo del programa
2.10.2.3 Recomendaciones para el diseo de Diagramasde Flujo
Se deben se usar solamente lneas de flujo horizontales y/o verticales.
Se debe evitar el cruce de lneas utilizando los conectores.Se deben usar conectores solo cuando sea necesario.
No deben quedar lneas de flujo sin conectar.Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de
izquierda a derecha.
Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de
muchas palabras.
2.10.2.4 Formato de todo tipo de Diagramas de Flujo
Todo diagrama de flujo, en general, consta de los siguientes pasos.
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
21/36
Algoritmos
2.10.2.5 Ventajas De Utilizar Un Pseudocodigo A UnDiagrama De Flujo
Ocupa menos espacio en una hoja de papelPermite representar en forma fcil operaciones repetitivas complejas
Es muy fcil pasar de pseudocodigo a un programa en algn lenguaje de programacin.
Si se siguen las reglas se puede observar claramente los niveles que tiene cada operacin.
2.10.3 Diagramas Estructurados (Nassi-Schneiderman)
El diagrama estructurado N-S 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. Lasacciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo,
se pueden escribir diferentes acciones en una caja. Un algoritmo se represente en la sig.
forma:
2.10.3.1 Acciones simples
Las acciones simples, tambin denominadas instrucciones primitivas, son aquellas que el
procesador ejecuta de forma inmediata.
Asignacin Almacena en una variable el resultado de evaluar unaexpresin
EntradaToma un dato del dispositivo de entrada
A = a+3
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
22/36
Tema 2
2.10.3.2 Sentencias de controlTambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otras
instrucciones.
Secuencia.Se ejecutan instrucciones de I1,I2,...,In en el mismo orden en
el que aparece
Alternativa.En esta instruccin la condicin es booleana
Repeticin o bucles. En un bucle hay una o varias acciones que se hande repetir y una condicin que determina el nmero de veces que se
repiten las instrucciones.
Mientras
I1
I2
...
IN
True False
condicion
1 2 3 4 5 86 7
Condicion
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
23/36
Algoritmos
Repetir
Para
2.11 Otras Herramientas De La Programacin
Estructurada
Tambin existen otros mtodos de representar los algoritmos y son los siguientes.
2.11.1 Mtodo Warnier
El mtodo se basa en el empleo de llaves de distintos tamaos que se relacionan entre s.
La representacin del algoritmo se basa en los siguientes puntos.
U programa se representa por un solo diagrama en la cual se englobant d l i t i t l d l d h d
repetir
Para
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
24/36
Tema 2
Asignacin Almacena en una variable el resultado de evaluar unaexpresin
Variableexpresin
EntradaToma un dato del dispositivo de entrada
Leer (Variable)
SalidaDevuelve un dato al dispositivo de salida
Imprimir (variable)
2.11.1.3 Sentencias de control
Tambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otras
instrucciones.
Secuencia.Se ejecutan instrucciones de I1,I2,...,In en el mismo orden enel que aparece
I1
I2...
I3
Alternativa.En esta instruccin la condicin es booleana
Si I1Condicin
No I2
Expresin = V1 A
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
25/36
Algoritmos
Repeticin o bucles. En un bucle hay una o varias acciones que se hande repetir y una condicin que determina el nmero de veces que serepiten las instrucciones.
Mientras
Proceso A
Mientras condicin
Repetir
Proceso A
Hasta condicin
Para
Proceso A
N veces
2.11.2 Mtodo Jackson
Se trata de un mtodo de representacin de programa en forma de rbol denominadodiagrama arborescente de Jackson, un diagrama de Jackson consta de :
Definicin detallada de los datos de entrada y salida incluyendo losarchivos lgicos utilizados.
Representacin del proceso o algoritmo.
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
26/36
Tema 2
2.11.2.1 Acciones simplesLas acciones simples, tambin denominadas instrucciones primitivas, son aquellas que el
procesador ejecuta de forma inmediata.
Asignacin Almacena en una variable el resultado de evaluar una
expresin
Variableexpresin
EntradaToma un dato del dispositivo de entrada
Leer (Variable)
SalidaDevuelve un dato al dispositivo de salida
Imprimir (variable)
2.11.2.2 Sentencias de control
Tambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otrasinstrucciones.
Secuencia.Se ejecutan instrucciones de I1,I2,...,In en el mismo orden enel que aparece
Al i E i i l di i b l
Proceso
A B C
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
27/36
Algoritmos
Repeticin o bucles. En un bucle hay una o varias acciones que se hande repetir y una condicin que determina el nmero de veces que serepiten las instrucciones.
MientrasEn el bloque condicin se escribe mientras condicin
RepetirEn el bloque condicin se escribe hasta condicin
Para
En el bloque condicin se escribe N veces
2.11.3 Mtodo Bertini
Al igual que Jackson, la representacin de programas es en forma de rbol denominado
diagrama arborescente de Bertini. Un diagrama de Bertini consta de.
Expresin
= V1 O
A
= V2 O
B
= V3 O
C
= VN O
D
Proceso
*
Condicin
A
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
28/36
Tema 2
La lectura del rbol se realiza en postorden
Situarse en la raz (R)
Recorrer el subarbol Derecho (D)
Recorrer el subarbol Izquierdo (I)
2.11.3.1 Acciones simples
Las acciones simples, tambin denominadas instrucciones primitivas, son aquellas que el
procesador ejecuta de forma inmediata.
Asignacin Almacena en una variable el resultado de evaluar unaexpresin
Variableexpresin
EntradaToma un dato del dispositivo de entrada
Leer (Variable)
SalidaDevuelve un dato al dispositivo de salida
Imprimir (variable)
2.11.3.2 Sentencias de control
Tambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otrasinstrucciones.
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
29/36
Algoritmos
Alternativa.En esta instruccin la condicin es booleana
COND COND
A B
EXPRESION
=V1 =V2 =V3 =OTROS
A B C D
Repeticin o bucles. En un bucle hay una o varias acciones que se hande repetir y una condicin que determina el nmero de veces que se
repiten las instrucciones.
CONDICION
A
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
30/36
Tema 2
Para
En el bloque condicin se escribe N veces
2.11.4 Mtodo Tabourier
Se trata de un mtodo de representacin de programa en forma de rbol denominado
diagrama arborescente de Tabourier, un diagrama de Tabourier consta de :
Definicin detallada de los datos de entrada y salida incluyendo losarchivos lgicos utilizados.
Representacin del proceso o algoritmo.
La simbologa utilizada es la siguiente
La lectura del rbol se realiza en preorden
Situarse en la raz (R)
Recorrer el subarbol izquierdo (I)
Recorrer el subarbol derecho (D)
2.11.4.1 Acciones simples
Las acciones simples, tambin denominadas instrucciones primitivas, son aquellas que el
procesador ejecuta de forma inmediata.
Asignacin Almacena en una variable el resultado de evaluar unaexpresin
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
31/36
Algoritmos
2.11.4.2 Sentencias de controlTambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otras
instrucciones.
Secuencia.Se ejecutan instrucciones de I1,I2,...,In en el mismo orden enel que aparece
Alternativa.En esta instruccin la condicin es booleana
Condi.
Expresin
Boque
A B C
Si entonces Sino
A B
En caso de
= V1
A
= V2
B
= V3
C
= VN
D
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
32/36
Tema 2
Mientras
Condi.
Repetir
Condi.
Para
Condi.
2.12 CONVERSIN DE ALGORITMOS
Mientras
A
Repetir
A
Para
A
Algoritmos
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
33/36
g
Dpl. Ing. Carlos Balderrama Vsquez 75
Instrucciones,acciones
Pseudocodigo Diagrama de flujo Diagrama N-S
Estructura del
Algoritmo
Algoritmo Identificador
{Seccin de declaracin devariables}
inicio
....
fin
Inicio
Fin
Declaracin de
variables
Descripcin de variables y tipos en
la tabla de variables
Se escriben las variables y tipos
en la tabla de variables junto con
el diagrama de flujo
Escritura de una tabla de variables
Asignacin VariableExpresin VariableExpresin VariableExpresin
Entrada de datos Leer(lista de variables)
Leer
(lista de variables)
Leer
(lista de variables)
Salida de datos Escribir(lista de variables)
Escribir
(lista de variables)
Escribir
(lista de variables)
Algoritmo Identificador
Fin
Tema 2
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
34/36
76 Metodologa de la Programacin I
Instruccincompuesta
S1
S2S3
...
SN
S1
S2
...
Sn
S1
S2
...
Sn
Comentarios
{ FASE DESCRIPTIVA DE
COMENTARIO}
Selectiva alternativa
simple Sicondicin entoncesS1
S2
...S3
Finsi
Selectiva alternativa
doble Sicondicin entoncesS1
S2
...S3
SinoS1S2
...
S3
Finsi
True False
condicion
True False
condicion
Algoritmos
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
35/36
Dpl. Ing. Carlos Balderrama Vsquez 77
Selectiva alternativamltiple Segn_sea expresin hacer
E1 : S1,S2,...Sn
E2 : S1,S2,...SnE3 : S1,S2,...Sn
.....
EN : S1,S2,...Sn
En_otro_casoEN : S1,S2,...Sn
Fin_segn_sea
Repetitiva mientrasMientras condicin
S1
S2...
S3
Fin_Mientras
no
Si
Mientras
Repetitiva repetir
RepetirS1
S2
...S3
Hasta condicinNo Si
Repetir
1 2 3 4 5 86 7
Condicion
Tema 2
-
8/21/2019 Algoritmos.pdf by ramses merel sanchez
36/36
78 Metodologa de la Programacin I
Repetitiva para(desde) Para Var de ValInc Hasta ValFin
[incrementox] hacerS1S2
...
Sn
Fin_Para
Para V de
inicfin hacer
V
Para