| Parcial IC - 1997 |
Dado un vector V de N (N>1) componentes y un entero positivo M < N, o sea:
V = [a(1),a(2),...,a(M),a(M+1),...,a(N)]
escribir un programa que lo lleve a la forma:
W = [a(M+1),a(M+2),...,a(N),a(1),...,a(M)]
o sea, si consideramos: A = [a(1),a(2),...,a(M)] y B = [a(M+1),a(M+2),...,a(N)]
podemos pensar que se trata de llevar el vector V = AB a la forma W = BA
Nota: Ningún otro vector adicional podrá usarse y deberá hacerse la menor cantidad de reordenamientos de los elementos de V. Llamamos "reordenamiento" a cada sentencia en la que se han intercambiado dos elementos de V.
Escribir un programa que permita ingresar un texto y luego lo reescriba eliminando los comentarios, entendiendo por comentario todo aquel texto que aparece entre paréntesis.
Así al ingresar el siguiente texto:
Juan (mi mejor amigo) regresa a la Argentina el día 20.
se debe reescribir:
Juan regresa a la Argentina el día 20.
Debe tenerse en cuenta que los comentarios pueden estar "anidados", como por ejemplo en el siguiente texto:
Carlos (el hermano de Juan (mi mejor amigo) que regresa a la Argentina el día 20) irá a esperarlo al aeropuerto.
En este caso, el programa debe producir la siguiente "salida":
Carlos irá a esperarlo al aeropuerto.
Para cada par de enteros positivos (m,n) podemos definir una función f de la siguiente manera:
f(m,n) = [(m+n-1).(m+n-2)/2] + n
Esta función tiene dos propiedades importantes, cuya validez demuestran los matemáticos:
n\m |
1 |
2 |
3 |
4 |
5 |
1 |
1 |
2 |
4 |
7 |
11 |
2 |
3 |
5 |
8 |
12 |
|
3 |
6 |
9 |
13 |
||
4 |
10 |
14 |
|||
5 |
15 |
veremos que lo que hace f es "numerar" los elementos de una matriz. Se trata entonces de escribir un programa que: