Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




“Rama” si solutia problemei

profesor scoala


“Rama” si solutia problemei


Enunt problema “Rama”, clasa a VII-a

Vasilica se joaca adesea pe telefonul mobil, jocul lui preferat fiind „Rama”. De curand, el a reusit sa implementeze acest joc in limbajul de programare studiat la scoala, numai ca in programul realizat de el rama trebuie sa depaseasca mai multe obstacole. El vrea ca sa-si verifice programul, asa ca va roaga sa il ajutati. Jocul se desfasoara pe o tabla dreptunghiulara de dimensiune n x m, pe care sunt plasate mancare si obstacole. Rama poate pleca din orice punct de pe aceasta tabla, deplasandu-se pe una din directiile 242c21c N, S, V, E, iar lungimea ei marindu-se cu o unitate de fiecare data cand ajunge la mancare. Rama va fi ghidata sa ajunga la mancare, prin deplasarea pe cele patru directii. Jocul se termina atunci cand rama ajunge pe o pozitie in care este plasat un obstacol sau este pe o pozitie exterioara tablei, terminat de mancat toata hrana sau s-a ciocnit de ea insasi. Vasilica doreste sa afle lungimea ramei, coordonatele capului si coordonatele cozii la sfarsitul jocului.



Cerinta

Fiind date dimensiunile tablei dreptunghiulare n si m, coordonatele initiale ale ramei, numarul de obstacole, numarul de pozitii cu hrana, coordonatele obstacolelor, directia de deplasare pentru fiecare pozitie cu mancare precum si numarul de deplasari pentru a ajunge din pozitia curenta la mancare, sa se determine lungimea ramei, coordonatele capului si coordonatele cozii la sfarsitul jocului.

Date de intrare

Fisierul de intrare rama.in contine pe prima linie, separate printr-un spatiu dimensiunile tablei n si respectiv m.

Pe a doua linie se afla separate printr-un spatiu coordonatele initiale ale ramei, adica pozitia initiala de unde pleaca aceasta.

Pe a treia linie se afla un numar o, reprezentand numarul de obstacole de pe tabla, iar pe urmatoarele o linii coordonatele obstacolelor, separate prin cate un spatiu.

In continuare, se citeste un numar k reprezentand numarul de pozitii cu mancare.

Pe urmatoarele k linii se citesc, separate prin cate un spatiu, 2 numere naturale reprezentand directia de deplasare si respectiv distanta catre pozitia pe care se afla mancarea.

Directiile sunt codificate prin: 1- N, 2-S, 3-V, 4-E.

Date de iesire

Fisierul rama.out contine pe prima linie lungimea finala a ramei.

Pe linia a doua se vor scrie coordonatele capului ramei, separate printr-un spatiu.

Pe cea de-a treia linie se vor scrie coordonatele cozii ramei, separate printr-un spatiu.

Restrictii

0 < n < 50, 0 < m < 50, 0 < o < 40

Exemplu

rama.in

Rama.out

Explicatie



















Dimensiunea tablei este de 5x6

Obstacolele se afla in punctele de coordonate (3,6), (4,2), (4,4) si sunt marcate cu X.

Rama se afla in patratul marcat cu

Patratele in care se afla mancarea sunt marcate cu M.























M



M





M


M


X



X


X




M





M

program rama;

type matrice=array[1..50, 1..50] of longint;

var

procedure MutareDirectie (d:longint; var p:longint);


begin

end;

begin

else   if (dir=2) then x:=v[p].x+k

else if(dir=3) then y:=v[p].y-k

else if (dir=4) then y:=v[p].y +k;

if (a[x,y] = -1) or (x>n) or (y>m) then

begin

ok:=1; writeln(g, 'Lungimea ', l);

writeln(g, 'Coada ramei ', v[p-l+1].x,' , ', v[p-l+1].y);

writeln(g, 'Capul ramei ', v[p].x,' , ', v[p].y);

end else begin

l:= l+1; for j:=1 to k do

begin MutareDirectie(dir, p);

end; end; end;

close(f);

if (ok=0) then begin

writeln(g, 'Lungimea ', l);

writeln(g, 'Coada ramei ', v[p-l+1].x,' , ', v[p-l+1].y);

writeln(g, 'Capul ramei ', v[p].x,' , ', v[p].y);

end; close(g); end.



Document Info


Accesari: 863
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )