, , , Indicar la salida por pantalla (2 puntos-20 minutos) Indicar la impresión por pantalla del siguiente programa:

Tamaño: px
Comenzar la demostración a partir de la página:

Download ", , , Indicar la salida por pantalla (2 puntos-20 minutos) Indicar la impresión por pantalla del siguiente programa:"

Transcripción

1 3. Indicar la salida por pantalla (2 puntos-20 minutos) Indicar la impresión por pantalla del siguiente programa: #include <iostream.h> class ClaseA int a; ClaseA(int n):a(n) void mostrar()cout<<a<<endl; ; class ClaseB:public ClaseA int b; ClaseB(int n, int m):b(n),clasea(m) void mostrar()cout<<a<<','<<b<<endl;; ; ClaseA ca(2); ClaseB cb(8,4); ca.mostrar(); cb.mostrar(); ca=cb; ca.mostrar(); cb.mostrar(); ClaseA *c1=new ClaseA(1); ClaseB *c2=new ClaseB(2,3); ClaseA *c3=c1,*c4=c2; c3->mostrar(); c4->mostrar(); ClaseB *c5; c5 = static_cast<claseb *>(c4); c5->mostrar(); delete c1; delete c2; , , ,2 8

2 4. Ejercicio de programación (2,5 puntos-50 minutos) Uno de los clases más clásicas y evidentes en las que se guarda especialmente el encapsulamiento son las clases contenedoras, cuya misión es la de almacenar referencias a objetos u objetos. Hay varios tipos clásicos de contenedores, entre los que cabe destacar las pilas de datos, los árboles, las listas enlazadas, etc. El siguiente ejercicio consiste en completar y trabajar con una pequeña estructura de clases que implementa una pila de datos. Para ello se dispone de una clase base denominada EUITIapilable, que servirá de sustento para los objetos que posteriormente se quieran introducir en una pila. El código de esta clase está COMPLETO, y es utilizado por la clase EUITIpila que es quien implementa la función de pila, o dicho de otra forma, de contenedor LIFO (Last In First Out). Esta funcionalidad se logra mediante la inclusión de una lista encadenada de objetos EUITIapilable, tal y como representa el esquema de la figura: PILA 0 Raiz anterior siguiente Objeto anterior siguiente Objeto anterior siguiente 0 De forma que cada vez que se añade un nuevo elemento a la pila, lo que se hace es que el nodo Raiz, apunte con su puntero siguiente a este nuevo elemento, y al antiguo elemento que estaba al principio de la pila se le dice que su puntero anterior apunte al nuevo. De forma coherente se procede a modificar los punteros anterior y siguiente del nuevo objeto para mantener la lista organizada. Las funciones que hacen esto se denominan push() para insertar, y pop() para extraer. Además se incluye una función main, que demuestra un primer uso de EUITIpila. SE PIDE, por orden: 1.- Escribir la definición del destructor de EUITIpila, el cual eliminará todo lo almacenado. (1 punto) 2.- Escribir la definición del método getnumero() de EUITIpila. (2 puntos) 3.- Sobrecargar el operador += de EUITIpila de forma que se comporte igual que el método push(). (2 puntos) 4.- Escribir completamente la clase Numero de forma que sea coherente con el uso que se da de la misma en la función main. (2 puntos) 5.- Crear una clase Vector que pueda ser introducida en la pila, y que permita almacenar ternas de tres números decimales. (2 puntos) 6.- Escribir una función main nueva que permita incluir en la pila tanto Números como Vectores a elección del usuario, y que después muestre lo almacenado por pantalla. Se recomienda crear para ello una clase abstracta que de una interfaz de impresión y petición de datos, y de la cual se puede hacer heredar tanto número como vector. (2 puntos) NOTA : Aunque la suma de puntuaciones es 11, la máxima nota posible en el ejercicio será de 10.

