Solución de problemas aplicando la computadora

29
Resolución de problemas aplicando la computadora

description

Solución de problemas aplicando la computadora.

Transcript of Solución de problemas aplicando la computadora

Page 1: Solución de problemas aplicando la computadora

Resolución de problemas aplicando la computadora

Page 2: Solución de problemas aplicando la computadora

Resolución de problemas

En la creación de un programa se identifican dos fases:

1. Fase de resolución del problema.

2. Fase de implementación (realización) en un lenguaje de programación.

Page 3: Solución de problemas aplicando la computadora

Fase de resolución del problema

En esta fase se incluyen, los siguientes pasos:

1. Análisis del problema.

2. Diseño del algoritmo.

3. Verificación de algoritmos.

Page 4: Solución de problemas aplicando la computadora

Análisis del ProblemaEl primer paso es encontrar la solución a un problema es el análisis 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.

Definición del

Problema

Datos de entrada

Análisis del Problema

Datos de salida =

Resultados

Page 5: Solución de problemas aplicando la computadora

Diseño del AlgoritmoUn algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la solución de un problema dado y puede ser expresado en lenguaje natural.

Todo algoritmo debe ser:

•Preciso•Definido•Finito

Page 6: Solución de problemas aplicando la computadora

Diseño del AlgoritmoEn un algoritmo se deben considerar tres partes:

•Entrada•Proceso•Salida

Especificaciones de entrada

¿Qué datos son de entrada?¿Cuántos datos se introducirán?¿Cuántos son datos de entrada válidos?

Especificaciones de salida

¿Cuáles son los datos de salida?¿Cuántos datos se salida se producirán?¿Qué precisión tendrán los resultados?¿Se debe imprimir una cabecera?

Page 7: Solución de problemas aplicando la computadora

Verificación de algoritmosUna vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza las tareas para las que se ha diseñado y produce un resultado correcto y esperado.

El modo más normal de comprobar un algoritmo es mediante su ejecución 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 obtención de los resultados. Este proceso se le conoce como prueba del algoritmo.

Page 8: Solución de problemas aplicando la computadora

Fase de implementación

Una vez que el algoritmo está diseñado, representado mediante un método normalizado (diagrama de flujo ó pseudocódigo), y verificado se debe pasar a la fase de codificación, traducción del algoritmo a un determinado lenguaje de programación, que deberá ser completada con la ejecución y comprobación del programa en la computadora.

Page 9: Solución de problemas aplicando la computadora

Resolución del problema mediante la computadora

Codificación del

programa

Ejecución del

Programa

Resolución del problema en computadora

Comprobación del

programa

Page 10: Solución de problemas aplicando la computadora

1. Datos

Dato es la expresión general que describe los objetos con los cuales opera el algoritmo. El tipo de un dato determina su forma de almacenamiento en memoria y las operaciones que van a poder ser efectuadas con él.

Tipos de Datos:

•entero•real•lógico

•carácter•cadena

Page 11: Solución de problemas aplicando la computadora

1.1. Constantes

Son datos cuyo valor no cambia durante todo el desarrollo del algoritmo. Las constantes podrán ser literales o con nombres, también denominadas simbólicas.

Las constantes simbólicas o con nombre se identifican por su nombre y el valor asignado.

Una constante literal es un valor de cualquier tipo que se utiliza como tal.

Page 12: Solución de problemas aplicando la computadora

1.2. VariablesUna variable es un objeto cuyo valor puede cambiar durante el desarrollo de un algoritmo. Se identifica por su nombre y por su tipo, que podrá ser cualquiera, y es el que determina el conjunto de valores que podrá tomar la variable.

En los algoritmos se deben declarar las variables que van a usar, especificando su tipo.

Ejemplo: var <tipo_de_dato> : <lista_identificadores_de_variable>

entero : numero1, numero2, suma

Page 13: Solución de problemas aplicando la computadora

1.3. ExpresionesEs una combinación de operadores y operandos. Los operandos podrán ser variables u otras expresiones y los operadores de cadena, aritméticos, relacionales o lógicos.

Las expresiones se clasifican, según el resultado que producen en:

•Numéricas•Alfanuméricas•Booleanas

Page 14: Solución de problemas aplicando la computadora

1.4. FuncionesEn los lenguajes de programación existen ciertas funciones predefinidas o internas que aceptan argumentos y producen un valor denominado resultado, Por ejemplo:

Función Descrpción Tipo de Argumento Resultadoabs(x) valor absoluto de x entero o real igual que el argumentocos(x) coseno de x entero o real realcuadrado(x) cuadrado de x entero o real igual que el argumentoent(x) entero de x real entero

Page 15: Solución de problemas aplicando la computadora

2. Representación de AlgoritmosLos métodos más usuales para la representación de algoritmos son:

•Diagrama de Flujo•Diagrama N-S (Nass-Schneiderman)•Pseudocódigo

Page 16: Solución de problemas aplicando la computadora

2.1. Diagramas de FlujoLos diagramas de flujo se utilizan tanto para la representación gráfica de las operaciones ejecutadas sobre los datos a través de todas las partes de un sistema de procesamiento de información, como para la representación de una secuencia de pasos necesarios para describir un procedimiento particular.

El diagrama de flujo utiliza símbolos normalizados, con los pasos del algoritmo escritos en el símbolo adecuado y los símbolos unidos por flechas, denominadas líneas de flujo, que indican el orden en que los pasos deben ser ejecutados.

Page 17: Solución de problemas aplicando la computadora

2.1. Diagramas de FlujoLos símbolos principales son:

