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