Sei sulla pagina 1di 5

Algoritmos, Estructura de Datos & Objetos

Fundamentos: Algoritmos y Programas.


Las personas que aprenden lenguajes y tcnicas de programacin, tienen un propsito elemental: Usar la computadora como una herramienta para resolver problemas.

La resolucin de problemas exige los pasos siguientes: 1. 2. 3. 4. Definicin y anlisis del problema. Diseo del algoritmo. Trascripcin del algoritmo en programa. Validacin e implementacin del programa.

Anlisis

Diseo Algoritmo

Codificacin

Implementacin

1.- Que significa algoritmo? Un algoritmo es un mtodo para resolver un problema Antecedentes histricos.- Aunque el termino esta asociado a la Tecnologa de la Informacin (IT) de nuestros das, algoritmo proviene de Mohammed al-Khowrizm, un matemtico persa (siglo IX a.c.) que alcanz gran prestigio por los enunciados de las reglas paso a paso de la aritmtica de nmeros reales (suma, resta, multiplicacin y divisin de decimales). La traduccin al latn del apellido en la palabra algorismus derivo posteriormente en A. Euclides, matemtico griego inventor del mtodo para encontrar el mximo comn divisor de dos nmeros, se le considera con al-Khowrizm el otro gran padre de la algoritmia y que se define as: Ciencia que trata los algoritmos.

2. Metodologa de la programacin: Diseo del algoritmo. Un programador de computadora es antes que nada una persona que resuelve problemas. Por tanto, para ser eficaz se necesita aprender a resolver problemas de un modo claro, riguroso y sistemtico: es decir aplicar la metodologa necesaria para la solucin de problemas mediante programas. El eje central de esta metodologa es el algoritmo.

La implementacin de un programa de computadora, exige el diseo previo de un algoritmo, que resuelva el problema: Detrs de cada programa hay un ALGORITMO.

Problema

Algoritmo

Programa

Fig.1. Resolucin de un problema.

Mg. Jorge Medi@nero A.

Pag. 1

Algoritmos, Estructura de Datos & Objetos

2.1. Pasos para la resolucin de un problema. Paso 1: Definicin y Anlisis del problema. Es decir describir los requisitos o requerimientos del sistema y establecer las reglas del problema. Un anlisis siempre debe concluir con las Especificaciones de entrada y salida de datos. Diseo del algoritmo. Resolucin lgica y ordenada de pasos sin ambigedades que conduce a la solucin del problema propuesto. Fase de Codificacin. Esto es, transcribir el algoritmo como un programa de computadora, usando un lenguaje de programacin adecuado. Fase de implementacin. Es decir, la ejecucin, validacin y depuracin del programa por la computadora. La fase de implementacin debe concluir con la instalacin o publicacin del software para el usuario final, quien inicia por retroalimentacin el ciclo de vida o revisin de versiones del programa.

Paso 2: Paso 3: Paso 4:

Revisin de versiones

#$? Problema Algoritmo Programa


Codificacin e implementacin

Anlisis del problema y diseo del algoritmo

Fig.2. Ciclo de vida y revisin de versiones de Software.

PREMISAS FUNDAMENTALES DE UN ALGORITMO. Premisa 1. En General, antes de la implementacin de un programa de computadora, es necesario el diseo previo de un algoritmo, de modo que sin algoritmo no puede existir un programa ejecutable. O mejor: detrs de cada programa hay un algoritmo. Premisa 2. Los algoritmos son independientes, tanto del lenguaje de programacin en que se codifican, como de la computadora que los ejecuta. En cada problema, el algoritmo se puede codificar en cualquier lenguaje de programacin disponible y ejecutarse en un sistema de computadora distinta. Independencia de Software y Hardware. Premisa 3. En la ciencia de la computacin y en la programacin, los algoritmos son ms importantes que los lenguajes de programacin o las computadoras. Un lenguaje de programacin es tan solo un medio para expresar un algoritmo y una computadora es solo un procesador para ejecutarlo. Tanto el software como el hardware son los medios para obtener un fin: Conseguir que el algoritmo resuelva un problema concreto.

Mg. Jorge Medi@nero A.

Pag. 2

Algoritmos, Estructura de Datos & Objetos

2.2. Caractersticas de los algoritmos. Los requisitos fundamentales que debe cumplir todo algoritmo son: Un algoritmo debe ser preciso e indicar el orden lgico de realizacin de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. Un algoritmo debe terminar en algn momento. Esto es, Debe tener un nmero finito de pasos con una solo punto de Entrada y un solo punto de Salida.

