PROBLEMAS RESUELTOS CON COMPUTADORAS Y HERRAMIENTAS DE PROGRAMACION
1
INDICE • OBJETIVO • SOLUCION DE PROBLEMAS • ANALISIS DEL PROBLEMA • DISEÑO DEL ALGORITMO • SOLUCION DEL PROBLEMA MEDIANTE COMPUTADORA • REPRESENTACION GRAFICA DE ALGORITMOS • PSEUDOCODIGO 2
2.1 OBJETIVO
• EXPONER LOS CONOCIMIENTOS INDISPENSABLES PARA EL APRENDIZAJE DE LA PROGRAMACION.
3
2.2 SOLUCION DE PROBLEMAS
• Fases de fragmentación: – Análisis del problema: definición concisa a fin de que sea analizado en todo detalle. – Diseño del algoritmo: procedimiento, paso a paso, para la solucionar el problema dado. – Solución del algoritmo con la computadora: codificación del algoritmo en un lenguaje de programación 4
2.3 ANALISIS DEL PROBLEMA • El propósito es ayudar al programador a llegar a un cierto grado de comprensión de la naturaleza del problema.
• Una buena definición del problema, junto con una descripción detallada de entrada y salida, son los requisitos más importantes para una solución eficaz. 5
2.3 ANALISIS DEL PROBLEMA cont.
1. Que información debe proporcionar la solución del problema. Solución del Problema
Análisis del Problema
Diseño del algoritmo
Solución por computadora
6
2.3 ANALISIS DEL PROBLEMA cont. 2. Que datos se necesitan para resolver el problema. Análisis del Problema
Definición del Problema
Especificaciones de entrada
Especificaciones de salida
7
2.3 ANALISIS DEL PROBLEMA cont.
• Ejemplo: leer los lados de un triángulo rectángulo e imprima la hipotenusa. – Entradas: valores de los lados (variable LADO1 y variable LADO2). – Salida: valor de la hipotenusa (variable LADO3). – Variables: LADO1, LADO2 y LADO3 (tipo reales). 8
2.4 DISEÑO DEL ALGORITMO • La información proporcionada al algoritmo constituye su entrada y la información producida constituye su salida.
• Los problemas complejos se resuelven eficazmente si se fragmentan en subproblemas que sean más sencillos de solucionar que el original. Esta técnica es conocida como divide y vencerás (divide and conquer). 9
2.4 DISEÑO DEL ALGORITMO cont.
• La descomposición del problema original en subproblemas cuya solución puede implementarse a través de la computadora se le denomina diseño descendente (top down design) • La descripción detallada de la solución mediante pasos específicos se le denomina refinamiento del algoritmo (stepwise refinement). 10
2.4 DISEÑO DEL ALGORITMO cont. Diseño del algoritmo
Diseño descendente
Refinamiento por pasos
Herramientas de programación - diagramas de flujo - pseudocódigo
11
2.4 DISEÑO DEL ALGORITMO cont.
• Ejemplo: Determine a los números menores que 90 y múltiplos de 9, así como su sumatoria. Definición del Problema
Especificaciones de entrada
Especificaciones de salida
Imprimir múltiplos de 9 y su suma siempre y cuando sea menor que 90
TOTAL = 0 NUM = 9 LIMITE = 90
NUM, TOTAL
12
2.4 DISEÑO DEL ALGORITMO cont. Diseño descendente Múltiplos de 9
Refinamiento por pasos
Herramientas de programación
a) Num=9 b) Print num c) Num <= 90 regresar a) d) Num=+9
Sumatoria
Total=+num 13
2.4 DISEÑO DEL ALGORITMO cont.
1. 2. 3. 4. 5.
Inicio Total=0, Num=9, Limite=90 Print Num Total=Total+Num Si Num <= Limite entonces Num=Num+9 y regresar a 3 6. Print Total 7. Fin 14
tarea 1. Determine si una palabra es un palíndromo. 2. Determine el máximo común divisor para dos números enteros. 3. Lea e imprima una serie de números distintos de cero. El algoritmo terminará con un valor que no se debe imprimir . Finalmente obtenga la cantidad de valores leídos. 15
tarea 4. Imprima y sume la serie de números múltiplos de 3 en el rango cerrado de 3 y 99. 5. Lea cuatro números e imprima el mayor de ellos. 6. Calcule la superficie de un triangulo en función de la base y la altura. 16
2.5 SOLUCION DE PROBLEMAS MEDIANTE LA COMPUTADORA • Una
vez diseñado el algoritmo y representado mediante una herramienta de programación se debe: Solución del Problema por Computadora
Codificación del programa
Ejecución del programa
Comprobación del programa 17
2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS
• Los métodos usuales para representarlo son: 1. Diagrama de flujo 2. Lenguaje de especificación de algoritmo
18
2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS cont
19
2.7 PSEUDOCODIGO • Es un lenguaje de especificación de algoritmos que permite una codificación rápida y simple. • Su ventaja radica en que el programador no debe preocuparse por la sintaxis de un lenguaje de programación en particular. • Utiliza palabras sencillas de entender para codificar programas. 20
ESTRUCTURA DE UN PROGRAMA
21
Concepto de Programa
Conjunto de instrucciones que producirán la ejecución de una determinada tarea. Esencialmente es un medio para lograr un fin.
22
PROCESO DE PROGRAMACION Consiste en la solución de problemas y el desarrollo de programas
23
Fases del proceso de programación • Definición y análisis del problema. • Diseño de algoritmos: – Diagrama de flujo. – Diagrama (N-S). – Pseudocódigo
• • • •
Codificación del programa. Depuración y verificación del programa. Documentación. Mantenimiento. 24
Partes de un programa concepto de caja negra Entrada
Algoritmo
Salida
25
Tipos de Instrucciones (acciones que resuelven un problema)
• De inicio / fin. • De asignación. • De lectura, • De escritura. • De bifurcación. 26
Elementos básicos de un programa Palabras reservadas. Identificadores (nombres de variables). Caracteres especiales. Constantes. Variables. Expresiones. instrucciones.
27
Otros elementos… Iteraciones, Contadores, Acumuladores, Interruptores, Estructuras: Secuenciales, Selectivas, Repetitivas.
28
Iteraciones Es el segmento de un algoritmo o programa, cuyas instrucciones se repiten un número determinado de veces mientras se cumple una determinada condición. Sus partes son: decisión cuerpo del bucle salida
29
Contadores
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada iteración.
30
Acumuladores
Un Acumulador es una variable cuya misión es almacenar cantidades distintas resultantes de sumas sucesivas.
31
Interruptores
Un interruptor ( conmutador, bandera, flag) es una variable que puede tomar diversos valores durante la ejecución de un programa y que permite comunicar información desde una parte a otra del mismo.
32
Componentes de un algoritmo Algoritmo Cabecera del programa Sección de declaración Sección de acciones
33
34