PROGRAMACION II
PROGRAMACION II 11 BTPI
LIC. MARCO ANTONIO RAMOS
DISEÑO DE ALGORITMOS
EL ALGORITMO COMO ESTRATEGIA Y/O
HERRAMIENTA PARA LA SOLUCIÓN DE PROBLEMAS
OBJETIVO El alumno será capaz de analizar
y aplicar los conocimientos generales de las técnicas aplicadas, en la solución
de algoritmos.
ANÁLISIS PARA LA SOLUCIÓN DE UN
PROBLEMA
Objetivo
El alumno podrá explicar la importancia
del análisis en la solución de un problema.
Análisis del problema
la primera fase en la
resolución de un problema con computadora es el análisis del 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. Debido a que se busca una solución
por computadora, se precisan especificaciones detalladas de entrada y salida.
Esto se plantea en la siguiente figura. 
Para poder definir bien un problema es conveniente responder a las siguientes preguntas:
· ¿Qué entradas se requieren? (tipo y cantidad)
· ¿Cuál es la salida deseada? (tipo y cantidad)
· ¿Qué método produce la salida deseada?
Ejemplo.
Se desea calcular el total a pagar, en una
venta normal en una papelería, proporcionando el precio unitario de un
producto, así como el número de total de productos a comprar, además de aplicar
el 15% de IVA.
Importe = precio_unitario*total de
productos
IVA = importe*0.15
Total = importe+IVA
Entrada
· Precio unitario de producto
· Total de productos a comprar
Salida
· Total a pagar
Proceso
· Cálculo del Importe
· Cálculo del IVA
· Cálculo del total a pagar
-------------------11-09-2020------------------
DISEÑO DE UN ALGORITMO
Objetivo
El alumno obtendrá los
conocimientos para explicar las características de los elementos de un
algoritmo. Resolverá algoritmos matemáticos, por ejemplo, de cálculo de
perímetros, de áreas, cálculo de promedios.
Diseño del algoritmo
Joyanes Aguilar, señala
que en la etapa de análisis del proceso de programación se determina, ¿qué hace
el programa? En la etapa de diseño se determina cómo hace el programa la tarea
solicitada. Los métodos más eficaces para el proceso de diseño se basan en el
conocido por divide y vencerás. Es decir, la resolución de un problema complejo
se divide en subproblemas y después dividir éstos en otros de nivel más bajo,
hasta que pueda ser implementada una solución en la computadora.
Este método se conoce
técnicamente como diseño descendente (top-down) o modular. El proceso de romper
el problema en cada etapa y expresar cada paso en forma más detallada se
denomina refinamiento sucesivo.
Cada subprograma es
resuelto mediante un módulo (subprograma) que tiene un solo punto de entrada y
un solo punto de salida. Cualquier programa bien diseñado consta de un programa
principal (el módulo de nivel más alto) que llama a subprogramas (módulos de
nivel más bajo) que a su vez pueden llamar a otros subprogramas. Los programas
estructurados de esta forma se dice que tienen un diseño modular y el método de
romper el programa en módulos más pequeños se llama programación modular.
Los módulos pueden ser
planeados, codificados, comprobados y depurados independientemente (incluso por
diferentes programadores) y a continuación combinarlos entre sí. El proceso
implica la ejecución de los siguientes pasos hasta que el programa se termina:
1.- Programar un módulo.
2.- Comprobar el módulo.
3.- Si es necesario,
depurar el módulo.
4.- Combinar el módulo
con los módulos anteriores.
Joyanes Aguilar,
menciona que 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.
Algo muy importante que
señala Joyanes Aguilar, se centra en que el diseño del algoritmo es
independiente del lenguaje de programación en el que se vaya a codificar
posteriormente.
Herramientas de programación
En su libro de
fundamentos de programación, Joyanes Aguilar, señala que las dos herramientas
más utilizadas comúnmente para diseñar algoritmos son:
diagramas de flujo y
pseudocódigos.
Diagramas de flujo
Un diagrama de flujo
(flowchart) es una representación gráfica de un algoritmo. Los símbolos
utilizados en estos diagramas, descritos en lecturas anteriores, han sido
normalizados por el Instituto Norteamericano de Normalización (ANSI).
Pseudocódigo
El pseudocódigo es una
herramienta de programación en la que las instrucciones se escriben en palabras
similares al inglés o español, que facilitan tanto la escritura como la lectura
de programas. En esencia, el pseudocódigo se puede definir como un lenguaje de
especificaciones de algoritmos.
Aunque no existen reglas
para escritura del pseudocódigo es español, se utilizan palabras reservadas
básicas, estas palabras son traducción libre de palabras reservadas de
lenguajes como C, Pascal, etc.
Ejemplo:
Se desea calcular el
total a pagar, en una venta normal en una papelería, proporcionando el precio
unitario de un producto, así como el número de total de productos a comprar,
además de aplicar un IVA del 15%.
Pseudocódigo:
Calculando total a pagar
Introducir precio
unitario
Numero total de
productos a comprar
Calcular importe
Calcular importe más IVA
Imprimir total a pagar
Ejemplo: Algoritmo para
calcular el área de un rectángulo´
1.- Inicio
2.- Obtener el valor del
largo, denominado LARGO
3.- Obtener el valor del
ancho, denominado ANCHO
4.- Multiplicar el valor
de ANCHO por LARGO, llamar al resultado: AREA
5.- El área del
rectángulo es: AREA.
6.- Fin
Ejemplo: Algoritmo para
realizar la conversión de minutos en segundos.
1.- Inicio
2.- Obtener el número de
minutos a convertir, denominado MINUTOS.
3.- Multiplicar MINUTOS
por 60, llamar al resultado MINUTOS
4.- Visualizar el
resultado en minutos: MINUTOS.
5.- Fin
Ejemplo: Algoritmo para
calcular el promedio de dos materias.
1.- Inicio
2.- Leer la calificación
de la materia 1, denominada MATERIA1
3.- Leer la calificación
de la materia 2, denominada MATERIA2
4.- Sumar MATERIA1 más
MATERIA2, el resultado denominarlo: SUMA
5.- Dividir a SUMA entre
2, el resultado denominarlo PROMEDIO
6.- Visualizar el
promedio de las materias, imprimir PROMEDIO.
7.- Fin
Ejemplo: Diagrama de
flujo, que permite calcular el promedio de dos materias
----------23-10-2020----------
LA COMPILACIÓN Y SUS FASES
LA COMPILACIÓN ES EL PROCESO DE
TRADUCCIÓN DE PROGRAMAS FUENTE A PROGRAMAS OBJETO. EL PROGRAMA OBJETO OBTENIDO
DE LA COMPILACIÓN SE TRADUCE NORMALMENTE A CÓDIGO MÁQUINA. PARA CONSEGUIR EL
PROGRAMA MÁQUINA REAL SE DEBE UTILIZAR UN PROGRAMA LLAMADO MONTADOR O ENLAZADOR
(LINKER). EL PROCESO DE MONTAJE CONDUCE A UN PROGRAMA EN LENGUAJE MÁQUINA
DIRECTAMENTE EJECUTABLE. FIGURA 1.4.3. EL PROCESO DE EJECUCIÓN DE UN PROGRAMA ESCRITO
EN UN LENGUAJE DE PROGRAMACIÓN (POR EJEMPLO, C) Y MEDIANTE UN COMPILADOR SUELE
TENER LOS SIGUIENTES PASOS:
1. ESCRITURA DEL LENGUAJE MÁQUINA
CON UN EDITOR (PROGRAMA QUE PERMITE A UNA COMPUTADORA ACTUAR DE MODO SIMILAR A
UNA MÁQUINA DE ESCRIBIR ELECTRÓNICA) Y GUARDARLO EN UN DISPOSITIVO DE
ALMACENAMIENTO (POR EJEMPLO, UN DISCO).
2. INTRODUCIR EL PROGRAMA FUENTE
EN MEMORIA.
3. COMPILAR EL PROGRAMA CON EL COMPILADOR C.
4. VERIFICAR Y CORREGIR ERRORES
DE COMPILACIÓN (LISTADO DE ERRORES).
5. OBTENCIÓN DEL PROGRAMA OBJETO.
6. EL ENLAZADOR (LINKER) OBTIENE
EL PROGRAMA EJECUTABLE.
7. SE EJECUTA EL PROGRAMA Y, SI NO EXISTEN ERRORES, SE TENDRÁ LA SALIDA DEL PROGRAMA.
EL PROCESO DE EJECUCIÓN ES
MOSTRADO EN LAS FIGURAS



Comentarios
Publicar un comentario