Title: Introduccin a la Programacin
1Introducción a la Programación
- M.C. Juan Carlos Olivares Rojas
2Agenda
- 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.
31.1 Introducción
- 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
- Software
- Lenguaje
- Elementos del lenguaje
41.1 Introducción
- Código Fuente
- Lenguaje de programación
- Aplicación
- 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. - 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. - es el término que se utiliza para designar un
programa que se ejecuta en la computadora.
5Programació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
6Código fuente
7Tipos 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é.
8Tipos 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
9Tipos 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.
101.2 CaracterÃsticas de un programa
- Las caracterÃsticas que debe tener un programa
son - Legibilidad
- Fiabilidad
- Portabilidad
- Modificabilidad
- Eficiencia
111.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
12Escribir 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 humano-programador
.
Regla de oro de la programación   !! Nunca está
terminado del todo
Adolfo J. Millán
13Primeras 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-2-3
para IBM, y Excel para Macintosh.
14Aplicaciones 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.
15Lenguajes 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.
16Lenguajes de programación
17Lenguajes 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.
18Clasificación de los Lenguajes de Programación
Lenguajes de alto nivel
Lenguajes de bajo nivel
Lenguajes máquina
- Son directamente inteligibles por la computadora
(0 y 1)
- Sus instrucciones son muy fáciles de recordar
pero necesitan traducirse a lenguaje máquina por
medio de un compilador o intérprete.
Sus instrucciones son mas sencillas de recordar,
pero necesitan ser traducidas al lenguaje máquina.
Ensamblador
C
VisualBasic
Fortran
Pascal
19Ejemplo de instrucciones de suma y resta
20El proceso de la programación
- Recolección de información
- Análisis
- Diseño
- Desarrollo
- Pruebas
- Implementación
- Capacitación
21El proceso de la programación
- Programación Lineal o secuencial
- Programación Estructurada
- Programación Modular
- Programación Orientada a Objetos
22Traducción, Interpretación y Compilación
- Ensamblador.
- Preprocesador.
- Traductor.
- Interprete. ? Compilador.
23Traductores de lenguaje
- Son programas que traducen los programas fuente
(escritos en lenguaje de alto nivel) a lenguaje
máquina
PROGRAMA FUENTE
TRADUCTOR
LENGUAJE MAQUINA
24Los 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
25Paradigma 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.
26Paradigma 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.
27Tarea
- Investigar los siguientes términos.
- Clase
- Objeto
- Instancia
- Evento
- Propiedad/Atributo
- Herencia
- Encapsulamiento
- Polimorfismo
- Abstracción
- Modularidad
- JerarquÃa
- Algoritmo
- Diagrama de flujo
28Introducció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.
29Pasos para resolver un problema
- Definición del problema
- Diseño del algoritmo para resolverlo
- Transformación del algoritmo en un programa
- Ejecución y validación del programa
Problema
Diseño del algoritmo
Programa de computadora
Ejecución y validación
30Que 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
31CaracterÃ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
32Ejemplo de algoritmo
33Algoritmo 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
34Otros 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
35Preguntas, dudas y comentarios?