3 class EUITIapilable friend class EUITIpila; EUITIapilable *siguiente; EUITIapilable *anterior; EUITIapilable():siguiente(0),anterior(0); virtual ~EUITIapilable() if(anterior==0)return; //no esta en la pila if(siguiente) anterior->siguiente=siguiente; siguiente->anterior=anterior; else anterior->siguiente=0; ; class EUITIpila EUITIapilable raiz; void push(euitiapilable *obj); EUITIapilable *pop(); int getnumero(); //numero de elementos en la pila void vacia(); ~EUITIpila(); //elimina los elementos de la pila ; //introduce el objeto al principio de la pila void EUITIpila::push(EUITIapilable *obj) if(obj==0)return; if(raiz.siguiente)( raiz.siguiente)->anterior=obj; obj->siguiente=raiz.siguiente; obj->anterior=&raiz; raiz.siguiente=obj; //saca el primer objeto de la pila EUITIapilable *EUITIpila::pop() if(raiz.siguiente==0)return 0; EUITIapilable *aux=raiz.siguiente; raiz.siguiente=aux->siguiente; if(raiz.siguiente)( raiz.siguiente)->anterior=&primero; aux->anterior=aux->siguiente=0; return aux; //elimina los elementos almacenados y deja la pila //preparada para ser utilizada de nuevo void EUITIpila::vacia() EUITIapilable *aux; while(aux=pop())delete aux; #include <iostream.h> EUITIpila pila; Numero *aux;; int num; cin>>num; while(num) pila.push(new Numero(num)); cin>>num; cout<<"se han almacenado "<<pila.getnumero()<<"numeros:\n"; while(aux=(numero *)(pila.pop())) cout<<aux->num<<endl; delete aux;

4 1.- Escribir la definición del destructor de EUITIpila, el cual eliminará todo lo almacenado. (1 punto) EUITIpila::~EUITIpila() vacia(); 2.- Escribir la definición del método getnumero() de EUITIpila. (2 puntos) int EUITIpila::getNumero() int num=0; EUITIapilable *aux=&raiz; while(aux->siguiente) aux=aux->siguiente; num++; return num; 3.- Sobrecargar el operador += de EUITIpila de forma que se comporte igual que el método push(). (2 puntos) void EUITIpila::operator += (EUITIapilable *obj) push(obj); 4.- Escribir completamente la clase Numero de forma que sea coherente con el uso que se da de la misma en la función main. (2 puntos) class Numero:public EUITIapilable int num; Numero(int n):num(n); ; 5.- Crear una clase Vector que pueda ser introducida en la pila, y que permita almacenar ternas de tres números decimales. (2 puntos) class Vector:public EUITIapilable float data[3]; Vector(float a,float b, float c) data[0]=a; data[1]=b; data[2]=c; ; 6.- Escribir una función main nueva que permita incluir en la pila tanto Números como Vectores a elección del usuario, y que después muestre lo almacenado por pantalla. Se recomienda crear para ello una clase abstracta que de una interfaz de impresión y petición de datos, y de la cual se puede hacer heredar tanto número como vector. (2 puntos)

5 #include <iostream.h> class Interfaz: public EUITIapilable virtual void pedir()=0; virtual void imprimir()=0; ; class Numero:public Interfaz int num; Numero(int n=0):num(n); void pedir() cin>>num; void imprimir() cout<<num; ; class Vector:public Interfaz float data[3]; Vector(float a=0,float b=0, float c=0) data[0]=a; data[1]=b; data[2]=c; void pedir() cin>>data[0]>>data[1]>>data[2]; void imprimir() cout<<data[0]<<data[1]<<data[2]; ; EUITIpila pila; Interfaz *aux; char sel='1'; while(sel!='3') cout<<"1.- Numero"<<endl; cout<<"2.- Vector"<<endl; cout<<"3.- Salir"<<endl; cin>>sel; if(sel=='1') aux=new Numero(); else if(sel=='2') aux=new Vector(); else aux=0; if(aux) aux->pedir(); pila.push(aux); cout<<"se han almacenado "<<pila.getnumero()<<"cosas:\n"; while(aux=(interfaz *)(pila.pop())) aux->imprimir(); cout<<endl; delete aux;

6 5. Problema de Análisis y Diseño Orientado a Objetos (2.5 puntos - 50 minutos) Se pretende desarrollar un programa de simulación de un vapor de agua, para el que se ha desarrollado ya la siguiente clase, que funciona correctamente y no es necesario modificar: class Atomo Atomo(int num); virtual ~Atomo(); void Enlaza(Atomo* a); void CalculaPosicion(); void Dibuja(); float x; float y; float z; int numero_atomico; ; Atomo* enlace; Ejemplo del resultado final Supóngase que el método CalculaPosicion() es capaz de calcular la posición del átomo en el espacio teniendo en cuenta todas las interacciones físicas, incluyendo la posibilidad que dicho átomo haya establecido un enlace con otro átomo. El código para dibujar una molécula de agua utilizando la clase Atomo sería el siguiente: Atomo hidrogeno1(1); Atomo hidrogeno2(1); Atomo oxigeno(16); hidrogeno1.enlaza(&oxigeno); hidrogeno2.enlaza(&oxigeno); oxigeno.calculaposicion(); hidrogeno1.calculaposicion(); hidrogeno2.calculaposicion(); hidrogeno1.dibuja(); hidrogeno2.dibuja(); oxigeno.dibuja(); Donde es importante el orden de cálculo de las posiciones, es decir, primero se calcula la posición del oxigeno, y después la de los átomos de hidrogeno, que dependen del átomo de oxigeno. Cuando el programa este completado, el código del main() debe quedar como: VaporAgua vapor(30); //30 moleculas de agua vapor.calculaposicion(); vapor.dibuja(); Se pide: 1. Diagrama de Clases de Diseño (DCD de la solución), que incluya orientación a objetos para cada molécula de agua. (3,5 puntos) 2. Implementación de la solución en C++ (3,5 puntos) 3. Un diagrama de secuencias del cálculo de la posición y el dibujo del vapor, a partir de la función main().(3 puntos) SOLUCION: 1:

7 2: 3:CODIGO #include "Atomo.h" //MoleculaAgua.h class MoleculaAgua MoleculaAgua(); void Dibuja(); void CalculaPosicion(); Atomo hidrogeno1; Atomo hidrogeno2; Atomo oxigeno; ; //MoleculaAgua.cpp MoleculaAgua::MoleculaAgua():oxigeno(16),hidrogeno1(1),hidrogeno2(1) hidrogeno1.enlaza(&oxigeno); hidrogeno2.enlaza(&oxigeno); void MoleculaAgua::CalculaPosicion()

8 oxigeno.calculaposicion(); hidrogeno1.calculaposicion(); hidrogeno2.calculaposicion(); void MoleculaAgua::Dibuja() hidrogeno1.dibuja(); hidrogeno2.dibuja(); oxigeno.dibuja(); //VaporAgua.h #include "MoleculaAgua.h" class VaporAgua VaporAgua(int num); virtual ~VaporAgua(); void CalculaPosicion(); void Dibuja(); Molecula* moleculas[100]; int num_moleculas; ; //VaporAgua.cpp #include "VaporAgua.h" VaporAgua::VaporAgua(int num) for(int i=0;i<num;i++) Molecula* m=new MoleculaAgua; moleculas[num_moleculas++]=m; VaporAgua::~VaporAgua() for(int i=0;i<num_moleculas;i++) delete moleculas[i]; num_moleculas=0; void VaporAgua::Dibuja() for(int i=0;i<num_moleculas;i++) moleculas[i]->dibuja(); void VaporAgua::CalculaPosicion() for(int i=0;i<num_moleculas;i++) moleculas[i]->calculaposicion();

3. Indicar la salida por pantalla (2 puntos-10 minutos)

3. Indicar la salida por pantalla (2 puntos-10 minutos) APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL Departamento El.A.I. ASIGNATURA INFORMÁTICA INDUSTRIAL Calificación CURSO 2º GRUPO Junio

Más detalles

3. Indicar la salida por pantalla del último for de la función main dado el siguiente código c++: (2 puntos-20 minutos)

3. Indicar la salida por pantalla del último for de la función main dado el siguiente código c++: (2 puntos-20 minutos) 3. Indicar la salida por pantalla del último for de la función main dado el siguiente código c++: (2 puntos-20 minutos) #define MAX 10 class ListaD int num; int lista[max]; ListaD(void):num(0)lista[0]=1;

Más detalles

Estructuras de Datos

Estructuras de Datos 8 de marzo de 2011 1 2 3 4 5 Tipo de Dato Abstracto Un tipo de dato abstracto (TDA), corresponde a un conjunto de valores y un conjunto de operaciones sobre tales valores. s de TDA Enteros. Reales. Booleanos.

Más detalles

Examen de junio de Informática Industrial (04/05)

Examen de junio de Informática Industrial (04/05) 3 Indicar y explicar el resultado de la ejecución del siguiente código: (10 minutos) ÆLQFOXGHÃLRVWUHDPK!Ã ÆLQFOXGHÃPDWKK!Ã FODVVÃYHFWRUÃ ^Ã SXEOLFÃ YHFWRULQWÃQ GRXEOHÃY 18//Ã double operator[](double ind);

Más detalles

Impresión por pantalla. 3. Indicar la salida por pantalla (2 puntos-20 minutos)

