Download P roblemas , datos , variables , modelos

Document related concepts

C Sharp wikipedia , lookup

J (lenguaje de programación) wikipedia , lookup

Haskell wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Programación funcional wikipedia , lookup

Transcript
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
modelos?.
Resolución de problemas.
El proceso de resolución de un problema
abarca desde la descripción inicial del
mismo, hasta el desarrollo de un programa
en una computadora que lo resuelve.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
Resolución de problemas.
modelos?.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
modelos?.
Proceso de Diseño de Programas.
Consta de una serie de fases que generalmente deben seguir
todos los programadores, son las siguientes.
Análisis del problema y Diseño del algoritmo.Conducen a un diseño detallado en forma de algoritmo.
Codificación.- Se implementa el algoritmo en código
escrito en lenguaje de programación.
Compilación y ejecución.- Traduce y ejecuta el programa.
Verificación y Depuración.- Se buscan los errores de las
etapas previas y se eliminan.
Mantenimiento y documentación.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
modelos?.
Fases en el Proceso de Diseño de Programas..
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
modelos?.
Proceso de Diseño de Programas.
Un concepto Importante a definir previamente es el siguiente
término.
Algoritmo.- Es un conjunto finitos de reglas que proponen una
serie de operaciones que sirven para resolver un determinado
problema. Cumplen las siguientes características:
Finito.- Debe acabar tras un numero finito de pasos.
Definible.- Cada paso del algoritmo debe definirse de
modo preciso.
Efectividad.- Las operaciones del algoritmo deben ser
básicas, estar expresadas de modo exacto y deben
ejecutarse en un tiempo finito.
Entrada.- Todo algoritmo debe tener cero o más datos de
entrada.
Salida.- Todo algoritmo debe tener cero o más datos de
salida.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
modelos?.
Proceso de Diseño de Programas.
Análisis del problema.- Consiste en definir el problema y
especificar claramente aquello que es necesario para su
resolución.
Para ser el análisis hay que responder las siguientes preguntas:
¿Qué entradas tiene el problema?.
¿Cuál es la salida deseada?.
¿Qué método produce la salida deseada a partir de
los datos de entrada?.
Normalmente la definición comienza analizando los requisitos
del usuario.
Estos requisitos suelen ser imprecisos y difíciles de escribir.
La fase de especificación requiere normalmente una gran
comunicación entre programadores y futuros usuarios del
sistema.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
modelos?.
Proceso de Diseño de Programas.
Diseño del Algoritmo
Aquí hay que indicar cómo hace el algoritmo la tarea solicitada, y
eso se traduce en la construcción de un algoritmo.
Métodos más eficaces basados en técnica divide y vencerás.
Divide y Vencerás.El problema se divide en subproblemas y a continuación
se divide cada uno de estos subproblemas en otros
hasta que pueda implementarse una solución.
Esta fase de diseño es bastante larga.
Gasto (en tiempo) en diseño será ahorro en tiempo de
codificación y depuración.
Resultado final.
La solución debe ser fácil de traducir a estructuras de
datos y estructuras de control en un lenguaje de
programación específico.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
modelos?.
Proceso de Diseño de Programas.
Diseño del Algoritmo.La Herramienta de Programación mas comúnmente utilizada es:
Pseudocódigo.
Se escriben instrucciones en palabras similares al español,
que facilitan la escritura/escritura de programas. Se
puede definir como un lenguaje de especificación de
algoritmos.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
variables,
modelos?.
Plantilla Escritura de Algoritmos
Nombre del Algoritmo
Objetivo del Algoritmo
Datos de Entrada
Datos de Salida
Descomposición del Problema en Operaciones
Descomposición del Problema en Elementos
Proceso
Nombre del Algoritmo,
Declaración de Variables,
Cuerpo -Inicio...procedimiento... Fin
Consideraciones Especiales
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
variables,
modelos?.
Ejemplo de Algoritmo “Hola
Mundo”
Escriba un algoritmo que escriba la frase “Hola Mundo”
Nombre:
Hola Mundo
Objetivo:
Escribir la frase Hola Mundo
Datos de Entrada:
No hay.
Datos de Salida:
Mensaje “Hola Mundo”
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
variables,
modelos?.
Ejemplo de Algoritmo “Hola
Mundo”
Descomposición del Problema en Operaciones:
Imprimir mensaje.
Descomponer el problema en Elementos:
Mensaje
Algoritmo:
Proceso Hola_mundo
Variables
No hay
Inicio
Escribe(“Hola Mundo”)
Fin
Consideraciones especiales: El algoritmo se ejecuta una sola
vez y termina.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
variables,
modelos?.
Algoritmo Propuesto
Desarrollar un algoritmo que dado un número que se le
proporcione entregue la sumatoria de él, de acuerdo a la
siguiente fórmula:
Sumatoria(N)= N*(N+1)/2
Solución Problema Sumatoria
∉
∉
∉
∉
∉
Nombre: Sumatoria
Objetivo: calcular la sumatoria de un número
natural.
Datos de Entrada: número al que se le calculará
la sumatoria.
Datos de Salida: sumatoria del número
ingresado.
Descomposición del Problema en Operaciones:
leer el número, calcular la sumatoria aplicando
la fórmula dada, escribir resultado.
Solución del Problema Sumatoria
∉
∉
Descomposición del problema en elementos:
Número n, resultado de la sumatoria de n.
Algoritmo
Proceso Sumatoria
Variables
N, sumatoria
Inicio
Leer (n)
sumatoria=n*(n+1)/2
Imprimir (sumatoria)
Fin
∉
Consideraciones especiales: Válido para números
enteros positivos.
P r o b l e m a G r a d o s Fahrenheit
∉
Desarrolle
un
algoritmo
que
permita
la
transformación de cualquier temperatura dada en
grados Celsius a su equivalente en grados
Fahrenheit, considerando que:
Celsius
Fahrenheit
-1
30.2
0
32.0
1
33.8
2
35.6
3
37.4
4
39.2
:
:
100
212
P r o b l e m a G r a d o s Fahrenheit
∉
Más de una forma para resolverlo.
Usar una tabla de conversión, es decir tener
un conjunto de datos preestablecidos en
grados Celsius y su equivalente en
Fahrenheit, esto implica mantener los datos
de la tabla almacenados de alguna manera.
Usar una fórmula de conversión, es decir,
dada una temperatura en grados Celsius,
se calcula su equivalente en Fahrenheit
(esta solución es más eficiente).
S o l u c i ó n G r a d o s F ah r e n h e i t
∉
∉
∉
∉
∉
Nombre: Conversión a grados Fahrenheit
Objetivo: Convertir una temperatura que está
en grados Celsius a su equivalente en grados
Fahrenheit.
Datos de Entrada: valor en grados Celsius
Datos de Salida: valor equivalente al ingresado
en grados Fahrenheit
Descomposición del Problema en Operaciones:
leer los grados Celsius, convertir a grados
Fahrenheit aplicando la fórmula de
equivalencia, escribir resultado.
S o l u c i ó n G r a d o s Fahrenheit
∉
∉
Descomposición del problema en elementos:
grados Celsius, grados Fahrenheit.
Algoritmo
Proceso Conversión
Variables
Celsius, Fahrenheit
Inicio
Leer (Celsius)
Fahrenheit=32+Celsius*1.8
Imprimir (Fahrenheit)
Fin
∉
Consideraciones especiales: No tiene.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
modelos?.
Proceso de Diseño de Programas.
Codificación de un Programa.Consiste en escribir en un lenguaje de programación el
algoritmo creado en la fase de diseño. Se deben seguir las
siguientes reglas:
Si un problema se ha dividido en subproblemas los
algoritmos que resuelven estos deben ser codificados
y probados independientemente.
Deben usarse como identificadores términos
significativos, usando nombres para los datos y
verbos para los subprogramas.
Cuidado especial en la comunicación de los distintos
subprogramas, recomendable hacerlo mediante
parámetros
La variables globales se usa si son datos inherentes e
importantes del programa.
El sangrado y los comentarios facilitan la posterior
lectura.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
modelos?.
Proceso de Diseño de Programas.
Compilación y Ejecución de un Programa.Una vez que el algoritmo se ha convertido en programa
fuente, es preciso introducirlo mediante un procesador de
texto en la memoria de la computadora.
Mediante un compilador puede ser traducido a lenguaje de
maquina.
Si hay errores de compilación es necesario volver a editar el
programa y corregirlos.
Resueltos estos errores y si no hay errores de ejecución se
puede obtener una salida de resultados.
Introducción a los Lenguajes de Programación.
¿Problemas, datos,
•
variables,
modelos?.
Proceso de Diseño de Programas.
Verificación y Depuración.Depuración de un programa es el proceso de encontrar
errores del programa y corregir o eliminar dichos errores.
Para ello hay que eliminar errores de ejecución y errores
lógicos
La eliminación de errores se efectúa proporcionando al
programa datos de entradas validos que conducen a una
solución conocida.
También deben incluirse datos no validos para comprobar la
capacidad de detección de errores del programa, esto es un
método de depuración
Hay que probar todos los posibles datos de entrada o una
muestra suficientemente significativa.
Demostrar formalmente que el programa funciona
correctamente.
Programas en Lenguaje C
∉
Un programa escrito en lenguaje C tiene
la siguiente estructura:
Segmento de Definición:
∉
∉
∉
Definición de bibliotecas a utilizar dentro del
programa
Definición de Constantes.
Definición de Funciones escritas por el
programador
Cuerpo principal del programa
∉
Declaración de variables locales
∉
procedimiento.
Ejemplo: Traducir a C “Hola
Mundo”
∉
∉
Se necesita la instrucción de escritura
printf(“%formato”, variable).
Cuando lo que se escribe es un mensaje,
este se pone entre comillas dobles.
#include<stdio.h>
main()
{
printf(“Hola Mundo \n”);
}
Traducir a C Cálculo Sumatoria
∉
Se necesita la instrucción de lectura:
scanf(“%d”,&n)
#include <stdio.h>
main()
{
Int n, sumatoria;
scanf(“%d”,&n);
sumatoria=n*(n+1)/2;
printf(“%d”,sumatoia);
}