Por ultimo, un algoritmo (si consideramos estos tres atributos), cumple claramente con los tres pasos establecidos en el Procesamiento Automtico de Datos (DAP).

Input

Processing

Output

Fig. 3. (PAD) Procesamiento Automtico de Datos: Entrada, Procesamiento y Salida

As por ejemplo, en el siguiente algoritmo: Anlisis: Generar Factura. (1) (2) (3) Entrada: Proceso: Salida: Ingresar datos generales y lneas de venta. Calcular importe, Descuentos e IGV, y totales. Generar y emitir factura.

(1 )

(2)

(3)

Ejemplo comentado 1. Algoritmo: Anlisis: Aprobar y generar Pedido de clientes. Un cliente solicita un pedido a una Empresa XYZ de Electrodomsticos. El proveedor examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces, el proveedor acepta el pedido, caso contrario, observara al cliente, y lo notifica. Solicitud, pedido de cliente emitir pedido aprobado/desaprobado.

Especificaciones de E/S: Entrada: Salida :

Mg. Jorge Medi@nero A.

Pag. 3

Algoritmos, Estructura de Datos & Objetos

DISEO: Pasos para definir el algoritmo. Entrada Proceso 1. 2. 3. 4. Inicio. Leer, Pedido del cliente Examinar record de crdito del cliente Si el cliente es solvente, preparar pedido y ejecutar paso 5. Caso contrario, denegar pedido e ir a paso 6 5. Escribir Emitir pedido 6. Fin.

Salida

Tcnica UML: Diagrama de Actividades

leer(pedidoCliente)

[ es solvente ] preparar Pedido( ) False denegar Pedido( ) True escribir ( Emitir pedido )

Algoritmo:

Emitir pedido de clientes.

Ejemplo comentado 2. Algoritmo: Anlisis: Suma de todos los nmeros pares menores e iguales a 100 (entre 2 y 100). El problema consiste en sumar la sucesin de pares: 2 + 4 + 6 + 8 + +100. Usaremos los identificadores NUMERO y SUMA (denominados variables en trminos de programa e inicializados en 2 y 0 respectivamente). La variable SUMA servir para acumular la sucesin de los nmeros pares: (0 + 2), (2 + 4), (2 + 4 + 6), (2 + 4 + 6 + 8), ,etc. La variable NUMERO servir como contador para generar los nmeros pares: 2, 4, 6, 8 , etc. hasta llegar a 100. As: Inicializar: suma = 0 y numero = 2 Acumular: suma = suma + numero Incrementar: numero = numero + 2 (hasta llegar a 100) Especificaciones de E/S: Entrada: Salida : sucesin de nmeros pares (primer numero: 2, ultimo: 100) acumulado de nmeros pares (serie: 2+4+6+8+ 100)

Mg. Jorge Medi@nero A.

Pag. 4

Algoritmos, Estructura de Datos & Objetos

DISEO: Pasos para definir el algoritmo. Entrada 1. 2. 3. 4. 5. 6. Inicio. Establecer SUMA a 0. //inicializar acumulador Establecer NUMERO a 2 //primer par: inicializar contador de pares Sumar NUMERO a SUMA, el resultado se acumula en SUMA Incrementar NUMERO en 2 unidades, para obtener el siguiente par Si NUMERO es <= 100, repetir el paso 4, caso contrario continuar con el paso 7. 7. Escribir valor del acumulador SUMA 8. Terminar

Proceso

Salida

Tcnica UML: Diagrama de Actividades.

// INICIALIZACION: de variables suma = 0 : numero = 2 ACUMULACION: El acumulador suma, opera con la variable numero. suma = suma + numero CONTADOR: El contador nmero, opera con la constante 2.

numero = numero + 2

[ es numero <= 100 ] SALIDA: Escribir resultado acumulado. False escribir ( suma ) True BUCLE: Evaluar condicin de continuidad (Iterar mientras expresin lgica sea verdad)

Algoritmo: Suma de nmeros pares.

CASOS de ESTUDIO. Tema 1:

Presente un informe escrito de los siguientes temas. 1.Leguajes de Programacin.


1.1. Lenguaje de maquina. 1.2. Lenguaje de bajo nivel: ensamblador. 1.3. Lenguaje de alto nivel. 1.4. Que es el Standard C++ ANSI / ISO ?

Tema 2: Tema 3:

2. La compilacin y sus Fases. 3. La Memoria: Mapeo y Segmentacin de la Memoria RAM.

Mg. Jorge Medi@nero A.

Pag. 5

Potrebbero piacerti anche