Download Fases y Métodos - Web del Profesor

Document related concepts

Programación funcional wikipedia , lookup

Ocaml wikipedia , lookup

Lisp wikipedia , lookup

Oz (lenguaje de programación) wikipedia , lookup

Clojure wikipedia , lookup

Transcript
¿Qué es Programar?
Es la acción de escribir instrucciones correctas para que sean interpretadas por una máquina
¿En que medida nos compete programar?
Depende de nuestro interés. Sin embargo, es una de las habilidades exigidas con frecuencia
en el mercado. Saber programar facilita la compresión de muchos sistemas.
¿Que es un Lenguaje de Programación?

Es una técnica estándar de comunicación que permite expresar las instrucciones que
han de ser ejecutadas en una computadora.

Consiste en un conjunto de reglas sintácticas y semánticas que definen un programa
informático.

Un lenguaje de programación permite a un programador especificar de manera
precisa: sobre qué datos una computadora debe operar, cómo deben ser estos
almacenados y transmitidos y, qué acciones debe tomar bajo una variada gama de
circunstancias.
Niveles de los Lenguajes de Programación

Lenguaje Natural

Lenguaje de Programación

Compilador / Intérprete

Lenguaje de Máquina
Factores Importantes en la Programación

Sintaxis

Semántica

Sistema de tipos

Errores / Excepciones
Paradigmas de la Programación

Un paradigma es un conjunto virtual de elementos de una misma clase gramatical,
que pueden aparecer en un mismo contexto: Así, los sustantivos: caballo, rocín,
corcel, jamelgo, etc. que pueden figurar en el contexto "El -- relincha", constituyen
un paradigma

Un paradigma es una forma de representar y manipular el conocimiento.

En el campo de la programación los paradigmas representan un enfoque particular o
filosofía para la construcción del software.
o
o
No es mejor uno que otro sino que cada uno tiene ventajas y desventajas.
También hay situaciones donde un paradigma resulta más apropiado que
otro.
Paradigmas de la Programación
Algunos ejemplos de paradigmas de programación:




El paradigma imperativo es considerado el más común y está representado, por
ejemplo, por el C o por BASIC.
El paradigma funcional está representado por la familia de lenguajes LISP, en
particular Scheme.
El paradigma lógico, un ejemplo es PROLOG.
El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos
es Smalltalk. Nota:
Si bien puede seleccionarse la forma pura de estos paradigmas al momento de programar,
en la práctica es habitual que se mezclen. Tal es el caso de lenguajes como C++, Delphi o
Visual Basic, los cuales combinan el paradigma imperativo con el orientado a objetos.
Paradigmas de la Programación

El paradigma imperativo:
o
Describe la programación en términos del estado del programa y sentencias
que cambian dicho estado.
o
Los programas imperativos son un conjunto de instrucciones que le indican
al computador cómo realizar una tarea.
o
La implementación de hardware de la mayoría de computadores es
imperativa; prácticamente todo el hardware de los computadores está
diseñado para ejecutar código de máquina, que es nativo al computador,
escrito en una forma imperativa.
Paradigmas de la Programación

El paradigma orientado a objetos:
o
La programación orientada a objetos expresa un programa como un conjunto
de estos objetos, que se comunican entre ellos para realizar tareas.
o
Esto difiere de los lenguajes procedurales tradicionales, en los que los datos
y los procedimientos están separados y sin relación. Estos métodos están
pensados para hacer los programas y módulos más fáciles de escribir,
mantener y reutilizar.
Etapas de la Compilación

Programa ---> Análisis Léxico / Sintaxis

Normalización ---> Análisis semántico

Código correcto ---> Traducción a lenguaje de máquina

Código de Máquina
Lenguaje de Máquina
Ejemplo
Cód. de Oper. Dirección Significado
00010101 10000001 Cargar contenido de la dir 129 al registro
00010111 10000010 Sumar contenido de la dir 130 al registro
00010110 10000011 Almacenar contenido del registro en la dir 131

El computador entiende el lenguaje de máquina
Lenguaje de Ensamblador
Ejemplo
Cód. de Oper. Dirección Ensamblador
00010101 10000001 LOAD A
00010111 10000010 ADD B
00010110 10000011 STORE C



Un programa en ensamblador debe ser traducido a lenguaje de máquina
El lenguaje ensamblador require que el programador tenga un conocimiento
profundo de la arquitectura de la máquina
Es dependiente de la máquina y un programa debe ser rescrito si se va a implantar
en otra arquitectura
Lenguaje de Alto Nivel
Ejemplo
Cód. de Oper. Dirección Ensamblador Lenguaje Alto Nivel
00010101 10000001 LOAD A
00010111 10000010 ADD B
00010110 10000011 STORE C C = A + B




