#567 · Subiectul II · Programare
Entitățile lexicale care conțin cifre și inițialele transformate în majuscule (subprogramul cifre)
✓ Rezolvare explicatăBucurești 2020 · nr. 20
Enunț
a) Subprogramul cifre are un parametru, s, prin care primește o adresă cu ajutorul căreia memorează un șir de caractere având cel puțin unul și cel mult 100 de caractere, și returnează un număr natural reprezentând numărul de cifre din șirul de caractere memorat cu ajutorul variabilei s. Scrieți la calculator definiția completă a subprogramului.
Exemplu: dacă se memorează, cu ajutorul variabilei s, șirul de caractere 11c, subprogramul cifre va returna valoarea 2 (deoarece șirul de caractere conține 2 cifre).
b) Un șir de caractere are cel puțin 5 și cel mult 100 de caractere reprezentând litere mici ale alfabetului englez, cifre, virgule sau spații. Șirul de caractere este format din cel puțin două entități lexicale separate între ele prin spații sau virgule. Entitățile lexicale sunt formate din litere mici ale alfabetului englez sau cifre. Șirul conține cel puțin o entitate lexicală care începe cu o literă mică. Fișierul cifra.in conține pe prima linie un șir de caractere de tipul precizat mai sus. Se cere scrierea și executarea la calculator a unui program care citește șirul de caractere din fișier, apoi afișează pe ecran, în ordinea în care apar, separate prin câte un spațiu, numai entitățile lexicale din șir care conțin cel puțin o cifră. Dacă în șirul de caractere nu există astfel de entități lexicale, se afișează pe ecran mesajul nu exista. Pentru rezolvare se folosesc apeluri utile ale subprogramului cifre. În același program se cere transformarea în literă mare a tuturor inițialelor entităților lexicale din șirul de caractere care încep cu o literă mică. Entitățile lexicale care încep cu o cifră rămân nemodificate. După modificare, entitățile lexicale se scriu în fișierul cifra.out pe rânduri diferite, în ordinea în care apar în șir.
⚠️ Exemplul oficial are ieșirile inversate față de enunț. Subiectul arată pe ecran entitățile cu inițiala mare, una pe rând, iar în
cifra.outvalorile1000 6. Enunțul cere exact invers: pe ecran, separate prin spațiu, entitățile care conțin cifre; încifra.out, pe rânduri, toate entitățile după modificare. Tabelul și rezolvarea urmează enunțul.
Exemple
Date de intrare (cifra.in) |
Date de ieșire (conform enunțului) |
|---|---|
vrei pana la 1000, poti pana la 6 |
ecran: 1000 6cifra.out:VreiPanaLa1000PotiPanaLa6 |
Rezolvare
Exersează mai departe