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