#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 | #49534717 | Utilizator | |
Fișier | paritateoji.cpp | Dimensiune | 1.10 KB |
Data încărcării | 06 Martie 2024, 10:41 | Scor / rezultat | Eroare de compilare |
paritateoji.cpp:6:15: error: 'int pow' redeclared as different kind of symbol int code = 0, pow = 7, ones = 0, byte = 0; ^ In file included from /usr/include/features.h:374:0, from /usr/include/assert.h:35, from /usr/include/c++/4.8/cassert:43, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:33, from paritateoji.cpp:1: /usr/include/i386-linux-gnu/bits/mathcalls.h:153:1: error: previous declaration of 'double pow(double, double)' __MATHCALL (pow,, (_Mdouble_ __x, _Mdouble_ __y)); ^ paritateoji.cpp: In function 'int main()': paritateoji.cpp:13:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < text.size(); ++i) { ^ paritateoji.cpp:14:20: error: invalid operands of types '<unresolved overloaded function type>' and 'int' to binary 'operator==' if (pow == 7 && text[i] - '0' == 1) { ^ paritateoji.cpp:17:28: error: invalid operands of types 'int' and '<unresolved overloaded function type>' to binary 'operator<<' code += ((1 << pow) * (text[i] - '0')); ^ paritateoji.cpp:19:20: error: invalid operands of types '<unresolved overloaded function type>' and 'int' to binary 'operator!=' if (pow != 7 && text[i] - '0' == 1) { ^ paritateoji.cpp:22:11: error: no pre-decrement operator for type --pow; ^ paritateoji.cpp:23:13: error: parse error in template argument list if (pow < 0) { ^ paritateoji.cpp:23:20: error: cannot resolve overloaded function 'pow' based on conversion to type 'bool' if (pow < 0) { ^ paritateoji.cpp:31:17: error: overloaded function with no contextual type information pow = 7; ^
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ă.