Impresión por pantalla. 3. Indicar la salida por pantalla (2 puntos-20 minutos) 3. Indicar la salida por pantalla (2 puntos-20 minutos) #include class EUITIelemento; class EUITIpila int num; EUITIelemento *pila[10]; EUITIpila():num(0); bool push(euitielemento *in) if(num>=10)return

Más detalles

CURSO 2º GRUPO Junio 2011

CURSO 2º GRUPO Junio 2011 APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL Departamento El.A.I. ASIGNATURA INFORMÁTICA INDUSTRIAL Calificación CURSO 2º GRUPO Junio

Más detalles

Hoja de ejercicios del Tema 9

Hoja de ejercicios del Tema 9 Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;

Más detalles

Las FILAS. ING PEDRO BELTRÁN CANESSA Estructuras de Datos 1

Las FILAS. ING PEDRO BELTRÁN CANESSA Estructuras de Datos 1 Las FILAS Estructuras de Datos 1 LA FILA (Conceptos...) Es un contenedor que utiliza el protocolo FIFO (First In, First Out) o bien, PEPS (Primeras Entradas, Primeras Salidas) Entrada Salida Estructuras

Más detalles

UML dinámico y de implementación. (C-305)

UML dinámico y de implementación. (C-305) UML dinámico y de implementación carlos.platero@upm.es (C-305) UML dinámico Vistas de UML Estructural, Dinámico, Implementación Dinámico o de evolución temporal Diagramas de Interacción (Secuencia, Colaboración),

Más detalles

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos

Más detalles

Escuela Politécnica Superior de Elche

Escuela Politécnica Superior de Elche EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs JUNIO 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, cuando se destruye un objeto de una

Más detalles

Impresión por pantalla

Impresión por pantalla 3. Indicar la salida por pantalla (2 puntos-20 minutos) #include template void Funcion_B(S& a, S& b); template void Funcion_A (T *vector, int num); void main(void) float

Más detalles

Tema 7. Colas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía. {badia, bmartine,

Tema 7. Colas.   José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía. {badia, bmartine, Tema 7. Colas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía {badia, bmartine, morales}@icc.uji.es Estructuras de datos y de la información Universitat Jaume

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos

Más detalles

Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz

Tema 8. Listas.  José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz Tema 8. Listas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat

Más detalles

APUNTES PROII 2º PARCIAL.

APUNTES PROII 2º PARCIAL. APUNTES PROII 2º PARCIAL. MEMORIA DINÁMICA. Hay que distinguir entre: Estática: memoria que se reserva en tiempo de compilación. Dinámica: memoria que se reserva en tiempo de ejecución. 5 pasos: 1. Declaración

Más detalles

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos.

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Con relación a la Estructura LISTA Indicar objetos reales que se puedan modelar con dicha estructura. Listas de Ordenes de visitas

Más detalles

Tema: Tipos Abstractos de Datos (TAD s) en C++.

Tema: Tipos Abstractos de Datos (TAD s) en C++. Programación II. Guía 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C++. Objetivos Específicos Explicar el concepto "Tipo Abstracto

Más detalles

3.- Resolución a) Salida por pantalla A B B says Ladra! C C says Ladra! D

3.- Resolución a) Salida por pantalla A B B says Ladra! C C says Ladra! D 3. Indicar la salida por pantalla (2 puntos-20 minutos) NOTA: La clase string es un tipo especial de contenedor diseñado para manipular secuencias de caracteres. a) #include #include

Más detalles

3.- Desarrollar las clases Pluma, Agenda y Movil escribiendo la menor cantidad de código posible sin por ello perder claridad.

3.- Desarrollar las clases Pluma, Agenda y Movil escribiendo la menor cantidad de código posible sin por ello perder claridad. 4. Ejercicio de programación Dado el siguiente programa principal: void main() Maletin mimaletin; mimaletin+=new Pluma(azul); mimaletin+=new Agenda(rojo); mimaletin+=new Movil(negro); mimaletin.mostrarcontenido();

Más detalles

Escuela Politécnica Superior de Elche

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

Más detalles

PILAS. Prof. Ing. M.Sc. Fulbia Torres

PILAS. Prof. Ing. M.Sc. Fulbia Torres S ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS PILAS Definición. Operaciones. Implementación secuencial. Aplicaciones. Ejemplos. Ejercicios. DEFINICIÓN Una PILA (o stack) es una estructura

Más detalles

1. El Tipo Abstracto de Datos.

1. El Tipo Abstracto de Datos. Tipo Abstracto de s TAD Pila y TAD Cola 1. El Tipo Abstracto de s. 2. Definición de un TAD Pila. 3. Operaciones sobre el TAD Pila. 4. Implementación dinámica del TAD Pila en C. 5. Definición de un TAD

Más detalles

Estructuras de Datos Clase 4 Pilas y colas

Estructuras de Datos Clase 4 Pilas y colas Estructuras de Datos Clase 4 Pilas y colas Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Tipo

Más detalles

Pilas Motivación

Pilas Motivación Capítulo 4 Pilas Las pilas son estructuras muy sencillas y poderosas, también conocidas como LIFO (last in, first out) por la forma en que se trabaja con ellas. Ejemplo de ellas son las pilas de charolas

Más detalles

Profesor: José Miguel Rubio L.

Profesor: José Miguel Rubio L. Profesor: José Miguel Rubio L. Magíster en Ingeniería Informática Ingeniero Civil en Informática Licenciado en Ciencias de la Ingeniería Técnico en Programación Oficina: 3-20 e-mail 1: jose.rubio.l@ucv.cl

Más detalles

Tipos de Datos Abstractos

Tipos de Datos Abstractos Tipos de Datos Abstractos Facultad de Ciencias de la Computación Juan Carlos Conde R. Object-Oriented Programming I Contenido 1 Introducción 2 Estructura tipo LIFO 3 Estructura tipo FIFO 4 LISTAS Ligadas

Más detalles

Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES

Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES Estructura de datos y algoritmos Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES 4.1 Introducción 4.2 Ejemplos de TDA dinámicos lineales 4.3 Pilas 4.3.1

Más detalles

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo

Más detalles

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ Fichero nodo.h #ifndef NODO_H #define NODO_H const int cantidad_nodos = 10; class Nodo private: string dato; Nodo* siguiente; public: Nodo(); void setdato(string

Más detalles

Estructura de Datos L I S T A

Estructura de Datos L I S T A Estructura de Datos TDA L I S T A El TDA Lista El TDA Lista es una estructura compuesta por nodos (en los cuales se encuentran los datos almacenados) los cuales se encuentran enlazados entre si uno a uno

Más detalles

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación: Clase teórica 2 Algoritmos en C Página 1 de 6 TIPOS DE DATOS Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación: Por el momento nuestro

Más detalles

Tema: Tipos Abstractos de Datos (TAD s) en C#.

Tema: Tipos Abstractos de Datos (TAD s) en C#. Programación II. Guía No. 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C#. Objetivos Comprender el concepto Tipo Abstracto de Datos

Más detalles

Ejercicios De Programación De C++ Algoritmos. Lenguaje De Programación C++:

Ejercicios De Programación De C++ Algoritmos. Lenguaje De Programación C++: Ejercicios De Programación De C++ 1. Muestre en pantalla el mensaje Bienvenido. Algoritmos 1. Inicio 2. muestrer en pantalla el mensaje Bienvenido 3. Fin Lenguaje De Programación C++: #include

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C 2013 ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C Departamento de Computación UNAN-León TEMA 4: ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 4.1 INTRODUCCIÓN: En términos de listas lineales, una pila puede ser

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Asignación Dinámica Asignación Dinámica es la creación de un objeto mientras el programa está en ejecución. Para ello

Más detalles

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 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

Más detalles

Tema 2: Clases y Objetos

Tema 2: Clases y Objetos Tema 2: Clases y Objetos Anexo: tipo de datos Pila Programación Orientada a Objetos Curso 2017/2018 Características del paradigma OO Curso 2017/2018 Programación Orientada a Objetos 2 Características del

Más detalles

Listas, pilas, colas

Listas, pilas, colas Listas, pilas, colas Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas TAD Tipo Abstracto de Dato Qué es un TAD? TAD: Tipo Abstracto de Dato. Nuevo

Más detalles

3. Indicar la salida por pantalla (2 puntos-15 minutos)

3. Indicar la salida por pantalla (2 puntos-15 minutos) 3. Indicar la salida por pantalla (2 puntos-15 minutos) #include class Tiempo Tiempo ():hora(0), minuto(0) cout

Más detalles

Estructuras de Datos Dinámicas: Tipo de Dato Abstracto parte I. Programación I Departamento de Informática Universidad Nacional de San Luis Argentina

Estructuras de Datos Dinámicas: Tipo de Dato Abstracto parte I. Programación I Departamento de Informática Universidad Nacional de San Luis Argentina Estructuras de Datos Dinámicas: Tipo de Dato Abstracto parte I Programación I Departamento de Informática Universidad Nacional de San Luis Argentina Progreso de la Abstracción Los diferentes niveles de

