Ambientes de Programacion
-
Upload
aldo-zanabria -
Category
Documents
-
view
1.415 -
download
0
description
Transcript of Ambientes de Programacion
![Page 1: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/1.jpg)
Ambientes de programación
![Page 2: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/2.jpg)
2
Herramientas a usar
Lenguaje C++ Sistemas Windows y Linux/Unix Ambientes de programación ya instalados en
el laboratório Ambiente de programación básico y de fácil
instalación
![Page 3: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/3.jpg)
3
Objetivos
Conocer ambientes de programación multiplataforma (Unix/Win/Mac)
Escribir código portable Mantenimiento de código multiplataforma
debuggers Control de versiones
![Page 4: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/4.jpg)
4
Ambientes de programación multiplataforma Unix
Herramientas de construccion de software Makefile (1970), cmake, scons, jam, Otros
IDEs KDevelop, mono
Windows Ms .Net Codegear
Multiplataforma?
![Page 5: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/5.jpg)
5
Make
Default en sistemas UNIX Windows requiere instalar MSYS (minimal unix system) cerca de
5Mb El comando make permite compilar programas con un numero
grande de archivos, de acuerdo a un conjunto de dependencias Al ejecutar “make” sin argumento busca automáticamente el
archivo Makefile, en otro caso es necesario especifical el nombre con “make –f archivo”
Ejemplo:main.obj : main.c
gcc -c main.c
![Page 6: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/6.jpg)
6
Ejemplo completo
project.exe : main.obj io.obj
gcc -o project.exe main.obj io.obj
main.obj : main.c
gcc -c main.c
io.obj : io.c
gcc - c io.c
![Page 7: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/7.jpg)
7
Make
Problemas: shell scripts complejos
Difíciles de mantener Difíciles para debugar Puede ser necesario usar diferentes comandos shell en
plataformas diferentes
Alternativas Scons
Basado en lenguaje python
![Page 8: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/8.jpg)
8
MSYS como herramienta de desarrollo en Windows Necesario un compilador
MinGW (cerca de 100Mb) Compilador GNU C++ para windows Compatible con UNIX C++ estandar
Un IDE básico Editor Crimson + mingw + msys + make
![Page 9: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/9.jpg)
9
Ambientes de programación completos Ms .net
En sistemas Unix puede ser ejecutado con mono con restricciones
Qt Nokia Multiplataforma
Qt Creator
Otros
![Page 10: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/10.jpg)
10
Escribir código portable
Sinónimo de multiplataforma No Ms MFC Ms Forms parcialmente con mono C++ Standard
Soportado por Visual Studio C++ con diferencias mínimas
![Page 11: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/11.jpg)
11
Mantenimiento y depuración de código Unix
Gdb Windows
Ms Visual Studio
![Page 12: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/12.jpg)
12
Control de versiones
Una forma de manejar complejidad y modificar vía colaboración (equipo de trabajo), comunicación, y coordinación.
Una central de almacenamiento para el proyecto (documentación, código, etc.) Miembros del equipo
“check out” y “check in” en archivos modificados. Mantener cambios de cada archivo del proyecto (historial).
Cuando un miembro del equipo modifica un archivo y realiza un check in, el VCS incrementa un número de revisión y mantiene la versión anterior del archivo.
Versiones anteriores de cada archivo siempre pueden ser recuperadas.
Versiones diferentes archivos de texto pueden ser comparados para ver los cambios o pequeñas diferencias.
![Page 13: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/13.jpg)
13
Version Control System Conceptual Design
VCS Server
John
Mary
Repository
checkout
checkout
edit
commit
update
Working copies
Working copies
editcommit
Conflicto!Mary no tiene los ultimos cambios de John’s
![Page 14: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/14.jpg)
14
Resolviendo de conflictos Commit Solución
Cuando Mary intenta enviar (commit) sus modificaciones, ve que hay un conflicto.
Mary debe hacer una actualizaciónpara obtener los cambios de John.
Ahora Mary debe resolver el conflicto manualmente con sus cambios y los de John.
Finalmente, Mary puede enviar el archivo
![Page 15: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/15.jpg)
15
Resumen VCS
checkout Crear una copia local del repositorio.
commit Enviar las modificaciones para el repositorio.
update Actualiza a su copia local las ultimas versiones de
archivos del repositorio. Conflictos
Resolver conflictos manualmente entre su copia local y la ultima versión del repositorio.
![Page 16: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/16.jpg)
16
Sistemas de control de version CVS SVN Trac
![Page 17: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/17.jpg)
Introducción a los lenguajes de alto nivel
![Page 18: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/18.jpg)
18
Objetivos
Comprender
Donde estamos
Lenguajes de alto nivel
Introducción al lenguaje C++
Almacenamiento de datos
Tipos de sentencias
![Page 19: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/19.jpg)
19
Objectivos
Juntando las piezas
Manejando complexidad
Programación orientada a objetos
Programación Gráfica
El objetivo principal: Ingeniería de software
![Page 20: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/20.jpg)
20
Donde estamos
Primeros días de la computación
Lenguaje ensamblador
Programas escritos por personal técnico
Actualmente
Programadores buscan un ambiente de programación cómodo
Programas pueden ser escritos por personal no técnico.
![Page 21: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/21.jpg)
21
Lenguajes de alto nivel
Llamados lenguajes de tercera generación
Supera deficiencias encontradas con el lenguaje ensamblador
El programador no necesita manejar detalles de almacenamiento de datos
![Page 22: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/22.jpg)
22
Lenguajes de alto nivel
Lo que se espera de un lenguaje de alto nivel
El programa será portable
El código será cercano a un estándar, con notaciones estándar
![Page 23: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/23.jpg)
23
![Page 24: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/24.jpg)
24
Introducción al lenguaje C++ La figura anterior muestra algunos componentes
Comentarios Provee información para lectores humanos
Directivas de inclusión El enlazador incluye código objeto o de librerías
Usando directivas Le dice al compilador que verifique en los
“namespace” si existe definiciones no mencionadas en el programa
![Page 25: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/25.jpg)
25
Un programa C++ Simple
![Page 26: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/26.jpg)
26
La forma general de un programa C++
![Page 27: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/27.jpg)
27
Almacenamiento de datos
Identificadores: Nombres en un lenguaje de programación
Palabras clave: Tienen significado especial en C++
C++ es sensible a los caracteres
Items de datos pueden ser constantes o variables
![Page 28: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/28.jpg)
28
Almacenamiento de datos
Una declaración de item de datos dice:
Si el item es una constante o una variable
El identificador usado para nombrar el item
El tipo de dato del item
![Page 29: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/29.jpg)
29
Algunos tipos de datos C++ Standard
![Page 30: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/30.jpg)
30
Almacenamiento virtual de datos Un arreglo (array)
Son una colección de posiciones de memoria, todos almacenan datos del mismo tipo
Una colección de 12-Elementos
![Page 31: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/31.jpg)
31
Tipos de sentencias
Sentencias de entrada/salida
Sentencias de entrada
Guarda un valor especifico del usuario para una variable dentro del programa
Sentencias de salida
Escribe un mensaje o el valor de una variable del programa en una pantalla o un archivo
![Page 32: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/32.jpg)
32
Tipos de sentencias
Sentencias de asignacion
Asigna un valor a una variable del programa
Sentencias de control
Dirigen el flujo de control
Puede causar que se desvie del flujo secuencial usual
![Page 33: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/33.jpg)
33
Sentencias de entrada/salida
Ejemplo Pseucodigo
Get value for Radius C++
cin >> Radius;
cin: flujo de entrada Operador de extracción (>>) y la definición de cin están en la librería iostream del std namespace
![Page 34: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/34.jpg)
34
Sentencias de entrada/salida
Ejemplo Pseudo código
Print the value of Circumference C++
cout << Circumference;
cout: Flujo de salida Operador de inserción (<<) la definición de cout
stream están en la librería iostream del std namespace
![Page 35: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/35.jpg)
35
Sentencias de asignación
Forma general Pseudo código
Set the value of “variable” to “arithmetic expression” C++
variable = expression;
1. Expression en el lado derecho es evaluado
2. El resultado es escrito en la localización de memoria de la variable
![Page 36: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/36.jpg)
36
Sentencias de control
Tipos de mecanismos de control Secuencial
Las instrucciones son ejecutadas en orden
Condicional Escoger cual instrucción ejecutar despues depende
de alguna condicion
Iteraciones Grupos of instrucciones pueden ser ejecutados
varias veces
![Page 37: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/37.jpg)
37
Sentencias de control
Secuencial es el modo común de ejecución
Control de flujo condicional
Evaluación de una condición booleana (también llamada expresión booleana)
Cual sentencia de programación a ser ejecutada después es determinada en base al valore de la condición boleana (verdadero o falso)
![Page 38: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/38.jpg)
38
Sentencias de control
Flujo de control condicional Sentencia if-else
if (Boolean condition)
S1;
else
S2; Sentencia if es variación de if-else
if (Boolean condition)
S1;
![Page 39: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/39.jpg)
39
Flujo de control condicional
(If-Else)
![Page 40: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/40.jpg)
40
If-Else con Else vacio
![Page 41: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/41.jpg)
41
Sentencias de control
Iteraciones
El cuerpo de la iteración puede ser ejecutado repetitivamente basado en el valor de la condición booleana
Sentencia while
while (Boolean condition)
S1;
![Page 42: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/42.jpg)
42
While Loop
![Page 43: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/43.jpg)
43
Poniendo todas la piezas juntas En este punto, podemos
Ejecutar entrada y salida
Asignar valores a variables
Controlar el flujo de control de sentencias de control e iteraciones
Para un programa completo, necesitamos Ensamblar las sentencias en el correcto orden
Llenar las piezas que faltan
![Page 44: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/44.jpg)
44
Encuentro con las espectativas C++ reúne las cuatro expectativas para un
lenguaje de alto nivel
Un programador no necesita manejar los detalles del movimiento de items de datos dentro de la memoria, ni prestar atencion donde ellos estan almacenador.
![Page 45: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/45.jpg)
45
Encuentro con las espectativas
El programador puede tomar una visión macroscopica de las tareas, pensando a un alto nivel para solucionar el problema
Programas escritos en lenguajes de alto nivel serán portables
Sentencias de programación en un lenguaje de alto nivel
Serán cercanos al standard English
Usaran notación matematica standard
![Page 46: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/46.jpg)
46
Menejando complexidad: Divide y conquista
Para solucionar un problema divide en pequeños pedazos
En un programa de computadora
Divide el codigo en módulos (sub programas), cada uno haciendo una parte de toda la tarea
Unir estos módulos para que trabajar juntos para solucionar el problema original
![Page 47: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/47.jpg)
47
![Page 48: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/48.jpg)
48
Usando funciones
Función
Un modulo de código en C++
Funciones de subtareas: Opcional
La función “main”: Obligatorio
![Page 49: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/49.jpg)
49
Usando funciones
Para invocar una función de subtarea, la funcion “main” da
Nombre de la función
Lista de argumentos de la función
Lista de argumentos: lista de identificadores para variables que conciernen a la función
Toda función puede tener sus propias constantes y declaraciones de variables
![Page 50: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/50.jpg)
50
Escribiendo funciones
La declaración de una función consiste de:
Indicador de retorno: clasifica a una función de tipo void o no void
Identificador de función (nombre)
Lista de parametros
Por defecto, los argumentos en C++ son pasador por valor
![Page 51: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/51.jpg)
51
Una función en C++
![Page 52: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/52.jpg)
52
Terminología C++
![Page 53: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/53.jpg)
53
Programación orientada a objetos
Un programa es una simulación de una parte del mundo que es el dominio de interés
Cada objeto es un ejemplo de una clase de objetos similares
Puntos clave Encapsulación
Una clases consiste de sus módulos y propiedades Ambos son encapsulados en la clase
![Page 54: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/54.jpg)
54
Programación orientada a objetos
Herencia
Una vez que una clase A de objetos es definido, una clase B of objetos puede ser definido como una subclase de A
Polimorfismo
Una clase C de objetos es definido a partir de dos (A y B) o mas clases de objetos, entonces un objeto de la clase C puede adoptar la forma de uyn objeto de la clase A o B
![Page 55: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/55.jpg)
55
Que ganamos con esto?
Dos ventajas importantes
Reuso de software
Una forma natural de abstraer el mundo
![Page 56: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/56.jpg)
56
Programación gráfica: Primitivas gráficas Display de pixels
Grid bidimensional de pixels
Frame buffer
La memoria de video almacena la actual imagen de la pantalla
![Page 57: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/57.jpg)
57
Coordenadas del sistema de píxeles en el display
![Page 58: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/58.jpg)
58
Primitivas gráficas
Librerias gráficas
Software que contiene una colección de funciones que controlan la atribución/configuración/cambios de píxeles
La mayoría de lenguajes modernos tienen una librería gráfica.
![Page 59: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/59.jpg)
59
El asunto central: Ingeniería de Software Ciclo de vida de un Software
Sobre todo una secuencia de pasos que necesitan ser completados en un proyecto de software de grande porte
La implementación representa una pequeña parte del ciclo
![Page 60: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/60.jpg)
60
Pasos del ciclo de vida del desarrollo de software
![Page 61: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/61.jpg)
61
Planificando
Programas escritos por estudiantes No mas que pocos miles de lineas
Programas del mundo real 2, 3, o 4 veces mas grandes
Desarrollo de software de grande escala Requiere planeamiento y diseño extensivo
Requiere un equipo de programadores
Ingeniería de Software
![Page 62: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/62.jpg)
62
Ciclo de vida de un Software
Pasos en el software
Tiene un proposito especifico y actividades
Debe retornar algun resultado visual o impreso
El estudio de factibilidad
La especificación del problema
Diseñoo del programa
![Page 63: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/63.jpg)
63
Ciclo de vida de un Software
Selección del algoritmo o técnica de desarrollo, y analisis
Codificación
Debug
Prueba, verificación, y comparaciones
Documentación
Mantenimiento
![Page 64: Ambientes de Programacion](https://reader033.fdocumento.com/reader033/viewer/2022060112/5571f8bf49795991698dff84/html5/thumbnails/64.jpg)
64
Ambientes de desarrollo modernos Integrated Development Environment (IDE)
agiliza el proceso de desarrollo proveyendo
Un editor de texto
Un manipulador de archivos
Un compilador
Un enlazador (linker)
Herramientas para debug