Você está na página 1de 14

UNIDAD II

ALGORITMOS

M.C. Sergio Garza Carranza

Fundamentos de Programacin

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

Unidad II. Algoritmos

Metodologa para la resolucin de problemas a travs de la computadora.

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.
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

Unidad II. Algoritmos

Metodologa para la resolucin de problemas a travs de la computadora.

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.
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

Unidad II. Algoritmos

Metodologa para la resolucin de problemas a travs de la computadora.

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

M.C. Sergio Garza Carranza

Fundamentos de Programacin

Unidad II. Algoritmos

Metodologa para la resolucin de problemas a travs de la computadora.

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.
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

Unidad II. Algoritmos

Metodologa para la resolucin de problemas a travs de la computadora.

Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de


Normalizacin (ANSI), y los ms frecuentemente empleados son los siguientes:
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

Decisin

M.C. Sergio Garza Carranza

Cualquier tipo de introduccin de datos en la


memoria desde los perifricos o registro de
informacin procesada en un perifrico.

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

Fundamentos de Programacin

Unidad II. Algoritmos


SIMBOLO

M.C. Sergio Garza Carranza

Metodologa para la resolucin de problemas a travs de la computadora.

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

Fundamentos de Programacin

Unidad II. Algoritmos


SIMBOLO

Metodologa para la resolucin de problemas a travs de la computadora.

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

Iteracin
ciclo mientras / hasta que
(while / until)

Iteracin
Ciclo desde .hasta
(forto)

Subrutina

M.C. Sergio Garza Carranza

Indican el sentido de la ejecucin de las


operaciones

Sirve para indicar un proceso repetitivo que se


ejecuta hasta que o mientras se cumpla una
condicin

Sirve para indicar un proceso repetitivo que se


ejecuta un nmero predeterminado de veces.

Indica el llamado a un proceso predefinido.

Fundamentos de Programacin

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.
EJEMPLO : leer x
si x>5 entonces
imprimir mayor de 5
si no entonces
imprimir no mayor de 5
fin si
M.C. Sergio Garza Carranza

Fundamentos de Programacin

10

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

11

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


Pseudocdigo

Diagrama de flujo

Diagrama N-S

Inicio

Inicio
leer n1 y n2
n1, n2

si n1 = n2 entonces
imprimir son iguales
si no, entonces

SI

NO
n1=n2

si n1 > n2 entonces
imprimir n1, Mayor
imprimir n2, Menor
si no, entonces

SI

NO
n1<n2

Son
iguales

imprimir n2, Mayor

imprimir n1, Menor


fin si

n2, mayor

n1, mayor

n1, menor

n2, menor

fin si
fin
Fin

M.C. Sergio Garza Carranza

Fundamentos de Programacin

12

Unidad II. Algoritmos

Metodologa para la resolucin de problemas a travs de la computadora.

Implementacin
El proceso de implementacin de un algoritmo consiste en las siguientes etapas:

M.C. Sergio Garza Carranza

Fundamentos de Programacin

13

Unidad II. Algoritmos


RESUMEN

Metodologa para la resolucin de problemas a travs de la computadora.


Resolucin de
Problemas en la
Computadora

Anlisis del
Problema

Diseo del
algoritmo

(Qu hacer?)

(Cmo hacerlo?)

Descripcin del Problema

Diseo Descendente

Implementacin
(Con que?)

Codificacin

Describir claramente lo que debe


hacer el programa y el resultado
que se desea

Dividir el problema en partes


(subproblemas) ms pequeas

Escribir el algoritmo en el lenguaje


de programacin. Se obtiene el
Programa

Especificaciones de Entrada

Refinamiento por pasos

Identificar cuales son las


entradas y sus tipos

Secuencia lgica de la ejecucin.


Enlazar cada una de las partes

El programa se ejecuta, se
verifica rigurosamente y se
eliminan los errores que pudieran
aparecer

Herramientas de Diseo

Depuracin y Mantenimiento

Pseudocdigo

El programa se actualiza y
modifica cada vez que sea
necesario, para cumplir las
necesidades del cliente.

Ejecucin y prueba

Especificaciones de Salida
Identificar cuales son las
Salidas y sus tipos

Diagramas de flujo
Diagramas N-S

M.C. Sergio Garza Carranza

Fundamentos de Programacin

14

Você também pode gostar