Diferente pentru problema/telefon intre reviziile #10 si #3

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="telefon") ==
== include(page="template/badtests") ==
 
!> problema/telefon?telefon.png 70%!
 
Avem un telefon pe care butoanele cu cifre sunt aranjate ca în figura alăturată. Acest telefon este acţionat de către un robot care, iniţial, are capul de acţionare deasupra butonului $*$. Robotul se comandă cu următoarele comenzi:
 
* $S x$	– capul de acţionare se mişcă $x$ unităţi în sus
* $J x$	– capul de acţionare se mişcă $x$ unităţi în jos
* $DR x$ – capul de acţionare se mişcă $x$ unităţi în dreapta
* $ST x$ – capul de acţionare se mişcă $x$ unităţi în stânga
* $A$ – apasă capul de acţionare pe butonul deasupra căruia se află.
 
Avem un telefon pe care butoanele cu cifre sunt aranjate ca în figura alăturată. Acest telefon este acţionat de către un robot care, iniţial, are capul de acţionare deasupra butonului $*$.
Robotul se comandă cu următoarele comenzi:
$S x$	– capul de acţionare se mişcă $x$ unităţi în sus
$J x$	– capul de acţionare se mişcă $x$ unităţi în jos
$DR x$	– capul de acţionare se mişcă $x$ unităţi în dreapta
$ST x$	– capul de acţionare se mişcă $x$ unităţi în stânga
$A$	– apasă capul de acţionare pe butonul deasupra căruia se află.
La terminarea formării numărului, capul trebuie să fie poziţionat deasupra butonului $#$.
h2. Cerinţă
Scrieţi un program care citeşte un număr de telefon, având cel mult $10$ cifre, apoi realizează apelarea acelui număr prin intermediul robotului, parcurgând un drum de lungime minimă deasupra tastaturii.
Scrieţi un program care citeşte un număr de telefon, având cel mult $10$ cifre, apoi realizează apelarea acelui număr prin intermediul robotului, parcurgând un drum de lungime minimă deasupra tastaturii.
Dacă pentru a ajunge deasupra următorului buton, mişcarea capului presupune deplasare şi pe orizontală şi pe verticală, atunci **mai întâi trebuie efectuată mişcarea pe verticală**, cea pe orizontală urmând acesteia.
h2. Date de intrare
h2. Date de ieşire
În fişierul de ieşire $telefon.out$ se vor scrie comenzile pe care trebuie să le execute robotul pentru a apela numărul de telefon dat. Comenzile se vor scrie pe o singură linie, în ordinea în care va trebui să le efectueze robotul. Două comenzi se vor despărţi printr-un singur spaţiu.
În fişierul de ieşire $telefon.out$ se vor scrie comenzile care trebuie să le execute robotul pentru a apela numărul de telefon dat. Comenzile se vor scrie pe o singură linie, în ordinea în care va trebui să le efectueze robotul. Două comenzi se vor despărţi printr-un singur spaţiu.
h2. Exemplu
h3. Explicaţie
Mai întâi trebuie să mutăm capul de acţionare de deasupra butonului $*$ deasupra butonului $1$. În acest scop ne mutăm în sus $3$ poziţii $(S 3)$ şi apăsăm butonul $(A)$. Urmează butonul $2$, deci mutăm capul o poziţie la dreapta $(DR 1)$ şi apăsăm $(A)$. Pentru a ajunge la butonul $3$, din nou facem o mutare la dreapta cu o poziţie $(DR 1)$ şi apăsăm $(A)$. Pentru a ajunge deasupra butonului $8$, mai întâi mutăm capul în jos $2$ poziţii $(J 2)$, apoi la stânga o poziţie $(ST 1)$ şi apăsăm $(A)$. 0 se află sub $8$, deci avem o mutare $(J 1)$ şi apăsăm $(A)$. Acum trebuie să ajungem la $4$, deci urcăm $2$ poziţii $(S 2)$, apoi mutăm capul o poziţie la stânga $(ST 1)$ şi apăsăm $(A)$. În final mutăm capul deasupra butonului $#$ cu comenzile $J 2$ şi $DR 2$. Aici nu trebuie să apăsăm butonul.
Mai întâi trebuie să mutăm capul de acţionare de deasupra butonului $*$ deasupra butonului $1$. În acest scop ne mutăm în sus $3$ poziţii $(S 3)$ şi apăsăm butonul $(A)$. Urmează butonul $2$, deci mutăm capul o poziţie la dreapta $(DR 1)$ şi apăsăm $(A)$. Pentru a ajunge la butonul $3$, din nou facem o mutare la dreapta cu o poziţie $(DR 1)$ şi apăsăm $(A)$. Pentru a ajunge deasupra butonului $8$, mai întâi mutăm capul în jos $2$ poziţii $(J 2)$, apoi la stânga o poziţie $(ST 1)$ şi apăsăm $(A)$. 0 se află sub $8$, deci avem o mutare $(J 1)$ şi apăsăm $(A)$. Acum trebuie să ajungem la $4$, deci urcăm $2$ poziţii $(S 2)$, apoi mutăm capul o poziţie la stânga $(ST 1)$ şi apăsăm $(A)$. În final mutăm capul deasupra butonului $#$ cu comenzile $J 2$ şi $DR 2$. Aici nu trebuie să apăsăm butonul.
== include(page="template/taskfooter" task_id="telefon") ==

Nu exista diferente intre securitate.

Diferente intre topic forum:

4722