Más detalles

Tema 6. Gestión dinámica de memoria

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, sanchiz@icc.uji.es Estructuras de datos y de la

Más detalles

Estructuras Enlazadas AyED UTN-BA

Estructuras Enlazadas AyED UTN-BA Funciones para estructuras enlazadas Sin Plantilla El Nodo Con plantilla para un dato genérico en info El Nodo struct Nodo1 int info; Nodo* sig; ; Nodo1* p1 = new Nodo1(); struct Nodo2 string info; Nodo*

Más detalles

Estructuras dinámicas lineales (i)

Estructuras dinámicas lineales (i) Estructuras dinámicas lineales (i) Introducción En la lección anterior se explicaron los conceptos de dinámicas y puntero; vimos la forma en que se implementan dichas tanto en la notación algorítmica como

Más detalles

Cálculo del histograma de una imagen

Cálculo del histograma de una imagen Cálculo del histograma de una imagen Una imagen digital se puede representar por una matriz de tamaño NxM elementos dónde N es el número de filas y M es el número de columnas. En cada uno de estos elementos

Más detalles

Herencia y Polimorfismo en C++

Herencia y Polimorfismo en C++ Herencia y Polimorfismo en C++ Informática II Fundamentos de Programación 1 Herencia Concepto de "herencia" herencia": Una clase -clase derivada- puede definirse a partir de otra clase ya existente (clase

Más detalles

INTRODUCCIÓN A LA POO EN C++

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

Más detalles

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Asignación Dinámica de Memoria Asignación Dinámica de memoria es la creación de un objeto mientras el programa está en

Más detalles

Alonso Ramírez Manzanares Computación y Algoritmos 10.03

Alonso Ramírez Manzanares Computación y Algoritmos 10.03 Recursividad mat-151 1 Ejercicio de recursión: dibujando una regla Queremos dibujar las marcas de diferentes tamaños de una regla. Marcas grandes cada 1/2 cm, marcas más pequeñas cada 1/4 cm... hasta una

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Carnet Nombre: Examen C++ Grupo B Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Pág.1 Índice 1. INTRODUCCIÓN... 1 2. EJERCICIO 1: GRAFICA DE DATOS (3.5 PTS.)... 1 3. EJERCICIO 2:

Más detalles

LISTAS ENLAZADAS DOBLES C++

LISTAS ENLAZADAS DOBLES C++ LISTAS ENLAZADAS DOBLES C++ fichero nodo.h #ifndef NODO_H #define NODO_H #include using namespace std; class Nodo private: int codigo; string nombre; float nota1; float nota2; float nota3; Nodo*

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

Tema 5. Estructura de datos Pila

Tema 5. Estructura de datos Pila Tema 5. Estructura de datos Pila http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la

Más detalles

Capitulo V Listas Enlazadas

Capitulo V Listas Enlazadas Capitulo V Listas Enlazadas Muere lentamente, quien abandona un proyecto antes de iniciarlo, no preguntando de un asunto que desconoce o no respondiendo cuando le indagan sobre algo que sabe. Evitemos

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS)

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 200 UNAN LEON Departamento de Computación Ingeniería en Sistema y Telemática Docente: Ing. Juan Carlos Antón S. Asignatura: Algoritmo y Estructuras de Datos ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) Pilas

Más detalles

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos

Más detalles

Tipos de Datos Abstractos

Tipos de Datos Abstractos Tipos de Datos Abstractos A continuación se exploran algunos tipos de datos abstractos fundamentales. Se estudiaran listas, que son secuencias de elementos, y dos tipos especiales de listas: las pilas,

Más detalles

Un hombre caminaba por el bosque cuando vió una zorra lisiada. " Cómo hará para alimentarse?", pensó.

Un hombre caminaba por el bosque cuando vió una zorra lisiada.  Cómo hará para alimentarse?, pensó. Capitulo III Colas El camino del Tigre Un hombre caminaba por el bosque cuando vió una zorra lisiada. " Cómo hará para alimentarse?", pensó. En ese momento, se acercó un tigre, con un animal entre los

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 6 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 6 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Clase

Más detalles

Tema: Plantillas en C++.

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

Más detalles

Estructuras de datos en memoria principal

Estructuras de datos en memoria principal Estructuras de datos Estructuras de datos en memoria principal Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Actualización: 11

Más detalles

ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1).

ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1). ÁRBOL BINARIO - Un árbol binario puede definirse como un árbol que en cada nodo puede tener como mucho grado 2, es decir, a lo más 2 hijos. Los hijos suelen denominarse hijo a la izquierda e hijo a la

