Anda di halaman 1dari 7

Algoritmos y estructura de datos I Pgina 1

Ing. Karim Guevara, Ing. lvaro Fernndez Sesin 01


UNIVERSIDAD CATLICA DE SANTA MARA
PROGRAMA PROFESIONAL DE INGENIERA DE SISTEMAS



SESIN 01:

INTRODUCCIN A LOS ALGORITMOS



I
OBJETIVOS

Conocer la terminologa relacionada con los lenguajes y los lenguajes de
programacin y los programas.
Conocer la terminologa referente con los algoritmos y los lenguajes algortmicos.
Conocer la importancia de aplicar tcnicas adecuadas de programacin
Conocer las fases en la solucin de problemas por medio de la computadora.
Elaborar los primeros algoritmos sencillos
II
TEMAS A TRATAR

Como resolver un problema
Algoritmos
Caractersticas
Tipos
Algoritmia
Algoritmo-Maquina
Lenguajes de Programacin
Metodologa para la solucin de problemas por medio de un ordenador
Algoritmos y estructura de datos I Pgina 2

Ing. Karim Guevara, Ing. lvaro Fernndez Sesin 01


III
MARCO TEORICO

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS POR MEDIO DE UN ORDENADOR


1Definicin del Problema

Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y
precisa. Es importante que se conozca lo que se desea que realice el computador; mientras esto
no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.

2 Anlisis del Problema

Una vez que se ha comprendido lo que se desea del computador, es necesario definir:
Los datos de entrada.
Los algoritmos son para solucionar tipos de problemas
Es imprescindible poder entregar entradas distintas en cada ejecucin
La entrada de datos se realiza mediante algn dispositivo

Los datos de Salida.
De nada sirve implementar un algoritmo si no podemos saber su resultado.
Al finalizar el algoritmo (o durante), es imprescindible obtener la informacin resultante de su
ejecucin.
La salida de datos se realiza mediante dispositivos

Los mtodos y frmulas que se necesitan para procesar los datos.

Una recomendacin muy practica es el que nos pongamos en el lugar del computador y
analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los
resultados esperados.

3 Diseo del 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 se puedan presentar en
la definicin del problema.
Debe ser finito en tamao y tiempo de ejecucin.



Algoritmos y estructura de datos I Pgina 3

Ing. Karim Guevara, Ing. lvaro Fernndez Sesin 01
4 Codificacin

La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la lgica del
diagrama de flujo o pseudo-lenguaje), en una serie de instrucciones detalladas, en un cdigo
reconocible por el computador, la serie de instrucciones detalladas se le conoce como cdigo
fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel.









5 Prueba y Depuracin

Los errores humanos dentro de la programacin de computadores 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.

6 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 la documentacin
sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones
(mantenimiento).

La documentacin se divide en tres partes:

Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo fuente
para 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
Algoritmo (diagrama de flujo o pseudolenguaje)
Diccionario de Datos
Cdigo Fuente (programa)

Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el
fin de que el usuario obtenga el resultado deseado.

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





Algoritmos y estructura de datos I Pgina 4

Ing. Karim Guevara, Ing. lvaro Fernndez Sesin 01
NOTACIONES PARA DESCRIBIR ALGORITMOS

Mtodo informal

Lenguaje natural
Ventajas: comprensible e intuitivo
Inconveniente: impreciso

Mtodos formales

Pseudocdigo
Lenguaje natural limitado y sin ambigedad
Diagramas
Diagramas de flujo u organigramas
Utiliza un conjunto de smbolos para representar cada estructura de control y mediante
lneas de flujo se indica el orden en que se realiza el flujo lgico del algoritmo
Diagramas de Nassi-Schneiderman o Diagramas N-S
Los pasos sucesivos se escriben en cajas con distintas formas segn la estructura de control
que representen


IV
(La prctica tiene una duracin de 2 horas) ACTIVIDADES

