2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 1 – Introducción a las Computadoras y a la Programación en C++ Índice del capítulo 1.1 Introducción 1.2 ¿Qué es una Computadora? 1.3 Organización de las Computadoras 1.4 Evolución de los Sistemas Operativos 1.5 Computación Personal, Distribuida y Cliente/Servidor 1.6 Lenguajes de Programación - Lenguajes Máquina, Ensambladores, y de Alto Nivel - Historia de C y C++ - Biblioteca Estándar de C++ - Java - Visual Basic, Visual C++ y C# - Otros Lenguajes de alto nivel 1.7 Historia de Internet y de la World Wide Web - Historia de Internet - Historia de la World Wide Web - Consorcio World Wide Web (W3C)
2003 Prentice Hall, Inc. All rights reserved. 2 Capítulo 1 – Introducción a las Computadoras y a la Programación en C++ Índice del capítulo 1.8 Programación Estructurada 1.9 Tendencia Clave de Software: Tecnología de Objetos 1.10 Introducción a la Programación en C++ - Fundamentos del entorno C++ típico - Un Programa Sencillo: Impresión de 1 Línea de Texto - Otro Programa Simple: Suma de 2 Enteros - Conceptos sobre Memoria - Aritmética - Toma de Decisiones: Operadores de Igualdad y Relacionales 1.11 Pensando en Objetos: Introducción a la Tecnología de Objetos y al Lenguaje de Modelado Unificado (UML)
2003 Prentice Hall, Inc. All rights reserved Introducción Software –Instrucciones para indicar a la computadora que ejecute acciones y tome decisiones Hardware Versión estándar de C++ –Estados Unidos Instituto Nacional Americano de Estándares (ANSI: American National Standards Institute) –Resto del mundo Organización Internacional de Estándares (ISO: International Organization for Standardization) Programación Estructurada Programación Orientada a Objetos
2003 Prentice Hall, Inc. All rights reserved ¿Qué es una Computadora? Computadora –Dispositivo capaz de efectuar cálculos y tomar decisiones lógicas Programas de Computación –Conjunto de instrucciones que controlan el procesamiento de datos de la computadora Hardware –Dispositivos que forman una computadora Teclado, pantalla, ratón, discos, memoria, CD-ROM, unidades de procesamiento, … Software –Programas que se ejecutan en la computadora
2003 Prentice Hall, Inc. All rights reserved Organización de las Computadoras Seis unidades lógicas en una computadora 1.Unidad de entrada Sección “receptora” Obtiene información de dispositivos de entrada –Teclado, ratón, micrófono, escáner, redes, … 2.Unidad de salida Sección de “embarque” Toma la información procesada por la computadora Sitúa la información en los dispositivos de salida –Pantalla, impresora, redes, … –Información usada para controlar otros dispositivos
2003 Prentice Hall, Inc. All rights reserved Organización de las Computadoras Seis unidades lógicas en una computadora 3.Unidad de Memoria (memoria, memoria primaria) Sección de “almacén” de acceso rápido y capacidad relativamente baja Retiene la información introducida a través de la unidad de entrada –Disponibilidad inmediata para su procesamiento Retiene la información procesada –Hasta que se pueda colocar en los dispositivos de salida 4.Unidad Aritmético Lógica (ALU) Sección de “manufactura” Realiza cálculos aritméticos y toma decisiones lógicas
2003 Prentice Hall, Inc. All rights reserved Organización de las Computadoras Seis unidades lógicas en una computadora 5.Unidad Central de Procesamiento (CPU) Sección “administrativa” Supervisa y coordina las otras secciones de la computadora 6.Unidad de almacenamiento secundario Sección de “almacén” a largo plazo y alta capacidad Almacena –Programas inactivos o datos En dispositivos de almacenamiento secundarios –Discos Acceso más lento que a memoria primaria Costo por unidad de almacenamiento menor que memoria primaria
2003 Prentice Hall, Inc. All rights reserved Evolución de los Sistemas Operativos Primeras computadoras –Procesamiento por lotes monousuario Sólo un trabajo o tarea a la vez Procesaban los datos en grupos (lotes) Pilas de tarjetas perforadas Sistemas operativos –Sistemas de software –Administraban la transición entre trabajos –Aumentó el rendimiento Cantidad de trabajo que procesa el computador
2003 Prentice Hall, Inc. All rights reserved Evolución de los Sistemas Operativos Multiprogramación –Muchos trabajos o tareas compartiendo los recursos del computador –Operación “simultánea” de muchos trabajos Tiempo compartido –Década de los 60 –Caso especial de la multiprogramación –Usuarios acceden a computadora mediante terminales Dispositivos con teclado y pantalla Docenas o cientos de usuarios –Ejecuta una parte pequeña de la tarea de un usuario y luego procede a darle servicio al siguiente –Ventaja: El usuario recibe respuestas casi inmediatas a sus solicitudes
2003 Prentice Hall, Inc. All rights reserved Computación Personal, Distribuida, y Cliente/Servidor Computadoras personales –1977: Apple Computer –Suficientemente económicos para uso personal –1981: Computadora Personal IBM –Unidades independientes Redes de computadoras –Mediante líneas telefónicas –Redes de área local (LANs) Computación distribuida –El cómputo se distribuye a través de redes hacia los sitios donde se realiza el trabajo real de organización
2003 Prentice Hall, Inc. All rights reserved Computación Personal, Distribuida, y Cliente/Servidor Estaciones de trabajo (workstations) –Proporcionan enormes capacidades –Información compartida a través de redes Computación cliente/servidor –Servidores de archivos Almacén común de programas y datos –Computadoras cliente Acceden a los servidores de archivos a través de la red UNIX, Linux, sistemas basados en ventanas de Microsoft
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Lenguajes máquina, ensambladores y de alto nivel Tres tipos de lenguajes de programación 1.Lenguaje máquina Único lenguaje que computadora entiende directamente “Lenguaje natural” de computadora Definido por diseño de hardware –Dependientes de la máquina Generalmente constan de cadenas de números –Se reducen a ceros y unos Indica a computadoras que efectúen operaciones elementales –Una a la vez Engorrosos para el ser humano Ejemplo:
2003 Prentice Hall, Inc. All rights reserved. 13 Tres tipos de lenguajes de programación 2.Lenguaje ensamblador Abreviaturas parecidas al inglés para representar operaciones elementales de la máquina Más claro para los humanos Incomprensible para computadoras –Programas traductores (ensambladores) Convertir a lenguaje máquina Ejemplo: LOADPAGABASE ADD PAGAEXTRA STORE PAGATOTAL 1.6 Lenguajes de Programación Lenguajes máquina, ensambladores y de alto nivel
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Lenguajes máquina, ensambladores y de alto nivel Tres tipos de lenguajes de programación 2.Lenguajes de alto nivel Instrucciones similares a inglés común, contienen notaciones matemáticas comunes Una sola instrucción efectúa tareas complejas –Lenguaje ensamblador requiere muchas instrucciones para realizar tareas simples Programas traductores (compiladores) –Convierten a lenguaje máquina Programas intérprete –Ejecutan directamente programas en lenguajes de alto nivel Ejemplo: pagaTotal = pagaBase + pagaTiempoExtra
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Historia de C y C++ Historia de C –Evolución a partir de otros 2 lenguajes de programación BCPL y B –Lenguajes “sin tipos” –Dennis Ritchie (Laboratorios Bell) Añadió tipos de datos y otras características –Lenguaje de desarrollo de UNIX –Independiente del hardware Programas portables –1989: estándar ANSI –1990: Se publica el estándar ANSI/ISO ANSI/ISO 9899: 1990
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Historia de C y C++ Historia de C++ –Extensión de C –A principios de los 80: Bjarne Stroustrup (Laboratorios Bell) –Características que “engalanan” C –Proporciona capacidades para programación orientada a objetos Objetos: componentes de software reutilizables –Simulan elementos reales Programas orientados a objetos –Más fáciles de entender, corregir y modificar –Lenguaje híbrido Estilo C Estilo orientado a objetos Ambos
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Biblioteca estándar de C++ Programas C++ –Constan de partes llamadas clases y funciones Biblioteca estándar de C++ –Amplia colección de clases y funciones “Enfoque de bloques de construcción” para crear programas –“Reutilización de software”
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Java Java –1991: Sun Microsystems Proyecto Green –1995: Sun Microsystems Presentación oficial de Java –Páginas web con contenido dinámico e interactivo –Desarrollo de aplicaciones de empresa a gran escala –Realza la funcionalidad de los servidores web –Proporciona aplicaciones para dispositivos de consumo Teléfonos móviles, buscas, PDAs (Personal Digital Assistants), …
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Visual Basic, Visual C++ y C# BASIC –Código simbólico de instrucciones multipropósito para principiantes (Beginner’s All-Purpose Symbolic Instruction Code) –Mediados-1960: Prof. John Kemeny y Thomas Kurtz (Dartmouth College) Visual Basic –1991 Resultado del interfaz gráfico de usuario (GUI) de Microsoft Windows (desarrollado a finales 80, principios 90) –Características que aumentan su potencialidad GUI, manipulación de eventos, acceso al entorno de programación de aplicaciones Windows 32-bit (Win32 API), programación orientada a objetos, manipulación de errores –Visual Basic.NET
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Visual Basic, Visual C++ y C# Visual C++ –Implementación de C++ de Microsoft Incluye extensiones Clases de Creación de Microsoft (MFC: Microsoft Foundation Classes) Bibliotecas comunes –GUI, gráficos, redes, multiusuario, … –Compartidas entre Visual Basic, Visual C++ y C# Plataforma.NET –Aplicaciones basadas en Web Distribuidas a gran variedad de dispositivos –Teléfonos móviles, computadoras de sobremesa –Aplicaciones en lenguajes dispares pueden comunicarse
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Visual Basic, Visual C++ y C# C# –Anders Hejlsberg y Scott Wiltamuth (Microsoft) –Diseñado específicamente para la plataforma.NET –Raíces en C, C++ y Java Fácil migración a.NET –Lenguaje de programación visual dirigido por eventos, completamente orientado a objetos –Entorno de desarrollo integrado (IDE: Integrated Development Environment) Crear, ejecutar, comprobar y depurar programas C# Desarrollo Rápido de Aplicaciones (RAD: Rapid Application Development) –Interoperatividad de lenguajes
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Otros Lenguajes de Alto Nivel FORTRAN –Traductor de Fórmulas (FORmula TRANslator) – : IBM –Cálculos matemáticos complejos Aplicaciones científicas y de ingeniería COBOL –Lenguaje Común Orientado a Negocios (COmmon Business Oriented Language) –1959: fabricantes de computadoras, usuarios de computadoras del gobierno y la industria –Manipula de manera precisa y eficiente grandes cantidades de información Aplicaciones comerciales
2003 Prentice Hall, Inc. All rights reserved Lenguajes de Programación Otros Lenguajes de Alto Nivel Pascal –1971: Prof. Niklaus Wirth –Uso académico
2003 Prentice Hall, Inc. All rights reserved Historia de Internet y de la World Wide Web Historia de Internet Finales de los 60: ARPA –Agencia de Proyectos Avanzados de Investigación (ARPA: Advanced Research Projects Agency) Departamento de Defensa de EEUU –ARPAnet –Correo electrónico ( ) Conmutación de paquetes –Transferencia de datos digitales mediante paquetes pequeños –Permite a múltiples usuarios enviar/recibir datos simultáneamente sobre las mismas vías de comunicación Control no centralizado –Si una parte de la red falla, las otras partes todavía pueden seguir operando
2003 Prentice Hall, Inc. All rights reserved Historia de Internet y de la World Wide Web Historia de Internet TCP/IP –Protocolo de Transmisión de Control (TCP: Transmission Control Protocol) Mensajes correctamente encaminados Mensajes llegan intactos –Protocolo de Internet (IP) Comunicación entre variedad de hardware y software de redes Arquitectura actual de Internet Ancho de banda –Capacidad de transmisión en las líneas de comunicación
2003 Prentice Hall, Inc. All rights reserved Historia de Internet y de la World Wide Web Historia de la World Wide Web World Wide Web –1990: Tim Berners-Lee (CERN: Centro Europeo de Investigación Nuclear) –Localizar y visualizar documentos basados en multimedia –Información accesible instantánea y convenientemente a todo el mundo –Exposición mundial factible Individuos y pequeños negocios –Cambio en la forma de hacer negocios Consorcio World Wide Web (W3C) –1994: Tim Berners-Lee –Desarrollo de tecnologías no propietarias e interoperables –Organización de estandarización –3 centros (MIT, INRIA, Univ. Keio) y 400 miembros
2003 Prentice Hall, Inc. All rights reserved Programación estructurada Programación estructurada (1960s) –Enfoque disciplinado para escribir programas –Más claros, más fáciles de probar y depurar, y más sencillos de modificar Pascal (Blaise Pascal, matemático y filósofo s. XVII) –1971: Niklaus Wirth Ada (Lady Ada Lovelace: escribió primer programa a ps. 1800) –1970s - principios 1980s: Departamento de Defensa de los EEUU –Multitareas El programador puede especificar muchas actividades que se ejecutarán en paralelo (simultáneamente)
2003 Prentice Hall, Inc. All rights reserved Tendencia Clave del Software: Tecnología de Objetos Objetos –Componentes software reutilizables que modelan instancias del mundo real –Unidades de software significativas Objetos dato, objetos tiempo, objetos sueldo, objetos factura, objetos audio, objetos video, objetos fichero, objetos documento, etc. Cualquier nombre puede ser representado mediante un objeto –Más comprensibles, mejor organizados y más fáciles de mantener que la programación procedimental –Favorece la modularidad Reutilización de software –Bibliotecas MFC (Microsoft Foundation Classes) Rogue Wave
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C++ Lenguaje C++ –Permite un enfoque estructurado y disciplinado para abordar el diseño de programas Portabilidad –Programas C y C++ pueden ejecutarse en diferentes tipos de computadoras Compatibilidad –Muchas características de las versiones actuales de C++ no son compatibles con las implementaciones anteriores Mostraremos ejemplos que: –Ilustrarán muchas características importantes de C++ –Se analizarán instrucción por instrucción Programación estructurada (Capítulos 2-5) Programación orientada a objetos (Capítulos 6-)
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Fundamentos de un Entorno C++ Típico Sistemas C++ –Entorno de desarrollo de programas –Lenguaje –Biblioteca estándar de C++
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Fundamentos de un Entorno C++ Típico Fases de programas C++: 1.Edición 2.Preprocesamiento 3.Compilación 4.Enlace 5.Carga 6.Ejecución Cargador Memoria Primaria El programador crea el programa en el editor y lo almacena en el disco. El programa preprocesador preprocesa el código. El cargador pone el programa en memoria. La CPU toma cada instrucción y la ejecuta, posiblemente almacenando nuevos valores de datos a medida que se ejecuta el programa. Compilador El compilador crea el código objeto y lo guarda en disco. El editor de enlaces enlaza el código objeto con las bibliotecas, crea un fichero ejecutable y lo almacena en disco. Editor Preprocesador Editor de enlaces CPU Memoria Primaria Disco
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Fundamentos de un Entorno C++ Típico Entrada/salida –cin Flujo de entrada estándar Normalmente es el teclado –cout Flujo de salida estándar Normalmente es la pantalla del computador –cerr Flujo de errores estándar Despliega mensajes de error
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Un Programa Sencillo: Imprimir 1 línea de texto Comentarios –Documentan los programas –Facilitan la lectura del programa –Son ignorados por el compilador –Comentarios de una línea Comienzan con // Directivas del preprocesador –Procesadas por el preprocesador antes de la compilación –Comienzan con #
2003 Prentice Hall, Inc. All rights reserved. Outline 34 1 // Fig. 1.2: fig01_02.cpp 2 // Un primer programa en C++. 3 #include 4 5 // la función main comienza la ejecución del programa 6 int main() 7 { 8 std::cout << "¡Bienvenido a C++!\n"; 9 10 return 0; // indica que el programa terminó satisfactoriamente } // fin de la función main ¡Bienvenido a C++! Directiva del preprocesador para incluir el fichero de cabecera de flujo de entrada/salida. La función main aparece una sola vez en cada programa C++. La función main devuelve un valor entero. La llave izquierda { comienza el cuerpo de la función. El nombre cout pertenece al espacio de nombres (namespace) std. Operador de inserción de flujo (stream). La palabra clave return es una de las que hace finalizar la función; el valor 0 indica que el programa finalizó satisfactoriamente. La llave derecha correspondiente } finaliza el cuerpo de la función. Comentarios de una línea. Las sentencias finalizan con un punto y coma ;.
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Un Programa Sencillo: Imprimir 1 línea de texto Objeto de flujo de salida estándar –std::cout –“Conectado” a la pantalla –<< Operador de inserción de flujo El valor a la derecha del operador (operando derecho) se inserta en el flujo de salida Espacio de nombres –std:: especifica el uso de un nombre que pertenece al espacio de nombres std –std:: se elimina con el uso de sentencias using Caracteres de escape –\ –Indica la salida de un carácter “especial”
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Un Programa Sencillo: Imprimir 1 línea de texto
2003 Prentice Hall, Inc. All rights reserved. Outline 37 1 // Fig. 1.4: fig01_04.cpp 2 // Impresión de una línea con varias instrucciones. 3 #include 4 5 // la función main comienza la ejecución del programa 6 int main() 7 { 8 std::cout << “¡Bienvenido "; 9 std::cout << “a C++!\n"; return 0; // indica que el programa finalizó satisfactoriamente } // fin de la función main ¡Bienvenido a C++! Varias sentencias de inserción de flujo producen una línea de salida.
2003 Prentice Hall, Inc. All rights reserved. Outline 38 1 // Fig. 1.5: fig01_05.cpp 2 // Impresión de varias líneas mediante una instrucción 3 #include 4 5 // la función main comienza la ejecución del programa 6 int main() 7 { 8 std::cout << “¡Bienvenido\na\n\nC++!\n"; 9 10 return 0; // indica que el programa terminó satisfactoriamente } // final de la función main ¡Bienvenido a C++! Uso de caracteres de nueva línea para imprimir en varias líneas.
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Otro Programa Simple: Suma de 2 enteros Variables –Localización de memoria donde puede almacenarse un valor –Tipos comunes de datos int – números enteros char - caracteres double – números en punto flotante –Declaración variables con nombre y tipo de datos antes de usarlas int entero1; int entero2; int suma; –Se pueden declarar varias variables del mismo tipo en una sola declaración Lista separada por comas int entero1, entero2, suma;
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Otro Programa Simple: Suma de 2 enteros Variables –Nombres de variables Cualquier identificador válido –Series de caracteres: letras, dígitos, caracteres de subrayado (_) –No pueden comenzar con un dígito –Sensible a mayúsculas y minúsculas (a1 A1)
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Otro Programa Simple: Suma de 2 enteros Objeto de flujo de entrada –>> (operador de extracción de flujo) Usado con std::cin Espera a que el usuario introduzca un valor y presione la tecla Enter (Return) Almacena el valor en la variable a la derecha del operador –Convierte el valor al tipo de dato de la variable = (Operador de asignación) –Asigna un valor a la variable –Operador binario (dos operandos) –Ejemplo: suma = variable1 + variable2;
2003 Prentice Hall, Inc. All rights reserved. Outline 42 1 // Fig. 1.6: fig01_06.cpp 2 // Programa de suma. 3 #include 4 5 // la función comienza la ejecución del programa 6 int main() 7 { 8 int entero1; // primer número que introduce el usuario 9 int entero2; // segundo número que introduce el usuario 10 int suma; // variable en la que se almacena la suma std::cout << “Teclee el primer número entero\n"; // solicitud 13 std::cin >> entero1; // lee un entero std::cout << “Teclee el segundo número entero\n"; // solicitud 16 std::cin >> entero2; // lee un entero suma = entero1 + entero2; // asigna la suma std::cout << “La suma es " << suma << std::endl; // imprime la suma return 0; // indica que el programa terminó satisfactoriamente } // fin de la función main Declaración de las variables enteras. Uso del operador de flujo de entrada con la entrada de flujo estándar para obtener la entrada del usuario. Manipulador de flujo std::endl envía a la salida un cambio de línea y luego “descarga el búfer de salida”. Los cálculos se pueden realizar en sentencias de salida: alternativa para líneas 18 y 20: std::cout << “La suma es " << entero1 + entero2 << std::endl; Teclee el primer número entero 45 Teclee el segundo número entero 72 La suma es 117 Concatenación, encadenado o cascada de operaciones de inserción de flujo.
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Conceptos sobre Memoria Nombres de Variables –Corresponden a localizaciones de la memoria de la computadora –Cada variable tiene un nombre, un tipo, un tamaño y un valor –Cada vez que se pone un valor en una variable, se destruye el valor previo –Cuando se lee una variable de una localización de memoria, el proceso es no destructivo
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Conceptos sobre Memoria std::cin >> entero1; –Supongamos que el usuario introduce 45 std::cin >> entero2; –Supongamos que el usuario introduce 72 suma = entero1 + entero2; entero1 45 entero1 45 entero2 72 entero1 45 entero2 72 suma 117
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Aritmética Cálculos aritméticos –* Multiplicación –/ División La división entera trunca el resto –7 / 5 se evalúa como 1 –% Operador módulo: devuelve el resto –7 % 5 se evalúa como 2
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Aritmética Reglas de precedencia de operadores –Operadores entre paréntesis se evalúan primero Paréntesis anidados –Operadores del par más interno se evalúan primero –Después se aplican multiplicación, división y módulo Los operadores se aplican de izquierda a derecha –Por último, suma y resta Los operadores se aplican de izquierda a derecha
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Toma de Decisiones: Operadores de Igualdad y Relacionales Estructura if –Toma decisiones basándose en la verdad o falsedad de una condición Si la condición se cumple, se ejecuta el cuerpo de la estructura Si no se cumple, NO se ejecuta el cuerpo de la estructura Operadores de igualdad y relacionales –Operadores de igualdad Mismo nivel de precedencia –Operadores relacionales Mismo nivel de precedencia –Se asocian de izquierda a derecha
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Toma de Decisiones: Operadores de Igualdad y Relacionales
2003 Prentice Hall, Inc. All rights reserved Introducción a la Programación en C Toma de Decisiones: Operadores de Igualdad y Relacionales Sentencias using –Eliminan el uso del prefijo std:: –Escribimos cout en vez de std::cout
2003 Prentice Hall, Inc. All rights reserved. Outline 50 1 // Fig. 1.14: fig01_14.cpp 2 // Empleo de instrucciones if, operadores relacionales 3 // y operadores de igualdad. 4 #include 5 6 using std::cout; // el programa usa cout 7 using std::cin; // el programa usa cin 8 using std::endl; // el programa usa endl 9 10 // la función comienza la ejecución del programa 11 int main() 12 { 13 int num1; // primer número que introduce el usuario 14 int num2; // segundo número que introduce el usuario cout << “Teclee dos enteros y le diré\n" 17 << “las relaciones que cumplen: "; 18 cin >> num1 >> num2; // lee dos enteros if ( num1 == num2 ) 21 cout << num1 << " es igual a " << num2 << endl; if ( num1 != num2 ) 24 cout << num1 << " no es igual a " << num2 << endl; 25 sentencias using eliminan la necesidad del prefijo std:: Se puede escribir cout y cin sin el prefijo std:: Declaración de variables. La estructura if compara los valores de num1 y num2 para comprobar si son iguales. Si la condición es cierta (es decir, los valores son iguales), se ejecuta esta sentencia. La estructura if compara los valores de num1 y num2 para comprobar que no son iguales. Si la condición es cierta (es decir, los valores no son iguales), se ejecuta esta sentencia.
2003 Prentice Hall, Inc. All rights reserved. Outline if ( num1 < num2 ) 27 cout << num1 << " es menor que " << num2 << endl; if ( num1 > num2 ) 30 cout << num1 << " es mayor que " << num2 << endl; if ( num1 <= num2 ) 33 cout << num1 << " es menor o igual que " 34 << num2 << endl; if ( num1 >= num2 ) 37 cout << num1 << " es mayor o igual que " 38 << num2 << endl; return 0; // indica que el programa finalizó satisfactoriamente } // fin de la función main Teclee dos números enteros y le diré las relaciones que cumplen: no es igual a es mayor que es mayor o igual a 12 Las sentencias se pueden dividir en varias líneas. Teclee dos números enteros y le diré las relaciones que cumplen : es igual a 7 7 es menor o igual que 7 7 es mayor o igual que 7
2003 Prentice Hall, Inc. All rights reserved Pensando en objetos: Introducción a la Tecnología de Objetos y al Lenguaje de Modelado Unificado Programación Orientada a Objetos (POO) –Simula objetos reales con equivalentes de software –Atributos (estado) – propiedades de los objetos Tamaño, forma, color, peso, etc. –Comportamientos (operaciones) - acciones Una pelota rueda, bota, se hincha y se deshincha Los objetos también pueden realizar acciones –Herencia Nuevas clases de objetos absorben características de clases existentes –Objetos Encapsulan datos (atributos) y funciones (comportamientos) Ocultamiento de información –Se comunican entre ellos a través de interfaces bien definidas, pero no saben cómo están implementados otros objetos
2003 Prentice Hall, Inc. All rights reserved Pensando en objetos: Introducción a la Tecnología de Objetos y al Lenguaje de Modelado Unificado Tipos definidos por el usuario (clases) –Datos miembro Componentes de datos de una clase –Funciones miembro Componentes de función de una clase –Asociación –Reutilización de clases
2003 Prentice Hall, Inc. All rights reserved Pensando en objetos: Introducción a la Tecnología de Objetos y al Lenguaje de Modelado Unificado Proceso de análisis y diseño orientado a objetos (OOAD) –Análisis de los requerimientos del proyecto –Diseño para satisfacer los requerimientos –Pseudocódigo Técnica informal de expresar un programa Esbozo para guiarnos al escribir el código
2003 Prentice Hall, Inc. All rights reserved Pensando en objetos: Introducción a la Tecnología de Objetos y al Lenguaje de Modelado Unificado Lenguaje de Modelado Unificado (UML) –2001: Grupo de Manipulación de Objetos (OMG) Lanzamiento del UML versión 1.4 (versión 2.0 a fs. 2002) –Modela sistemas orientados a objetos y ayuda en el diseño –Flexibilidad Extensible Independiente de los procesos OOAD Un conjunto estándar de notaciones –Lenguaje gráfico complejo, rico en propiedades