Está en la página 1de 5

Algoritmos, Estructura de Datos & Objetos

Fundamentos: Algoritmos y Programas.


Las personas que aprenden lenguajes y técnicas de programación, tienen un propósito
elemental: “Usar la computadora como una herramienta para resolver problemas.”

La resolución de problemas exige los pasos siguientes: Análisis

1. Definición y análisis del problema.


2. Diseño del algoritmo. Diseño Algoritmo
3. Trascripción del algoritmo en programa.
4. Validación e implementación del programa. Codificación

Implementación

1.- Que significa algoritmo?

“Un algoritmo es un método para resolver un problema”

Antecedentes históricos.- Aunque el termino esta asociado a la Tecnología de la


Información (IT) de nuestros días, algoritmo proviene de Mohammed al-Khowârizmî, un
matemático persa (siglo IX a.c.) que alcanzó gran prestigio por los “enunciados de las reglas
paso a paso de la aritmética de números reales” (suma, resta, multiplicación y división de
decimales). La traducción al latín del apellido en la palabra algorismus derivo posteriormente
en A.

Euclides, matemático griego inventor del método para encontrar el máximo común divisor de
dos números, se le considera con al-Khowârizmî el otro gran padre de la algoritmia y que se
define así: “Ciencia que trata los algoritmos”.

2. Metodología de la programación: Diseño 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 sistemático: es decir aplicar la metodología necesaria La implementación
para la solución de problemas mediante programas. de un programa de
computadora, exige
El eje central de esta metodología es el algoritmo.
el diseño previo
de un algoritmo,
que resuelva el
problema:

Problema Algoritmo Programa Detrás de cada


programa hay un
ALGORITMO.

Fig.1. Resolución de un problema.

Mg. Jorge Medi@nero A. Pag. 1


Algoritmos, Estructura de Datos & Objetos

2.1. Pasos para la resolución de un problema.

Paso 1: Definición y Análisis del problema. Es decir describir los requisitos o


requerimientos del sistema y establecer las reglas del problema. Un análisis
siempre debe concluir con las Especificaciones de entrada y salida de datos.

Paso 2: Diseño del algoritmo. Resolución lógica y ordenada de pasos – sin


ambigüedades – que conduce a la solución del problema propuesto.

Paso 3: Fase de Codificación. Esto es, transcribir el algoritmo como un programa de


computadora, usando un lenguaje de programación adecuado.

Paso 4: Fase de implementación. Es decir, la ejecución, validación y depuración del


programa por la computadora. La fase de implementación debe concluir con la
instalación o publicación del software para el usuario final, quien inicia por
retroalimentación el ciclo de vida o revisión de versiones del programa.

Revisión de versiones

#$?
Problema Algoritmo Programa

Análisis del problema y diseño del algoritmo Codificación e implementación

Fig.2. Ciclo de vida y revisión de versiones de Software.

PREMISAS FUNDAMENTALES DE UN ALGORITMO.

Premisa 1. En General, antes de la implementación de un programa de computadora, es


necesario el diseño previo de un algoritmo, de modo que sin algoritmo no puede existir un
programa ejecutable. O mejor: “detrás de cada programa hay un algoritmo”.

Premisa 2. Los algoritmos son independientes, tanto del lenguaje de programación en que
se codifican, como de la computadora que los ejecuta. En cada problema, el algoritmo se
puede codificar en cualquier lenguaje de programación disponible y ejecutarse en un sistema
de computadora distinta. Independencia de Software y Hardware.

Premisa 3. En la ciencia de la computación y en la programación, los algoritmos son más


importantes que los lenguajes de programación o las computadoras. Un lenguaje de
programación 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. Características de los algoritmos.

Los requisitos fundamentales que debe cumplir todo algoritmo son:

 Un algoritmo debe ser preciso e indicar el orden lógico de realización 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 algún momento. Esto es,
“Debe tener un número 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 Automático de Datos (DAP).

Input Processing Output

Fig. 3. (PAD) Procesamiento Automático de Datos: Entrada, Procesamiento y Salida

Así por ejemplo, en el siguiente algoritmo:

(1 ) Análisis: Generar Factura.

(1) Entrada: Ingresar datos generales y líneas 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.

Análisis: Un cliente solicita un pedido a una Empresa XYZ de Electrodomésticos. 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

DISEÑO: Pasos para definir el algoritmo.

Entrada 1. Inicio.
2. Leer, “Pedido del cliente”
Proceso 3. Examinar record de crédito 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.

Técnica 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 números pares menores e iguales a 100 (entre 2 y 100).
Análisis: El problema consiste en sumar la sucesión de pares: 2 + 4 + 6 + 8 +… +100.
Usaremos los identificadores NUMERO y SUMA (denominados variables en
términos de programa e inicializados en 2 y 0 respectivamente).

La variable SUMA servirá para acumular la sucesión de los números pares:


(0 + 2), (2 + 4), (2 + 4 + 6), (2 + 4 + 6 + 8), …,etc.
La variable NUMERO servirá como contador para generar los números 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: sucesión de números pares (primer numero: 2, ultimo: 100)
Salida : acumulado de números pares (serie: 2+4+6+8+ …100)

Mg. Jorge Medi@nero A. Pag. 4


Algoritmos, Estructura de Datos & Objetos

DISEÑO: 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

Técnica 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 número, opera
con la constante 2.
numero = numero + 2

[ es numero <= 100 ]

SALIDA: Escribir resultado True


False
acumulado. BUCLE: Evaluar condición de
continuidad (Iterar mientras
escribir ( suma ) expresión lógica sea verdad)

Algoritmo: Suma de números pares.

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


Tema 1: 1.Leguajes de Programación.
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 compilación y sus Fases.
Tema 3: 3. La Memoria: Mapeo y Segmentación de la Memoria RAM.

Mg. Jorge Medi@nero A. Pag. 5

También podría gustarte