Está en la página 1de 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: Anlisis

1. Definicin y anlisis del problema.


2. Diseo del algoritmo. Diseo Algoritmo
3. Trascripcin del algoritmo en programa.
4. Validacin e implementacin del programa. 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 La implementacin
para la solucin de problemas mediante programas. de un programa de
computadora, exige
El eje central de esta metodologa es el algoritmo.
el diseo previo
de un algoritmo,
que resuelva el
problema:

Problema Algoritmo Programa Detrs de cada


programa hay un
ALGORITMO.

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.

Paso 2: Diseo del algoritmo. Resolucin lgica y ordenada de pasos sin


ambigedades que conduce a la solucin del problema propuesto.

Paso 3: Fase de Codificacin. Esto es, transcribir el algoritmo como un programa de


computadora, usando un lenguaje de programacin adecuado.

Paso 4: 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.

Revisin de versiones

#$?
Problema Algoritmo Programa

Anlisis del problema y diseo del algoritmo Codificacin e implementacin

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:

(1 ) Anlisis: Generar Factura.

(1) Entrada: Ingresar datos generales y lneas de venta.


(2) (2) Proceso: Calcular importe, Descuentos e IGV, y totales.
(3) Salida: Generar y emitir factura.
(3)

Ejemplo comentado 1.

Algoritmo: Aprobar y generar Pedido de clientes.

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

Especificaciones de E/S:
Entrada: Solicitud, pedido de cliente
Salida : emitir pedido aprobado/desaprobado.

Mg. Jorge Medi@nero A. Pag. 3


Algoritmos, Estructura de Datos & Objetos

DISEO: Pasos para definir el algoritmo.

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

Tcnica UML: Diagrama de Actividades

leer(pedidoCliente)

[ es solvente ]
preparar Pedido( )
False True

denegar Pedido( ) escribir ( Emitir pedido )

Algoritmo: Emitir pedido de clientes.

Ejemplo comentado 2.

Algoritmo: Suma de todos los nmeros pares menores e iguales a 100 (entre 2 y 100).
Anlisis: 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: sucesin de nmeros pares (primer numero: 2, ultimo: 100)
Salida : 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. Inicio.
2. Establecer SUMA a 0. //inicializar acumulador
3. Establecer NUMERO a 2 //primer par: inicializar contador de pares
Proceso 4. Sumar NUMERO a SUMA, el resultado se acumula en SUMA
5. Incrementar NUMERO en 2 unidades, para obtener el siguiente par
6. Si NUMERO es <= 100, repetir el paso 4, caso contrario continuar con el
paso 7.
Salida 7. Escribir valor del acumulador SUMA
8. Terminar

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 True


False
acumulado. BUCLE: Evaluar condicin de
continuidad (Iterar mientras
escribir ( suma ) expresin lgica sea verdad)

Algoritmo: Suma de nmeros pares.

CASOS de ESTUDIO. Presente un informe escrito de los siguientes temas.


Tema 1: 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: 2. La compilacin y sus Fases.
Tema 3: 3. La Memoria: Mapeo y Segmentacin de la Memoria RAM.

Mg. Jorge Medi@nero A. Pag. 5

También podría gustarte