Вы находитесь на странице: 1из 6

Arrays

1. [001.txt] Crea una función creaVector que te devuelva un vector de n enteros

Solución:

int ∗ c r e a V e c t o r I n t ( int n ) {
return new int [ n ] ;
}

2. [002.txt] Crea una función creaTabla que te devuelva una tabla cuadrada de n x n enteros

Solución:

int ∗∗ c r e a T a b l a I n t ( int n ) {
int ∗∗ r e t = new int ∗ [ n ] ;
f or ( int i =0; i <n ; i ++){
r e t [ i ] = new int [ n ] ;
}
return r e t ;
}

3. [003.txt] Crea una función creaCuboInt que te devuelva un cubo de n x n x n enteros

Solución:

int ∗∗∗ creaCuboInt ( int n ) {


int ∗∗∗ r e t = new int ∗ ∗ [ n ] ;
f or ( int i =0; i <n ; i ++){
r e t [ i ] = new int ∗ [ n ] ;
f or ( int i 2 =0; i 2 <n ; i 2 ++){
r e t [ i ] [ i 2 ] = new int [ n ] ;
}
}
return r e t ;
}

4. [004.txt] Crea una función buscarEnCuboInt que busque la primera aparición de un número dado dentro de
un cubo de tamaño n Devolverá su dirección de memoria ó 0 si no está

Solución:

int ∗ buscarEnCuboInt ( int num , int s i z e , int ∗∗∗ cubo ) {


f or ( int i 1 =0; i 1 <s i z e ; i 1 ++){
f or ( int i 2 =0; i 2 <s i z e ; i 2 ++){
f or ( int i 3 =0; i 3 <s i z e ; i 3 ++){
i f ( cubo [ i 1 ] [ i 2 ] [ i 3 ] == num) {
return &(cubo [ i 1 ] [ i 2 ] [ i 3 ] ) ;
}
}
}
}
return 0 ;
}

Página 1 de 6
Arrays

5. [005.txt] Crea una función crearCuboCadenas que te devuelva un cubo de n x n x n punteros a char

Solución:

char∗ ∗∗∗ crearCuboCadenas ( int n ) {


char∗ ∗∗∗ r e t = new char∗ ∗ ∗ [ n ] ;
f or ( int i =0; i <n ; i ++){
r e t [ i ] = new char∗ ∗ [ n ] ;
f or ( int i 2 =0; i 2 <n ; i 2 ++){
r e t [ i ] [ i 2 ] = new char∗ [ n ] ;
}
}
return r e t ;
}

6. [006.txt] Crea una función crearCuboCadenas que te devuelva un cubo de n x n x n punteros a char

Solución:

char∗ ∗∗∗ crearCuboCadenas ( int n ) {


char∗ ∗∗∗ r e t = new char∗ ∗ ∗ [ n ] ;
f or ( int i =0; i <n ; i ++){
r e t [ i ] = new char∗ ∗ [ n ] ;
f or ( int i 2 =0; i 2 <n ; i 2 ++){
r e t [ i ] [ i 2 ] = new char∗ [ n ] ;
}
}
return r e t ;
}

7. [007.txt] Generalı́zala con el nombre crearCubo para que pueda crear cubos de cualquier tipo de datos

Solución:

template <c l a s s T> T ∗∗∗ crearCubo ( int n ) {


T ∗∗∗ r e t = new T ∗ ∗ [ n ] ;
f or ( int i =0; i <n ; i ++){
r e t [ i ] = new T ∗ [ n ] ;
f or ( int i 2 =0; i 2 <n ; i 2 ++){
r e t [ i ] [ i 2 ] = new T [ n ] ;
}
}
return r e t ;
}

8. [008.txt] Crea una función buscarEnCubo que te permita buscar algo en cualquier tipo de cubo Devolverá su
dirección de memoria ó 0 si no está

Solución:

Página 2 de 6
Arrays

