Detalii evaluare #49177911

Rezumat problemă

#1953 tabel1

Marius se pregătește pentru olimpiada de informatică. Astăzi, profesoara lui i-a predat șirurile de caractere. După școală și-a lăsat caietul de informatică pe birou, și frățiorul lui, pus pe șotii, a deschis caietul la ultima lecție și a văzut scris mare: TABEL ASCII. Pentru că îi place să scrie, s-a gândit să modifice puțin numerele din tabel. Așa că a șters unele din ele, scriind altele în loc. Marius nu a observat acest lucru și a început să rezolve problemele date de doamna profesoară. Are nevoie de ajutor, de aceea te roagă să îl ajuți să rezolve următoarea problemă, folosind tabelul ascii din caietul său: “Se dă un șir de caractere format din cifre și litere mari și mici ale alfabetului englez. Afișați suma valorilor tuturor literelor (valoarea unei litere se află în tabelul Ascii) și cel mai mare număr vale-deal care se poate forma cu cifrele care apar în șir. Un număr vale-deal are cifre distincte și cifrele din prima jumătate sunt în ordine descrescătoare, iar dele din a doua jumătate în ordine crescătoare. Exemplu : 98367 e număr vale-deal, 998367 nu e număr vale-deal, 987 nu e număr vale-deal.”

Cunoscând șirul format din cifre zecimale, litere mici și litere mari ale alfabetului englez, respectiv numerele modificate de fratele lui Marius, scrieți un program care să determine:

a) suma codurilor ASCII ale literelor din sir (folosind tabelul din caietul lui Marius);
b) cel mai mare număr vale-deal care are cifre ce apar în șir.

Detalii

Problema tabel1 Operații I/O tabel1.in/tabel1.out
Limita timp 0.1 secunde Limita memorie Total: 4 MB / Stivă 1 MB
Id soluție #49177911 Utilizator Drăguș Daniela (danieladragus)
Fișier tabel1.cpp Dimensiune 1.92 KB
Data încărcării 18 Februarie 2024, 21:04 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

tabel1.cpp:5:1: error: 'ifstream' does not name a type
 ifstream fin("tabell.in");

 ^
tabel1.cpp:6:1: error: 'ofstream' does not name a type
 ofstream fout("tabell.out");

 ^
tabel1.cpp: In function 'int main()':
tabel1.cpp:14:5: error: 'fin' was not declared in this scope
     fin >> n;

     ^
tabel1.cpp:25:23: error: invalid conversion from 'int' to 'const char*' [-fpermissive]
         strcpy(cASCI,x);

                       ^
In file included from /usr/include/features.h:374:0,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/os_defines.h:39,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/c++config.h:426,
                 from /usr/include/c++/4.8/iostream:38,
                 from tabel1.cpp:1:
/usr/include/i386-linux-gnu/bits/string3.h:102:1: error:   initializing argument 2 of 'char* strcpy(char*, const char*)' [-fpermissive]
 __NTH (strcpy (char *__restrict __dest, const char *__restrict __src))
 ^
tabel1.cpp:36:33: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
     for (int i = 0;i <= strlen(s);i++)

                                 ^
In file included from /usr/include/c++/4.8/cstring:42:0,
                 from tabel1.cpp:2:
/usr/include/string.h:399:15: error:   initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
 extern size_t strlen (const char *__s)
               ^
tabel1.cpp:36:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0;i <= strlen(s);i++)

                                 ^
tabel1.cpp:39:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int j = 0;j<=strlen(cASCI);j++)

                                       ^
tabel1.cpp:41:20: error: invalid types 'char[int]' for array subscript
             if (s[i] == cASCI[j])

                    ^
tabel1.cpp:49:27: error: invalid types 'char[int]' for array subscript
             suma=suma +s[i]-'0';

                           ^
tabel1.cpp:53:5: error: 'fout' was not declared in this scope
     fout <<suma;

     ^
tabel1.cpp:59:36: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
     for (int i = 0 ; i <= strlen (s);i++)

                                    ^
In file included from /usr/include/c++/4.8/cstring:42:0,
                 from tabel1.cpp:2:
/usr/include/string.h:399:15: error:   initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
 extern size_t strlen (const char *__s)
               ^
tabel1.cpp:59:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0 ; i <= strlen (s);i++)

                                    ^
tabel1.cpp:61:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int j = 0;j<=strlen(cASCI);j++)

                                       ^
tabel1.cpp:63:20: error: invalid types 'char[int]' for array subscript
             if (s[i] == cASCI[j])

                    ^
tabel1.cpp:68:46: error: invalid types 'char[int]' for array subscript
             else if (strchr ("0123456789",s[i]) !=NULL)

                                              ^
tabel1.cpp:70:27: error: invalid types 'char[int]' for array subscript
                 v[i] = s[i]-'0';

                           ^

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema tabel1 face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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ă.