Sei sulla pagina 1di 13

UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

Unidad 3: ALGORITMOS
En esta unidad se introduce la metodología a seguir para la resolución de problemas con
el computador.

El computador transforma datos en información organizada y significativa, arroja unos


resultados que se obtienen mediante el proceso de la ejecución de un programa que ha
sido diseñado por el programador con la utilización de un lenguaje de programación.

ENTRADA PROCESO SALIDA


Datos Información

La ENTRADA son los datos que van a servir de materia prima. Esta se hará mediante el
teclado, el mouse, discos duros, disquetes, discos ópticos, CD’s, cintas, DVD’s.

El PROCESO: Es la ejecución del programa diseñado para resolver el problema, con las
especificaciones de los requisitos del cliente. Lo lleva a cabo el procesador (CPU, Central
Processing Unit) del computador, utilizara la Memoria RAM y los dispositivos de
almacenamiento.

La SALIDA es el resultado u obtención de la información que puede ser enviada a los


dispositivos de salida o a los de almacenamiento.

El flujo de información dentro del computador, se puede observar en la siguiente figura:

UNIDADES DE
ALMACENAMIENTO

ENTRADA MEMORIA SALIDA


Información Información

Teclado, Pantalla,
disquete, Impresora
CD, etc. PROCESADOR

1
MANUAL DE LÓGICA Y ALGORITMOS

3.1. DESARROLLO DE ALGORITMOS: PSEUDOCÓDIGO Y


DIAGRAMAS DE FLUJO

La solución de un problema con el computador se hace escribiendo un programa que


exige al menos los siguientes pasos:
1. Definición o análisis del problema
2. Diseño del Algoritmo (GENERAR UNA SOLUCIÓN)
3. Comprobación de resultados (PRUEBA DE ESCRITORIO)
4. Codificación (TRANSFORMACIÓN DEL ALGORITMO EN UN PROGRAMA)
5. Ejecución y validación del programa
6. Uso y mantenimiento
Como el objetivo fundamental del curso de Programación I, es el aprendizaje y diseño de
los Algoritmos, se iniciará con este concepto y será desarrollado en cada uno de las
unidades siguientes.
La palabra algoritmo proviene de Mohammed al-Khoawarizmi, matemático persa del siglo
IX. La traducción al latín algorismus derivó posteriormente en algoritmo. Este matemático
y Euclides, matemático griego, son los padres de la ciencia de los algoritmos.
Para solucionar problemas se le debe proporcionar al computador los pasos necesarios y
sucesivos a realizar, dicho listado de pasos se denomina algoritmo.
Un algoritmo es un método que se ejecuta paso a paso, para dar solución a un
determinado problema. Esta secuencia de instrucciones puede ser escrita en un lenguaje
natural o en forma gráfica.
El término algoritmo no solamente se debe asociar a la informática, en la mayoría de las
actividades cotidianas se emplean algoritmos para resolver diversos tipos de problemas o
situaciones, por ejemplo realizar un plato de cocina a través de un algoritmo significa
seguir una receta de cocina, las instrucciones para el buen uso de algún electrodoméstico,
los pasos matemáticos para resolver sistemas lineales con el método de Gauss, etc.

Todo algoritmo debe cumplir con las siguientes características:

- Debe ser preciso: Debe indicar el orden de realización de cada paso.

- Debe estar definido: Si se sigue un algoritmo dos veces, se debe obtener el mismo
resultado.

- Debe ser finito: Todo algoritmo debe tener un fin, es decir un número determinado de
pasos.

Después de tener el algoritmo, el paso siguiente es la implementación o expresarlo en


algún lenguaje de programación.

Normalmente se diseña el algoritmo en un primer esbozo utilizando pocos pasos, luego se


describe cada uno para ampliar detalladamente estos pasos, generando un nivel de
refinamiento necesario para que el algoritmo sea claro, preciso y completo.