Un programa de alto nivel también debe ser traducido a lenguaje de máquina
El lenguaje de alto nivel hace a los programas portátiles
Facilita la expresión de la ideas.
Evita en una mayor medida que se comentan errores

Ofrece una visión más amplia del problema
Elementos de un Lenguaje de Programación

Un sublenguaje para definir los datos
o Qué datos tenemos
o Cómo les llamamos
o Cómo son (números, caracteres, etc)
o Qué se puede hacer con ellos

Un sublenguaje para definir los algoritmos
o Qué le hacemos a los datos
o En qué orden
o Cuantas veces
Metodología de Desarrollo de Programas

Actualmente se cuenta con distintas metodologías para el desarrollo de programas:
en espiral, modular, etc

Sin embargo, en este curso aprenderemos primero a comprender el problema. En
otros cursos podremos profundizar en las metodologías
Metodología de Desarrollo de Programas

Diseño del Algoritmo: Descripción de una secuencia finita y ordenada de pasos (sin
ambigüedades) que conducen a la solución de un problema

Herramientas de Diseño:
o Diagramas de flujos (programación estructurada)
o Círculos y canales de mensaje (programación objetos)
o Pseudo Código
o Trazas personales
o Fórmulas matemáticas
o Y todo aquello que le ayude a representar el problema
Metodología de Desarrollo de Programas

Codificación
o Traducción del algoritmo a un lenguaje de programación adecuado

Corrida en Frío: Prueba manual de la correctitud del programa

Depuración del Programa: Identificación y eliminación de errores
o
Errores de Sintaxis: Violan las reglas del lenguaje de programación. Un
buen compilador localizará e identificará la mayoría de forma automática
o
Errores Lógicos: Equivocaciones que causan que el programa se ejecute de
forma inesperada o incorrecta
Metodología de Desarrollo de Programas

Ejecución del Programa: Ejecución del código binario que ha resultado después del
proceso de traducción a lenguaje de máquina. Esto se hace instrucción por
instrucción.

Puesta en Operación:
o Instalación del hardware
o Instalación y configuración del programa

Mantenimiento del programa: Comienza tan pronto el programa es puesto en
producción. Permite corregir defectos menores, agregar nuevas funcionalidades, etc.
Análisis de Entrada Proceso Salida E-P-S

Especificacines de Entrada: Información necesaria para la solución del problema
o ¿Qué datos son de entrada?
o ¿Cuantos datos se introducirán?
o ¿Cuales datos de entrada son válidos?

Proceso: Operaciones o cálculos necesarios para encontrar la solución del problema
o ¿Qué tipo de ecuaciones?
o ¿Cuantas ecuaciones?
o ¿Cuáles transformaciones sobre los datos?
Análisis de Entrada Proceso Salida E-P-S

Especificaciones de Salida: Resultados finales de los cálculos
o ¿Cuáles son los datos de salida?
o ¿Cuantos datos de salida se producirán?
o ¿Qué precisión tendrán los resultados?
o ¿Se debe imprimir un ecabezado?
Diseño de un Algoritmo

Un algoritmo debe ser preciso e indicar el orden en que se debe realizar cada paso.

Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algún
momento, es decir, debe poseer un número finito de pasos.
Diseño de un Algoritmo: Ejemplo 1
Suponga que tiene un examen de esta materia. Según una decisión aleatoria cada estudiante
va a ver un espectáculo o estudia para el examen. Realizar el análisis de EPS y diseñar un
algoritmo para representar el problema.

Entrada: Una moneda para tomar la decisión

Proceso: Lanzar la moneda y luego tomar la decisión

Salida: Resultado en el examen
Diseño de un Algoritmo: Ejemplo 1
Algoritmo EstudiarONoEstudiar








0 Inicio
1 Lanzar una moneda
2 Si el resultado es cara, ir a 5
3 Si el resultado es sello, estudiar para el examen
4 Ir a 6
5 Ver un espectáculo
6 Presentar el examen al día siguiente
7 Fin
Diseño de un Algoritmo: Ejemplo 2
Calcular el área de un paralelepípedo de dimensiones: LARGO, ANCHO y ALTO

Entrada: Tres números reales (LARGO, ANCHO y ALTO)

Proceso: Calcular el area

Salida: Número real que representa el área
Diseño de un Algoritmo: Ejemplo 2










0 Inicio
1 Escribir("Largo del paralelepípedo:")
2 Leer LARGO
3 Escribir("Ancho del paralelepípedo:")
4 Leer ANCHO
5 Escribir("Alto del paralelepípedo:")
6 Leer ALTO
7 AREA = 2 * ( LARGO*ALTO + LARGO*ANCHO + ANCHO*ALTO )
8 Escribir (AREA)
9 Fin
Ejercicios

Diseñe un algoritmo para cambiar un caucho al carro

Cree un algoritmo para hacer café