Tarea 2 de Algoritmos y Estructuras de Datos

Trimestre 2013 Otoño
Entrega: 12 de septiembre de 2013 a las 22:00

Un número complejo está formado por una pareja (re, im) de números enteros llamados parte real y parte imaginaria. Los números complejos tienen operaciones de suma, resta y multiplicación (además de otras operaciones que no usaremos en esta tarea). Si a = (u, v) y b = (x, z) son dos números complejos, entonces a+b = (u+x, v+z), a-b = (u-x, v-z) y a*b = (ux - vz, vx + uz).

En C podemos representar un número complejo como una estructura así:
typedef struct complex {
    int re;
    int im;
};
Escribe un programa llamado complejoNN.c (donde NN es tu número de lista) que:
  1. Lea los valores de N números complejos que llamaremos A, B, C, etc.
  2. Lea y efectúe M operaciones entre esos números complejos.
  3. Escriba a la salida estándar los resultados complejos.
La entrada comenzará con los valores de N y M, después aparecerán las N parejas que definen a A, B, C, etc. y finalmente aparecerán las M operaciones que debes hacer. Cada operación estará representada por tres caracteres: el primer operando, el operador y el segundo operando. Los operandos serán las letras mayúsculas de la A a la Z, los operadores serán los caracteres +, - y *. La salida debe contener los M resultados de las operaciones, cada uno en un renglón. Puedes suponer que 1 <= N <= 26 y que 1 <= M <= 1000.

En el primer ejemplo de abajo se definen N = 2 complejos (llamados A y B) y se pide hacer M = 3 operaciones. Los valores leídos son A = (1, 1) y B = (2, -3). Se pide calcular la multiplicación de A por A, la suma de B y A y la resta de B menos A.

Entrada 1
Salida 1
Entrada 2
Salida 2
2 3
1 1
2 -3
A*A
B+A
B-A
0 2
3 -2
1 -4
3 2
-3 2
2 5
-1 -1
A*B
B*C
-16 -11
3 -7

Guía para usar su cuenta de callix y enviar la tarea.