fundamentos de programacion unidad2
DESCRIPTION
trabajoTRANSCRIPT
-
UNIDAD II
ALGORITMOS
M.C. Sergio Garza Carranza Fundamentos de Programacin 1
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 2
Unidad II. Algoritmos
Metodologa para la resolucin de problemas a travs de la computadora.
El proceso de resolucin de un problema con una computadora conduce a la escritura de un programa y a su ejecucin en la misma. Aunque el proceso de disear programas es esencialmente un proceso creativo, se puede considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores.
Las fases de resolucin de un problema con computadora son:
Anlisis del problema
Diseo del algoritmo
Implementacin
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 3
Unidad II. Algoritmos
Anlisis del problema
La primera fase de la resolucin de un problema con computadora es el anlisis del problema. Esta fase requiere una clara definicin, donde se contemple exactamente lo que debe hacer el programa y el resultado o solucin deseada.
Dado que se busca una solucin por computadora, se precisan especificaciones detalladas de entrada y salida.
Metodologa para la resolucin de problemas a travs de la computadora.
Para poder definir bien un problema es necesario responder a las siguientes preguntas:
Qu entradas se requieren? (tipo y cantidad)
Cul es la salida deseada? (tipo y cantidad)
Qu mtodo produce la salida deseada?
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 4
Unidad II. Algoritmos
Diseo del algoritmo
En la fase de anlisis, se determina qu har el programa. En la etapa de diseo se
determina cmo har el programa la tarea solicitada.
Los mtodos ms eficaces para el proceso de diseo se basan en el conocido divide y vencers. Es decir, la resolucin de un problema complejo se realiza dividiendo el problema en subproblemas y stos a su vez, en otros de nivel ms bajo.
Este mtodo se conoce tcnicamente como diseo descendente (top-down) o modular.
Metodologa para la resolucin de problemas a travs de la computadora.
El proceso de revisin de la secuencia lgica del programa y de enlazar cada una de las partes, se conoce como refinamiento sucesivo o por pasos.
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 5
Unidad II. Algoritmos
Diseo del algoritmo
El proceso que convierte los resultados del anlisis del problema en un diseo modular con refinamientos sucesivos que permitan una posterior traduccin a un lenguaje de programacin se denomina diseo del algoritmo.
El diseo del algoritmo es independiente del lenguaje de programacin en el que se vaya a codificar posteriormente.
Las herramientas ms utilizadas para disear algoritmos son:
Diagramas de flujo
Pseudocdigo
Diagramas N-S
Metodologa para la resolucin de problemas a travs de la computadora.
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 6
Unidad II. Algoritmos
Diagramas de flujo
Un diagrama de flujo (flowchart) es una representacin grfica de un algoritmo. En ella, se muestra la secuencia de pasos del algoritmo representados por una serie de smbolos que tienen un significado particular.
Estos diagramas utilizan smbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flujo de ejecucin mediante flechas que conectan los puntos de inicio y de trmino.
Metodologa para la resolucin de problemas a travs de la computadora.
Su correcta construccin es sumamente importante porque , a partir del mismo se escribe un programa en algn Lenguaje de Programacin. Si el Diagrama de Flujo est completo y correcto, el paso del mismo a un Lenguaje de Programacin es relativamente simple y directo.
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 7
Unidad II. Algoritmos
Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI), y los ms frecuentemente empleados son los siguientes:
Metodologa para la resolucin de problemas a travs de la computadora.
SIMBOLO NOMBRE SIGNIFICADO
Terminal Indica el inicio o final del diagrama de flujo
Proceso
Indica cualquier actividad o proceso, se utiliza
comnmente para representar una instruccin,
o cualquier tipo de operacin que origine un
cambio de valor.
Entrada / Salida
Cualquier tipo de introduccin de datos en la
memoria desde los perifricos o registro de
informacin procesada en un perifrico.
Decisin
Indica operaciones lgicas o de comparacin
entre datos (normalmente dos) y en funcin del
resultado de la misma determina (normalmente
si y no) cual de los distintos caminos
alternativos del programa se debe seguir
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 8
Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.
SIMBOLO NOMBRE SIGNIFICADO
Entrada manual
(teclado)
Indica la introduccin de datos por medio del
teclado. Se utiliza en ocasiones en lugar del
smbolo de entrada/salida
Entrada
(tarjeta perforada)
Indica la introduccin de datos por medio de
tarjetas perforadas. Se utiliza en ocasiones en
lugar del smbolo de entrada/salida
Salida
(impresora)
Se utiliza en ocasiones en lugar del smbolo de
salida. El dibujo representa un pedazo de hoja.
Es usado para mostrar datos o resultados en la
impresora.
Salida
(pantalla)
Se utiliza en ocasiones en lugar del smbolo de
salida. El dibujo representa un monitor. Es
usado para mostrar datos o resultados en la
pantalla.
Conector
(misma pgina)
Sirve para enlazar dos partes cualesquiera de
un diagrama a travs de un conector en la
salida y otro conector en la entrada. Se refiere a
la conexin en la misma pagina del diagrama
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 9
Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.
SIMBOLO NOMBRE SIGNIFICADO
Conector
(entre pginas)
Sirve para enlazar dos partes cualesquiera de
un diagrama a travs de un conector en la
salida y otro conector en la entrada. Se refiere a
la conexin en diferentes pginas del diagrama.
Flechas de flujo Indican el sentido de la ejecucin de las
operaciones
Iteracin ciclo mientras / hasta que
(while / until)
Sirve para indicar un proceso repetitivo que se
ejecuta hasta que o mientras se cumpla una
condicin
Iteracin Ciclo desde .hasta
(forto)
Sirve para indicar un proceso repetitivo que se
ejecuta un nmero predeterminado de veces.
Subrutina Indica el llamado a un proceso predefinido.
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 10
Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.
Pseudocdigo
El pseudocdigo (falso lenguaje) es una descripcin de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintcticas propias de lenguajes de programacin, como asignaciones, ciclos y condicionales.
Es utilizado para describir algoritmos en libros y publicaciones cientficas, y como producto intermedio durante el desarrollo de un algoritmo.
El pseudocdigo est pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementacin.
leer x
si x>5 entonces
imprimir mayor de 5
si no entonces
imprimir no mayor de 5
fin si
EJEMPLO :
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 11
Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.
Diagramas N-S (Nassi Schneiderman)
El diagrama N-S o tambin conocido como diagrama de Chapin es una tcnica de especificacin de algoritmos que combina la descripcin textual, propia del pseudocdigo, con la representacin grfica del diagrama de flujo.
El diagrama N-S cuenta con un conjunto limitado de smbolos para representar los pasos del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que el lenguaje natural es muy extenso y se presta para la ambigedad, solo se utiliza un conjunto de palabras, a las que se denomina palabras reservadas.
Las palabras reservadas ms utilizadas son:
Inicio, Fin, Leer, Escribir, Mientras, Repita,
Hasta, Para, Incrementar, Hacer, Funcin
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 12
Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.
EJEMPLO: Algoritmo que determina el mayor y menor de dos nmeros
Inicio
leer n1 y n2
si n1 = n2 entonces
imprimir son iguales
si no, entonces
si n1 > n2 entonces
imprimir n1, Mayor
imprimir n2, Menor
si no, entonces
imprimir n2, Mayor
imprimir n1, Menor
fin si
fin si
fin
Pseudocdigo Diagrama de flujo Diagrama N-S
Son iguales
Inicio
n1, n2
n1=n2
n1
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 13
Unidad II. Algoritmos
Implementacin
El proceso de implementacin de un algoritmo consiste en las siguientes etapas:
Metodologa para la resolucin de problemas a travs de la computadora.
-
M.C. Sergio Garza Carranza Fundamentos de Programacin 14
Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.
Resolucin de
Problemas en la
Computadora
Anlisis del
Problema
(Qu hacer?)
Diseo del
algoritmo
(Cmo hacerlo?)
Implementacin
(Con que?)
Descripcin del Problema
Describir claramente lo que debe
hacer el programa y el resultado
que se desea
Especificaciones de Entrada
Identificar cuales son las
entradas y sus tipos
Especificaciones de Salida
Identificar cuales son las
Salidas y sus tipos
Diseo Descendente
Dividir el problema en partes
(subproblemas) ms pequeas
Refinamiento por pasos
Secuencia lgica de la ejecucin.
Enlazar cada una de las partes
Herramientas de Diseo
Pseudocdigo
Diagramas de flujo
Diagramas N-S
Codificacin
Escribir el algoritmo en el lenguaje
de programacin. Se obtiene el
Programa
Ejecucin y prueba
El programa se ejecuta, se
verifica rigurosamente y se
eliminan los errores que pudieran
aparecer
Depuracin y Mantenimiento
El programa se actualiza y
modifica cada vez que sea
necesario, para cumplir las
necesidades del cliente.
R E S U M E N