Beruflich Dokumente
Kultur Dokumente
1. Introduccin.........................................................................................................2
1.1 Metodologa para la construccin de un programa........................................3
A - Comprensin del problema..........................................................................3
B - Diseo de una estrategia de resolucin.......................................................5
C Desarrollo del algoritmo................................................................................6
D Implementacin del algoritmo....................................................................9
E - Ejecucin del programa y evaluacin de resultados.................................10
Resumen Introduccin:.....................................................................................11
???
Resultados
(datos de salida)
En una punta del esquema tenemos los datos de entrada, y en la otra los
resultados. El programa debe procesar los datos de entrada de manera
conveniente como para producir la salida esperada. Nuestra incgnita es
entonces establecer cuales son las relaciones que permitan convertir los datos
de entrada en la informacin resultado. De eso se debe encargar el programa.
Podemos considerar que hemos comprendido el problema cuando podamos
responder las siguientes preguntas:
a) Cules son los datos a contemplar en el problema ?
Cuntos son ? En qu secuencia se presentan ?
b) Cules son los resultados que se deben proporcionar ?
Cuntos son ?
Se debe respetar una secuencia preestablecida ?
Se han establecido unidades ?
c) Qu tipo de relacin, mtodo o proceso se debe establecer con los datos
suministrados para obtener los datos pedidos ?
Es un proceso matemtico o de evaluacin ?
Es un proceso selectivo ? Simple o mltiple ?
Es una combinacin y/o repeticin de ambos ?
Veamos algunos ejemplos simples.
Ejemplo 1
Dados dos nmeros que se ingresan por teclado, calcular e informar la suma
a) Entrada: 2 nmeros
b) Salida: 1 nmero que representa el valor de la suma de los dos valores de
entrada
c) Proceso: operacin matemtica de suma entre los 2 nmeros ingresados
Ejemplo 2
Dados dos valores numricos determinar e informar al mayor de ambos.
a) Entrada: 2 nmeros
b) Salida: 1 nmero; el de mayor valor entre los 2 ingresados.
c) Proceso: una seleccin simple entre dos valores conocidos.
Ejemplo 3
Se ingresan 3 nmeros sin ningn orden y se pide que se los informe en orden
creciente.
a) Datos: 3 nmeros.
b) Resultados: los tres valores ingresados ordenados de manera creciente.
c) Proceso: se debe efectuar ms de una seleccin para ordenarlos, ser una
seleccin mltiple.
Ejemplo 4
Se dan como datos las longitudes de los dos catetos de un tringulo
rectngulo y se debe calcular el rea del tringulo.
a) Datos: 2 nmeros positivos ( las longitudes de los 2 catetos).
b) Resultados: 1 nmero; el rea del tringulo.
c) Proceso: aplicacin de la frmula de clculo de la superficie del tringulo
En este ltimo ejemplo se establecen limitaciones para los datos de entrada:
deben ser positivos. Adems para la resolucin debe conocerse cul es la
frmula para el clculo de la superficie.
B - Diseo de una estrategia de resolucin
Consiste en la elaboracin de un plan general sobre el cual nos basaremos
para luego desarrollar el algoritmo, obteniendo el diagrama de lgica del
problema. En esta etapa definimos como resolveremos el problema, haciendo
abstraccin de los detalles. En lugar de pensar en instrucciones, trataremos de
establecer las tareas o procesos constitutivos del problema.
En general la estrategia se basa en dividir el problema original en las partes
que lo componen, obteniendo un conjunto de problemas ms simples
ordenados en una secuencia especfica. Este criterio puede volver a aplicarse
hasta que los subproblemas en los que dividimos el problema original sean
perfectamente compresibles, esto es, que puedan resolverse en forma
individual.
Una vez resueltos todos los pequeos problemas tendremos resuelto el
problema original. Nuestro esquema inicial podra representarse ahora de la
siguiente manera:
Entrada
Sub. 1
???
S1 E2
Sub. 2
???
S2 E3
Sub. 3
???
Salida
1.
2.
3.
4.
5.
6.
Ingresar el valor de A
Ingresar el valor de B
Obtener el resto del cociente, sin decimales, de A/B
Analizar el resto del cociente
Si el resto es cero informar ES MULTIPLO
Finalizar
El diseo del algoritmo es la etapa ms creativa del desarrollo de un
programa. Si bien las condiciones que debe cumplir son muy estrictas, no
existe una nica forma de resolver un problema: puede que frente a un
problema dado a cada uno de los alumnos del curso se les ocurra una
solucin (algoritmo) distinta. Y si los algoritmos resuelven correctamente el
problema todos estn bien.
Nuestra materia se basa precisamente en el diseo de algoritmos. Y a esta
tarea dedicaremos la mayor parte de nuestro tiempo.
En el ejemplo anterior se represent el algoritmo describiendo cada uno de
los pasos para su solucin, utilizando el lenguaje natural, que es la manera
que utilizamos para comunicarnos entre nosotros. Otra forma de
representarlo sera utilizando un pseudocdigo, esto es, escribir las
instrucciones siguiendo un conjunto de reglas sintcticas poco estrictas, pero
intentando acercar las ideas del algoritmo a las estructuras y sintaxis
parecidas a las de los lenguajes en los que vamos a programar el algoritmo. Y
la otra posibilidad es representar las instrucciones grficamente mediante un
diagrama de flujo, que es lo que haremos en la materia.
Ms adelante veremos detalladamente cada uno de los bloques que
utilizaremos en la construccin de nuestros algoritmos, o diagramas lgicos.
Para empezar veamos una como se representa el algoritmo anterior en un
diagrama de flujo:
resto=a%b
resto= = 0
Es mltiplo
Ingreso de datos
Salida de datos
Operacin
Decisin simple
P
Resumen Introduccin:
Software: el conjunto de programas, procedimientos, reglas, documentacin
y datos asociados que forman parte de las operaciones de un sistema de
computacin.
Programa de computadora: conjunto ordenado de instrucciones codificadas
en un lenguaje de programacin especfico, que le indican al procesador lo
que debe hacer.
Lenguajes de programacin: idiomas diseados para expresar las acciones
que pueden ser llevadas a cabo por las computadoras. Estn compuestos por
un conjunto de smbolos y reglas que definen su estructura y el significado de
sus elementos y expresiones; su objeto es permitir la comunicacin entre
nosotros y las mquinas.
Lenguaje de diagrama de flujo: un conjunto de smbolos grficos que
permiten la representacin de las instrucciones
Metodologa para la construccin de un programa
A. Compresin del problema: determinar que se debe hacer. Definir:
- Datos de entrada
- Datos o informacin de salida
- Relacin entre datos de entrada y salida.
B. Diseo de una estrategia de resolucin: definicin de un plan general
de trabajo. Determinar como se resolver el problema. Divisin del
problema en las partes que lo constituyen
C. Desarrollo del algoritmo (diagrama de lgica):
Definicin de algoritmo: conjunto finito de operaciones que ejecutadas en
un orden determinado permiten resolver el problema planteado.
Para desarrollar el algoritmo solucin se detallan cada una de las
instrucciones, a partir de lo definido en la estrategia. Puede hacerse
mediante el lenguaje natural, pseudocdigo o diagrama de flujo
D. Implementacin del algoritmo: traduccin de las instrucciones del
diagrama de flujo a las instrucciones propias de un lenguaje de
programacin. Luego mediante la compilacin se construye el archivo
ejecutable que se utilizar en cualquier computadora.
E. Ejecucin del programa y evaluacin de resultados: construccin de un
lote de datos de prueba para analizar el funcionamiento del programa. El
lote se prepara con distintas combinaciones de datos, para los que se
conoce el resultado, y si el programa no resuelve correctamente todos los
casos habr que modificarlo.