introducción a la programación m.c. juan carlos olivares rojas

35
Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Upload: rodrigo-sarinana

Post on 11-Apr-2015

113 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Introducción a la Programación

M.C. Juan Carlos Olivares Rojas

Page 2: 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.

Page 3: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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

Page 4: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

1.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.

Page 5: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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

Page 7: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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é.

Page 8: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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

Page 9: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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.

Page 10: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

1.2 Características de un programa

• Las características que debe tener un programa son:

– Legibilidad

– Fiabilidad

– Portabilidad

– Modificabilidad

– Eficiencia

Page 11: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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

Page 12: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

““Escribir un programa es establecer el Escribir un programa es establecer el comportamiento de una máquina mediante comportamiento de una máquina mediante una serie de algoritmos que definirán su una serie de algoritmos que definirán su funcionamiento.  En el estado actual de la funcionamiento.  En el estado actual de la ciencia este algoritmo se plasma por ciencia este algoritmo se plasma por escrito utilizando un lenguaje artificial escrito utilizando un lenguaje artificial comprensible por el humano-comprensible por el humano-programador”.programador”.

Regla de oroRegla de oro de la programación:    !! Nunca está terminado del todo ¡¡ de la programación:    !! Nunca está terminado del todo ¡¡

Adolfo J. MillánAdolfo J. Millán

Page 13: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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-2-3 para IBM, y Excel para Macintosh.

Page 14: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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.

Page 15: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Lenguajes de programación• Objetivo de un leng. de programación: Trabajar de manera Objetivo de un leng. de programación: Trabajar de manera

organizadaorganizada

• 1a Gen: Computadoras se programaban en código binario. 1a Gen: Computadoras se programaban en código binario. Cada modelo tiene su propio código, por esa razón se llama Cada modelo tiene su propio código, por esa razón se llama lenguaje de máquina.lenguaje de máquina.

• 2a Gen: Los lenguajes simbólicos, simplifican la escritura de 2a Gen: Los lenguajes simbólicos, simplifican la escritura de las instrucciones y las hacen más legibles.las instrucciones y las hacen más legibles.

• 3a Gen: Los lenguajes de alto nivel sustituyen las 3a Gen: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las máquina, parecidas al lenguaje humano o al de las Matemáticas.Matemáticas.

• 4a Gen: Surge la programación orientada a objetos. Están 4a Gen: Surge la programación orientada a objetos. Están orientados a resultados e incluyen lenguajes de orientados a resultados e incluyen lenguajes de interrogatorio o "query", con bases de datos. Los programas interrogatorio o "query", con bases de datos. Los programas son mucho más fáciles de escribir.son mucho más fáciles de escribir.

• 5a Gen: Lenguajes de inteligencia artificial.5a Gen: Lenguajes de inteligencia artificial.

Page 16: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Lenguajes de programación

Page 17: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Los lenguajes de programación se dividen en:Los lenguajes de programación se dividen en:

• Lenguaje máquina. Lenguaje máquina.

• Lenguaje de Bajo Nivel (códigos mnemotécnicos)Lenguaje de Bajo Nivel (códigos mnemotécnicos)

•Lenguaje EnsambladorLenguaje Ensamblador

• Lenguaje de Alto Nivel.Lenguaje de Alto Nivel.

•Utilizan declaraciones en los programas, Utilizan declaraciones en los programas, expresiones como palabras y expresiones expresiones como palabras y expresiones algebraicas.algebraicas.

Lenguajes de programación

Page 18: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Clasificación de los Lenguajes de Programación

LenguajesLenguajes máquinamáquina

Son Son directamente directamente

inteligibles inteligibles por la por la

computadora computadora (0 y 1)(0 y 1)

LenguajesLenguajes de alto nivelde alto nivel

Sus instrucciones Sus instrucciones son muy fáciles de son muy fáciles de

recordar pero recordar pero necesitan necesitan

traducirsetraducirse a a lenguaje máquina lenguaje máquina por medio de un por medio de un

compilador o compilador o intérprete.intérprete.

LenguajesLenguajes de bajo nivelde bajo nivel

Sus Sus instrucciones instrucciones

son mas son mas sencillas de sencillas de

recordar, pero recordar, pero necesitan ser necesitan ser traducidas traducidas al al

lenguaje lenguaje máquina.máquina.Ensamblador C++

VisualBasic

Fortran

Pascal