EJEMPLO 1

Se desea calcular el monto bruto, el monto del impuesto y el monto a pagar por la compra de
cierta cantidad de unidades de un mismo tipo de producto cuyo costo por unidad (libre de
impuestos) es de S/. 25.45, la compra esta sujeta al impuesto del I.G.V. (18%).

Solucin

1 Definiendo el problema:
La definicin del problema est dada por el enunciado, que se encuentra lneas arriba,
que consiste en calcular el monto bruto, el monto del impuesto y el monto que se debe pagar al
realizar una compra de una cantidad de un determinado producto.

2 Anlisis del problema:
De la lectura del problema encontramos los siguientes datos de entrada y datos de
salida.
Datos de entrada
Nmero de unidades adquiridas: Unidades
Costo del producto: S/. 25.45
Impuesto: 18%

Datos de salida
Monto bruto: MontoBruto
Monto del impuesto: MontoImpuesto
Monto a pagar: MontoPagar
Observe que el costo del producto y el porcentaje del impuesto ya tienen valores
preestablecidos. Segn esto, estos datos no requerirn ser ingresados.

3 Diseando el algoritmo:

Primer diseo descendente

En un primer momento el problema puede descomponerse de manera bastante general.
En este caso se ha descompuesto en tres pasos.


Algoritmos y estructura de datos I Pgina 5

Ing. Karim Guevara, Ing. lvaro Fernndez Sesin 01
Inicio
1. Leer unidades
2. Clculo de montos
3. Imprimir MontoBruto, MontoImpuesto, MontoPagar
Fin

Primer refinamiento
Luego de un refinamiento en el subproblema Clculo de montos llegamos al siguiente
diseo:

Inicio
1 Leer unidades
2 Clculo de montos
2.1 Calcular el monto bruto
2.2 Calcular el monto del impuesto
2.3 Calcular el monto a pagar
3 Imprimir MontoBruto, MmontoImpuesto, MontoPagar
Fin
Segundo refinamiento
Finalmente llegamos al algoritmo definitivo:
Inicio
//Ingreso de datos
Leer unidades
//Clculo de montos
MontoBruto = unidades * 25.45
MontoImpuesto = MontoBruto * 0.18
MontoPagar = MontoBruto + MontoImpuesto
//Salida de resultados
Imprimir MontoBruto, MontoImpuesto, MontoPagar
Fin


4 Codificando el algoritmo:
A continuacin se muestra la codificacin del algoritmo, en este caso hemos utilizado el
lenguaje de programacin C, pero muy bien se pudo haber hecho en cualquier otro lenguaje:

Ejemplo.cpp

#include <conio.h>
#include <iostream.h>
void main()
{
//Declaracion de variables
int unidades;
double MontoBruto, MontoImpuesto, MontoPagar;
//Declaracion de constantes
const double PRECIO = 25.45;
const double IGV = 0.18;
cout<<endl;
cout<<"****************COMPRAS 2007***************"<<endl<<endl;
//Ingreso de datos
cout<<"Ingrese la cantidad de unidades: ";
cin>>unidades;
//Calculo de montos
MontoBruto=unidades * PRECIO;
MontoImpuesto=MontoBruto * IGV;
MontoPagar= MontoBruto+MontoImpuesto;
//Salida de resultados
cout<<"\n\nMonto bruto : \t\tS/ "<<MontoBruto<<"\n";
cout<<"\nMonto del Impuesto :\tS/ "<<MontoImpuesto<<"\n";
cout<<"\nMonto a pagar : \tS/ "<<MontoPagar<<endl;
getch();
}
Algoritmos y estructura de datos I Pgina 6

Ing. Karim Guevara, Ing. lvaro Fernndez Sesin 01

5 Prueba y depuracin:
Una de las pruebas con un valor como entrada se muestra en la siguiente pantalla:



Dado los resultados se debe o no procedes con la depuracin

