Download Introduction to the Programming

Document related concepts

Programación funcional wikipedia , lookup

Lisp wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Haxe wikipedia , lookup

Scala (lenguaje de programación) wikipedia , lookup

Transcript
Introducción a la
Programación
M.C. Juan Carlos Olivares Rojas
Agenda
1.1 Definición de programa y programación.
1.2 Características de un programa.
1.3 Modelos de programación. Clasificación de
lenguajes de programación.
1.4 Elementos de un programa.
1.5 Programación estructurada.
1.1 Introducción
• Software
•
• Lenguaje
•
• Elementos del lenguaje •
es el conjunto de programas y procedimientos
necesarios para hacer posible la realización de
una tarea específica, en contraposición a los
componentes físicos del sistema (hardware)
designa todas las comunicaciones animales,
basadas en la interpretación, incluyendo el
lenguaje humano
son los siguientes:
– identificadores: los nombres que se dan a
las variables
– Tipos de datos
– Palabras reservadas: las palabras que
utiliza el propio lenguaje
– Sentencias
– Bloques de código
– Comentarios
– Expresiones
– Operadores
1.1 Introducción
• Código Fuente
•
es un conjunto de líneas que conforman un
bloque de texto, escrito según las reglas
sintácticas
de
algún
lenguaje
de
programación destinado a ser legible por
humanos.
• 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
lenguaje informático.
• Aplicación
•
es el término que se utiliza para designar un
programa
que
se
ejecuta
en
la
computadora.
Programación vs Programa
• Programa: es la unión de una secuencia de instrucciones
que una computadora puede interpretar y ejecutar y una (o
varias) estructuras de datos que almacena la información
independiente de las instrucciones que dicha secuencia de
instrucciones maneja.
• Programación : Es la proyección, planificación o ejecución
de 1 tarea o proceso. Para otros autores, es describir lo que
debe hacer la computadora para resolver 1 problema
concreto
utilizando
1
determinado
lenguaje
de
programación
Código fuente
Tipos de Software
• Software de traducción: Con el que los
programadores
pueden
crear
otro
software. Un compilador y un intérprete
traducen un programa fuente a un
programa objeto.
• Software de uso general: Ofrece la
estructura para un gran número de
aplicaciones empresariales, científicas y
personales. La mayoría del software de
este tipo se vende como paquete, es
decir, con software y documentación
orientada al usuario. La creación de la
aplicación depende del usuario, del uso
que le dé.
Tipos de Software
• Software de aplicación: Sirve como herramienta
para elevar la productividad de los usuarios en la
resolución de problemas. Está diseñado y escrito
para realizar tareas específicas personales,
empresariales o científicas. El software de este tipo
procesa datos y genera información. Las
aplicaciones se clasifican en: Procesador de
Palabras, Planillas de Cálculo, Bases de Datos,
Gráficos,
Presentaciones,
Comunicaciones,
Buscador, Email, Administración de Proyectos.
• Software del sistema: Coordina las operaciones
de hardware y lleva a cabo las tareas ocultas que
el usuario rara vez observa. Controla o respalda a
los otros tipos de software. Dentro de este tipo de
soft se encuentran
Tipos de Software
• Software multiuso: Los paquetes de software
integrado cuentan con varias aplicaciones
diseñadas para trabajar en conjunto; estos
paquetes suelen incluir como mínimo, 5 tipos de
aplicaciones: procesador de textos, base de
datos, planilla de cálculo, gráficos y
telecomunicaciones.
• Software vertical: Aplicaciones diseñadas
específicamente para una empresa o industria
particular. Son mucho más costosas que las
aplicaciones de mercado masivo.
• Software a medida: Es el que se programa
específicamente para determinados clientes.
1.2 Características de un programa
• Las características que debe tener un
programa son:
– Legibilidad
– Fiabilidad
– Portabilidad
– Modificabilidad
– Eficiencia
1.2 Características de un programa
• P.E. Las características que tiene un
programa en C son:
– Tamaño pequeño.
– Uso extensivo de llamadas a funciones.
– Comandos breves (poco tecleo).
– Lenguaje estructurado.
– Programación de bajo nivel (nivel bit)
– Implementación de apuntadores - uso
extensivo de apuntadores para la memoria,
arreglos, estructuras y funciones
“Escribir un programa es establecer el
comportamiento de una máquina mediante
una serie de algoritmos que definirán su
funcionamiento. En el estado actual de la
ciencia este algoritmo se plasma por
escrito utilizando un lenguaje artificial
comprensible
por
el
humanoprogramador”.
Regla de oro de la programación:
!! Nunca está terminado del todo ¡¡
Adolfo J. Millán
Primeras aplicaciones
•
Primera Generación Aplicaciones balísticas del Ejército de EU.
•
Segunda Generación Sistemas de reservación en líneas aéreas, control
de tránsito aéreo, y simulaciones para uso general. Las empresas
comenzaron a aplicar las computadoras a tareas de almacenamiento de
registros, como manejo de inventaros, nómina y contabilidad.
•
Tercera Generación Los sistemas de la segunda generación eran
bastantes especializados. Se les diseñaba para procesar aplicaciones
tanto científicas como no científicas, pero no se procuraba que funcionaran
adecuadamente en los dos ambientes.
•
Cuarta Generación En el otoño de 1978 Personal Software presenta
VisiCalc, hoja de cálculo que facilitó el análisis numérico en el escritorio y
permitió a cualquier persona escribir lo que equivalía a programas sin tener
que aprender un lenguaje de programación complejo. A medida que
aparecía una nueva computadora, aparecía un nuevo programa clónico de
VisiCalc por ejemplo, SuperCalc para las computadoras CP/M, Lotus 1-23 para IBM, y Excel para Macintosh.
Aplicaciones Actuales
• La tendencia actual en
el
software
de
aplicaciones es la
integración.
Los
proveedores
de
software
se
ven
forzados a ofrecer
paquetes completos y
bien integrados para
sobrevivir.
Lenguajes de programación
• Objetivo de un leng. de programación: Trabajar de manera
organizada
• 1a Gen: Computadoras se programaban en código binario. Cada
modelo tiene su propio código, por esa razón se llama lenguaje de
máquina.
• 2a Gen: Los lenguajes simbólicos, simplifican la escritura de las
instrucciones y las hacen más legibles.
• 3a Gen: Los lenguajes de alto nivel sustituyen las instrucciones
simbólicas por códigos independientes de la máquina, parecidas al
lenguaje humano o al de las Matemáticas.
• 4a Gen: Surge la programación orientada a objetos. Están orientados
a resultados e incluyen lenguajes de interrogatorio o "query", con
bases de datos. Los programas son mucho más fáciles de escribir.
• 5a Gen: Lenguajes de inteligencia artificial.
Lenguajes de programación
Lenguajes de programación
Los lenguajes de programación se dividen en:
• Lenguaje máquina.
• Lenguaje de Bajo Nivel (códigos mnemotécnicos)
•Lenguaje Ensamblador
• Lenguaje de Alto Nivel.
•Utilizan declaraciones en los programas,
expresiones como palabras y expresiones
algebraicas.
Clasificación de los Lenguajes de
Programación
Lenguajes
máquina
Lenguajes
de bajo nivel
Son
directamente
inteligibles por
la computadora
(0 y 1)
Sus instrucciones
son mas sencillas
de recordar, pero
necesitan ser
traducidas al
lenguaje máquina.
Ensamblador
Lenguajes
de alto nivel
Sus instrucciones son
muy fáciles de
recordar pero
necesitan traducirse
a lenguaje máquina
por medio de un
compilador o
intérprete.
C++
VisualBasic
Fortran
Pascal
Ejemplo de instrucciones de
suma y resta
Lenguaje de alto
nivel
Lenguaje de
bajo nivel
(Ensamblador)
Lenguaje
máquina
+
ADD
100101
_
SUB
010011
El proceso de la programación
• Recolección de información
• Análisis
• Diseño
• Desarrollo
• Pruebas
• Implementación
• Capacitación
El proceso de la programación
• Programación Lineal o secuencial
• Programación Estructurada
• Programación Modular
• Programación Orientada a Objetos
Traducción, Interpretación y Compilación
•
Ensamblador.
•
Preprocesador.
•
Traductor.
• Interprete.

