2. naloga

Zoom

Na računalniku gledamo zemljevid, ki pokriva v koordinatnem sistemu območje [x1, x2] × [y1,y2], kot kaže spodnja slika. Razdelimo ga na štiri četrtine in jih označimo: 0 je zgornja leva, 1 je zgornja desna, 2 je spodnja leva in 3 je spodnja desna. Izberemo si eno od četrtin in pozumiramo prikaz zemljevida tako, da vidimo le še to četrtino. Tudi njo razdelimo na četrtine in pozumiramo v eno od njih. Ta korak še nekajkrat ponovimo. Z nizom, ki ga sestavljajo znaki 0, 1, 2 in 3, lahko opišemo, v katero četrtino smo se premaknili na vsakem koraku. Naslednja slika kaže primer za niz "120":


Napiši podprogram Zoom(s, x1, y1, x2, y2), ki za dani niz s (zaporedje znakov 0, 1, 2, 3, ki opisujejo potek zumiranja) in koordinate x1, x2, y1, y2 celotnega zemljevida (pri tem zagotovo velja x1 < x2 in y1 < y2) izpiše koordinate tistega območja, ki ga gledamo po zadnjem koraku zumiranja.

Tvoj podprogram naj bo takšne oblike:

procedure Zoom(s: string; x1, y1, x2, y2: double);                  { v pascalu }
void Zoom(char *s, double x1, double y1, double x2, double y2);     /* v C/C++ */
void Zoom(string s, double x1, double y1, double x2, double y2);    // v C++
public static void Zoom(String s, double x1, double y1, double x2, double y2); // v javi
public static void Zoom(string s, double x1, double y1, double x2, double y2); // v C#
def Zoom(s, x1, y1, x2, y2): . . .                # v pythonu; s je tipa str, ostali pa tipa float