2
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

Existen dos formas principales de representar un algoritmo: a través de pseudocódigo


que utiliza texto en español o diagramas de flujo que es una representación gráfica y
trabaja con símbolos especiales.

Ejemplo 1.

Elabore un algoritmo para ver una película

PSEUDOCODIGO PSEUDOCODIGO CON REFINAMIENTO

Inicio Inicio
Invitar a cine Invitar a cine
Consultar la cartelera de cine Consultar la cartelera de cine
Si no proyectan “RAMBO” entonces
decidir otra película
Trasladarse al teatro Si proyectan “RAMBO” entonces
trasladarse a la sala de cine
Hacer fila Si hay cola, entonces ponerse en ella

Comprar entradas Hacer avanzar la cola


Si existen boletas disponibles, entonces
comprar entradas
Entrar a la sala Entrar a la sala y buscar asiento
Ver la película Mientras proyectan la película, ver
Abandonar la sala de cine Abandonar la sala de cine
Volver a casa Volver a casa.
Fin Fin

Ejemplo 2.

Elabore un algoritmo para hacer la solicitud de un crédito en un banco.

PSEUDOCODIGO

Inicio
Leer la solicitud
Examinar tarjeta del cliente y capacidad de endeudamiento
Si el cliente es solvente y cumplido
entonces
aprueba el crédito
Si no
rechaza el crédito
Fin

3
MANUAL DE LÓGICA Y ALGORITMOS

Ejemplo 3.

Elabore un algoritmo para leer un número y escribir su cuadrado:

PSEUDOCODIGO

Inicio
Leer A (en A se almacenará el número)
BA*A (en B se almacenará el resultado de la operación)
Escribir B
Fin

Ejemplo 4:

Calcular y escribir el área de un triángulo.

Variables: BASE, ALTURA, AREA

PSEUDOCODIGO DIAGRAMA DE FLUJO

Inicio
Leer BASE, ALTURA
AREA ← BASE * ALTURA /2
Escribir AREA
Fin

Aspectos a considerar en los ejemplos anteriores:

• Utilice palabras como: inicio, fin, si, mientras, sino, entonces, leer, escribir.
• Elija el estándar de notación para escribir los algoritmos:
o El empleo de la indentación (sangría o justificación).
o El uso de comentarios para documentar el algoritmo.
o Nombres de variable sencillos pero que identifiquen lo que almacenan

4
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

Diagramas de flujo:

Es una técnica de representación de algoritmos más antigua y a la vez más utilizada,


aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición de
lenguaje de programación orientado a objetos.

Un diagrama de flujo utiliza los símbolos (caja) unidos por flechas, denominados línea de
flujo, que indican la secuencia en que se deben ejecutar.

Existen diversos tipos de diagramas de flujos, básicamente se encuentran tres tipos: de


sistema, de bloque y detalle.

Los diagramas de flujos de sistema u organigramas de sistema, representan la relación


existente entre los diferentes soportes físicos que contienen la información necesaria para
la ejecución de un proceso.

Los diagramas de bloques o macro procesos, muestran la estructura de los módulos que
conforman la solución del problema y el flujo existente entre ellos.

Los diagramas de flujo de detalle, son los que muestran la secuencia paso a paso para la
solución de un problema que va a ser ejecutado en un procesador.

Un software diseñado para construir y analizar algoritmos, es el DFD. Usted


puede crear diagramas de flujo de datos para la representación de algoritmos
de programación estructurada a partir de las herramientas de edición que para
éste propósito suministra el programa. Después de haber ingresado el
algoritmo representado por el diagrama, podrá ejecutarlo, analizarlo y depurarlo en un
entorno interactivo diseñado para éste fin. La interfaz gráfica de Dfd, facilita en gran
medida el trabajo con diagramas ya que simula la representación estándar de diagramas
de flujo en hojas de papel.