Compilador.
Traductores de lenguaje
• Son programas que traducen los programas
fuente (escritos en lenguaje de alto nivel) a
lenguaje máquina
PROGRAMA
FUENTE
TRADUCTOR
LENGUAJE
MAQUINA
Los traductores se dividen en:
• Compiladores. Traduce los programas
fuente (escritos en lenguaje de alto nivel)
a lenguaje máquina. Ej. C y FORTRAN
• Intérpretes. Es un traductor que toma un
programa fuente, lo traduce y a
continuación lo ejecuta. Ej. BASIC,
Smalltalk
Paradigma orientado a objetos vs
Paradigma imperativo/estructurado
• P.O.O
• Un método de implementación en el que los programas
son organizados como colecciones cooperativas de
objetos, cada uno de los cuales representa una
instancia de alguna clase, y cuyas clases son miembros
de jerarquías de clases unidas a través de una relación
de herencia.
• P.E.
• Este tipo de programación se basa en la modularidad de
los programas. Esto quiere decir que los programas se
dividen en módulos más pequeños, y cada uno realiza
una tarea específica. Así, la complejidad de un
problema determinado también se ve reducida al dividir
las tareas, que, en su conjunto, permiten la resolución
de éste.
Paradigma orientado a objetos vs
Paradigma imperativo/estructurado
• También debemos destacar que la depuración de
código orientado a objeto es algo más compleja
que la depuración de código estructurado. Esto no
quiere decir que nuestro código vaya a ser peor o
tener más errores, pero sí es cierto que en el caso
de producirse un error deberemos recorrer todo el
árbol de herencia para encontrarlo, algo que en
programación estructurada no tenemos que hacer.
Tarea
• Investigar los siguientes términos.
– Clase
– Objeto
– Instancia
– Evento
– Propiedad/Atributo
– Herencia
– Encapsulamiento
– Polimorfismo
– Abstracción
– Modularidad
– Jerarquía
– Algoritmo
– Diagrama de flujo
Introducción a la programación
La principal razón para que
las personas aprendan
lenguajes de
programación es utilizar
la computadora como
una herramienta para la
resolución de problemas.
Pasos para resolver un problema:
1. Definición del problema
2. Diseño del algoritmo para resolverlo
3. Transformación del algoritmo en
programa
4. Ejecución y validación del programa
Problema
Diseño del
algoritmo
Programa
de
computadora
un
Ejecución
y
validación
¿Que es un algoritmo?
Un algoritmo es la secuencia ordenada
de pasos que conducen a la solución de
un problema dado, y puede ser
expresado en lenguaje natural, por
ejemplo el castellano
Características de un algoritmo
• Preciso. Indicar el orden de realización de
cada paso
• Definido. Si se sigue un algoritmo dos veces,
se debe obtener el mismo resultado cada
vez.
• Finito. Debe terminar el algún momento
Ejemplo de algoritmo
Algoritmo para hacer una
taza de té
Inicio
Tomar la tetera
Llenarla de agua
Encender el fuego
Mientras no hierva el agua
Esperar
Introducir una bolsa de té en la tetera
Vaciar el té en la taza
fin
Otros ejemplos de algoritmos
• Las instrucciones o serie de pasos que sigues para grabar
un número telefónico en tu celular.
• Las instrucciones que te dan para resolver un examen.
• Los pasos que sigues para prender el carbón para una
carne asada
• El procedimiento que sigues para inscribirte
• EL procedimiento para obtener tu pasaporte
• La receta que sigues para preparar un pastel
• Los pasos para invitar a alguien al cine
¿Preguntas, dudas y comentarios?