#1575
ParitateOJI
Î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.
Să se scrie un program care să verifice dacă un text a fost sau nu transmis corect.
OJI 2007, Clasa a IX-a
Problema | ParitateOJI | Operații I/O |
paritate.in /paritate.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #51980187 | Utilizator | |
Fișier | paritateoji.cpp | Dimensiune | 286 B |
Data încărcării | 14 Septembrie 2024, 05:22 | Scor / rezultat | 40 puncte |
paritateoji.cpp:1:2: warning: #import is a deprecated GCC extension [-Wdeprecated] #import<fstream> ^ paritateoji.cpp:2:69: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type] using namespace std;int b;char p,s[8];string r="DA\n",w="NU\n";main(){for(ifstream I("paritate.in");I>>p&&I.get(s,8);b++) {int o=0,c=0,i=0;for(;i<7;o+=s[i]-48,c+=(s[i]-48)*(1<<(6-i++)));w+=p%2!=o%2?to_string(b)+" ":"";r+=c;}ofstream("paritate.out")<<(w.size()?w:r);} ^ paritateoji.cpp: In function 'int main()': paritateoji.cpp:2:184: warning: operation on 'i' may be undefined [-Wsequence-point] using namespace std;int b;char p,s[8];string r="DA\n",w="NU\n";main(){for(ifstream I("paritate.in");I>>p&&I.get(s,8);b++) {int o=0,c=0,i=0;for(;i<7;o+=s[i]-48,c+=(s[i]-48)*(1<<(6-i++)));w+=p%2!=o%2?to_string(b)+" ":"";r+=c;}ofstream("paritate.out")<<(w.size()?w:r);} ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
2 | 0 secunde | OK. | 10 | 10 | ||
3 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
4 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
5 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
6 | 0 secunde | OK. | 10 | 10 | ||
7 | 0 secunde | OK. | 10 | 10 | ||
8 | 0.004 secunde | OK. | 10 | 10 | ||
9 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
10 | 0.004 secunde | Raspuns gresit. | 10 | 0 | ||
Punctaj total | 40 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema ParitateOJI face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.