Dfd posee una ventana principal que proporciona el ambiente de trabajo en donde se
pueden construir y analizar algoritmos. Los componentes básicos de la ventana principal
son: La barra de menú, barras de herramientas, barras de desplazamiento y el área de
trabajo.

5
MANUAL DE LÓGICA Y ALGORITMOS

Para la elaboración de un diagrama de flujo se deben seguir ciertas normas:

1. Entender claramente el problema a resolver.


2. Iniciar de arriba hacia abajo y de izquierda a derecha.
3. Identificar claramente cada uno de los pasos secuénciales, ya sea una instrucción o
toma de decisiones.
4. Una vez terminado, hacer seguimiento paso a paso para verificar su funcionalidad.

SIMBOLOGIA BÁSICA:

Para la solución de algoritmos empleando la técnica del Diagrama de Flujo de detalles, se


utiliza una serie de símbolos para representar las diferentes acciones, los símbolos que
utiliza el programa DFD, son:

FUNCION
SIMBOLOS PRINCIPALES
INICIO O FIN DE UN PROGRAMA

ENTRADA O LECTURA DE DATOS O


INFORMACION

SALIDA O ESCRITURA DE DATOS O


INFORMACION

ASIGNACION, OPERACIÓN O PROCESO


DE DATOS

DECISION, PERMITE SELECCIÓN DE


ALTERNATIVA

INDICADOR DE DIRECCIÓN O LINEA DE


FLUJO.

REPRESENTA ESTRUCTURAS
REPETITIVAS, CICLO PARA, CICLO
MIENTRAS.

Otros programas de elaboración de diagramas de flujo, permiten tener símbolos más


explícitos, que indican el dispositivo de entrada o de salida:

6
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

Símbolos de Salida Símbolos de Entrada

Impresora Pantalla Teclado Disco Cinta

Ejemplo

Calcular el área de un triangulo en función de las longitudes de sus lados.

AREA=
P( P − A)( P − B)( P − C ) , donde P=(A+B+C)/2.
Variables: A:uno de los lados , B: otro lado, C:otro lado, P: semiperímetro, AREA: área.

PSEUDOCODIGO DIAGRAMA DE FLUJO

Inicio
Leer A,B,C
P ← (A+B+C) /2
AREA ← RaizCuadrada(P*(P-A)*(P-B)*(P-C))
Escribir AREA
Fin

7
MANUAL DE LÓGICA Y ALGORITMOS

3.2. INTRODUCCION A LA PROGRAMACION

La principal razón para que las personas aprendan a programar en general y los lenguajes
de programación en particular, es utilizar el computador como una herramienta para
solución de problemas. La solución de un problema puede dividirse en los siguientes seis
pasos:

− DEFINICIÓN O ANÁLISIS DEL PROBLEMA

Es la primera fase de la resolución de un problema. Esta fase requiere una clara


definición, donde se contemple exactamente lo que debe hacer el programa y el resultado
o solución deseada.

A través de la lectura comprensiva se responde a las siguientes preguntas:

¿Qué valores o datos proporciona el problema? (variables de entradas)

¿Cuáles son los resultados deseados? (Variables de salida)

¿Qué cálculos (operaciones aritméticas y lógicas) se requieren para conseguir dichos


resultados?

Esta fase es muy importante y no debe tomarse a la ligera. Si no conoce exactamente lo


que desea como salida del programa, puede producirle sorpresa lo que su programa
realice, por ejemplo si el programa es para el cálculo de un interés bancario, debe
conocer no sólo la tasa de interés y el capital, sino también el período de tiempo de
depósito del capital.

− DISEÑO DEL ALGORITMO (GENERAR UNA SOLUCIÓN)

La etapa de análisis del problema determina qué hace el programa. En la etapa de diseño
se determina cómo hace el programa la tarea determinada.

La solución a un problema complejo puede requerir demasiados pasos por lo que es


