INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

23
INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0

Transcript of INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

Page 1: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

INTRODUCCION

C++

Preparado por: Nelliud D. Torres

Enero/2003

Versión 1.0

Page 2: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

I.I. Problem-SolvingProblem-Solving

a) Entender el problema (definirlo) y lo que la solución debe ser.

b) Crear una secuencia de pasos que resuelvan el problema.

c) Verificar los pasos para asegurarse que la solución realmente resuelve el problema

LAS TRES FASES DE IMPLEMENTACIÓN

Page 3: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

II.II. Implementation PhaseImplementation Phase

a) Concretar la solución (programa). Convertir el algoritmo a un lenguaje de programación.

b) Probar el programa y corregir los errores si es que tiene.

III.III. Maintenance PhaseMaintenance Phase

a) Utilizar el programa en producción.

b) Modificar el programa para que se atempere a los nuevos requerimientos o para arreglar errores de programación.

LAS TRES FASES DE IMPLEMENTACIÓN (2)

Page 4: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

PRODUCIÓN

EXEDATA

SOURCEREPORT

TEMP

PRUEBA

EXEDATA

SOURCEREPORT

TEMP

CONCEPTOS DE INSTALACIÓN Y EJECUCIÓN DE PROGRAMAS EN UN SISTEMA

COMPUTARIZADO

Page 5: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

1.1. ProgrammingProgramming – Planificar la ejecución de una tarea o evento.

2.2. ComputerComputer – Un equipo (“device”) el cual puede almacenar, obtener y procesar data.

3.3. Computer programComputer program – Una secuencia de intrucciones a ser ejecutadas por una computadora.

4.4. Computer programmingComputer programming – El arte de planificar una secuencia de pasos para que una computadora los ejecute.

VOCABULARIO

Page 6: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

C + +

JA V A

A D A

C O B O L

A lgor i tm o(P se ud ocód ig o)

Un Algoritmo traducido a diferentes lenguajes

Page 7: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

F u la n itoC + +

M en ga n itaC + +

S uta n itoC + +

M ingu itaC + +

A lgor i tm o(P se ud ocód ig o)

Un Algoritmo traducido por diferentes personas

Page 8: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

1.1. DocumentaciDocumentaciónón – Texto escrito y comentarios que hacen que el programa sea fácil para otros de entender.

2.2. InformaciónInformación –Cualquier conocimiento que puede ser comunicado.

3.3. DataData – Factores crudo almacenados de tal forma que la computadora puede acederlos.

Ejemplo:

Data = Horas Trabajadas (40) Rate (5.55)

Información = Sueldo Bruto = 40 x 5.55 = $ 222.00

VOCABULARIO (2)

Page 9: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

VOCABULARIO (3)

1.1. Machine languageMachine language – Instrucciones codificadas en binario (ceros y unos) que la puede utilizar directamente la computadora.

2.2. Assembly languageAssembly language – Lenguaje de programación de bajo nivel (“low level”) que utiliza mnemónicos para representar cada una de las intrucciones en “machine language” de una computadora en particular.

3.3. AssemblerAssembler – Programa que traduce de “assembly” a “machine language”.

Ejemplo:

Assembly Language Machine Language

ADD 100101

MOV 010011

Page 10: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

VOCABULARIO (4)

1.1. CompilerCompiler – Programa que valida primero un programa de alto nivel (“high level”) y luego lo traduce a “machine code”.

2.2. InterpretadorInterpretador – Programa que traduce las intruciones de un programa de alto nivel línea por línea.

3.3. Source programSource program – Un programa escrito en lenguaje de alto nivel. Ejemplo: C++, COBOL, PASCAL, RPG

4.4. Object programObject program – La versión en “machine language” del “source program”.

Page 11: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

PLATAFORMAS

W IN D O W S P CC o m p uta do ra

W IN D O W S P CM ach in e lan gu age

W IN D O W S P CC o m p ila do r d e C + +

U N IX W O R K S T A T IO NC o m p uta do ra

U N IX W O R K S T A T IO NM ach in e lan gu age

U N IX W O R K S T A T IO NC o m p ila do r d e C + +

M A C INT O S HC o m p uta do ra

M A C INT O S HM ach in e lan gu age

M A C INT O S HC o m p ila do r d e C + +

P rog ra m a en C + +

Los lenguajes de alto nivel permiten que un programa pueda ejecutarse en diferentes plataformas.

Page 12: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

COMPILACIÓNCrear el

“source program”

Invocar el compilador

Arreglar los errores.

Errores?

El compilador crea el

“object program”A

Y

N

Page 13: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

COMPILACIÓN (CONT.)

El “object program” se convierte a un