Más detalles

Tipos de datos y operadores en C++

Tipos de datos y operadores en C++ Tipos de datos y operadores en C++ El tipo de dato determina la naturaleza del valor que puede tomar una variable. Un tipo de dato define un dominio de valores y las operaciones que se pueden realizar

Más detalles

= RETURN =3 7-. ELSE K

= RETURN =3 7-. ELSE K 11-. Pida Al Usuario Dos Números Enteros (Que Se Guardaran En Las Variables Num 1 Y Num2). Si Num2 Es Cero, Deberá Mostrar Un Mensaje De Error, Y En Caso Contrario Mostrara En Pantalla El Resto De La División

Más detalles

Guía de la asignatura de Sistemas Informáticos Industriales (ADOO)

Guía de la asignatura de Sistemas Informáticos Industriales (ADOO) Guía de la asignatura de Sistemas Informáticos Industriales (ADOO) Carlos Platero Dueñas (C-305) carlos.platero@upm.es Contenidos generales Dos partes Herramientas y Sistemas operativos (SO) (7-12) Ángel

Más detalles

CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS

CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS 1 TEMAS A VER Listas simples genéricas Pilas Colas 2 LISTA SIMPLE GENÉRICA Una lista simple genérica nos permite crear listas de diferentes objetos: enteros, char,

Más detalles

TIPO DE DATO ABSTRACTO (TDA)

TIPO DE DATO ABSTRACTO (TDA) TIPO DE DATO ABSTRACTO (TDA) Ing. Eduard Antonio Lozano Córdoba Nota: Toda la información fue copiada de: Libros físicos e Internet Actividad Extra Clases #include #include int binario(int

Más detalles

Contenido. Estructura de Datos Tema 1: Pilas. 1. Definición y operaciones. 2. Implementación estática. 3. Implementación dinámica. 4.

Contenido. Estructura de Datos Tema 1: Pilas. 1. Definición y operaciones. 2. Implementación estática. 3. Implementación dinámica. 4. Estructura de Datos Tema 1: Pilas Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx 1 Contenido 1. Definición y operaciones

Más detalles

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo. Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.

Más detalles

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo. Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar

Más detalles

INFORMATICA II PRIMER PARCIAL

INFORMATICA II PRIMER PARCIAL Grupo 1 INFORMATICA II PRIMER PARCIAL Hacer un programa en C o C++ que realice lo siguiente: a. Almacenar en un archivo binario 100 juegos de valores compuestos por un valor entero, un número real y una

Más detalles

Polimorfismo. Métodos virtuales

Polimorfismo. Métodos virtuales Polimorfismo. Métodos virtuales El polimorfismo indica que una variable pasada o esperada puede adoptar múltiples formas. Cuando se habla de polimorfismo en programación orientada a objetos se suelen entender

Más detalles

Pilas, Colas. Andrea Rueda. Estructuras de Datos. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas

Pilas, Colas. Andrea Rueda. Estructuras de Datos. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Pilas, Colas Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Quiz: STL Quiz: STL Standard Template Library (STL) std::vector - Arreglo dinámico,

Más detalles

Programación. Test Autoevaluación Tema 3

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.

Más detalles

POO PROGRAMACIÓN ORIENTADA A OBJETOS

POO PROGRAMACIÓN ORIENTADA A OBJETOS POO PROGRAMACIÓN ORIENTADA A OBJETOS 1 Programación estructurada, consiste en descomponer el problema objeto de resolución en subproblemas y más subproblemas hasta llegar a acciones muy simples y fáciles

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 2 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 2 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Reserva

Más detalles

Programación de sistemas Pilas y Colas

Programación de sistemas Pilas y Colas Programación de sistemas Pilas y Colas Departamento de Ingeniería Telemática 1 Contenidos Pilas (stacks) Colas (queues) Colas dobles (deques double-ended queues) 2 Pilas Estructura de datos lineal Inserción

Más detalles

Estructuras de datos en memoria principal

Estructuras de datos en memoria principal Estructuras de datos en memoria principal Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Estructuras de datos v Estructuras básicas

Más detalles

Asignación Dinámica de Memoria. Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001

Asignación Dinámica de Memoria. Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001 1 Asignación Dinámica Asignación Dinámica es la creación de un objeto mientras el

Más detalles

Estructura de datos Colas

Estructura de datos Colas Estructura de Datos Estructura de datos Colas Temario Unidad II 2.1 Definición y operaciones 2.2 Implementación estática 2.3 Implementación dinámica 2.4 Colas de prioridad 2.5 Casos de estudio 1 Definición

