introducción - facultad de ciencias de la...

39

Upload: dinhdiep

Post on 02-Oct-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Introducción

Facultad de Ciencias de la Computación

Juan Carlos Conde R.

Object-Oriented Programming I

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Contenido

1 Conceptos de Programación

2 Programación por Computadora

3 Lenguajes de Programación

1 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Contenido

1 Conceptos de Programación

2 Programación por Computadora

3 Lenguajes de Programación

2 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

I ¾Cuál es el propósito es una computadora?

I ¾Qué signi�ca la palabra programación?

I ¾Qué es un programa de computadora?

I ¾De qué manera una computadora entiende un programa?

I ¾Cómo se escribe un programa?

3 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

La computadora

"Es un objeto que calcula especí�camente. Dispositivo electrónico programableque puede almacenar, recuperar y procesar datos."

4 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Programaciónparte I

Mucho de lo que hace todos los días lo hace de manera automática. Por for-tuna no es necesario que piense conscientemente que todo paso requerido en unproceso tan simple como dar vuelta a la página:

1. Levantar la mano.

2. Mover la mano a la derecha del libro.

3. Asir la esquina derecha de la página.

4. Mover la mano de derecha a izquierda hasta que la página esté colocadade modo que pueda leer lo que está sobre la otra página.

5. Soltar la página.

5 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Programaciónparte II

Piense en cuántas neuronas debe encender y cuántos músculos deben responder,todo en cierto orden o secuencia, para mover su brazo y su mano. Sin embargo,lo hace de manera inconsciente.

6 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Programaciónparte III

Mucho de lo que hace de manera inconsciente lo tuvo que aprender una vez.

Observe cómo un bebé se concentra en poner un pie antes que el otro mientrasaprende a caminar. Luego, observe a un grupo de niños de tres años que juegana la roña.

7 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Programaciónparte IV

I En una escala más amplia, las matemáticas nunca se podrían haberdesarrollado sin secuencias lógicas de pasos para resolver problemas ydemostrar teoremas.

I La producción en masa nunca habría funcionado sin operaciones quetienen lugar en cierto orden.

"La civilización se basa en el orden de las cosas y acciones... Se crea orden, demanera consciente e inconsciente, en un proceso al que se denomina

programación"

8 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Computadora + Programación

En base a lo anterior podemos distinguir dos cosas:

I Programa de computadora. Secuencia de instrucciones que realizará unacomputadora.

I Programación por computadora. Proceso de plani�car una secuencia depasos para que los desarrolle una computadora.

9 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Pero una computadora NO es �inteligente�; no es capaz de analizar un problemay proponer una solución.

entonces ¾Cómo se escribe un programa?

Un humano (el programador) debe analizar el problema, desarrollar una secuenciade instrucciones para resolver el problema y luego comunicarlo a la computadora.

10 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Contenido

1 Conceptos de Programación

2 Programación por Computadora

3 Lenguajes de Programación

11 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Procedimiento

Para escribir una secuencia de instrucciones que efectuará una computadora, sedebe ir por un proceso bifásico:

Fase de resolución del problema

1. Análisis y especi�cación. Entender (de�nir) el problema y lo que debehacer la solución.

2. Solución general (algoritmo). Desarrollar una secuencia lógica de pasosque resuelve el problema.

3. Veri�car. Seguir los pasos exactamente para ver si la solución resuelve enrealidad el problema.

12 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Procedimiento

Fase de implementación

1. Solución concreta (programa). Traducir el algoritmo en un lenguaje deprogramación.

2. Pruebas. Ver que la computadora siga las instrucciones. Después,comprobar de manera manual los resultados. Si encuentra errores, analiceel programa y el algoritmo para determinar la fuente de errores, y luegohacer correcciones.

Una vez que se ha escrito el programa, entra a la tercera fase: mantenimiento.

13 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Procedimiento

14 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Algoritmos

El programador comienza el proceso de programación al analizar el problema ydesarrollar una solución general llamada algoritmo.

Algoritmo

1. Def. Procedimiento paso a paso para resolver un problema en unacantidad de tiempo �nita.

2. Def. Secuencia �nita de pasos debidamente ordenados para resolver unproblema

Por lo tanto, un programa es simplemente un algoritmo que ha sido escrito parauna computadora, pero, ¾para cualquier computadora?.

15 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Ejemplo:

Suponga que un programador necesita un algoritmo para determinar el salariosemanal de un empleado. El algoritmo re�eja lo que se haría a mano:

1. Buscar la tasa de pago del empleado.

2. Determinar la cantidad de horas trabajadas durante la semana.

3. Si el número de horas trabajadas es menor o igual que 40, multiplique elnúmero de horas por la tasa de pago para calcular salarios regulares.

4. Si el número de horas trabajadas es mayor que 40, multiplique 40 por latasa de pago para calcular salarios regulares y luego multiplique ladiferencia entre el número de horas trabajadas y 40 por 1 1

2veces la tasa

de pago para calcular salarios de horas extras.

5. Sumar los salarios regulares a los de horas extras (si existen) paradeterminar salarios totales para la semana.

16 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Lenguaje de Programación

Cuando el programador está satisfecho con el algoritmo, lo traduce en un lenguajede programación.

Lenguaje de programación

Conjunto de reglas, símbolos y palabras especiales usado para implementar unprograma de computadora.

En este curso se usará uno de los lenguajes de programación más poderosos:C++.

17 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Lenguaje de Programación

18 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Lenguaje de Programación

¾Por qué implementaciones distintas?

I Un lenguaje de programación permite al programador cierta �exibilidad encómo se traduce un algoritmo.

I Dada esta �exibilidad, las personas adoptan sus propios estilos al escribirprogramas, del mismo modo que lo hacen al escribir historias cortas oensayos.

I En todo el libro se ofrecen consejos prácticos acerca del buen estilo deprogramación.

19 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Lenguaje de Programación

20 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

¾Existen Atajos en la Programación?

21 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Contenido

1 Conceptos de Programación

2 Programación por Computadora

3 Lenguajes de Programación

22 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Bases

Lenguaje de máquina

Lenguaje conformado por instrucciones en código binario, usado directamentepor la computadora.

Lenguaje ensamblador

Lenguaje de programación de bajo nivel en el que se emplea una ayudanemotécnica para representar cada una de las instrucciones del lenguaje demáquina para una computadora particular.

23 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Proceso Creativo

24 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Conceptos

I Ensamblador. Programa que traduce lenguaje ensamblador en código demáquina.

I Compilador. Programa que traduce lenguaje de alto nivel en código demáquina.

I Programa fuente. Programa escrito en lenguaje de programación de altonivel.

I Programa objeto. Versión del lenguaje de máquina de un programa fuente.

25 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Compilación en Diferentes S.O.

26 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Compilación y Ejecusión

27 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

TAREA 1:

Leer el documento �Orígenes de C++� ubicado en el directorio Web del curso,en la carpeta de /Recursos, y realizar una lista de las ideas principalesreferentes a la creación de C++.

TAREA 2:

Investigar la de�nición de los siguientes conceptos:

I API

I IDE

I SDK

I Framework

I Engine

28 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Información básica

Compiladores e Interpretes

Algunos lenguajes de programación LISP, Prolog y muchas versiones de BASIC,por ejemplo son traducidos por un intérprete en vez de un compilador. Unintérprete traduce y ejecuta cada instrucción del programa fuente, una a la vez.En contraste, un compilador traduce todo el programa fuente en lenguaje demáquina, después de lo cual tiene lugar la ejecución del programa objeto.

29 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Dato Curioso

El lenguaje Java emplea tanto un compilador como un intérprete. Primero, secompila un programa Java, no en un lenguaje de máquina de una determinadacomputadora, sino en un código intermedio llamado bytecode. A continuación,un programa llamado Máquina Virtual de Java (MVJ; JVM, por sus siglas eninglés) toma al programa bytecode y lo interpreta (traduce una instrucción debytecode en lenguaje de máquina y la ejecuta, traduce la siguiente y la ejecuta,y así sucesivamente). De esta manera, un programa de Java compilado enbytecode es transportable a muchas computadoras diferentes, siempre y cuandocada computadora tenga su propia MVJ que pueda traducir el bytecode en ellenguaje de máquina de la computadora.

30 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Estructuras de Control

Los lenguajes de programación requieren el uso de determinadas estructuras decontrol para expresar los algoritmos como programas.

Hay cuatro formas básicas de estructurar sentencias (instrucciones) en la mayoríade los lenguajes de programación: de modo secuencial, condicional, repetitivo ycon subprogramas.

Cada una de estas formas de estructurar sentencias controla el orden en el cualla computadora ejecuta las sentencias, razón por la que se llaman estructuras decontrol.

31 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Estructuras de Control

Una secuencia es una serie de sentencias que se ejecutan una después de otra.

32 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Estructuras de Control

Imagine que conduce un automóvil. Ir por un tramo recto de carretera es comoseguir una secuencia de instrucciones. Cuando llega a una bifurcación, debedecidir por dónde ir y luego tomar una vía u otra.

Esto es lo que hace la computadora cuando encuentra una estructura decontrol de selección (a veces llamada bifurcación o decisión) en un programa.Algunas veces se tiene que ir alrededor de una cuadra varias veces a �n dehallar un lugar para estacionarse. La computadora hace lo mismo cuandoencuentra un ciclo en un programa.

33 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Estructuras de Control

La selección, la estructura de control condicional, ejecuta sentencias diferentesdependiendo de determinadas condiciones.

34 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Estructuras de Control

La estructura de control repetitiva, el ciclo, repite sentencias mientras se satis-facen ciertas condiciones.

35 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Estructuras de Control

Todos los días, por ejemplo, usted sigue un proceso para ir de casa al trabajo.Tiene sentido entonces que alguien le dé instrucciones para llegar a una reunióndiciendo: �dirígete a la o�cina, luego recorre cuatro cuadras hacia el oeste�, sinespeci�car todos los pasos que tuvo que efectuar para llegar a la o�cina.

Los subprogramas permiten escribir partes de los programas por separado yluego ensamblarlos en una forma �nal. Pueden simpli�car en gran medida latarea de escribir programas grandes.

36 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

Estructuras de Control

El subprograma permite estructurar un programa al descomponerlo en unidadesmás pequeñas.

37 / 38

Conceptos de Programación Programación por Computadora Lenguajes de Programación

�La educación en computación no puede hacer a nadie un experto programadorasí como el estudio de pinceles y pigmentos no puede hacer a alguien un pintorexperto.�

[Eric S. Raymond]

Juan Carlos Conde [email protected]

38 / 38