Вы находитесь на странице: 1из 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 SALIDA
Datos
PROCESO Información

ENTRADA: son los datos que van a servir de materia prima. Esta se hará mediante el
teclado, el mouse, discos duros, CD’s, memorias USB.
PROCESO: Es la ejecución del programa diseñado para resolver el problema, con las
especificaciones de los requisitos del cliente (usuario). Lo lleva a cabo el procesador (CPU,
Central Processing Unit) del computador, utilizara la Memoria RAM y los dispositivos de
almacenamiento.
SALIDA: es el resultado o producto, 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:

1
MANUAL DE LÓGICA Y ALGORITMOS

3.1. DESARROLLO DE ALGORITMOS: PSEUDOCÓDIGO Y


DIAGRAMAS DE FLUJO
La solución de un problema utilizando el computador se realiza escribiendo un programa en
un lenguaje de programación, este proceso incluye 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
La palabra algoritmo proviene de la traducción al latín del nombre del matemático persa
del siglo IX, Mohammed al-Khoawarizmi. La traducción al latín algorismus derivó
posteriormente en algoritmo, que toma como referencia la secuencia de pasos para resolver
algunas operaciones matemáticas como la multiplicación o el máximo común divisor
(algoritmo euclidiano).
Para solucionar problemas se le debe proporcionar al computador los pasos necesarios y
sucesivos a realizar, este conjunto 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 asocia con las ciencias informáticas, 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: indicar el orden de realización de cada uno de los pasos.
- Debe estar definido: si se sigue un algoritmo más de una vez con los mismos datos,
se debe obtener el mismo resultado.
- Debe ser finito: Todo algoritmo debe tener un fin, es decir un número determinado de
pasos.
- Debe ser determinístico: el resultado depende estrictamente de los datos de entrada.
Cuando se tiene la solución (algoritmo), el paso siguiente es la implementación o
codificación 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 cada paso, generando un nivel de
refinamiento necesario para que el algoritmo sea claro, preciso y completo.
Existen dos formas principales de representar un algoritmo: a través de frases:
pseudocódigo que utiliza texto en español combinado con algunas convenciones
sistemáticas como asignaciones y estructuras, o representaciones graficas: diagramas de
flujo que representan la solución utilizando símbolos especiales.

2
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

Ejemplo 1.
Construya un algoritmo para ir a cine a 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 fila, entonces ubicarse en ella

Comprar entradas Avanzar en la fila


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, verla


Abandonar la sala de cine Abandonar la sala de cine
Volver a casa Volver a casa.
Fin Fin

Ejemplo 2.
Desarrolle un algoritmo para aprobar la solicitud de un crédito en un banco.

PSEUDOCODIGO

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

Ejemplo 3.

3
MANUAL DE LÓGICA Y ALGORITMOS

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.
Desarrolle un algoritmo para 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:
 El empleo de la indentación (sangría o justificación).
 El uso de comentarios para documentar el algoritmo.
 Nombres de variable sencillos pero que identifiquen la información que
almacenan

4
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

Diagramas de flujo:
Es una técnica grafica de representación de algoritmos muy 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 realizar.
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. Permite
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 crear la solución (el algoritmo)
representada por el diagrama, permite 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 utilizar 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
Construir un algoritmo para calcular el área de un triángulo 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.

ENTRADA: Las medidas de los lados A, B, C.


SALIDA: AREA
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


Al utilizar el computador como una herramienta para solución de problemas, el proceso que
dicha solución implica 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 contextualice 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 entrada)
¿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,
algunos programadores emplean en esta fase el diagrama E-P-S:
ENTRADA PROCESO SALIDA

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


La etapa de análisis del problema se determina qué hace el programa. En la etapa de diseño
se determina cómo realizara 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 sub problemas más fáciles de resolver que el principal.
Este método se conoce técnicamente como diseño top-down o modular, 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.
En busca de una solución óptima, 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 que permitan una posterior traducción a un lenguaje se denomina diseño del
algoritmo.
Las herramientas más utilizadas para diseñar algoritmos son el seudo-código y el diagrama
de flujo, planteados anteriormente.

− COMPROBACION DE RESULTADOS (PRUEBA DE ESCRITORIO)


Para comprobar que las operaciones y los resultados que arrojan los algoritmos planteados
sean los esperados se realiza una prueba de escritorio.
Esta prueba de escritorio, consiste en hacerle seguimiento a las variables a través de los
pasos o instrucciones que conforman el algoritmo, con el proposito de verificar si los
resultados obtenidos son los esperados.

8
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

La prueba de escritorio se realiza línea por línea y consiste en asignar datos 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 diseñado. 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:
Elaborar un algoritmo para 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
4. CUBO NUMERO*NUMERO*NUMERO Línea 4 125
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, se codifica utilizando un lenguaje de programación, para
luego examinar la solución por medio del computador.
Como 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.
En esta fase 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 diferentes colores para palabras
reservadas, nombres de variables y comentarios; así como establecer las sangrías
automáticamente e indicando los errores de sintaxis.

− 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 es realizado por 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
9
MANUAL DE LÓGICA Y ALGORITMOS

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 en la sintaxis de las
sentencias 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
Cuando se ha creado el programa ejecutable, ya se puede poner en producción y se
obtendrá la información generada o p proveniente 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 codigo 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: Mostrar el área de un círculo y el área del recorte.
La solución de este problema complejo puede requerir muchos pasos por lo que es
conveniente dividir el problema en subproblemas:
- área que se requiere para las tapas
- área del recorte y sobrante de lámina
Posteriormente se debe expresar cada paso en forma más detallada con refinamientos
sucesivos, hasta lograr el algoritmo ideal y hacer las pruebas necesarias para verificar los
resultados.
Finalmente se codifica el programa en el computador utilizando un lenguaje de
programación, se compila para obtener el código objeto o código de máquina, corregir los
errores en caso de ser necesario y finalmente ejecutar el programa para observar los
resultados esperados.

10
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

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

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 $2.950 y el Euro es de $3.330.

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

11
MANUAL DE LÓGICA Y ALGORITMOS

PSEUDOCODIGO DIAGRAMA DE FLUJO

1. Inicio
2. Leer P
3. DOLAR P /2950
4. EURO P /3330
5. Escribir DOLAR, EURO
6. Fin

La prueba de escritorio es:

P DOLAR EURO

Línea 2 100000

Línea 3 33.89

Línea 4 30.03

Ejemplo 2.

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


hora, conociendo que la tasa de impuesto a 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

12
UNIVERSIDAD MILITAR “NUEVA GRANADA” CENTRO DE SISTEMAS

PSEUDOCODIGO DIAGRAMA DE FLUJO

1. Inicio
2. Leer N, V
3. Sb N*V
4. I Sb * 0.02
5. S Sb - I
6. Escribir S
7. Fin

La prueba de escritorio es:

N V Sb I S

Línea 2 40 23500

Línea 3 940000

Línea 4 18800

Línea 5 921200

13

Вам также может понравиться