template <c l a s s T> T ∗ buscarEnCubo (T dato , int s i z e , T ∗∗∗ cubo ) {


f or ( int i 1 =0; i 1 <s i z e ; i 1 ++){
f or ( int i 2 =0; i 2 <s i z e ; i 2 ++){
f or ( int i 3 =0; i 3 <s i z e ; i 3 ++){
i f ( cubo [ i 1 ] [ i 2 ] [ i 3 ] == dato ) {
return &(cubo [ i 1 ] [ i 2 ] [ i 3 ] ) ;
}
}
}
}
return 0 ;
}

9. [009.txt] Crea una clase CuboInt que represente a un cubo de enteros Agrega los siguientes servicios:
un método setValue que pone un valor en un lugar del cubo
un método getValue que obtiene el valor que hay en un lugar del cubo
Un destructor
Un operador de asignacion
Un constructor de copias

Solución:

c l a s s CuboInt {
public :
CuboInt ( int s i z e =1) ;
void s e t V a l u e ( int x , int y , int z , int v a l u e ) ;
int g e t V a l u e ( int x , int y , int z ) ;
˜ CuboInt ( ) ;
CuboInt & operator=(CuboInt & c ) ;
private :
int ∗∗∗ d a t o s ;
int s i z e ;
};
CuboInt : : CuboInt ( int s i z e ) {
this−>s i z e = s i z e ;
d a t o s = new int ∗ ∗ [ s i z e ] ;
f or ( int i 1 =0; i 1 <s i z e ; i 1 ++){
d a t o s [ i 1 ] = new int ∗ [ s i z e ] ;
f or ( int i 2 =0; i 2 <s i z e ; i 2 ++){
d a t o s [ i 1 ] [ i 2 ] = new int [ s i z e ] ;
}
}
}
CuboInt : : ˜ CuboInt ( ) {
f or ( int i 1 =0; i 1 <s i z e ; i 1 ++){
f or ( int i 2 =0; i 2 <s i z e ; i 2 ++){
delete [ ] d a t o s [ i 1 ] [ i 2 ] ;
}
delete [ ] d a t o s [ i 1 ] ;
}
delete [ ] d a t o s ;
}
CuboInt & CuboInt : : operator=(CuboInt & c ) {

Página 3 de 6
Arrays

i f (&c == t h i s ) {
return ∗ t h i s ;
}
f or ( int i 1 =0; i 1 <s i z e ; i 1 ++){
f or ( int i 2 =0; i 2 <s i z e ; i 2 ++){
delete [ ] d a t o s [ i 1 ] [ i 2 ] ;
}
delete [ ] d a t o s [ i 1 ] ;
}
delete [ ] d a t o s ;

this−>s i z e = c . s i z e ;
d a t o s = new int ∗ ∗ [ s i z e ] ;
f or ( int i 1 =0; i 1 <s i z e ; i 1 ++){
d a t o s [ i 1 ] = new int ∗ [ s i z e ] ;
f or ( int i 2 =0; i 2 <s i z e ; i 2 ++){
d a t o s [ i 1 ] [ i 2 ] = new int [ s i z e ] ;
f or ( int i 3 =0; i 3 <s i z e ; i 3 ++){
datos [ i1 ] [ i2 ] [ i3 ] = c . datos [ i1 ] [ i2 ] [ i3 ] ;
}
}
}
return ∗ t h i s ;
}
void CuboInt : : s e t V a l u e ( int x , int y , int z , int v a l u e ) {
datos [ x ] [ y ] [ z ] = value ;
}
int CuboInt : : g e t V a l u e ( int x , int y , int z ) {
return d a t o s [ x ] [ y ] [ z ] ;
}

10. [010.txt] Parametriza la clase para que represente cubos de cualquier tipo de elementos

Solución:

