1 Programación Orientada a Objetos Compilado por: Dra. Mayela Coto. Mag. Sonia Mora EIF200 FUNDAMENTOS DE INFORMÁTICA Proyecto 0151-14 UNA – Mora & Coto, 2015
2 Recordemos el problema …… EIF200 FUNDAMENTOS DE INFORMÁTICA
3 Problema: Cálculo del tipo de obesidad Depende del valor del IMC (que ya calculamos) class Persona { private: string nombre; float peso; float estatura; … } Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
4 Estructuras selectivas Es aquella en la que se evalúa una condición y en función del resultado se realiza una operación. Se utilizan para tomar decisiones lógicas, y se suelen denominar estructuras de decisión o alternativas. Las condiciones se especifican usando expresiones lógicas. Estas estructuras pueden ser: simples dobles múltiples Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
5 Estructuras de control Alternativa simple if ( ) ; Alternativa doble if ( ) ; else ; condición Acción 1 si condición Acción 1 Acción 2 sino EIF200 FUNDAMENTOS DE INFORMÁTICA
6 Sintaxis if ( ) else Donde: puede ser: instrucción; { instrucción; } EIF200 FUNDAMENTOS DE INFORMÁTICA
7 Ejemplo: En la clase Persona escriba un método que retorne true si la persona mide menos de 1.30 metros Imágenes en esta diapositiva son de dominio público class Persona { private: string nombre; float peso; float estatura; } bool personaPequenna () { if (estatura < 1.30) return true; } EIF200 FUNDAMENTOS DE INFORMÁTICA
8 Ejemplo: En la clase Persona escriba un método que retorne true si la persona mide menos de 1.30 metros y false en caso contrario Imágenes en esta diapositiva son de dominio público class Persona { private: string nombre; float peso; float estatura; } bool personaPequenna () { if (estatura < 1.30) return true; else return false; } EIF200 FUNDAMENTOS DE INFORMÁTICA
9 Estructuras anidadas Alternativa anidada: las estructuras de decisión simples, dobles y hasta múltiples pueden combinarse dentro de ellas para formar estructuras de selección más complejas y de esta forma tener distintas posibilidades de acción. Estas estructuras pueden volverse tan complejas que se recomienda siempre utilizar la sangría para claridad del código EIF200 FUNDAMENTOS DE INFORMÁTICA
10 Estructuras anidadas if ( ) ; else ; else if ( ) ; else ; Acción 1 condición Acción 3 sino condición Acción 2 sino EIF200 FUNDAMENTOS DE INFORMÁTICA
11 ¿Cómo resolvemos entonces el método tipoObesidad()? ¿Qué devuelve el método? ¿Qué debe hacer? ¿Qué tipo de estructura condicional usaremos? Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
12 Problema: Cálculo del tipo de obesidad string tipoObesidad() { float valorIMC = IMC(); if (valorIMC < 18.5) return "Infrapeso"; else if (valorIMC
13 Problema: Cálculo del tipo de obesidad class Persona { private: string nombre; float peso; float estatura; } EIF200 FUNDAMENTOS DE INFORMÁTICA
14 Clase: Persona Todos los métodos listos (trabaje con el IDE en su casa). Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
15 Problema: En la clase Persona escriba un método que retorne true si la persona mide menos de 1.30 metros y pesa menos de 40 kilos class Persona { private: string nombre; float peso; float estatura; } Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
16 Tabla de verdad lógica ABA OR BA AND BNOT A VVVVF VFVF FVVFV FFFF EIF200 FUNDAMENTOS DE INFORMÁTICA
17 Expresiones y operadores lógicos ComparativosLógicos SímboloSignificadoSímboloSignificado ==Igual!NOT !=Distinto&&AND >Mayor que||OR =Mayor o Igual que
18 Ejemplo: En la clase Persona escriba un método que retorne true si la persona mide menos de 1.30 metros y pesa menos de 40 kilos bool personaPequennaDelgada () { if (estatura < 1.30 && peso < 40) return true; else return false; } Imágenes en esta diapositiva son de dominio público class Persona { private: string nombre; float peso; float estatura; } EIF200 FUNDAMENTOS DE INFORMÁTICA
19 Entrada y salida: cin El identificador cin es un objeto predefinido en C++ que corresponde al flujo de entrada estándar. El flujo de entrada representa al teclado. La instrucción cin >> variable; es una instrucción de entrada que permite que el programa se detenga a esperar que el usuario introduzca un dato. El operador >> es conocido como el operador de extracción o leer desde. Toma el valor desde teclado y lo asigna a la variable especificada en su parte derecha.. Al extraer es obligatorio especificar la variable en donde se van a guardar los datos extraídos. La sintaxis es: cin>>variable; Teclado Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
20 Entrada y salida: cout El identificador cout es un objeto predeterminado que representa el flujo de salida estándar en C++. El flujo de salida estándar representa la pantalla (es posible redirigir la salida hacia otros dispositivos de salida). El operador
21 Entrada y salida Ejemplo: int edad; cout > edad; cout
22 Ejemplos int a, b, result; cout > a; cin >> b; result=a+b; cout
23 Uso de stringstream Todo objeto debe tener un comportamiento que le permita mostrar su contenido al exterior. No debe estar supeditado a un dispositivo de salida específico. Usa la clase stringstream cuyos objetos usan un buffer de hileras de caracteres (string) y puede ser accedida directamente como un objeto string usando el método str(). EIF200 FUNDAMENTOS DE INFORMÁTICA
24 Clase Persona Método para dar formato de salida al contenido de una clase (debe incluir la librería ) string toString(){ stringstream s; s
25 Función main() Un programa debe contener una función llamada main() que es la primera que se ejecuta El cuerpo de main() está rodeado por los símbolos { } El encabezado int main() indica que esta función le devuelve un número entero al sistema operativo La instrucción return 0; indica que el programa debe devolver el número 0 al sistema operativo (el programa ejecutó satisfactoriamente) EIF200 FUNDAMENTOS DE INFORMÁTICA
26 Creación de objetos estáticos Creamos un objeto mediante la siguiente sintaxis: Clase de objeto identificador ([lista_de_argumentos]); //Crea el objeto de tipo Clase de objeto con un constructor Ejemplos: Persona personita; Persona pers1(“01234567”,“Sandra”, “Soto”); Persona pers2("3456789", "Silvia", "Soto", 'F',1995); En ambos casos, se crean objetos en memoria estática. La memoria estática se define en el momento en que se compila el programa. Una vez que la función finaliza, el objeto se destruye. EIF200 FUNDAMENTOS DE INFORMÁTICA
27 Invocación a los métodos La forma de invocar a los métodos a través de instancias de la clase es. ([ ]) Ejemplos: v1.getMarca(); telaB.area(); terrenoB.perimetro(); Personita.edad(); Imágenes de esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
28 Main de la clase Persona Construcción y uso en el IDE Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
29 int main() { string nomb; float pe; float est; Persona p1;//crea el objeto llamando al constructor sin parámetros //Se solicitan los datos para el objeto p1 cout
30 Estructura básica de un programa C++ // Comentarios descriptivos //directivas de preprocesador // definición de clases int main ( ) { //Declaración de constantes /variables locales //Instrucciones ; return 0; } EIF200 FUNDAMENTOS DE INFORMÁTICA
31 Estructura básica más común // Universidad Nacional // Programa ejemplo // Realizado por XXXXXXX. (derechos de autor muy importante) #include #include // librerías using namespace std; class Persona { // definición de la clase }; int main ( ) { //declaraciones; //intrucciones ; return 0; } void main () { //declaraciones; //instrucciones ; } void main () { //declaraciones; //instrucciones ; } También es posible EIF200 FUNDAMENTOS DE INFORMÁTICA
32 Librerías Una librería es un conjunto de recursos que pueden ser utilizados por el programador para realizar determinadas operaciones. Librería estándar. Conjunto de librerías cuyo contenido está definido por el estándar C. La directiva #include carga determinados archivos denominados: archivos de inclusión (include files), archivos de cabecera (header files) cabeceras, El compilador los inserta en el código fuente (en el punto de la directiva) que desde ese momento queda sustituida por el texto contenido en el archivo. Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
33 Imágenes en esta diapositiva son de dominio público Librerías Por ejemplo #include "nombre_de_cabecera" #include La diferencia está en el directorio de búsqueda de dichos archivos. #include "nombre_de_cabecera" : se busca el archivo en el directorio actual y posteriormente en el directorio estándar de librerías. #include : se busca directamente en el directorio estándar de librerías. En la práctica los archivos de sistema (iostream.h, math.h), se incluyen con la segunda forma, mientras que los archivos hechos por el propio programador se incluyen con la primera. Ejemplos: #include "Robot.h“ #include EIF200 FUNDAMENTOS DE INFORMÁTICA
34 Biblioteca estándar de C (macro assert, …) (comprobaciones de tipo) (errores de fuera de rango de números, …) (constantes para los números reales: valor máximo del tipo double ) (tamaño de los enteros short, …) (adaptaciones al idioma) (funciones matemática:sin, cos, …) (saltarse niveles de ejecución) (acceso a los argumentos de una función con un numero variable de argumentos) (tipos y macros útiles) (funciones, tipos y macros para operaciones IO: printf, scanf, …) (funciones para conversión de números y reserva dinámica de memoria) (señales de interrupción externa) (strcmp, strcpy, strlen, …) (uso del reloj del computador) Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
35 Espacios de nombre Los espacios de nombre (namespace en inglés), son áreas bajo las cuales ciertos nombres de variable o tipos tienen validez. Esto permite evitar las ocurrencias de conflictos entre nombres de funciones, variables o clases. El ejemplo más conocido en C++ es el espacio de nombres std::, el cual almacena todas las definiciones nuevas en C++ que difieren de C (algunas estructuras y funciones), así como las funcionalidades propias de C++ y los componentes de la biblioteca STL (Standard Template Library). La directiva using namespace std, permite acceder a los nombres de variables del espacio std en forma directa. Es decir en lugar de tener que escribir std::cin o std::cout en todo el programa se usa using namespace std; al inicio del programa std::cout > num ; using namespace std ; cout > num ;
36 ¿Para qué sirve "using namespace std" en C++? Especifica que los miembros de un namespace van a utilizarse frecuentemente en un programa. Permite al programador tener acceso a los miembros del namespace y escribir instrucciones mas concisas como: cout
37 Una empresa de tejidos necesita crear retazos de telas con el borde ribeteado en hule e impermeabilizadas para cubrir tapas circulares. Declare una clase Tapa que permita calcular la cantidad de hule que se necesita para el ribete (en cm) y el costo de impermeabilizarlo ($0,75 por cm 2 ) así como la cantidad de tela que se requiere para cubrir cada tapa. Defina una clase con atributos, métodos constructores (con y sin parámetros) y los métodos set y get para cada uno de los atributos, los métodos de cálculo así como la cantidad de hule necesario, el costo de impermeabilización y la cantidad de tela para cubrirla. Ejercicio en clase: EIF200 FUNDAMENTOS DE INFORMÁTICA
38 Ejemplo: Clase Tapa #include using namespace std; class Tapa { private: float radio; public: Tapa( ) { radio=0; } Tapa( float pRadio ) { radio=pRadio; } EIF200 FUNDAMENTOS DE INFORMÁTICA
39 Ejemplo: Clase Tapa void setRadio (float pRadio) { radio = pRadio; } float getRadio ( ) { return (radio); } float longitud() { return 2 * 3.14159 * radio; } float area() { return 3.14159 * radio * radio; } float costo() { return 0.75* area(); } }; //Cierre de clase definida en diapositiva anterior EIF200 FUNDAMENTOS DE INFORMÁTICA
40 Constantes Se utilizan para representar datos que no cambian durante toda la aplicación. También se les asocia un tipo de datos. Se definen como variables normales, pero precediendo el nombre de su tipo la palabra reservada const y dándoles siempre un valor inicial al declararlas. Sintaxis: const = ; Ejemplo: const float PI = 3.14159; EIF200 FUNDAMENTOS DE INFORMÁTICA
41 Constantes Algunas de las ventajas que reportaría el uso de la constante PI: Es tedioso y monótono escribir constantemente la secuencia 3.14159 en vez de PI Se pueden cometer errores que no serían detectados por el compilador. Mayor legibilidad para los códigos fuentes. Si se decide cambiar la precisión (usar por ejemplo 3.1415926) se tendrían que hacer modificaciones en todos los lugares donde aparece la secuencia de dígitos. EIF200 FUNDAMENTOS DE INFORMÁTICA
42 Ejemplo: Clase Tapa #include using namespace std; const float PI = 3.14159; class Tapa { private: float radio; public: Tapa( ) { radio=0; } Tapa( float pRadio ) { radio=pRadio; } EIF200 FUNDAMENTOS DE INFORMÁTICA
43 Ejemplo: Clase Tapa void setRadio (float pRadio) { radio = pRadio; } float getRadio ( ) { return (radio); } float area() { return PI * radio * radio; } float longitud() { return 2 * PI * radio; } float costo() { return 0,75* area(); } }; EIF200 FUNDAMENTOS DE INFORMÁTICA
44 Ejemplo: Clase Tapa Escriba la sección del main() para crear TRES objetos: telaA: debe crearse con el constructor con parámetros y tiene un radio de 4 telaB: debe crearse con el constructor con parámetros solicitando previamente el radio al usuario. telaC: debe crearse con el constructor sin parámetros y posteriormente asignarle un valor al radio dado por el usuario Calcule el largo de hule requerido y el costo de impermeabilizar la tela para la tapa C (telaC) Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
45 Ejemplo: Clase Tapa int main() { int r; Tapa telaA(4); cout
46 Ejemplo: Clase Tapa Tapa telaC; cout
47 Ejemplo: Clase Tapa Duplique el valor actual del radio de la telaB Calcule la nueva cantidad de hule y el nuevo costo de impermeabilizarla Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
48 Ejemplo: Clase Tapa int main() { int r; int r1; ……… r1 = telaB.getRadio(); r1= r1 *2; telaB.setRadio(r1); cout
49 Ejemplo: Clase Tapa int main() { int r; int r1; ……… r1 = telaB.getRadio(); r1= r1 *2; telaB.setRadio(r1); ………………………….. return 0; } telaB.setRadio(telaB.getRadio()*2); Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
50 Ejercicio Se desea un programa que permita identificar el tipo de vacuna que le corresponde a un gato. El tipo de vacuna está dado por la edad del gato, por ejemplo si tiene 1 año le corresponde la vacuna de la Rabia, si tiene 3 años la vacuna de la Panleucopenia, si tiene 5 años le corresponde la vacuna de Rinotraqueítis, a los 7 años la vacuna de Calicivirosis y por último a los 10 años la vacuna contra la Peritonitis infecciosa. Cats. CC-BY Lindasay “foxyisthebest”. Tomada de http://foxyisthebest.deviantart.com/art/Cats-451211192 EIF200 FUNDAMENTOS DE INFORMÁTICA
51 Ejercicio Defina una clase con los atributos necesarios, además los métodos constructor con y sin parámetros, el destructor y los métodos set y get y los métodos de cálculo. Cats. CC-BY Lindasay “foxyisthebest”. Tomada de http://foxyisthebest.deviantart.com/art/Cats-451211192 Imagen de jeringa es de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
52 Ejercicio class Gato { private: string codGato; // identifica al gato string nombGato; int anoNac; public: // métodos constructores Gato () { codGato = "Sin definir"; nombGato = "Sin definir"; anoNac = 0; } Gato (string cod2, string nombre2, int ano2) { codGato = cod2; nombGato = nombre2; anoNac = ano2; } EIF200 FUNDAMENTOS DE INFORMÁTICA
53 Ejercicio // métodos set void setCodGato (string cod2){ codGato = cod2; } void setNombre (string nombre2){ nombGato = nombre2; } void setAnoNac (int ano2) { anoNac = ano2; } // métodos get string getCodGato ( ) { return(codGato); } string getNombre ( ) { return(nombGato); } int getanoNac ( ) { return(anoNac); } //método destructor ~Gato () { //"Adios gato" } NECESITAMOS otros métodos para poder calcular el tipo de vacuna!!! EIF200 FUNDAMENTOS DE INFORMÁTICA
54 Se requiere una nueva estructura condicional que permita alternativas múltiples. SWITCH Alternativa múltiples Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
55 Alternativa múltiples Gráficamente switch (expresión) { case valor1: instrucción1; break; case valor2: instrucción2; break; …… case valorn: instrucción n; break; // es opcional } condición Acción 2 Acción 1 Acción n valor-1 valor-2 valor-n EIF200 FUNDAMENTOS DE INFORMÁTICA
56 string tipoVacuna () { switch (edadGato()) { case 1: return “Rabia”; case 3: return “Panleucopenia”; case 5: return “Rinotraqueítis”; case 7: return “Calicivirosis”; case 10: return “Peritonitis infecciosa”; default: return “No requiere vacuna”; } }; // fin de la clase Ejercicio (clase Gato) Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
57 Ejercicio: Clase Vehiculo Una compañía se dedica únicamente al transporte de automóviles. Para desplazar un automóvil de una ciudad a otra requiere registrar los siguientes datos de los automóviles: marca, número de litros de combustible en el tanque, kilometraje, país de origen, ciudad destino y velocidad máxima. Declare una clase que le permita a la compañía llevar el control de los autos transportados. Considere inicialmente los atributos, métodos constructores (con y sin parámetros) y los métodos set y get para cada uno de los atributos. Imágenes de esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
58 Ejercicio: Clase Vehiculo #include using namespace std; class Vehiculo { private : string marca; float combustible; float kilometraje; string origen; string destino; float velocidad; Imágenes de esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
59 Ejercicio: Clase Vehiculo public: // constructor sin parámetros Vehiculo () { marca = "Indeterminado"; combustible = 0; kilometraje = 0; origen = "Fabrica"; destino = "Indeterminado"; velocidad = 0; } // constructor con parámetros Vehiculo ( string nuevaMarca, float numLitros, float numKil, string lugarUno, string lugarDos, float kilometrosPorHora ) { marca = nuevaMarca; combustible = numLitros; kilometraje = numKil; origen = lugarUno; destino = lugarDos; velocidad = kilometrosPorHora; } EIF200 FUNDAMENTOS DE INFORMÁTICA
60 Ejercicio: Clase Vehiculo // Existirán seis métodos de clase set( ) void setMarca ( string nuevaMarca) { marca = nuevaMarca; } void setLitros ( float litrosCombustible ) { combustible = litrosCombustible;} void setKilometraje ( float kilometros ) { kilometraje = kilometros;} void setOrigen ( string nuevoOrigen ) { origen = nuevoOrigen;} void setDestino ( string nuevoDestino ) { destino = nuevoDestino;} void setVelocidad ( float nuevaVelocidad ) { velocidad = nuevaVelocidad;} EIF200 FUNDAMENTOS DE INFORMÁTICA
61 Ejercicio: Clase Vehiculo /* Existirán seis métodos de clase get( ) */ string getMarca ( ) { return( marca );} float getLitros ( ) { return( combustible );} float getKilometraje ( ) { return( kilometraje );} string getOrigen ( ) { return ( origen );} string getDestino ( ) { return ( destino );} float getVelocidad ( ) { return ( velocidad );} /* aquí irían otros métodos para el cálculo.*/ }; // fin de la clase EIF200 FUNDAMENTOS DE INFORMÁTICA
62 Métodos de cálculo En el momento en que finaliza el transporte a la ciudad destino, la compañía realiza dos acciones: 1. Calcula el rendimiento promedio del vehículo 2. Le vuelve a poner combustible (para no entregarlo vacío) Defina dos métodos de cálculo: rendimientoPromedio(): calcula el rendimiento del carro como la cantidad de combustible entre el kilometraje aumentaCombustible(): incrementa la cantidad de combustible en el tanque EIF200 FUNDAMENTOS DE INFORMÁTICA
63 Métodos de cálculo float rendimientoPromedio ( ) { return ( combustible / kilometraje ); } Calcula el rendimiento del carro como la cantidad de combustible entre el kilometraje Note que el método hace referencia directa a los atributos Imágenes de esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
64 Métodos de cálculo Incrementa la cantidad de combustible en el tanque Parámetro: información extra void aumentaCombustible (float litros) { combustible = combustible + litros; } void aumentaCombustible (float litros) { setCombustible (combustible + litros); } Es mejor usar el método set, más seguro EIF200 FUNDAMENTOS DE INFORMÁTICA
65 Métodos sobrecargados Sobrecarga es la posibilidad de tener dos o más métodos con el mismo nombre, pero funcionalidad diferente (realizan acciones diferentes) Los constructores son métodos sobrecargados por excelencia El compilador asigna el método constructor según el número y tipo de argumentos especificados en el llamado. Es el compilador el que “adivina” cuál usar. También existe la sobrecarga de operadores, por ejemplo el + como operador de enteros y como unión de string (hileras) EIF200 FUNDAMENTOS DE INFORMÁTICA
66 Métodos sobrecargados // constructor sin parámetros Vehiculo (){ marca = "Indeterminado"; combustible = 0; kilometraje = 0; origen = "Fabrica"; destino = "Indeterminado"; velocidad = 0; } // constructor con parámetros Vehiculo ( string nuevaMarca, float numLitros, float numKil, string lugarUno, string lugarDos, float kilometrosPorHora ) { marca = nuevaMarca; combustible = numLitros; kilometraje = numKil; origen = lugarUno; destino = lugarDos; velocidad = kilometrosPorHora; } // constructor con dos parámetros Vehiculo (string nuevaMarca, float numKil){ marca = nuevaMarca; combustible = 0; kilometraje = numKil; origen = "Fabrica"; destino = "Indeterminado"; velocidad = 0; } EIF200 FUNDAMENTOS DE INFORMÁTICA
67 Crea un objeto v1 usando el constructor con parámetros Creación de objetos estáticos Crea un objeto v2 usando el constructor sin parámetros int main() { // Ejemplo de instanciación de objeto con parámetros Vehiculo v1("Toyota",0,0,"Japón","UNA",0); // Ejemplo de instanciación de objeto sin parámetros Vehiculo v2; …… } EIF200 FUNDAMENTOS DE INFORMÁTICA
68 Marca=“Toyota” Creación de objetos estáticos int main() { // Ejemplo de instanciación de objeto con parámetros Vehiculo v1("Toyota",0,0,"Japón","UNA",0); cout
69 Marca=“Toyota” Modificando atributos int main() { Vehiculo v1("Toyota",0,0,"Japón","UNA",0); cout
70 Modificando atributos int main() { string mc; Vehiculo v1("Toyota",0,0,"Japón","UNA",0); cout
71 Ejercicio: Clase Vehiculo /* Se define el main, dónde se van a crear y cambiar el estado de los atributos */ int main() { string mc, org, dest; float gas, kilo, velo; // Ejemplo de instanciación de objeto con parámetros Vehiculo v1("Toyota",0,0,"Japón","UNA",0); cout
72 Ejercicio: Clase Vehiculo // Solicitud de datos al usuario cout
73 Ejercicio: Clase Vehiculo // Ejemplo de instanciación con datos obtenidos del usuario Vehiculo v3(mc,gas,kilo,org,dest,velo); cout
74 Ejercicio Suponga que de acuerdo a la clase vehículo, se creó Vehiculo carro2(“Honda”, 15.0, 5000, “Japon”, “E.E.U.U. ”, 120 ); Escriba las instrucciones necesarias para a) Cambiar el destino hacia “América Central”. b) Cambiar el origen del carro2 a “Corea”. c) Aumentar el kilometraje en 230 km d) Reducir la velocidad del carro2 en 20 Km EIF200 FUNDAMENTOS DE INFORMÁTICA
75 Ejercicio Se tiene la clase Vehículo con la siguiente estructura: Imágenes de esta diapositiva son de dominio público Implemente la clase, específicamente los métodos constructores con y sin parámetros, los métodos set y get y el destructor. EIF200 FUNDAMENTOS DE INFORMÁTICA
76 Ejercicio Escriba un método llamado determinaRestriccion() que permita devolver el día de la semana que tiene restricción vehicular. A continuación, se muestra un cuadro con el último dígito de la placa y el día correspondiente: Por ejemplo si la placa del vehículo termina en 6, el día que le corresponde restricción es el día miércoles. Este método debe ser implementado únicamente haciendo uso de la estructura switch. Último dígito Día correspondiente 1,2Lunes 3,4Martes 5,6Miércoles 7,8Jueves 9,0Viernes PHP-404 Imágenes de esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA
77 Ejercicio Escriba un método calculoMarchamo() que determine y retorne el costo del pago del marchamo que debe pagar el vehículo. El cálculo del marchamo esta dado de la siguiente manera: si el vehículo es del año actual debe pagar un 1% del valor del vehículo, si tiene menos de 10 años de antigüedad debe pagar un 5% y si tiene más de 10 años debe pagar un 2% del valor del vehículo. Escriba un método toString() que despliegue toda la información del vehículo, incluyendo el día de restricción y el pago del marchamo En el main: Cree un objeto A tipo vehículo con el constructor con parámetros y los valores (862312, "Corolla", 2009, 6000000) Invoque al método toString() para visualizar toda la información del objeto Cree un objeto llamado objetoB con el constructor sin parámetros. Solicite al usuario nuevos datos para el objeto y modifique el valor de los atributos. Invoque al método toString() para visualizar toda la información del objeto Disminuya el costo del vehículo objetoB en 500,000 colones. Vuelva a invocar al método toString() EIF200 FUNDAMENTOS DE INFORMÁTICA
78 Uso didáctico curso EIF 200 Escuela de Informática Universidad Nacional Costa Rica EIF200 FUNDAMENTOS DE INFORMÁTICA Proyecto 0151-14 UNA – Mora & Coto, 2015