Símbolo Función

Inicio y fin del algoritmo

Proceso

Entrada/Salida

Decisión

Comentario

Page 18: Solución de problemas aplicando la computadora

2.1. Diagramas de FlujoEjemplo: Leer temperatura en grados Centígrados y calcule y escriba su valor en grados Kelvin.

Inicio

Fin

Leer (gradosCentigrados)

Escribir (gradosKelvin)

gradosKelvin ← gradosCentigrados + 273.15

Page 19: Solución de problemas aplicando la computadora

2.2. Diagrama Nassi-SchneidermanDenominado así por sus inventores, Isaac Nassi y Ben Shneiderman.

Consta de una serie de cajas contiguas que se leerán siempre de arriba-abajo y se documentarán de la forma adecuada.

En los diagramas N-S las tres estructuras básicas de la programación estructurada, secuenciales, selectivas y repetitivas, encuentran su representación propia.

Page 20: Solución de problemas aplicando la computadora

2.2. Diagrama Nassi-SchneidermanLos símbolos principales son:

Símbolo Tipo de estructura

Secuencial

Repetitiva de 0 a n veces

Repetitiva de 1 a n veces

Repetitiva n veces

Selectiva

Sentencia 1Sentencia 2Sentencia n

condiciónsi no

Page 21: Solución de problemas aplicando la computadora

2.2. Diagrama Nassi-SchneidermanEjemplo: Leer temperatura en grados Centígrados y calcule y escriba su valor en grados Kelvin.

Inicio

leer (gradosCentigrados)

gradosKelvin ← gradosCentigrados +273.15

escribir (gradosKelvin)

Fin

Page 22: Solución de problemas aplicando la computadora

2.3. PseudocódigoEs un lenguaje de especificación de algoritmos que utiliza palabras reservadas y exige la sangría en el margen izquierdo de algunas líneas.

El pseudocódigo se concibió para superar las dos principales desventajas de los diagramas de flujo: 1) lento de crear y 2) difícil de modificar sin un nuevo redibujo.

Es una herramienta muy buena para el seguimiento de la lógica de un algoritmo y para transformar con facilidad los algoritmos a programas, escritos en un lenguaje de programación específico.

Page 23: Solución de problemas aplicando la computadora

2.3. PseudocódigoEstructura básica de un algoritmo escrito en pseudocódigo:

algoritmo <identificador_algoritmo>

// declaraciones, sentencias no ejecutables

inicio // acciones, sentencias ejecutables tanto simples como estructuradas

fin

Page 24: Solución de problemas aplicando la computadora

2.3. Pseudocódigo2.3.1. ComentariosSirven para documentar el algoritmo y en ellos se escriben las anotaciones generalmente sobre su funcionamiento.

Cuando se coloque un comentario de una sola línea se escribirá precedido de:

// comentario de una línea.

Si el comentario es mistilínea, lo pondremos entre { }:

{ comentario que ocupa más que una línea }

Page 25: Solución de problemas aplicando la computadora

2.3. Pseudocódigo2.3.2. Palabras reservadasLas palabras reservadas o palabras clave (Keywords) son palabras que tienen un significado especial, como: inicio y fin, que marcan el principio y fin del algoritmo.

Decisión simple: si <condición> entonces <acciones1>fin_si

Decisión simple: si <condición> entonces <acciones1>si_no

<acciones2>fin_si

Page 26: Solución de problemas aplicando la computadora

2.3. PseudocódigoDecisión múltiple: según sea <expresión_ordinal> hacer

<lista_de_valores_ordinales>: <acciones1> ………[si_no // El corchete indica la opcionalidad <accionesN>]fin_según

Repetitivas: mientras <condición> hacer <acciones>fin_mientrasrepetir <acciones>hasta_que <condición>desde <variable> ← <v_inicial> hasta <v_final> [incremento | decremento <incremento> ]

hacer<acciones>

fin_desde

Page 27: Solución de problemas aplicando la computadora

2.3. PseudocódigoEl ejemplo ya citado que transforma grados centígrados a grados kelvin, escrito en pseudocódigo quedaría de la siguiente forma:

algoritmo conversion_gCentigrados_gKelvinvar

real: gradosCentigrados, gradosKelvininicio

leer(gradosCentigrados)gradosKelvin ← gradosCentigrados + 273.15escribir(gradosKelvin)

fin

Page 28: Solución de problemas aplicando la computadora

2.3. Pseudocódigo2.3.3. IdentificadoresSon los nombres que se dan a las constantes simbólicas, variables, funciones, procedimientos, u otros objetos que manipula el algoritmo.

Reglas para la construcción de identificadores:

Debe resultar significativo, sugiriendo lo que representa. No podrá coincidir con palabras reservadas, propias del lenguaje

algorítmico. Se recomienda un máximo de 50 caracteres. Comenzará siempre por un carácter alfabético y los siguientes

podrán ser letras, dígitos o el símbolo de subrayado. Podrá ser utilizado indistintamente escrito en mayúscula o en

minúsculas.

Page 29: Solución de problemas aplicando la computadora

2.3. Pseudocódigo2.3.4. Operadores y signos de puntuaciónLos operadores se utilizan en las expresiones e indican las operaciones a efectuar con los operandos, mientras que los signos de puntuación se emplean con el objetivo de agrupar o separar, por ejemplo . ; o [].

2.3.5. LiteralesSon los valores que aparecen directamente escritos en el programa y pueden ser literales: lógicos, enteros, reales, de tipo carácter, de tipo cadena y el literal nulo.