formato ejecutable.(“machine language”)

Para poder ejecutarse, el programa tiene

que cargarse (“loading”) a memoria.

A

B

Page 14: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

EJECUTAR

Datos de Entrada

(“input”)

La computadora ejecuta las instruciones que están en

“machinelanguage” del “source program” compilado.

Se obtienen los resultados de la

corrida del programa.

B

Page 15: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

COMPILADOR VS INTERPRETADOR

COMPILAR

1. Valida que todas las intrucciones estén escritas correctamente.

2. Convierte el “source program” a “object program”.

3. La computadora puede ejecutar ese “object program” una vez se prepare para correr en memoria.

INTERPRETAR

1. Valida cada línea por separado.

2. Convierte esa línea a “machine language” y la ejecuta.

3. Prosigue con la próxima instrucción y repite los pasos 1 y 2.

4. En caso de encontrar una instrucción mal escrita. El interpretador aborta.

Page 16: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

COMPILADOR VS INTERPRETADOR – VENTAJAS

COMPILADOR

1. Se ejecuta mucho mas rápido.

2. Te verifica la sintaxis de todo el programa desde el mismo principio.

INTERPRETADOR

1. Puede correr al momento aunque existan errores, lo cual permite al programador depurar (“debug”) el programa mas eficientemente.

2. Comienza a ejecutarse con mayor rapidez ya que no tiene que esperar a validar todas las intrucciones del programa.

Page 17: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

COMPILADOR

1. Si no están todas las instrucciones escritas corretamente, no se podrá ejecutar.

2. El compilador esta atado a la plataforma en la que está generando el “object program”.

INTERPRETADOR

1. Las instrucciones se ejecutan en promedio mas lentas que las del compilador.

2. La forma de comunicar al programador los errores podría no ser tan claros como los mensajes que suele enviar el compilador.

COMPILADOR VS INTERPRETADOR – DESVENTAJAS

Page 18: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

JAVA – LA EXCEPCIÓNJAVA utiliza ambos conceptos del compilador y del interpretador. Trabaja de la siguiente forma.

1. Un programa en JAVA es compilado, pero no en un “machine language” de una computadora en particular, sino en un código intermedio llamado “bytecode”

2. Luego, en cualquier plataforma, debe haber un programa llamado “Java Virtual Machine” (JVM) que interpreta ese código intermedio (“bytecode”) y lo traduce a intrucciones que son exclusivas de esa plataforma (PC, UNIX, MAC, etc.).

3. Esto permite que JAVA se pueda ejecutar en cualquier plataforma sin la necesidad de recompilar el código.

Page 19: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

DIAGRAMA DE JAVA“Source program” hecho en JAVA.

Compilador de JAVA.

El compilador genera un código intermedio llamado “bytecode”.

El JVM interpreta ese código intermedio y lo ejecuta.

Page 20: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

HISTORIA DE C++

1. A finales de los 60 y principio de los 70, Dennis Ritchi creo el lenguaje de programación C en los laboratorios ATT&T Bell.

2. C combina capacidades de los lenguajes bajo nivel (“low level”) con la facilidad de uso y portabilidad de los lenguajes de alto nivel (“high-level”).

3. El 90 porciento del código UNIX es en C y solo el 10 porciento es lenguaje “Asembly”.

4. Su nombre surge de otro lenguaje de la época llamado BCPL (“Basic Combined Programming Lamguage”) al cual se le hacía referencia como “B”. Dennis tomo capacidades de ese lenguaje y penso que era natural, que el nuevo lenguage creado se llamara “C”.

Page 21: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

HISTORIA DE C++ (CONT.)

5. En 1985 Bjarne inventa C++ el cual tiene las capacidades de C combinado con otros conceptos modernos.

6. El símbolo ++ significa incrementación y por lo tanto sugiere la idea de un lenguaje mejorado. Prefirieron eso a llamar a este nuevo lenguaje “D”.

7. En 1988 se estandariza el C++ por una unión de dos comites (ISO y ANSI). ISO = International Standard Organization. ANSI = American National Standards Institute.

Page 22: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

LAS ESTRUCTURAS DE CONTROLI. Secuencia

II. Selección (IF)

III. Ciclo (LOOP)

IV. Sub-programa

V. CASE (no ilustrada)

VI. Evento (EVENT)

Page 23: INTRODUCCION C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0.

FORMAS DE TRABAJAR UN PROBLEMA

S ub -p ro b lem afá c il

S ub -su b-prob lem afá c il

S ub -su b-prob lem afá c il

S ub -p ro b lem ad ifíc il

S ub -p ro b lem afá c il

P ro b lem aco m ple jo

Método que se utilizará durante el curso.