Más detalles

Sobre Carga de Operadores

Sobre Carga de Operadores Programación Orientada o Objetos Univesidad de Los Andes - Facultad de Ingeniería Escuela de Sistemas Programación Digital II Profesor: Gilberto Diaz gilberto@ula.ve Las operaciones tradicionales que se

Más detalles

Programación. Test Autoevaluación Tema 6

Programación. Test Autoevaluación Tema 6 Programación Test Autoevaluación Tema 6 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordóñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1 Contenidos: 1. Características generales de C++ 2. Entrada/salida estándar 3. Variables y tipos de datos

Más detalles

Cadenas (strings) y Estructuras

Cadenas (strings) y Estructuras Cadenas (strings) y Estructuras Fundamentos de Programación Fundamentos de Programación I Operaciones básicas definidas para string Creación de variables: string palabra, frase; Asignación: frase = palabra;

Más detalles

TAD: Pila. TALLER: TAD Pila

TAD: Pila. TALLER: TAD Pila TALLER: TAD Una pila (stack) es un conjunto de elementos del mismo tipo que solamente puede crecer o decrecer por uno de sus extremos. Una pila también se la conoce con el nombre de estructura de tipo

Más detalles

Programación Orientada o Objetos

Programación Orientada o Objetos Programación Orientada o Objetos Programación digital II Escuela de Sistemas Facultad de Ingeniería Profesor: Gilberto Diaz Programación Orientada a Objetos En 1970 Dennis Ritchie y Brian Kernigan crearon

Más detalles

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

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

Más detalles

B.- Ejercicio de Herencia y Polimorfismo: FORMAS

B.- Ejercicio de Herencia y Polimorfismo: FORMAS B.- Ejercicio de Herencia y Polimorfismo: FORMAS 1. Defina una clase Forma que tenga los siguientes miembros de datos: - Color - Coordenada del centro de la forma (objeto Punto) - Nombre de la forma (char

Más detalles

Estructuras de Datos y Algoritmos (ITIS). TAD Tree. Estructuras de Datos y Algoritmos (ITIS) Ingeniería Técnica en Informática de Sistemas, Curso 2º

Estructuras de Datos y Algoritmos (ITIS). TAD Tree. Estructuras de Datos y Algoritmos (ITIS) Ingeniería Técnica en Informática de Sistemas, Curso 2º Estructuras de Datos y Algoritmos (ITIS) Ingeniería Técnica en Informática de Sistemas, Curso 2º PRÁCTICA 3 TAD TREE Árbol binario de búsqueda. Tabla de frecuencias. Uno de los mecanismos más sencillos

Más detalles

Elementos de un programa en C

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

Más detalles

Polimorfismo de tipo (en la herencia)

Polimorfismo de tipo (en la herencia) Polimorfismo de tipo (en la herencia) Pablo San Segundo (C-206) pablo.sansegundo@upm.es Índice Overriding (especialización o redefinición) Static bind (enlace estático) Dynamic bind (enlace dinámico) Clases

Más detalles

ALGORITMO: LENGUAJE C++: # include <iostream.h> # include <math.h> int main () Int num 1=0, num =0, d=0; Cout << ingrese primer numero: ;

ALGORITMO: LENGUAJE C++: # include <iostream.h> # include <math.h> int main () Int num 1=0, num =0, d=0; Cout << ingrese primer numero: ; 11 PIDA AL USUARIO DOS NUMEROS ENTEROS (QUE SE GUARDARAN EN LA VARIABLES NUM 1 Y NUM 2). SI DATO 2 ES CERO, DEBERA MOSTRAR UN MENSAJE DE ERROR, Y EN CASO CONTRARIO MOSTRARA EN PANTALLA EL RESTO DE LA DIVISION

Más detalles

Tipos Recursivos de Datos

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),

Más detalles

Sobrecarga de operadores, listas

Sobrecarga de operadores, listas Sobrecarga de operadores, listas mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 28.02 1 Problema: Alonso Ramírez Manzanares Computación y Algoritmos 28.02 Problema: Dadas 2 listas no vacias

Más detalles

4.1. Definición de herencia

4.1. Definición de herencia CAPÍTULO 4. LA HERENCIA. 103 sido desarrollados respondiendo a necesidades de la programación de alto nivel, por lo que en muchos casos intentaremos hacer hincapié en la aplicación de lo que se explica.

Más detalles