Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Unidad II
La resolucin de un problema con una computadora se hace escribiendo un programa, que exige al menos los siguientes pasos:
1.
2.
3. 4.
Definicin o anlisis del problema Diseo del algoritmo Transformacin del algoritmo en un programa Ejecucin y validacin del programa
Antes de conocer las tareas a realizar en cada fase debemos conocer el concepto y significado de algoritmo.
Las personas efectuamos de manera diaria una serie de pasos o acciones que nos permiten obtener un resultado o resolver un problema. Y esto lo repetimos varias veces a lo largo del da. Lo que hacemos en realidad es aplicar un algoritmo, para resolver algn problema que se nos presente.
De manera formal definimos un algoritmo como: Un conjunto de pasos, procedimientos o acciones, ordenados de manera lgica, que nos permiten alcanzar un resultado o resolver un problema
Debemos tratar que cada paso descrito en el algoritmo pueda ser reflejado mediante una instruccin en un lenguaje de programacin. Un algoritmo debe tener las siguientes caractersticas:
o Preciso
o Finito o Presentacin formal o Correcto o Eficiente
Preciso: cada paso del algoritmo se desarrolla en una secuencia estricta, ya que el cambio en el orden puede modificar los resultados. Finito: debe tener un inicio y un final. Presentacin formal: debe seguir un estndar conocido para que pueda ser entendido: Las presentaciones mas conocidas son: Diagrama de Flujo de Datos, Pseudocodigo, Diagramas de Nassi/Schneiderman. Correcto: Es decir las salida final sea la esperada como resultado. Eficiente: Optimizar procesamiento recursos de almacenamiento y
La primera etapa en la solucin de un problema es el anlisis del problema. En esta fase se requiere una clara definicin, donde se contemple exactamente lo que debe hacer el programa y el resultado o solucin deseada. Dado que se busca una solucin por computadora, se precisan especificaciones detalladas de entrada y salida.
Resolucin de un problema
Ejemplo 1:
Qu entradas se requieren?
dos nmeros
una taza de t
o Qu mtodo produce la salida?
1. 2. 3. 4.
Poner la bolsa de t en la taza Poner el agua a hervir en la tetera Verter el agua hervida en la taza Remover
Ejemplo 3: Problema: Averiguar la solvencia de un cliente que ejecuta un pedido a una fbrica. Anlisis: o Entrada: el pedido o Salida: mensaje de aceptacin o rechazo o Proceso:
1. 2. 3. 4. Leer el pedido Examinar la ficha del cliente Si el cliente es solvente, aceptar pedido En caso contrario, rechazar pedido
En la etapa de anlisis del proceso de programacin se determina que hace el programa. En la etapa de diseo se determina cmo hace el programa la tarea solicitada. El proceso que convierte los resultados del anlisis del problema en un diseo modular que permita una posterior traduccin a un lenguaje de programacin se denomina diseo del algoritmo.
El diseo del algoritmo es independiente del lenguaje de programacin en el que se vaya a codificar posteriormente. Las dos herramientas ms utilizadas comnmente para disear algoritmos son: diagramas de flujo y pseudocdigos.
Un diagrama de flujo es una de las tcnicas de representacin de algoritmos ms antigua y ms utilizada. Muestran de manera grfica los pasos necesarios para alcanzar la solucin de un problema.
Si el diagrama de flujo est completo y correcto, el paso del mismo a un lenguaje de programacin es relativamente simple y directo. Un diagrama de flujo utiliza smbolos, que tienen los pasos a realizar escritos en su interior.
Estas cajas estn unidas por flechas, denominadas lneas de flujo, las cuales indican la secuencia de los pasos. Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI).
Inicio
Lectura de datos
Procesamiento de datos
Impresin de resultados
Fin
Los
Terminal
Decisin
Si
No
1.
Fin
2.
Las lneas utilizadas para indicar la direccin del flujo, deben ser rectas, verticales y horizontales.
3.
Todas las lneas para indicar la direccin del flujo del diagrama deben estar conectadas.
4.
5.
La notacin utilizada en el diagrama de flujo debe ser independiente del lenguaje de programacin
6.
Es necesario cuando realizamos algn diagrama complejo poner comentarios que expresen o ayuden a entender lo que hicimos. Si el diagrama de flujo requiriera ms de una hoja para su construccin, debemos utilizar los conectores adecuados y enumerar las pginas convenientemente.
7.
8.
Para la construccin de algoritmos, diagramas de flujo y programas, es necesario conocer los tipos de datos, as como las operaciones que podemos llevar a cabo. Los datos a procesar por una computadora pueden clasificarse en:
o Simples o Estructurados
La caracterstica principal de los datos simples, es que ocupan solo una casilla de memoria, por lo tanto, una variable simple hace referencia a un nico valor a la vez.
o Enteros, reales, caracteres, booleanos, enumerados y subrangos
Los datos estructurados se caracterizan por el hecho de que con un nombre (identificador de variable estructurada) se hace referencia a un grupo de casillas de memoria.
o Arreglos, cadenas de caracteres, registros y conjuntos
Dentro de los tipos de datos numricos encontramos a los enteros y reales. Los enteros son nmeros que pueden estar precedidos del signo + o -, y no tiene parte decimal.
128 -714 8530 -14780
Los reales son nmeros que pueden estar precedidos del signo + o -, y que tiene una parte decimal.
7.5 128.0 -37.865 -15.0
Dentro de este tipo de datos encontramos los de tipo caracter (simple) y cadenas de caracteres (estructurado). Son datos cuyo contenido pueden ser letras del abecedario (a,b,..,z), dgitos (0,1,..,9) o smbolos especiales (#,+,,$,%,&,/, etc.). Debemos recordar que aunque este tipo de datos contiene nmeros, no pueden ser utilizados para realizar operaciones aritmticas.
Un tipo de dato cadena de carcter contiene un conjunto de caracteres, y se escribe entre comillas. La longitud de una cadena depende de los lenguajes de programacin, normalmente de 255.
abcde Carlos Gmez 754-27-22 $9#7
Dentro de este tipo de datos, encontramos los booleanos. Son datos que solo pueden tomar dos valores:
o Verdadero (true) o Falso (false)
Para poder realizar operaciones aritmticas necesitamos operadores aritmticos. Estos nos permitirn realizar operaciones aritmticas entre operandos: nmeros, variables, constantes. El resultado de una operacin aritmtica ser un nmero.
Operadores aritmticos Operador aritmtico ** * / + mod div Operacin Potencia Multiplicacin Divisin Suma Resta Mdulo (residuo) Divisin entera Ejemplo 4**3 8.25*7 15/4 125.78 + 62.50 65.30 32.33 15 mod 2 17 div 3 Resultado 64 57.65 3.75 188.28 32.97 1 5
Jerarqua de los operadores aritmticos Operador ** *,/,mod,div +,Menor Jerarqua Mayor Operacin Potencia Multiplicacin, divisin, mdulo, divisin entera Suma, resta