Anda di halaman 1dari 17

Fundamentos de Programacin

Unidad N2: Diseo de Algoritmos

Prof. Francisco Silva Loyola


Primavera 2017
Aprendizajes Esperados

Aprendizajes Esperados
2.1.- Resuelve problemas de especialidad por medio de algoritmos, organizando
los datos, informacin y fuentes de consulta de forma lgica y eficiente, en base
a la situacin planteada.
Objetivos a lograr

Los objetivos de esta unidad son:

i. 2.1.1.- Utilizar algoritmos para establecer una secuencia de solucin de un


problema de especialidad de acuerdo a los datos disponibles.
ii. Resolver problemas por medio de estructuras condicionales y operaciones
aritmticas utilizando pseudo-lenguaje o pseudo-cdigo en base a la situacin
planteada.
iii. Resolver problemas por medio de estructuras iterativas utilizando pseudo-
lenguaje o pseudo-cdigo en base a la situacin planteada.
iv. Evaluar el resultado de la solucin propuesta por medio de la traza del
algoritmo escrito en pseudo-lenguaje o pseudo-cdigo.
Algoritmos y estructuras de programacin
Fases de creacin de un programa

El proceso de resolucin de problemas en un ordenador conduce a la escritura de un


programa y su ejecucin. Las fases en el desarrollo de un programa pueden resumirse de
la siguiente forma:

1. Analizar el problema consiste en conocer perfectamente en que consiste y qu


resultados se desean obtener.

2. Planificacin de la resolucin del problema, dividindolo, si es complicado, en una


secuencia de etapas ms simples. Esta fase se lleva a cabo EN UN PAPEL, estableciendo
lo ms claramente posible la finalidad de cada etapa, los datos que se necesitan de
entrada, los datos que produciran en salida, los algoritmos que se utilizaran, etc.

3. Edicin del cdigo fuente, es decir, escritura del mismo utilizando un editor de textos
simple (sin formato) y un lenguaje de programacin. Los programas fuente sern
almacenados en ficheros de texto, normalmente en el disco duro del ordenador.

4. Compilacin y ejecucin del programa al lenguaje maquina.


Algoritmos y estructuras de programacin

Fases de creacin de un programa

5. Correccin de errores del programa. Los errores se corregirn en el cdigo fuente,


repitiendo los pasos 3 y 4 tantas veces como sea necesario. Si se producen errores en
la lgica del programa, es decir, si el programa funciona pero produce resultados
incorrectos, hay que modificar el algoritmo volviendo al paso 2. Estos errores son los
ms difciles de detectar.

6. Documentacin. Una vez que el programa funcione correctamente, es conveniente


revisar el cdigo fuente para ordenarlos, eliminar clculos innecesarios e incluir las
lneas de comentario necesarias, que normalmente deben incluir unas breves
explicaciones al principio del cdigo sobre la finalidad del programa y sus argumentos
de entrada y de salida.
3
Algoritmos y estructuras de programacin

Algoritmos

Un ordenador es capaz de realizar slo determinadas acciones sencillas, tales como


sumar, comparar o transferir datos, pero los problemas que normalmente interesa
resolver son ms complejos. Para resolver un problema real es necesario, en primer lugar,
encontrar un mtodo de resolucin y, posteriormente, determinar la sucesin de acciones
sencillas (susceptibles de ser ejecutadas por un ordenador) en que se descompone dicho
mtodo. No todos los mtodos de solucin de un problema pueden ser puestos es
practica en un ordenador. Para que un procedimiento pueda ser implantado en un
ordenador debe ser:

Preciso: estar compuesto de pasos bien definidos (no ambiguos) y ordenados.

Definido: si se sigue dos veces, se obtiene el mismo resultado cada vez.

Finito: tener un nmero finito de pasos.


Algoritmos y estructuras de programacin

Algoritmos

Un procedimiento o mtodo para resolver un problema que cumpla los requisitos


anteriores se dice que es un algoritmo.

Se puede dar por tanto la siguiente definicin: Un algoritmo es un mtodo para resolver
un problema mediante una secuencia de pasos bien definidos, ordenados y finitos.

Para que se pueda ejecutar el algoritmo es preciso, adems, que se disponga de las
herramientas adecuadas para llevar a cabo cada uno de los pasos. Si no es as, estos
debern, a su vez, ser descompuestos en una secuencia (algoritmo) de pasos ms simples
que si se puedan llevar a cabo.