Page 19: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Ejemplo de instrucciones de suma y resta

Lenguaje de alto nivel

Lenguaje de bajo nivel

(Ensamblador)

Lenguaje máquina

+ ADD 100101

_ SUB 010011

Page 20: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

• Recolección de informaciónRecolección de información

• AnálisisAnálisis

• DiseñoDiseño

• DesarrolloDesarrollo

• PruebasPruebas

• ImplementaciónImplementación

• CapacitaciónCapacitación

El proceso de la programación

Page 21: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

• Programación Lineal o secuencialProgramación Lineal o secuencial

• Programación EstructuradaProgramación Estructurada

• Programación ModularProgramación Modular

• Programación Orientada a ObjetosProgramación Orientada a Objetos

El proceso de la programación

Page 22: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

• Ensamblador.Ensamblador.

• Preprocesador.Preprocesador.

• Traductor.Traductor.

• Interprete.Interprete. Compilador. Compilador.

Traducción, Interpretación y Compilación

Page 23: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Traductores de lenguaje

• Son programas que traducen los programas fuente (escritos en lenguaje de alto nivel) a lenguaje máquina

PROGRAMAPROGRAMAFUENTEFUENTE TRADUCTORTRADUCTOR LENGUAJELENGUAJE

MAQUINAMAQUINA

Page 24: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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

Page 25: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Paradigma orientado a objetos vs Paradigma imperativo/estructurado• P.O.OP.O.O

• Un método de implementación en el que los programas Un método de implementación en el que los programas son organizados como colecciones cooperativas de son organizados como colecciones cooperativas de objetos, cada uno de los cuales representa una objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son miembros instancia de alguna clase, y cuyas clases son miembros de jerarquías de clases unidas a través de una relación de jerarquías de clases unidas a través de una relación de herencia.de herencia.

• P.E.P.E.

• Este tipo de programación se basa en la modularidad de Este tipo de programación se basa en la modularidad de los programas. Esto quiere decir que los programas se los programas. Esto quiere decir que los programas se dividen en módulos más pequeños, y cada uno realiza dividen en módulos más pequeños, y cada uno realiza una tarea específica. Así, la complejidad de un una tarea específica. Así, la complejidad de un problema determinado también se ve reducida al dividir problema determinado también se ve reducida al dividir las tareas, que, en su conjunto, permiten la resolución las tareas, que, en su conjunto, permiten la resolución de éste. de éste.

Page 26: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

• También debemos destacar que la depuración de También debemos destacar que la depuración de código orientado a objeto es algo más compleja código orientado a objeto es algo más compleja que la depuración de código estructurado. Esto no que la depuración de código estructurado. Esto no quiere decir que nuestro código vaya a ser peor o quiere decir que nuestro código vaya a ser peor o tener más errores, pero sí es cierto que en el caso tener más errores, pero sí es cierto que en el caso de producirse un error deberemos recorrer todo el de producirse un error deberemos recorrer todo el árbol de herencia para encontrarlo, algo que en árbol de herencia para encontrarlo, algo que en programación estructurada no tenemos que programación estructurada no tenemos que hacer.hacer.

Paradigma orientado a objetos vs Paradigma imperativo/estructurado

Page 27: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Tarea• Investigar los siguientes términos.

– Clase– Objeto– Instancia– Evento– Propiedad/Atributo– Herencia– Encapsulamiento– Polimorfismo– Abstracción– Modularidad– Jerarquía– Algoritmo– Diagrama de flujo

Page 28: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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.

Page 29: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Pasos para resolver un problema:

1. Definición del problema

2. Diseño del algoritmo para resolverlo

3. Transformación del algoritmo en un programa

4. Ejecución y validación del programa

ProblemaProblema Diseño del Diseño del algoritmoalgoritmo

Programa Programa de de

computadoracomputadora

Ejecución Ejecución y y

validaciónvalidación

Page 30: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

¿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

Page 31: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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

Page 32: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Ejemplo de algoritmo

Page 33: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

Algoritmo para hacer una taza de té

InicioTomar la tetera

Llenarla de agua

Encender el fuego

Mientras no hierva el aguaEsperar

Introducir una bolsa de té en la tetera

Vaciar el té en la taza

fin

Page 34: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

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

Page 35: Introducción a la Programación M.C. Juan Carlos Olivares Rojas

¿Preguntas, dudas y comentarios?