conveniente dividir el problema en subproblemas más fáciles de resolver que el principal.
Este método se conoce técnicamente como diseño top-down o modular y el proceso de
dividir el problema y expresar cada paso en forma más detallada se denomina
refinamiento sucesivo.

La programación modular consiste en tener un programa principal que llama a


subprogramas que a su vez pueden llamar más subprogramas.

Dado que se busca una solución el programador debe identificar aquellos elementos de
información dados en el problema que puedan ser útiles para obtener la solución.

Finalmente, el proceso que convierte los resultados del análisis del problema en un diseño
modular con refinamientos sucesivos que permitan una posterior traducción a un lenguaje
se denomina diseño del algoritmo.

Las dos herramientas más utilizadas para diseñar algoritmos son el seudo-códigoy los
diagramas de flujo, vistos anteriormente.

8
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

− COMPROBACION DE RESULTADOS (PRUEBA DE ESCRITORIO)

La forma para comprobar que las operaciones y los resultados que arrojan los algoritmos
sean los esperados es realizar una prueba de escritorio.

Esta prueba de escritorio, consiste en hacerle seguimiento a las variables a través del
seguimiento de cada instrucción, con el fin de verificar si los resultados obtenidos son los
esperados.

La prueba de escritorio se realiza línea por línea y consiste en asignar datos específicos a
las variables de entrada o de lectura, y seguir la secuencia de las instrucciones realizando
el seguimiento a cada una de las variables que se emplean dentro del algoritmo, hasta los
resultados o datos de salida. Al analizar estos resultados se puede determinar si el
algoritmo esta correcto o si es necesario realizar algún ajuste o cambio.

Se denomina prueba de escritorio a la comprobación que se hace de un algoritmo para


saber si está bien hecho. Esta prueba consiste en tomar datos específicos como entrada y
seguir la secuencia indicada en el algoritmo hasta obtener un resultado, el análisis de
estos resultados indicará si el algoritmo está correcto o si por el contrario hay necesidad
de corregirlo o hacerle ajustes.

Ejemplo:

Leer un número, calcular y escribir el cuadrado y el cubo del número.

PSEUDOCODIGO PRUEBA DE ESCRITORIO

1. Inicio NUMERO CUADRADO CUBO


2. Leer NUMERO Línea 2 5
3. CUADRADO ← NUMERO * NUMERO Línea 3 25
Línea 4 125
4. CUBO ← NUMERO*NUMERO*NUMERO
5. Escribir CUADRADO, CUBO
6. Fin Los resultados son el cuadrado 25 y el
cubo 125

− CODIFICACION (TRANSFORMACIÓN DEL ALGORITMO EN UN PROGRAMA)

Una vez diseñado el algoritmo, lo escribimos utilizando un lenguaje de programación,


para su posterior resolución por medio del computador.

Dado que el diseño del algoritmo es independiente del lenguaje de programación, el


código puede ser escrito con igual facilidad en un lenguaje o en otro.

Un procedimiento a seguir podría ser; elaborar el programa sustituyendo las palabras del
pseudocódigo por las palabras reservadas del lenguaje, así como las operaciones y demás
instrucciones. A este nuevo escrito se le denomina programa fuente. Para producir los
programas fuentes existen programas editores que permiten crear el archivo digital, en
muchos casos facilitan la escritura con variados colores para palabras reservadas,
nombres de variables y comentarios; así como establecer las sangrías automáticamente.

9
MANUAL DE LÓGICA Y ALGORITMOS

− EJECUCIÓN Y VALIDACIÓN DEL PROGRAMA

Una vez el algoritmo se ha convertido en programa fuente, debe ser traducido a lenguaje
de máquina; este proceso se realiza con el compilador.

Cuando se compila el programa, el programa traduce el programa fuente a código objeto.


