Sunteți pe pagina 1din 4

Ejercicios básicos II.

1. Crea una variable en la que puedas guardar un texto de hasta 50 caracteres. Pide al usuario su nombre y apellidos
y guárdalos en esa variable
Crea un grupo 4 de variables como la anterior contiguas en memoria de la pila y pide al usuario su contenido
Crea una variable de tipo string y pide al usuario su nombre y apellidos
Muestra por pantalla la cantidad de espacios que contiene el dato tecleado

Solución:

char nombre [ 5 1 ] ;
c i n . g e t l i n e ( nombre , 5 1 ) ;

char nombres [ 4 ] [ 5 1 ] ;
for ( i nt n=0; n<4;n++){
c i n . g e t l i n e ( nombres [ n ] , 5 1 ) ;
}

string s ;
g e t l i n e ( cin , s ) ;

i nt e s p a c i o s =0;
for ( i nt n= 0 ; n< s . s i z e ( ) ; n++){
e s p a c i o s += s . a t ( n)== ’ ’ ? 1 : 0 ;
}
co ut << e s p a c i o s << ” e s p a c i o s ”<<e n d l ;

2. Crea un array de dos punteros a una funcion void que recibe un entero.
Crea una función que muestre por pantalla el entero que recibe
Crea otra que muestre por pantalla el doble del entero que recibe
Carga el array con ambas funciones y recórrelo ejecutándolas con el número 23 como parámetro

Solución:

void f 1 ( i nt n ) {
co ut << n<<e n d l ;
}
void f 2 ( i nt n ) {
co ut << n∗2<<e n d l ;
}
void ( ∗ f u n c i o n e s [ 2 ] ) ( i nt n ) ;
funciones [0]= f1 ;
funciones [1]= f2 ;
for ( i nt n=0; n<2;n++){
funciones [ n ] ( 2 3 ) ;
}

3. Crea una función que pida un entero al usuario y que devuelva un puntero al mismo

Solución:

i nt ∗ p i d e E n t e r o ( ) {
i nt ∗n = new i nt ( ) ;

Página 1 de 4
Ejercicios básicos II.

co ut << ” Va lo r : ” ;
c i n >> ∗n ;
return n ;
}

4. Crea una estructura Punto, con coordenadas x e y y


Agrégale una funcion operator! que muestre por pantalla las coordenadas
Crea un operador % que permita multiplicar por un entero la suma de las coordenadas de un punto. Debe poder
utilizarse de esta forma:
Punto p ={ 2 3 ,4 5 } ;
i nt x = 34 % p ;

Solución:

struct Punto {
i nt x ;
i nt y ;
void operator ! ( ) {
cout<< x << ” , ” << y ;
}
};
i nt operator %(i nt n , Punto &p ) {
return ( p . x+p . y ) ∗ n ;
}

5. Crea una clase Empresario, con un id de tipo int y un método trabajar.Agrega un constructor parametrizado.
Crea dos tipos de Empresario: -Carpintero, que en el metodo trabajar heredado muestre su id y la frase Çlavando
puntasElectricista, que en el método heredado heredado muestre su id y la frase ”Pelando cables”
Crea un array de 2 punteros a Empresarios, y llénalo con las direcciones de un Empresario de cada tipo.
Recorre el array para hacer que todos trabajen.

Solución:

c l a s s E mpr esa r io {
public :
E mpr esa r io ( i nt i d ) ;
i nt i d ;
v i r t u a l void t r a b a j a r ( ) = 0 ;
};
E mpr esa r io : : E mpr esa r io ( i nt i d ) : i d ( i d ) { }

c l a s s C a r p i n t e r o : public E mpr esa r io{


public :
C a r p i n t e r o ( i nt i d ) ;
void t r a b a j a r ( ) ;
};
C a r p i n t e r o : : C a r p i n t e r o ( i nt i d ) : E mpr esa r io ( i d ) { }
void C a r p i n t e r o : : t r a b a j a r ( ) {
co ut << i d << ” Clavando punta s ”<< e n d l ;
}

Página 2 de 4
Ejercicios básicos II.

c l a s s E l e c t r i c i s t a : public E mpr esa r io{


public :
E l e c t r i c i s t a ( i nt i d ) ;
void t r a b a j a r ( ) ;
};
E l e c t r i c i s t a : : E l e c t r i c i s t a ( i nt i d ) : E mpr esa r io ( i d ) { }
void E l e c t r i c i s t a : : t r a b a j a r ( ) {
co ut << i d << ” Pelando c a b l e s ”<< e n d l ;
}
i nt main ( ) {
E mpr esa r io ∗ empresa [ 2 ] ;
empresa [ 0 ] = new C a r p i n t e r o ( 1 ) ;
empresa [ 1 ] = new E l e c t r i c i s t a ( 2 ) ;
empresa[0]− > t r a b a j a r ( ) ;
empresa[1]− > t r a b a j a r ( ) ;
}

6. Crea una clase Benito, que sea Electricista y Carpintero al mismo tiempo.
Haz que, al trabajar, muestre el mensaje de cada una de sus profesiones y agregue la frase çomo si fuese dificil”

Solución:

c l a s s B e n i t o : v i r t u a l public E l e c t r i c i s t a , public C a r p i n t e r o {
public :
B e n i t o ( i nt n ) : E l e c t r i c i s t a ( n ) , C a r p i n t e r o ( n ) {

}
void t r a b a j a r ( ) {
Electricis ta : : trabajar ( ) ;
Carpintero : : trabajar ( ) ;
co ut << ”como s i f u e s e d i f i c i l ” ;
}
};

7. Crea tres secuencias de punteros a Empresario, una list, un vector y una deque
Agrega 3 empresarios al principio de la list
Agrega 3 empresarios al final del vector
Agrega 5 por cada extremo de la deque
Recorrelos mediante iteradores, mostrando su id

Solución:

#include <i o s t r e a m>


#include < l i s t >
#include <v e c t o r >
#include <deque>
using namespace s t d ;
i nt main ( ) {
l i s t <E mpr esa r io ∗> l ;
v e c t o r <E mpr esa r io∗> v ;

Página 3 de 4
Ejercicios básicos II.

deque<E mpr esa r io∗> d ;

l . push f r o n t (new C a r p i n t e r o ( 2 ) ) ;
l . push f r o n t (new C a r p i n t e r o ( 2 ) ) ;
l . push f r o n t (new C a r p i n t e r o ( 2 ) ) ;
v . push ba ck (new E l e c t r i c i s t a ( 4 ) ) ;
v . push ba ck (new E l e c t r i c i s t a ( 4 ) ) ;
v . push ba ck (new E l e c t r i c i s t a ( 4 ) ) ;
d . push ba ck (new C a r p i n t e r o ( 4 ) ) ;
d . push ba ck (new C a r p i n t e r o ( 4 ) ) ;
d . push ba ck (new C a r p i n t e r o ( 4 ) ) ;
d . push f r o n t (new C a r p i n t e r o ( 3 ) ) ;
d . push f r o n t (new C a r p i n t e r o ( 6 ) ) ;
d . push f r o n t (new C a r p i n t e r o ( 7 ) ) ;

l i s t <E mpr esa r io ∗ > :: i t e r a t o r i = l . b e g i n ( ) ;


while ( i != l . end ( ) ) {
co ut << ( ∗ i )−>i d ;
i ++;
}
v e c t o r <E mpr esa r io ∗ > :: i t e r a t o r i 2 = v . b e g i n ( ) ;
while ( i 2 != v . end ( ) ) {
co ut << ( ∗ i 2 )−>i d ;
i 2 ++;
}
deque<E mpr esa r io ∗ > :: i t e r a t o r i 3 = d . b e g i n ( ) ;
while ( i 3 != d . end ( ) ) {
co ut << ( ∗ i 3 )−>i d ;
i 3 ++;
}
}

Página 4 de 4

S-ar putea să vă placă și