Beruflich Dokumente
Kultur Dokumente
UNIDAD 2
2.1 Solucin de problemas
La principal razn para que las personas aprendan lenguajes programacin es utilizar la computadora como una herramienta para la resolucin de problemas. El proceso de solucin de problemas por computadora se divide en dos fases: 1.- Fase de resolucin del problema. 2.- Fase de implementacin (realizacin) en un lenguaje de programacin.
1.-Fase de resolucin del problema. Esta fase incluye, a su vez, el anlisis del problema as como el diseo y posterior verificacin del algoritmo. Anlisis del problema El primer paso para encontrar la solucin de un problema es el anlisis del mismo. Se debe examinar cuidadosamente el problema a fin de obtener una idea clara sobre lo que se solicita y determinar los datos necesarios para conseguirlo. Diseo del algoritmo Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigedades, que conducen a la solucin de un problema dado y expresado en lenguaje natural, por ejemplo el castellano. Para disear un algoritmo se debe comenzar por identificar las tareas ms importantes para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripcin de actividades debers ser refinados, aadiendo ms detalles a los mismos e incluso, algunos de ellos, pueden requerir un refinamiento adicional antes de que podamos obtener un algoritmo claro, preciso y completo. Este mtodo de diseo de los algoritmos en etapas, yendo de los conceptos generales a los detalles a travs de refinamientos sucesivos, se conoce como mtodo descendente (TOPDOWN). El lenguaje algortmico debe ser independiente de cualquier lenguaje de programacin particular, pero fcilmente traducible a cada uno de ellos. Alcanzar estos objetivos conducirn al empleo de mtodos normalizados para la representacin de algoritmos, tales como los diagramas de flujos, diagrama Nassi - Schneiderman o pseudocdigo.
Verificacin de algoritmos Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza las tareas para las que se ha diseado y producen el resultado correcto y esperado.
Profesor: Lic. Concepcin Nava Arteaga 1
El modo ms normal de comprobar un algoritmo es mediante su ejecucin manual, usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel las modificaciones que se producen en las diferentes fases hasta la obtencin de resultados. Este proceso se conoce como prueba del algoritmo o corrida de escritorio. 2.-Fase de Implementacin. Una vez que el algoritmo esta diseado, representado grficamente mediante una herramienta de programacin (diagrama de flujo, diagrama N - S o pseudocdigo), y verificado se debe pasar a la fase de codificacin, traduccin del algoritmo a un determinado lenguaje de programacin, que deber ser completada con la ejecucin y comprobacin del programa en la computadora.
En un algoritmo se deben considerar 3 partes: Entrada. Informacin dada al algoritmo. Proceso. Operaciones o clculos necesarios para encontrar la solucin del problema. Salida. Respuestas dadas por el algoritmo o resultados finales de los clculos.
Materia: Algoritmos y lenguajes de programacin Como por ejemplo, imagine que desea desarrolla un algoritmo que calcule la superficie de un rectngulo proporcionndole su base y altura. Lo primero que deber hacer es plantearse y contestar a las siguientes preguntas: Especificaciones de entrada
Qu datos son de entrada? Cuntos datos se introducirn? Cuntos son lo datos de entrada vlidos?
Especificaciones de salida
Cules son los datos de salida? Cuntos datos de salida se producirn? Qu precisin tendrn los resultados? Se debe imprimir un encabezado? El algoritmo en el primer diseo se podr presentar con los siguientes pasos:
Diagrama de flujo
Los Diagramas de Flujo son un conjunto de smbolos, los cuales se utilizan para representar a los algoritmos; cada smbolo tiene una funcin especfica, los cuales estn unidos por flechas, las cuales se denominan Lneas de Flujo, que indican el orden en que los pasos deben ser ejecutados.
2.3 Smbolos.
Los principales smbolos de diagramas de flujo son los siguientes:
SMBOLO
Smbolo de proceso y nos indica la asignacin de un valor en la memoria y/o la ejecucin de una operacin aritmtica.
Conector dentro de pgina. Representa la continuidad del diagrama dentro de la misma pgina.
Algoritmo
1.- Inicio 2.- Leer (pedir)grados celcius 3.- Realizar la operacin kelvin = celcius + 273.15 4.- Escribir (mostrar) grados kelvin 5.- Fin.
Diagrama de flujo
INICIO
Dar grados
Fin
Lenguaje: Es una serie de smbolos que sirven para transmitir uno o mas mensajes (ideas) entre dos entidades diferentes. A la transmisin de mensajes se le conoce comnmente como comunicacin. La comunicacin es un proceso complejo que requiere una serie de reglas simples, pero indispensables para poderse llevar a cabo. Las dos principales son las siguientes: * Los mensajes deben correr en un sentido a la vez. * Debe forzosamente existir 4 elementos: Emisor, Receptor, Medio de Comunicacin y Mensaje. Lenguajes de Programacin Es un conjunto de smbolos, caracteres y reglas (programas) que le permiten a las personas comunicarse con la computadora. Los lenguajes de programacin tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida, calculo, manipulacin de textos, lgica/comparacin y almacenamiento/recuperacin. Los lenguajes de programacin se clasifican en: Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traduccin posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en trminos de la unidad de memoria mas pequea el bit (dgito binario 0 o 1). Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en cdigos alfabticos conocidos como mnemotcnicos para las operaciones y direcciones simblicas. Lenguaje de Alto Nivel: Los lenguajes de programacin de alto nivel (BASIC, pascal, cobol, frotran, etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensin del programa.
ESTRUCTURAS ALGORITMICAS
Las estructuras de operacin de programas son un grupo de formas de trabajo, que permiten, mediante la manipulacin de variables, realizar ciertos procesos especficos que nos lleven a la solucin de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:
Secuenciales
- Mltiples
Cclicas
Estructuras Secuenciales
La estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del proceso. Una estructura secuencial se representa de la siguiente forma: Inicio Accion1 Accion2 . . AccionN Fin
- Asignacin: La asignacin consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona ser reconocida con el nombre de la variable que recibe el valor. La asignacin se puede clasificar de la siguiente forma: Simples: Consiste en pasar un valor constate a una variable (a=15) Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a=a+1) Acumulador: Consiste en usarla como un sumador en un proceso (a=a+b) De trabajo: Donde puede recibir el resultado de una operacin matemtica que involucre muchas variables (a=c+b*2/4). - Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor. Esta operacin se representa en un pseudocodigo como sigue: Leer a, b
Profesor: Lic. Concepcin Nava Arteaga 8
Donde a y b son las variables que recibirn los valores Escritura: Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Este proceso se representa en un pseudocodigo como sigue: Escribe El resultado es:, R Donde El resultado es: es un mensaje que se desea aparezca y R es una variable que contiene un valor.
Estructuras de Condicionales
Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en base al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe mencionar que la comparacin se puede hacer contra otra variable o contra una constante, segn se necesite. Existen dos tipos bsicos, las simples y las mltiples. Simples: Las estructuras condicionales simples se les conoce como Tomas de decisin. Estas tomas de decisin tienen la siguiente forma: Si <condicin> entonces Accin(es) Fin-si
Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en funcin del cumplimiento o no de una determinada condicin. Se representa de la siguiente forma: Si <condicin> entonces Accin(es) si no Accin(es) Fin-si
Donde: Si Condicin entonces.. accin(es) si no Indica el comando de comparacin Indica la condicin a evaluar Precede a las acciones a realizar cuando se cumple la condicin Son las acciones a realizar cuando se cumple o no la condicin Precede a las acciones a realizar cuando no se cumple la condicin
9
Mltiples: Las estructuras de comparacin mltiples, son tomas de decisin especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma comn es la siguiente: Si <condicin> entonces Accin(es) si no Si <condicin> entonces Accin(es) si no . . Varias condiciones .
Forma General Casos Variable Op1: Accin(es) Op2: Accin(es) . . OpN: accin Fin-casos
Estructuras Cclicas
Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especifica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en funcin de algn dato dentro del programa).Los ciclos se clasifican en: while (hacer), do-while (hacer-mientras) y for (repetir desde)
10