El código objeto es también llamado código de máquina y es la conversión del programa
fuente en código binario, es decir en ceros (0) y unos (1). La compilación analiza el texto
de nuestro programa fuente, comprueba que no contiene errores y produce como salida
un archivo con la traducción de nuestro código a un conjunto de instrucciones para el
procesador, llamado programa ejecutable.

− USO Y MANTENIMIENTO

Una vez se ha creado el programa ejecutable, ya se puede ejecutar (correr o rodar)


desde el sistema operativo con solo teclear el nombre desde DOS y se obtendrá la salida
de resultados del programa.

Comprobada suficientemente la solución, se comienza a procesar los datos necesarios


para obtener los resultados esperados; el programa debe estar actualizándose
permanentemente si se presentan nuevos requerimientos por parte del usuario; de ahí la
importancia de mantener documentado el programa con comentarios en el programa
fuente y los documentos de análisis, diagramas/pseudocódigos, manuales de usuario con
instrucciones para ejecutar el programa e interpretar los resultados.

EJEMPLO

Definición del problema:

Calcular la cantidad de lámina de acero necesaria para fabricar 5.000.000 de tapas de


gaseosa, de media pulgada, una pulgada y 1.5 pulgadas de diámetro si la lámina tiene
dimensiones de 2.5 m de largo por 1 m de ancho.

Análisis del problema:

Entrada de datos: se concentra en el radio del círculo de la tapa, el área de la lámina y


la cantidad de tapas solicitadas.
Salida de datos: cantidad de lámina de acero necesaria y cantidad de lámina sobrante
luego del recorte.
Variables: Diámetro o radio y el área.
Constante: 5.000.000 tapas.
Cálculos: Deberán mostrar el área de un círculo y el área del recorte.

La solución de este problema complejo puede requerir demasiados pasos por lo que es
conveniente dividir el problema en subproblemas:

- área que se requiere para las tapas


- área del recorte o sobrante de lámina

10
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

Paso seguido se debe expresar cada paso en forma más detallada con refinamientos
sucesivos, hasta lograr el algoritmo y hacer las pruebas necesarias para verificar los
resultados.

A continuación, codificar el programa en el computador utilizando un lenguaje de


programación y compilarlo para obtener el código objeto o código de máquina, corregir
los errores en caso de que lo solicite y finalmente ejecutar el programa para observar los
resultados esperados.

3.3. ESTRUCTURA SECUENCIAL

Los algoritmos donde la ejecución comienza en la primera instrucción y prosigue hasta la


última de ellas presentan una estructura secuencial o lineal.

La estructura secuencial se representa de la siguiente manera:

Inicio
Instrucción 1
Instrucción 2
.
.
Instrucción N
Fin

11
MANUAL DE LÓGICA Y ALGORITMOS

Ejemplo 1.

Dada una cantidad en pesos calcular y escribir su equivalencia en Dólares y Euros.


Sabiendo que el valor del dólar es $2250 y el Euro es de $2930.

Variables: P: Cantidad en Pesos, Dólar: equivalencia en dólares, Euro: equivalencia en


Euros

PSEUDOCODIGO DIAGRAMA DE FLUJO

1. Inicio
2. Leer P
3. DOLAR ← P /2250
4. EURO ← P /2930
5. Escribir DOLAR, EURO
6. Fin

La prueba de escritorio será:

P DOLAR EURO
Línea 1 100000
Línea 2 44.44
Línea 3 34.12

12
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

Ejemplo 2.

Calcular y escribir el salario neto de un trabajador dado el número de horas y el valor de


la hora y sabiendo que el tasa de impuesto que se le debe deducir es del 2%.

Variables: N: número de horas, V: valor hora, Sb: salario básico (antes de impuesto),
I: impuesto, S: salario neto

PSEUDOCODIGO DIAGRAMA DE FLUJO

Inicio
Leer N,V
Sb ← N * V
I ← Sb * 0.02
S ← Sb - I
Escribir S
Fin

13

Potrebbero piacerti anche