Ejercicio 1. Ejercicio 2
|
|
|
- Lidia Miguélez Villanueva
- hace 9 años
- Vistas:
Transcripción
1 Todos los ejercicios incluyen una parte opcional de mayor dificultad, indicada con una serie de asteriscos en función del grado de dificultad. Ejercicio 1 Este ejercicio servirá para practicar la declaración de plantillas. A continuación se da una lista de descripciones de funciones y clases de plantillas, se pide escribir una declaración apropiada para las mismas y comprobar que éstas compilan. 1. Declarar una función que toma dos parámetros de plantilla distintos de los cuales uno es el tipo de retorno y el otro es argumento. 2. Declarar una clase que toma un parámetro de plantilla, el cual es una variable miembro (atributo) de la misma. 3. Declarar una clase que toma dos parámetros de plantilla, uno como argumento al constructor y otro como tipo de retorno de una función miembro (método) sin argumentos. 4. Declarar una clase de plantilla con un parámetro entero con un valor por defecto cualquiera y que sirva como el tamaño de un atributo array. 5. * Declarar una clase que tiene como amiga a una clase de plantilla distinta (con tantos parámetros como se desee). 6. ** Declarar una clase en la que uno de los parámetros es a su vez una clase de plantilla. Nota: Dado que se trata sólo de generar declaraciones, y no escribir los cuerpos de las funciones, no hace falta que nuestro fichero.cpp tenga main. Para que el compilar no proteste usar la opción -c: g++ -c mi_fichero.cpp Así se compilará el fichero aunque no haya main, pero no se genera ningún programa, sólo un fichero objecto (que por defecto se llama igual pero con la extensión.o) Ejercicio 2 El objetivo de este ejercicio es declarar una función de plantilla sencilla y ver algunas de sus posibilidades. Se pide escribir una función menor que tome dos argumentos genéricos y use el operador < para devolver el menor de ellos como valor de retorno. La función debe ser capaz de dar este tipo de resultados: menor(2, 3) == 2 menor(6.0, 4.0) == 4.0 A continuación: 1. Comprobar su funcionamiento para parejas de argumentos numéricos del mismo tipo (int, double, float). 2. Comprobar que pasa si los argumentos son de distinto tipo (la respuesta dependerá de si se usó un parámetro de plantilla o dos para la declaración de la función, probar ambas posibilidades). 3. Declarar un clase (por ejemplo Fecha) que defina el operador < y verificar el
2 funcionamiento de la función. 4. La STL de C++ define un par de plantillas cuyo objetivo es similar al de la función menor. Se trata de las funciones std::min y std::max incluidas en la cabecera <algorithm>. Reemplazar la función menor por std::min en el código de prueba escrito en los apartados anteriores y probar que funciona. 5. * Intentar usar la función con literales de cadena y con objetos de la clase std::string (no combinados). Cuál es el único que funciona y por qué? (Nota: sólo uno de los casos funciona correctamente, el otro puede dar la impresión de que lo hace, pero se tratará de una mera coincidencia, hay que hacer pruebas con varias cadenas de cada clase para darse cuenta de cual no funciona) 6. ** Cómo se haría para que el código de prueba del ejercicio anterior también funcionase con el tipo de cadena para el que no lo hace? Pista: Las funciones de plantilla se pueden sobrecargar igual que las normales. Ejercicio 3 A veces resulta conveniente devolver una pareja de valores como valor de retorno de una función, evitando así tener que ensuciar la declaración de parámetros añadiendo dos parámetros pasados por referencia o puntero. La solución inmediata es declarar un struct que pueda albergar los tipos a devolver y usarlo como valor de retorno. Sin embargo, eso requiere declarar una estructura diferente para cada combinación de dos tipos que necesitemos, lo que resulta tedioso. Una solución simple la proporcionan las plantillas. 1. Declarar un struct de plantilla, Par, que toma dos parámetros. Cada parámetro será el tipo de un atributo de dicha clase. Asimismo la clase deberá proporcionar un constructor que tome una variable de cada tipo y un constructor sin argumentos. Escribir varias funciones que tomen dos argumentos (sin plantillas) y que devuelvan el tipo Par compuesto con esos argumentos. Componer las funciones para devolver parejas en las que alguno de los componentes es también un tipo Par. 2. La declaración de variables del tipo anterior es un poco prolija ya que siempre sólo se puede llamar al constructor si se hace una instanciación explícita, es decir, no se pueden deducir los parámetros. Por ejemplo Par(2, hola ) no compilaría, debería ser Par<int, const char *>(2, hola ) En el ejercicio anterior se han declarado funciones que toman pares y devuelven Par(es). Ahora se trata de escribir una función de plantilla que haga esto mismo exactamente, así para crear un par sólo habría que hacer: crear_par(2, hola ). Reemplazar las funciones compuestas Cual es el mecanismo por el cual el compilador sí puede determinar cual es el tipo que tiene que devolver esa función? 3. La STL proporciona la clase y función anterior, se trata de la plantilla pair y la función make_pair, de la cabecera <utility>. Estas clase es importante porque aparece en la interfaz de algunos contenedores estándar. Se trata pues de reemplazar el código de prueba de los ejercicios anteriores por estas utilidades.
3 4. ** Declarar una sobrecarga de plantilla del operador== a nivel global. Esta sobrecarga debe aceptar un párametro de tipo Par y otro de tipo pair (cada uno con sus parámetros) y compararlos. Escribir distintas pruebas en las que se verifique que expresiones de este estilo: make_pair(3, bool) == crear_par(3, bool) make_pair(crear_par('a', std::string( hola )), 10) == crear_par(make_pair('a', std::string( hola )), 10) crear_par(10, 45.0)!= make_pair(false, 'a') compilan y dan el resultado esperado. Pista: No basta con una sobrecarga sólo, hace falta poder comparar churras con merinas y merinas con churras. Ejercicio 4 El objetivo de este ejercicio es crear una clase de plantilla Vector que facilite el manejo de arrays y los dote de seguridad en el acceso a índices fuera de rango. La clase Vector a implementar recibirá un único parámetro de plantilla para el tipo a almacenar. Las funciones a implementar serán: 1. El contructor. Inicializa los atributos a valores seguros 2. Un metodo redimensionar. Cambia el tamaño máximo del vector, reserva espacio cuando sea necesario (por ej, primera reserva de memoria) y copia los datos del array viejo cuando sea necesario (por ej, redimensionar a un tamaño mayor). 3. El destructor, que liberará la memoria. 4. Operador [] para acceder a un elemento. Debe devolver el valor por referencia para que el siguiente código sea válido: Vector<int> v; v.redimensionar(1); v[0] = 10; // Modificación std::cout << v[0] << std::endl; //Acceso. Si se intenta acceder a un elemento por encima del máximo se debe imprimir un mensaje de error. Como ahora mismo no tenemos más recursos, a continuación se hará lo que se ha pedido, que con toda seguridad acabará en un acceso inválido a memoria. Nota: Un diseño más correcto incluiría una sobrecarga adicional del operador[] con modificadores const. 5. * No hemos definido constructor de copia. Qué peligros tendría asignar un Vector a otro? 6. * Definir el constructor de copia para que no haya peligro alguno (Pista: por simplicidad, el array interno no puede ser compartido, debe copiarse) 7. ** Un contructor de copia desde otro tipo de vector distinto que funcione cuando existe una conversión valida entre ambos tipos. Preocuparse sólo de los tipos escalares (int, float, double) porque entre ellos sí hay conversión. Nota: como se verá en las siguientes clases en detalle ya existe una clase, std::vector, que implementa este tipo de funcionalidades y muchas más. Ejercicio 5 En este ejercicio se va a escribir una clase de plantilla que haga de puntero inteligente. Un puntero inteligente debería ser una clase que tuviese prácticamente la misma sintaxis que un puntero normal, pero añada un manejo automático de la memoria para evitar problemas. En una primera
4 versión nuestra clase Puntero debería permitir código de este estilo: // crear un puntero con valor inicial nulo. Puntero<int> p1; // crear un puntero inicializado con un puntero. Puntero<int> p2 = new int(10); // asignar un puntero a un puntero nulo, tomar posesión del puntero p1 = new int(77); // asignar un puntero nuevo a un puntero con valor previo, // la memoria previa se libera y se toma posesión de la nueva p2 = new int(45); // asignación entre punteros inteligentes, el puntero destino libera cualquier memoria que pudiera poseer, toma la posesión del puntero origen y lo deja a nulo. // Dereferenciación del puntero std::cout << *p1 << ' ' << *p2 << std::endl; // Acceso a miembros para punteros a clases struct A { void f(); }; Puntero<A> p_a = new A; p_a->f(); // Al final del bloque se destruyen p1, p2 y pa, liberando la memoria a la que apuntan. Así lo que se exige al puntero inteligente sería lo siguiente: 1. Un constructor por defecto, uno de copia y un operador de asignación ( cuidado con la autoasignación!) 2. Un destructor 3. Que cuando se intente acceder a un puntero nulo se imprima un mensaje de error antes de que ocurra la catástrofe inminente (en código real en vez de imprimir un mensaje se usaría un assert o una excepción como se explicará en una lección posterior). 4. Una sobrecarga del operador* y del operador-> Escribir un programa que pruebe diversas cosas, se puede partir del ejemplo de arriba. Nuestro puntero anterior existe también ya en la STL, denominado auto_ptr y dentro de la cabecera <memory>. La característica más importante de este puntero es que es los punteros almacenados son exclusivos (al igual que en nuestro puntero) Cuestiones adicionales: 1. * Valdría la clase anterior como puntero inteligente para arrays? (Hay varias razones) 2. ** Sería posible escribir una clase sencilla que valiese para arrays y punteros normales? 3. *** Nuestro puntero es exclusivo. Sin embargo en la mayor parte de los casos interesa que cada variable puntero asignada desde un mismo puntero original apunte al mismo dato sin que ninguna pierda la referencia, ya que así es como funciona un puntero real. Una manera de llevar a cabo este propósito es llevar una cuenta del número de referencias al puntero y sólo liberarlo cuando esta llega a cero. En este apartado se trata de modificar nuestro puntero para incluir el contador de referencias (Pista: el contador de referencias tiene que ser compartido también por todas las variables que apuntan al mismo dato). Notas:
5 Un puntero de este estilo no es la solución definitiva a todos los problemas de manejo de memoria. Considerar que pasa por ejemplo si tenemos dos objetos con sendos punteros que se apuntan recíprocamente. Por desgracia, en la STL no existe ningún puntero que tenga esta funcionalidad. Para los curiosos, sí puede encontrar una clase shared_ptr como parte de Boost un conjunto de bibliotecas de C++ muy utilizados en todos los ámbitos.
Clases y Objetos en C++
Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar
Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.
Departamento de Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Uso de punteros Objetivos de la práctica: - Entender la representación de números (enteros y reales) en el
Funciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
Tema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
Tipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
ESTRUCTURA DE DATOS. Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo
ESTRUCTURA DE DATOS Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo DATOS ESTÁTICOS Su tamaño y forma es constante durante la ejecución
Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez
Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez 1. PUNTEROS 2. MEMORIA DINÁMICA 2 1. PUNTEROS 3 Qué es un puntero? Un tipo de variable cuyo valor es la dirección de memoria de otra variable.
Programación Orientada a Objetos en C++
Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo [email protected] Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación
Programación orientada a objetos I
Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual [email protected] Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar
Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Tema: Plantillas en C++.
Programación II. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Plantillas en C++. Objetivos Específicos Conocer los tipos de plantillas Utilizar las plantillas de
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
INTRODUCCIÓN A LA POO EN C++
INTRODUCCIÓN A LA POO EN C++ ÍNDICE DEL TEMA 1.- Introducción 2.- Diferencias C/C++ 3.- Programación orientada a objetos 4.- Aspectos avanzados C++ 1 1. Introducción Lenguaje C Lenguaje de propósito general
Tema 10: Tipos de datos definidos por el usuario
Tema 10: Tipos de datos definidos por el usuario Indice 1. Introducción 2. Registros 2.1. Elementos de un registro 2.2 Arrays de registros 2.3. Registros con arrays 2.4. Registros con registros 2.5. Paso
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Programación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Punteros y Memoria Dinámica II
Repaso Punteros y Memoria Dinámica II Curso INEM. Programación en C++ Santiago Muelas Pascual [email protected]! Memoria! Qué necesita el compilador para acceder a una variable?! Punteros! Operadores &
Apuntadores en C y C++
Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta
Tema: Clases y Objetos en C#. Parte II.
Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y
Tema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
UNIDAD 3 Modularidad
Modularidad Funciones de biblioteca, uso. Módulos. Concepto. Clasificación. Ámbito de identificadores. Transferencia de información a y desde procedimientos: los parámetros, tipos de parámetros. Conceptos
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.
Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores
Programación Orientada a Objetos Resumen de Temas Unidad 3: Constructores y destructores 3.1 Conceptos de métodos constructor y destructor Java inicializa siempre con valores por defecto las variables
Tema 6: Clases. Índice
Tema 6: Clases Antonio J. Sierra Índice 1. Fundamentos. 2. Declaración de objetos. 3. Asignación de objetos a variables referencia. 4. Métodos. 5. Constructores. 6. this. 7. Recogida de basura. 8. Modelado
Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado.
Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado. Probarlo con lo caracteres a, b, A y B 2. Hacer lo contrario, leer
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros
Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos
Academia de computación de IE, ICA e ISISA Unidad didáctica Programación Orientada a Objetos Elaboración y diseño de cien reactivos de opción múltiple para la unidad didáctica programación orientada a
Las plantillas permiten definir funciones genéricas.
Introducción (Genericidad). Plantillas de funciones o funciones genéricas. Sintaxis de plantillas. Ejemplos de declaraciones. A tener en cuenta Un ejemplo de plantilla de funciones: Máximo de un vector.
Laboratorio de Arquitectura de Redes. Punteros en lenguaje C
Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones
Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez
Objetivo N 2 Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez * Un programa en C++ está definido por funciones (grupo de instrucciones que pueden o no hacer
Algoritmo, Estructuras y Programación II Ing. Marglorie Colina
Unidad III Punteros Algoritmo, Estructuras y Programación II Ing. Marglorie Colina Ejemplo: Paso de Punteros a una Función Arreglos (Arrays) Unidimensionales Los Arreglos son una colección de variables
Tema: Sobrecarga. Objetivos. Materiales y Equipo. Introducción Teórica. Programación II. Guía No. 7
Programación II. Guía No. 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen con
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011
Tema 6. Gestión dinámica de memoria
Tema 6. Gestión dinámica de memoria http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, [email protected] Estructuras de datos y de la
! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes
Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
Tema: Punteros.Puntero this en C#.
POO. Guía No.7 1 Tema: Punteros.Puntero this en C#. Facultad: Ingeniería Escuela: Computación Asignatura: Programación Orientada a Objetos Materiales y Equipo Computadora con el software C#. Guía Número
Programación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Ejercicios de tratamiento de errores
Índice 1 Captura de excepciones (0.5 puntos)...2 2 Lanzamiento de excepciones (0.5 puntos)... 2 3 Excepciones como tipos genéricos en la aplicación filmotecas(0.5 puntos)...4 4 Excepciones anidadas en
PUNTEROS (APUNTADORES)
2010 UNAN LEON Departamento de Computación Ing. En Sistemas Sabatino Autor: Ing: Karina Esquivel Alvarado. Asignatura: Algoritmo y Estructura de Datos. PUNTEROS (APUNTADORES) TEMA 4: PUNTEROS (APUNTADORES)
PUNTEROS (Apuntadores)
PUNTEROS (Apuntadores) Unidad III INTRODUCCIÓN A PUNTEROS. CONCEPTOS BÁSICOS. DECLARACIÓN DE PUNTEROS. PUNTEROS Como una colección de posiciones de memoria consecutivas. En ella se almacenan los distintos
Tipos de Datos Estructurados
- Unidad 3 Tipos de Datos Estructurados 1 Tipos de Datos Compuestos en C 2 Arreglos (1) Un arreglo (array) una colección homogénea de datos simples ó compuestos, que se referencian con un nombre comú,
Tema 2: Clase y objetos en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 2: Clase y objetos en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Introducción Módulos en C++: Clases Estructuras (struct) Espacios de nombres (namespace) Semántica
Ejercicios de C. 1. Estructura de un programa. Objetivos: Practicar con el editor - usar el editor emacs emacs nombre.c
Ejercicios de C GRUPO DE COMPUTADORES Y TIEMPO REAL Michael González, J. Javier Gutiérrez 1 1. Estructura de un programa Practicar con el editor - usar el editor emacs emacs nombre.c y el compilador -
Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas
Tema 1. Programación modular Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas 1.1. Objetivos Repasar brevemente mediante ejemplos los elementos principales del lenguaje
Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1
Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Empresa Videojuegos (3.5 ptos.)... 1 1.2 Ejercicio 2: Clase Rectangulo (1.0 pto.)... 3 1.3 Ejercicio
Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.
Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo
Soluciones. boolean pruebaiteraseriegeometrica () { Serie s= new SerieGeometrica (1, 2); return (s.iterator() instanceof IteraSerieGeometrica); }
dit UPM Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Laboratorio de Programación 19 de Junio de 2002 Soluciones EJERCICIO 1 (UNA PÁGINA: UNA HOJA POR
Programación orientada a objetos II
Repaso de conceptos Programación orientada a objetos II Curso INEM. Programación en C++ Santiago Muelas Pascual [email protected]! Clase! Objeto! Atributos! Métodos! Cambio de enfoque! Constructor! Creación
4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
En un arreglo x de n elementos los elementos del arreglo son: El número de índices determina la dimensionalidad del arreglo.
1 Arreglos (Arrays). Muchas aplicaciones requieren el procesado de múltiples datos que tienen características comunes. En tales situaciones es a menudo conveniente colocar los datos en un arreglo ó array,
Memoria en C++ Punteros - Referencias Clases Y ahora, a trabajar! Memoria Dinámica en C++
Qué es una variable? Variables Memoria Matemática: una etiqueta que representa a un valor en una expresión: f (y) = y 2 + 2y Programación: Nombre simbólico dado a un valor residente en la memoria. Propiedades
Análisis semántico. Análisis semántico. Índice (I)
Análisis semántico Índice (I) Marina de la Cruz Alfonso Ortega Objetivo del análisis semántico Decisiones para la construcción de un analizador semántico Análisis semántico con Bison Nivel de indirección
TEMA 02 TIPOS, OPERADORES Y EXPRESIONES
TEMA 02 TIPOS, OPERADORES Y EXPRESIONES 2.1.- Introducción. 2.2.- Datos. 2.3.- Entrada y salida básica. 2.4.- Modificadores. 2.5.- Cadenas de caracteres. 2.6.- Operadores. 2.7.- Precedencia de operadores.
La sintaxis básica para definir una clase es la que a continuación se muestra:
DEFINICIÓN DE CLASES Y OBJETOS EN C# Sintaxis de definición de clases La sintaxis básica para definir una clase es la que a continuación se muestra: class nombreclase miembros De este modo se definiría
Escuela Politécnica Superior de Elche
EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs SEPTIEMBRE 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, una clase derivada puede acceder
Estructura de datos y Programación
Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de
TEMA 3:Programación con Clases y Objetos.
TEMA 3:Programación con Clases y Objetos. Objetivos: Explicar con claridad lo que es una clase como elemento fundamental de la Programación Orientada a Objetos y como se realiza la implementación de una
Programación I Funciones
1 Funciones Iván Cantador 2 Funciones: definición, sintaxis, ejemplos (I) Una funciónes un bloque de sentencias identificado con un nombre que se ejecutan de manera secuencial ofreciendo una funcionalidad
C++ me gusta++ Dr. Arno Formella. formella Universidad de Vigo Departamento de Informática E Ourense
C++ me gusta++ Dr. Arno Formella http://www.ei.uvigo.es/ formella Universidad de Vigo Departamento de Informática E-32004 Ourense 21 de febrero de 2003 1 Índice 1. Clases 3 2. Punteros y referencias 3
Cadenas de caracteres
Trabajo práctico Nº 6 (Trabajos con cadenas de caracteres y estructuras) Realiza el programa en Lenguaje C correspondiente. Cadenas de caracteres 1- Construir una función PASSWORD que pida por teclado
Programación de Videojuegos Tema 15 Tipos de Dato I. 15. Tipos de Dato I
15. Por ahora ya sabemos lo suficiente sobre el muestreo de textos por pantalla, aunque por supuesto a falta de practicar un poco. Vamos a cambiar un poco de temática y vamos a ver otros aspectos avanzados
Introducción al lenguaje C
Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos
Implementación de las Clases Pila, Cola, Lista y Arbol
1/1 Implementación de las Clases Pila, Cola, Lista y Arbol Josefina Sierra Santibáñez 28 de noviembre de 2017 2/1 Implementación de Estructuras de Datos Implementaremos cada estructura de datos en dos
Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Programación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!
class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }
Programación Basada en Objetos Lectura 2 Clases en Java Definición class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) class Tiempo{
Tema 18: Memoria dinámica y su uso en C
Tema 18: Memoria dinámica y su uso en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
Principal material bibliográfico utilizado
Vectores y Punteros Principal material bibliográfico utilizado www.jorgesanchez.net Fundamentos de Programación C/C++ - Ernesto Peñaloza Romero. Lenguaje C Adolfo Beltramo, Nélida Matas. En C el primer
Punteros. Programación en C 1
Punteros Programación en C 1 Índice Variables y direcciones de memoria. Punteros definición, declaración e inicialización. Punteros declaración, asignación y dereferencia. Puntero nulo, tipo void. Aritmética
Bloque II. Elementos del lenguaje de programación Java
Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida
Manual de referencia de C++ Parte IV Variables Punteros. Preparado por Prof. Luis A. Ortiz Ortiz
Manual de referencia de C++ Parte IV Variables Punteros Preparado por Prof. Luis A. Ortiz Ortiz TABLA DE CONTENIDO Memoria de la computadora... 1 Representación de la memoria de la computadora... 1 Declaración
Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java Dr. (c) Noé Alejandro Castro Sánchez Programas Java Applets Pueden correr en navegadores Web Agregan funcionalidad a páginas Web Se llega a restringir su funcionalidad (e. g., no pueden:
Punteros. Lenguaje C ANSI
Punteros. Lenguaje C ANSI Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección
TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.
Arquitectura de sistemas Abelardo Pardo University of Sydney School of Electrical and Information Engineering NSW, 00, Australia Autor principal del curso de 00 a 0 Iria Estévez Ayres Damaris Fuentes Lorenzo
ESTRUCTURAS. Struct Identificador_ tipo_estructura { Tipo miembro_1; /*Declaración de los miembros*/
DECLARACION DE ESTRUCTURAS ESTRUCTURAS La estructura es una colección de variables, la cual puede poseer distintos tipos de datos (a diferencia de los arreglos que solamente pueden tener un solo tipo de
Modulo 11. Clases y Objetos en Java
El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.
Conversión entre Tipos
Conversión entre Tipos La conversión entre tipos permite comparar y copiar valores entre diferentes tipos. En esta lección describiremos como convertir un tipo dado en otro. Conversión en VB y Existen
Descripción y Contenido del Curso. Programación C++ Capacity Academy.
Descripción y Contenido del Curso Programación C++ Capacity Academy Educación en Tecnología de la Información Online, Efectiva y Garantizada Qué aprenderá si toma este Curso? En este curso aprenderás todo
