O metodă de criptare a unui șir de numere se bazează pe un cifru format din mai multe coduri, numere naturale. Prin criptare, la fiecare pas se ia în considerare o pereche formată dintr-un termen nenul al șirului și un cod al cifrului, iar acest termen este înlocuit cu suma dintre el și codul din pereche. Prima pereche este formată din primul termen nenul al șirului și primul cod al cifrului, iar după fiecare pereche urmează cea formată din termenul următor nenul al șirului, parcurs de la stânga la dreapta, respectiv din codul următor din cifru, parcurs circular, spre dreapta, ca în exemplu.
Cerința
10 puncte
Scrieți un program Pascal care citește de la tastatură numere naturale: un număr n (n∈[1,100]), apoi un șir de n numere din intervalul [0,10⁴], elemente ale unui tablou unidimensional, iar la final trei numere din intervalul [0,10], reprezentând, în această ordine, codurile unui cifru. Programul modifică tabloul în memorie, criptând șirul cu cifrul dat, apoi afișează pe ecran tabloul obținut.
Exemplu: pentru n=11, tabloul (9,6,8,3,1,0,21,14,0,20,5) și cifrul cu codurile 3, 1, 6 se obține tabloul (12,7,14,6,2,0,27,17,0,21,11); primele patru perechi sunt 9-3, 6-1, 8-6, 3-3. (10p.)
Arată baremul
SUBIECTUL al III-lea, 2.
Pentru program corect - 10p.
-declarare a unei variabile care să memoreze un tablou unidimensional conform cerinței - 1p.
-citire a datelor, conform cerinței - 1p.
-codificare a șirului cerut (*) - 6p.
-afișare a datelor - 1p.
-declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p.
(*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unei valori nule/nenule, tratare a cel puțin unei perechi valoare nenulă-cod prin adunare, deplasare circulară în cadrul codurilor, perechi valoare nenulă-cod suport parcurse, valori nule/nenule suport nemodificate/modificate, modificare în memorie) conform cerinței.
1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.