-
Notifications
You must be signed in to change notification settings - Fork 45
/
Copy pathejercicio_04.cpp
79 lines (60 loc) · 2.2 KB
/
ejercicio_04.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// Sobre la clase "MiVectorCaracteres", añadir un metodo "Elimina" para eliminar el
// caracter que se encuentre en una determinada posicion, de forma que si el vector
// contenia los caracteres {'h','o','l','a'}, despues de eliminar la componente
// con indice 2 (la tercera) se quedara con {'h','o','a'}.
//
// ¿Que deberia hacer el metodo si el indice de componente no es correcto?
//
// Finalidad: Ejemplo de metodo que modifica el estado del objeto. Gestion de
// precondiciones. Dificultad Baja.
#include <iostream>
using namespace std;
class MiVectorCaracteres {
private:
static const int TAMANIO = 50;
char vector_privado[TAMANIO];
int total_utilizados;
public:
MiVectorCaracteres()
: total_utilizados(0) {
}
int TotalUtilizados() {
return total_utilizados;
}
void Aniade(char nuevo) {
if (total_utilizados < TAMANIO) {
vector_privado[total_utilizados] = nuevo;
total_utilizados++;
}
}
char Elemento(int indice) {
return vector_privado[indice];
}
void Elimina(int indice_componente) {
if ((indice_componente >= 0)&&(indice_componente < total_utilizados)) {
for (int i = indice_componente; i < total_utilizados - 1; i++)
vector_privado[i] = vector_privado[i + 1];
total_utilizados--;
}
}
};
int main() {
MiVectorCaracteres vector;
int indice_eliminar_vector;
vector.Aniade('h');
vector.Aniade('o');
vector.Aniade('l');
vector.Aniade('a');
for (int i = 0; i < vector.TotalUtilizados(); i++)
cout << "Valor en [" << i << "]: " << vector.Elemento(i) << endl;
cout << "\n";
do {
cout << "Introduzca el valor del indice del vector a eliminar: ";
cin >> indice_eliminar_vector;
} while (indice_eliminar_vector < 0);
vector.Elimina(indice_eliminar_vector);
cout << "\nEl valor del indice solo se habra eliminado si el valor introducido era valido." << endl;
for (int i = 0; i < vector.TotalUtilizados(); i++)
cout << "Valor en [" << i << "]: " << vector.Elemento(i) << endl;
cout << "\n";
}