+-------------+ class Matriz {
| /\ /\| enum { DIM = 25 };
| /3 \ / /| char _v[DIM][DIM];
| /2 \ / / | int _n,_m; // dimensiones actuales
|/1 \/ /n | friend class Rebotador;
+-------------+ }; // Matriz
class Rebotador {
int _dir; // '\ /' ./ \.
enum { NO='\\', NE='/' , SO='/', SE='\\' };
int _x, _y;
public:
void Paso(Matriz& M, int& x, int& y, char& ch);
}; // Rebotador
|
1.a) [5 pts] Explique para qué sirve cada uno de los campos de
Rebotador.
1.b) [5 pts] Haga la especificación
de Rebotador::Paso(). Tome en cuenta que, antes de terminar,
Rebotador::Paso() siempre ejecuta esta instrucción:
M._v[x][y] = ch;
Suponga
que, en cada invocación, Rebotador::Paso() avanza un paso nada más.
1.c) [15 pts] Implemente Rebotador::Paso().
2) [25 pts] La
función strstr() de la biblioteca estándar C++ sirve para encontrar
una subhilera dentro de otra hilera.
2.a) [0 pts] Especifique la función strstr().
2.b) [10 pts] Implemente strstr() usando vectores de
caracteres.
2.c) [15 pts] Implemente strstr() usando aritmética de
punteros.
3) [25 pts] La
función SelectionSort() sirve para ordenar un vector de
"n" objetos.
3.a) [10 pts] Especifique la función SelectionSort()
para ordenar un vector de hileras de tipo "char *".
3.b) [15 pts] Implemente SelectionSort().
4) [25 pts] En este
ejercicio, una palabra es una secuencia contigua de caracteres no blancos, en
donde un blanco es aquel caracter para el que la función isspace()
retorna verdadero.
4.a) [10 pts] Especifique la función PartePalabras(),
que toma una hilera "str" llena de palabras, y retorna un vector de
hasta "n" hileras, en la que aparacen en secuencia las palabras de
la hilera de entrada "str"
4.b) [15 pts] Implemente PartePalabras().
Soluciones
Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2000
Derechos de autor reservados © 2000