Un programa de ordenador es una sucesin de ordenes que describen un algoritmo,


escritas de forma que puedan ser entendidas por el ordenador.

En un algoritmo (y por tanto en un programa) se distinguen las siguientes acciones:

Entrada: es la informacion de partida que necesita el algoritmo para arrancar.


Proceso: es el conjunto de todas las operaciones a realizar.
Algoritmos y estructuras de programacin

Algoritmos

Un programa de ordenador es una sucesin de ordenes que describen un algoritmo,


escritas de forma que puedan ser entendidas por el ordenador.

En un algoritmo (y por tanto en un programa) se distinguen las siguientes acciones:

Entrada: es la informacin de partida que necesita el algoritmo para arrancar.

Proceso: es el conjunto de todas las operaciones a realizar.

Salida: son los resultados obtenidos.


Algoritmos y estructuras de programacin
Algoritmos

Ejemplo:
Algoritmos y estructuras de programacin
Representacin de algoritmos.

Las dos herramientas ms utilizadas comnmente para describir algoritmos son:

Diagramas de flujo: son representaciones graficas de secuencias de pasos a


realizar. Cada operacin se representa mediante un smbolo normalizado el
Instituto Norteamericano de Normalizacin (ANSI - American National Standars
Institute). Las lneas de flujo indican el orden de ejecucin.

Algunos de los smbolos principales se muestran en la figura, como son: Inicio/Fin del
algoritmo, Lectura/Escritura de datos que el programa necesita o genera (por ejemplo,
lectura de datos que se teclean o escritura de datos en un fichero);

Proceso conjunto de instrucciones secuenciales;

Decisin es una bifurcacin en el flujo del algoritmo en base a que se verifique o


no cierta condicin (ver la Seccin 5.5).

Los diagramas de flujo suelen ser usados slo para representar algoritmos pequeos,
ya que abarcan mucho espacio.
Algoritmos y estructuras de programacin
Representacin de algoritmos.

Los diagramas de flujo suelen ser usados slo para representar algoritmos pequeos,
ya que abarcan mucho espacio.
Algoritmos y estructuras de programacin
Representacin de algoritmos.

Pseudocdigos: describen un algoritmo de forma similar a un lenguaje de


programacin pero sin su rigidez, de forma ms parecida al lenguaje natural. Presentan
la ventaja de ser ms compactos que los diagramas de flujo, ms fciles de escribir para
las instrucciones complejas y ms fciles de transferir a un lenguaje de programacin.
El pseudocdigo no esta regido por ningn estndar.

Nota: usaremos las palabras LEER/IMPRIMIR para representar las acciones de


lectura de datos (el programa recibe datos desde algn sitio) y salida de datos (el
programa escribe informacin en algn medio)
Algoritmos y estructuras de programacin
Representacin de algoritmos.

Ejercicio a desarrollar: Calcular, mediante un Pseudocdigo, la altura de un punto A,


con lectura a partir de la altura de un PR si este tiene cota 100 y lectura 1,525 m, que
se introduce por el teclado.
Algoritmos y estructuras de programacin
Estructura secuencial.

Es aquella en la que una accin (instruccin) sigue a la otra en el orden en el que estn
escritas.
Algoritmos y estructuras de programacin
Estructuras de control: condicionales y bucles

Son parte fundamental de cualquier lenguaje. Sin ellas, las instrucciones de un


programa solo podran ejecutarse en el orden en que estn escritas (orden secuencial).
Las estructuras de control permiten modificar este orden. Hay dos categoras de
estructuras de control:

Condicionales o bifurcaciones: permiten que se ejecuten conjuntos distintos de


instrucciones, en funcin de que se verifique o no determinada condicin.

Bucles o repeticiones: permiten que se ejecute repetidamente un conjunto de


instrucciones, bien un nmero pre-determinado de veces, o bien hasta que se verifique
una determinada condicin.
Algoritmos y estructuras de programacin
Estructuras de control: condicionales y bucles

En trminos de un lenguaje de programacin, que se verifique o no una condicin se


traduce en que una (adecuada) expresin lgica tome el valor VERDADERO (TRUE) o
tome el valor FALSO (FALSE).

En los casos ms sencillos y habituales la condicin suele ser una comparacin entre
dos datos, como por ejemplo: si a < b hacer una cosa y en caso contrario hacer otra
distinta.
Muchas Gracias

Anda mungkin juga menyukai