¿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.
(page 1)
¿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.
(page 2)
Niveles de los Lenguajes de Programación
(page 3)
Factores Importantes en la Programación
(page 4)
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.
- 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.
(page 5)
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.
(page 6)
Paradigmas de la Programación
- Describe la programación en términos del estado del programa y sentencias que cambian dicho estado.
- Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.
- 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.
(page 7)
Paradigmas de la Programación
- El paradigma orientado a objetos:
- La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que se comunican entre ellos para realizar tareas.
- 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.
(page 8)
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
(page 9)
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
(page 10)
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
(page 11)
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
(page 12)
Elementos de un Lenguaje de Programación
- Un sublenguaje para definir los datos
- Qué datos tenemos
- Cómo les llamamos
- Cómo son (números, caracteres, etc)
- Qué se puede hacer con ellos
- Un sublenguaje para definir los algoritmos
- Qué le hacemos a los datos
- En qué orden
- Cuantas veces
(page 13)
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
(page 14)
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:
- Diagramas de flujos (programación estructurada)
- Círculos y canales de mensaje (programación objetos)
- Pseudo Código
- Trazas personales
- Fórmulas matemáticas
- Y todo aquello que le ayude a representar el problema
(page 15)
Metodología de Desarrollo de Programas
- Codificación
- 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
- Errores de Sintaxis: Violan las reglas del lenguaje de programación. Un buen compilador localizará e identificará la mayoría de forma automática
- Errores Lógicos: Equivocaciones que causan que el programa se ejecute de forma inesperada o incorrecta
(page 16)
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:
- Instalación del hardware
- 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.
(page 17)
Análisis de Entrada Proceso Salida E-P-S
- Especificacines de Entrada: Información necesaria para la solución del problema
- ¿Qué datos son de entrada?
- ¿Cuantos datos se introducirán?
- ¿Cuales datos de entrada son válidos?
- Proceso: Operaciones o cálculos necesarios para encontrar la solución del problema
- ¿Qué tipo de ecuaciones?
- ¿Cuantas ecuaciones?
- ¿Cuáles transformaciones sobre los datos?
(page 18)
Análisis de Entrada Proceso Salida E-P-S
- Especificaciones de Salida: Resultados finales de los cálculos
- ¿Cuáles son los datos de salida?
- ¿Cuantos datos de salida se producirán?
- ¿Qué precisión tendrán los resultados?
- ¿Se debe imprimir un ecabezado?
(page 19)
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.
(page 20)
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
(page 21)
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
(page 22)
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
(page 23)
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
(page 24)
Ejercicios
- Diseñe un algoritmo para cambiar un caucho al carro
- Cree un algoritmo para hacer te
(page 25)