template <c l a s s T> c l a s s Cubo{


public :
Cubo ( int s i z e =1) ;
void s e t V a l u e ( int x , int y , int z , T v a l u e ) ;
T g e t V a l u e ( int x , int y , int z ) ;
˜Cubo ( ) ;
Cubo & operator=(Cubo & c ) ;
protected :
T ∗∗∗ d a t o s ;
int s i z e ;
};
template <c l a s s T> Cubo<T> : : Cubo ( int s i z e ) {
this−>s i z e = s i z e ;
d a t o s = new T ∗ ∗ [ s i z e ] ;
f or ( int i 1 =0; i 1 <s i z e ; i 1 ++){
d a t o s [ i 1 ] = new T ∗ [ s i z e ] ;
f or ( int i 2 =0; i 2 <s i z e ; i 2 ++){
d a t o s [ i 1 ] [ i 2 ] = new T [ s i z e ] ;
}
}

Página 4 de 6
Arrays

}
template <c l a s s T> Cubo<T> : : ˜ Cubo ( ) {
f or ( int i 1 =0; i 1 <s i z e ; i 1 ++){
f or ( int i 2 =0; i 2 <s i z e ; i 2 ++){
delete [ ] d a t o s [ i 1 ] [ i 2 ] ;
}
delete [ ] d a t o s [ i 1 ] ;
}
delete [ ] d a t o s ;
}
template <c l a s s T> Cubo<T> & Cubo<T> : : operator=(Cubo & c ) {
i f (&c == t h i s ) {
return ∗ t h i s ;
}
f or ( int i 1 =0; i 1 <s i z e ; i 1 ++){
f or ( int i 2 =0; i 2 <s i z e ; i 2 ++){
delete [ ] d a t o s [ i 1 ] [ i 2 ] ;
}
delete [ ] d a t o s [ i 1 ] ;
}
delete [ ] d a t o s ;

this−>s i z e = c . s i z e ;
d a t o s = new T ∗ ∗ [ s i z e ] ;
f or ( int i 1 =0; i 1 <s i z e ; i 1 ++){
d a t o s [ i 1 ] = new T ∗ [ s i z e ] ;
f or ( int i 2 =0; i 2 <s i z e ; i 2 ++){
d a t o s [ i 1 ] [ i 2 ] = new T [ s i z e ] ;
f or ( int i 3 =0; i 3 <s i z e ; i 3 ++){
datos [ i1 ] [ i2 ] [ i3 ] = c . datos [ i1 ] [ i2 ] [ i3 ] ;
}
}
}
return ∗ t h i s ;
}
template <c l a s s T> void Cubo<T> : : s e t V a l u e ( int x , int y , int z , T v a l u e ) {
datos [ x ] [ y ] [ z ] = value ;
}
template <c l a s s T> T Cubo<T> : : g e t V a l u e ( int x , int y , int z ) {
return d a t o s [ x ] [ y ] [ z ] ;
}

11. [011.txt] Crea una clase HiperCubo heredera de la anterior en la que se sustituyan los métodos de obtener y
poner un valor por un solo operador sobrecargado que te permita ofrecer ambos servicios. Elige el operador más
adecuado.
Haz que se pueda construir un HiperCubo inicializando todos sus valores con un valor determinado. Sobrecarga
el operador ! para que envı́e el HiperCubo por la pantalla

Solución:

#include ” 0 1 0 . cpp ”
#include <i o s t r e a m >
using namespace s t d ;
template <c l a s s T> c l a s s HiperCubo : public Cubo<T>{
public :

Página 5 de 6
Arrays

HiperCubo ( int s i z e =1) : Cubo<T>( s i z e ) {}


HiperCubo ( int s i z e , T v a l o r I n i c i a l ) : Cubo<T>( s i z e ) {
f or ( int i 1 =0; i 1 <this−>s i z e ; i 1 ++){
f or ( int i 2 =0; i 2 <this−>s i z e ; i 2 ++){
f or ( int i 3 =0; i 3 <this−>s i z e ; i 3 ++){
this−>d a t o s [ i 1 ] [ i 2 ] [ i 3 ]= v a l o r I n i c i a l ;
}
}
}
}
T & operator ( ) ( int x , int y , int z ) ;
void operator ! ( ) ;
};
template <c l a s s T> T & HiperCubo<T> : : operator ( ) ( int x , int y , int z ) {
// CUIDADO! El uso de t h i s −> e s o b l i g a t o r i o a q u i
// para que l a p l a n t i l l a s e g e n e r e c o r r e c t a m e n t e
return this−>d a t o s [ x ] [ y ] [ z ] ;
}
template <c l a s s T> void HiperCubo<T> : : operator ! ( ) {
f or ( int i 1 =0; i 1 <this−>s i z e ; i 1 ++){
f or ( int i 2 =0; i 2 <this−>s i z e ; i 2 ++){
f or ( int i 3 =0; i 3 <this−>s i z e ; i 3 ++){
c o u t << this−>d a t o s [ i 1 ] [ i 2 ] [ i 3 ] ;
}
c o u t <<e n d l ;
}
c o u t <<e n d l ;
}
c o u t <<e n d l ;
}