6 Documentacin:
La documentacin interna se observa en el cdigo escrito lneas arriba.


PROPUESTOS

Utilizando la metodologa para la resolucin de problemas por medio de un ordenador:

1 Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su promedio
de tres calificaciones es mayor o igual a 70; reprueba en caso contrario.

2 Calcular el valor de


m
n k
k k ) 3 2 )( 1 (


V
EJERCICIOS

Para los siguientes enunciados, describa las fases 1, 2, 3, 4 y 5 de la metodologa para la
resolucin de problemas por medio de un ordenador:

1. Disear un algoritmo, que permita convertir un nmero real, que represente
horas, a su equivalente en horas, minutos, segundos y decimos de
segundos. (3 Puntos)

2. Estimar el nmero de pginas de un texto que puede almacenarse en la
memoria de un computador, considerando un promedio de 300 palabras por
pgina y 10 caracteres por palabra. Asumir que un caracter ocupa un (1)
byte. El tamao de la memoria del computador debe ingresarse expresado
en Kbytes. (3 Puntos)

3. Distribuir una cantidad expresada en nuevos soles, en billetes de 20, 10, 5 y
1 sol; y para los decimales en monedas de 0.50, 0.20, 0.10 y 0.05 cntimos.
(3 Puntos)

Algoritmos y estructura de datos I Pgina 7

Ing. Karim Guevara, Ing. lvaro Fernndez Sesin 01
4. Un trabajador del Estado percibe un sueldo Bsico, mensual de 450 nuevos
soles; adems recibe incrementos de sueldo de acuerdo a los siguientes
conceptos:

Instruccin Porcentaje
Hasta 5 Secundaria 5%
Tcnico 10%
Profesional 20%


Condicin social Porcentaje
Casado 3%
Por cada hijo 2%
sin vivienda 5%

Tambin por ley est sujeto a un descuento de 10% si su sueldo excede de 700 nuevos
soles. Determinar el sueldo neto que recibe un trabajador. (4 Puntos)

5. El dueo de una empresa desea planificar las decisiones financieras que tomara en el
siguiente ao. La manera de planificarlas depende de lo siguiente:

Si actualmente su capital se encuentra con saldo negativo, pedir un prstamo bancario
para que su nuevo saldo sea de $10 000.

Si su capital tiene actualmente un saldo positivo pedir un prstamo bancario para tener un
nuevo saldo de $20 000, pero si su capital tiene actualmente un saldo superior a los $20 000
no pedir ningn prstamo.

Posteriormente repartir su presupuesto de la siguiente manera.
$5 000 para equipo de computo
$2 000 para mobiliario
y el resto la mitad ser para la compra de insumos y la otra para otorgar incentivos
al personal.

Desplegar que cantidades se destinaran para la compra de insumos e incentivos al personal
y, en caso de que fuera necesario, a cuanto ascendera la cantidad que se pedira al banco.


VI
CUESTIONARIO
1. Averiguar recientes dispositivos de entrada ?
2. Averiguar recientes dispositivos de salida ?

VII
BIBLIOGRAFIA Y REFERENCIAS
BIBLIOGRAFA BSICA
D.S.Malik, DATA STRUCTURES USIGN C++, Thomson Learning, 2003
J. Galve. ALGORITMIA, Ed.Adisson Wesley, Espaa, 2000.
Brassard, ANLISIS DE ALGORITMOS, Ed. Mc. Graw Hill., Espaa, 1999.,

BIBLIOGRAFA COMPLEMENTARIA
Wirth M., ALGORITMOS Y ESTRUCTURA DE DATOS, Ed. Addison Wesley, Mxico, 1997
Aho. DISEO Y ANLISIS DE ALGORITMOS, Ed. Addison Wesley. USA, 1999.
Deitel & Deitel COMO PROGRAMAR EN C/C++. Editorial Prentice Hall, 1995.

Anda mungkin juga menyukai