Diferențe pentru problema/paritate între reviziile #7 si #18

Nu există diferențe între titluri.

Diferențe între conținut:

== include(page="template/taskheader" task_id="paritate") ==
În vederea asigurării unei transmiteri cât mai exacte a informațiilor pe rețea, transmiterea se efectuează caracter cu caracter, fiecare caracter fiind dat prin codul său ASCII, adică o grupă de 8 biți (octet). Pentru fiecare 8 biți transmiși se calculează un bit de paritate care are valoarea 0 (dacă codul ASCII al caracterului conține un număr par de cifre binare 1) sau 1 (în caz contrar). Deoarece în problema noastră se transmit numai caractere ASCII standard, cu codul ASCII din intervalul [32,127], codul lor ASCII are bitul 7 (primul bit din stânga) egal cu 0. Pe această poziție va fi pus bitul de paritate, economisind astfel câte un bit pentru fiecare caracter transmis. De exemplu, dacă mesajul care trebuie trasmis conține caracterele ″Paritate″, succesiunea de biți transmisă va fi:
În vederea asigurării unei transmiteri cât mai exacte a informațiilor pe rețea, transmiterea se efectuează caracter cu caracter, fiecare caracter fiind dat prin codul său [$ASCII$], adică o grupă de 8 biți (octet). Pentru fiecare 8 biți transmiși se calculează un _bit de paritate_ care are valoarea 0 (dacă codul $ASCII$ al caracterului conține un număr par de cifre binare 1) sau 1 (în caz contrar). Deoarece în problema noastră se transmit numai caractere $ASCII$ standard, cu codul $ASCII$ din intervalul [32,127], codul lor $ASCII$ are bitul 7 (primul bit din stânga) egal cu 0. Pe această poziție va fi pus bitul de paritate, economisind astfel câte un bit pentru fiecare caracter transmis. De exemplu, dacă mesajul care trebuie trasmis conține caracterele ″Paritate″, succesiunea de biți transmisă va fi:
01010000 11100001 01110010 01101001 01110100 11100001 01110100 01100101
[*0*]1010000 [*1*]1100001 [*0*]1110010 [*0*]1101001 [*0*]1110100 [*1*]1100001 [*0*]1110100 [*0*]1100101
În plus, pe lângă caracterele amintite, în mesaj mai poate să apară un caracterul special, caracter care indică trecerea la începutul unui nou rând. Acest caracter are codul ASCII 10.
În plus, pe lângă caracterele amintite, în mesaj mai poate să apară un caracter special, caracter care indică trecerea la începutul unui nou rând. Acest caracter are codul $ASCII$ 10.
h2. Cerință
h2. Date de intrare
Fișierul de intrare $paritate.in$ are pe prima linie o succesiune de caractere ′0′ și ′1′ care reprezintă mesajul transmis. Între caractere nu există spații. Linia se termină cu caracterul marcaj de sfârșit de linie (newline).
Fișierul de intrare $paritate.in$ are pe prima linie o succesiune de caractere ′0′ și ′1′ care reprezintă mesajul transmis. Între caractere nu există spații. Linia se termină cu caracterul marcaj de sfârșit de linie ([$newline$]).
h2. Date de ieșire
Fișierul de ieșire $paritate.out$ are pe prima linie mesajul DA dacă textul a fost transmis corect sau NU în caz contrar. În cazul în care mesajul de pe prima linie este DA liniile următoare vor conține textul transmis în clar. În cazul în care mesajul de pe prima linie este NU linia următoare va conține numerele de ordine ale caracterelor care nu au fost transmise corect, în ordine strict crescătoare, separate prin câte un spațiu.
Fișierul de ieșire $paritate.out$ are pe prima linie mesajul *[$DA$]* dacă textul a fost transmis corect sau *[$NU$]* în caz contrar. În cazul în care mesajul de pe prima linie este *[$DA$]* liniile următoare vor conține textul transmis în clar. În cazul în care mesajul de pe prima linie este *[$NU$]* linia următoare va conține numerele de ordine ale caracterelor care nu au fost transmise corect, în ordine strict crescătoare, separate prin câte un spațiu.
h2. Restricții
Cei 8 biți ai codului ASCII a unui caracter se numerotează de la 0 la 7, de la dreapta la stânga, cel mai din stânga bit fiind bitul 7 iar cel mai din dreapta bitul 0.
Textul transmis are cel mult 60000 caractere.
Numărul de caractere ′0′ și ′1′ din prima linie a fișierului de intrare este multiplu de 8.
Codurile ASCII ale caracterelor din text aparțin mulțimii {10, 32–127}, codul 10 însemnând trecerea la începutul unui rând nou.
Nici o linie din fișierul de ieșire nu va avea mai mult de 255 caractere.
Caracterele din text sunt numerotate începând de la 0.
Mesajele DA/NU din prima linie a fișierului de ieșire se scriu cu majuscule.
* Cei 8 biți ai codului $ASCII$ a unui caracter se numerotează de la 0 la 7, de la dreapta la stânga, cel mai din stânga bit fiind bitul 7 iar cel mai din dreapta bitul 0.
* Textul transmis are cel mult 60000 caractere.
* Numărul de caractere ′0′ și ′1′ din prima linie a fișierului de intrare este multiplu de 8.
* Codurile $ASCII$ ale caracterelor din text aparțin mulțimii {10, 32–127}, codul 10 însemnând trecerea la începutul unui rând nou.
* Nici o linie din fișierul de ieșire nu va avea mai mult de 255 caractere.
* Caracterele din text sunt numerotate începând de la 0.
* Mesajele [*$DA$*] / [*$NU$*] din prima linie a fișierului de ieșire se scriu cu majuscule.
h2. Exemplu
table(example).
table(example).
|_. paritate.in |_. paritate.out |_. Explicație |
| 0101000011100001011100100110100101110100111000010111010001100101
| DA

Nu există diferențe între securitate.