int main ( ) {
HiperCubo<int> c ;
!c;
HiperCubo<int> d ( 2 ) ;
!d;
HiperCubo<int> e ( 3 ) ;
!e;
HiperCubo<char>f ( 4 , ’X ’ ) ;
!f;
}

Página 6 de 6

Вам также может понравиться

  • Linux Examenes
    Linux Examenes
    Документ40 страниц
    Linux Examenes
    JuanDiaz
    71% (45)
  • App Empresa
    App Empresa
    Документ14 страниц
    App Empresa
    Ramon Carrasquel
    50% (2)
  • Ejemplo VFP Accesando SQLite Con ODBC
    Ejemplo VFP Accesando SQLite Con ODBC
    Документ6 страниц
    Ejemplo VFP Accesando SQLite Con ODBC
    JesúsHernánCanoMartínez
    Оценок пока нет
  • Varios 2
    Varios 2
    Документ15 страниц
    Varios 2
    Antonio Vazquez Araujo
    Оценок пока нет
  • Sobrecarga
    Sobrecarga
    Документ11 страниц
    Sobrecarga
    Antonio Vazquez Araujo
    Оценок пока нет
  • Varios 1
    Varios 1
    Документ12 страниц
    Varios 1
    Antonio Vazquez Araujo
    Оценок пока нет
  • Sept 2006
    Sept 2006
    Документ5 страниц
    Sept 2006
    Antonio Vazquez Araujo
    Оценок пока нет
  • Sept 2007 P
    Sept 2007 P
    Документ5 страниц
    Sept 2007 P
    Antonio Vazquez Araujo
    Оценок пока нет
  • Preguntas Varias. Nivel 1
    Preguntas Varias. Nivel 1
    Документ13 страниц
    Preguntas Varias. Nivel 1
    Antonio Vazquez Araujo
    Оценок пока нет
  • Sept 2007 T
    Sept 2007 T
    Документ4 страницы
    Sept 2007 T
    Antonio Vazquez Araujo
    Оценок пока нет
  • Sept 2004
    Sept 2004
    Документ7 страниц
    Sept 2004
    Antonio Vazquez Araujo
    Оценок пока нет
  • Practica 2008
    Practica 2008
    Документ7 страниц
    Practica 2008
    Antonio Vazquez Araujo
    Оценок пока нет
  • Punteros
    Punteros
    Документ7 страниц
    Punteros
    Antonio Vazquez Araujo
    Оценок пока нет
  • Sept 2005
    Sept 2005
    Документ7 страниц
    Sept 2005
    Antonio Vazquez Araujo
    Оценок пока нет
  • Practica 2009
    Practica 2009
    Документ17 страниц
    Practica 2009
    Antonio Vazquez Araujo
    Оценок пока нет
  • Practica 2010
    Practica 2010
    Документ18 страниц
    Practica 2010
    Antonio Vazquez Araujo
    Оценок пока нет
  • Sept 2003
    Sept 2003
    Документ11 страниц
    Sept 2003
    Antonio Vazquez Araujo
    Оценок пока нет
  • Practica2010 3
    Practica2010 3
    Документ19 страниц
    Practica2010 3
    Antonio Vazquez Araujo
    Оценок пока нет
  • Junio 2007 P
    Junio 2007 P
    Документ4 страницы
    Junio 2007 P
    Antonio Vazquez Araujo
    Оценок пока нет
  • Practica2010 2
    Practica2010 2
    Документ20 страниц
    Practica2010 2
    Antonio Vazquez Araujo
    Оценок пока нет
  • Plantillas
    Plantillas
    Документ5 страниц
    Plantillas
    Antonio Vazquez Araujo
    Оценок пока нет
  • Ficheros
    Ficheros
    Документ23 страницы
    Ficheros
    Antonio Vazquez Araujo
    Оценок пока нет
  • Ligadura
    Ligadura
    Документ10 страниц
    Ligadura
    Antonio Vazquez Araujo
    Оценок пока нет
  • Junio 2008 Practica
    Junio 2008 Practica
    Документ2 страницы
    Junio 2008 Practica
    Antonio Vazquez Araujo
    Оценок пока нет
  • Errores
    Errores
    Документ16 страниц
    Errores
    Antonio Vazquez Araujo
    Оценок пока нет
  • Junio 2004
    Junio 2004
    Документ6 страниц
    Junio 2004
    Antonio Vazquez Araujo
    Оценок пока нет
  • Junio 2007 T
    Junio 2007 T
    Документ7 страниц
    Junio 2007 T
    Antonio Vazquez Araujo
    Оценок пока нет
  • Junio 2006
    Junio 2006
    Документ7 страниц
    Junio 2006
    Antonio Vazquez Araujo
    Оценок пока нет
  • Junio 2005
    Junio 2005
    Документ8 страниц
    Junio 2005
    Antonio Vazquez Araujo
    Оценок пока нет
  • Funciones
    Funciones
    Документ2 страницы
    Funciones
    Antonio Vazquez Araujo
    Оценок пока нет
  • Compendio
    Compendio
    Документ13 страниц
    Compendio
    Antonio Vazquez Araujo
    Оценок пока нет
  • Examen Ejemplo
    Examen Ejemplo
    Документ8 страниц
    Examen Ejemplo
    Antonio Vazquez Araujo
    Оценок пока нет
  • Cadenas
    Cadenas
    Документ5 страниц
    Cadenas
    Antonio Vazquez Araujo
    Оценок пока нет
  • Arquitectura Cliente Servidor: Introducción
    Arquitectura Cliente Servidor: Introducción
    Документ13 страниц
    Arquitectura Cliente Servidor: Introducción
    Villanira chocue
    Оценок пока нет
  • Ejercicios Excel Avanzado Resueltos
    Ejercicios Excel Avanzado Resueltos
    Документ26 страниц
    Ejercicios Excel Avanzado Resueltos
    Juan Bautista Heredia Perez
    Оценок пока нет
  • TEMA 3.1 La Placa Base
    TEMA 3.1 La Placa Base
    Документ33 страницы
    TEMA 3.1 La Placa Base
    Guadalupe Wilson
    Оценок пока нет
  • Análisis Comparativo de Metodologías Ágiles de Desarrollo de Software
    Análisis Comparativo de Metodologías Ágiles de Desarrollo de Software
    Документ10 страниц
    Análisis Comparativo de Metodologías Ágiles de Desarrollo de Software
    Gloribert Velasquez
    Оценок пока нет
  • 12 Cintoteca
    12 Cintoteca
    Документ5 страниц
    12 Cintoteca
    Nely Roxana Ruiz Retana
    Оценок пока нет
  • Nat Dinámico en Packet Tracer
    Nat Dinámico en Packet Tracer
    Документ6 страниц
    Nat Dinámico en Packet Tracer
    Luis Hernandez
    Оценок пока нет
  • Iq-View 2 5 0 User Manual Int Es - 001r
    Iq-View 2 5 0 User Manual Int Es - 001r
    Документ105 страниц
    Iq-View 2 5 0 User Manual Int Es - 001r
    camv_847601
    0% (1)
  • Actas de Entrega Varios
    Actas de Entrega Varios
    Документ6 страниц
    Actas de Entrega Varios
    Rivera Alejandro
    Оценок пока нет
  • 2.1 Mantenimiento Del Sistema Operativo PDF
    2.1 Mantenimiento Del Sistema Operativo PDF
    Документ38 страниц
    2.1 Mantenimiento Del Sistema Operativo PDF
    Giovanny Montilla
    Оценок пока нет
  • Como Usar El Comando Robocopy en Windows, Ejemplos Prácticos y Códigos
    Como Usar El Comando Robocopy en Windows, Ejemplos Prácticos y Códigos
    Документ11 страниц
    Como Usar El Comando Robocopy en Windows, Ejemplos Prácticos y Códigos
    Jorge Gonzalez Tapia
    Оценок пока нет
  • 4 Componentes Principales de La Computadora
    4 Componentes Principales de La Computadora
    Документ4 страницы
    4 Componentes Principales de La Computadora
    Marcos Abzún
    Оценок пока нет
  • Separata ER1
    Separata ER1
    Документ98 страниц
    Separata ER1
    Jorge Luis Ramirez Delgado
    Оценок пока нет
  • Bucle para Hoy
    Bucle para Hoy
    Документ10 страниц
    Bucle para Hoy
    Andres Peñaloza
    Оценок пока нет
  • TOLVA VIBRATORIA PARA CAPILAR Todo
    TOLVA VIBRATORIA PARA CAPILAR Todo
    Документ9 страниц
    TOLVA VIBRATORIA PARA CAPILAR Todo
    Ricardo Tomas Muskus Muskus
    Оценок пока нет
  • Diagrama ER Hospital
    Diagrama ER Hospital
    Документ9 страниц
    Diagrama ER Hospital
    Victor Fraide
    Оценок пока нет
  • Tesis de Grado María Luisa Valcárcel Rivera - Biblioteca Pública Municipal Julio Pérez Ferrero de Cúcuta
    Tesis de Grado María Luisa Valcárcel Rivera - Biblioteca Pública Municipal Julio Pérez Ferrero de Cúcuta
    Документ8 страниц
    Tesis de Grado María Luisa Valcárcel Rivera - Biblioteca Pública Municipal Julio Pérez Ferrero de Cúcuta
    Patricia Isabel Galvis Vera
    Оценок пока нет
  • Usando MySQL Workbench para Diseñar Y Crear Una Base de
    Usando MySQL Workbench para Diseñar Y Crear Una Base de
    Документ28 страниц
    Usando MySQL Workbench para Diseñar Y Crear Una Base de
    nandoy2k
    Оценок пока нет
  • EDA - 03 Listas Enlazadas
    EDA - 03 Listas Enlazadas
    Документ14 страниц
    EDA - 03 Listas Enlazadas
    daniel yllisca
    Оценок пока нет
  • Documento Word
    Documento Word
    Документ4 страницы
    Documento Word
    PabloA98
    Оценок пока нет
  • 04 - Colecciones y Excepciones
    04 - Colecciones y Excepciones
    Документ20 страниц
    04 - Colecciones y Excepciones
    onemillondolarbaby7971
    Оценок пока нет
  • Variables y Constantes
    Variables y Constantes
    Документ19 страниц
    Variables y Constantes
    Romi Kat
    Оценок пока нет
  • Kadr U3 A3 Elrf
    Kadr U3 A3 Elrf
    Документ7 страниц
    Kadr U3 A3 Elrf
    alverich2803
    Оценок пока нет
  • ModelBuilder Con ArcGis
    ModelBuilder Con ArcGis
    Документ30 страниц
    ModelBuilder Con ArcGis
    kaprino3
    Оценок пока нет
  • Conociendo La Interfaz de Microsorft Word 2016
    Conociendo La Interfaz de Microsorft Word 2016
    Документ3 страницы
    Conociendo La Interfaz de Microsorft Word 2016
    Diego Cupe
    100% (2)
  • Comparación de Las Tecnologías VPN
    Comparación de Las Tecnologías VPN
    Документ5 страниц
    Comparación de Las Tecnologías VPN
    Jhonatan Rojas
    Оценок пока нет
  • Cable Crossover
    Cable Crossover
    Документ6 страниц
    Cable Crossover
    gian123
    Оценок пока нет
  • Guia 06 - Administracion de Bases de Datos - Clausula Group by y Having
    Guia 06 - Administracion de Bases de Datos - Clausula Group by y Having
    Документ1 страница
    Guia 06 - Administracion de Bases de Datos - Clausula Group by y Having
    Gregorio Ccapatinta Quispe
    Оценок пока нет