#588 · Subiectul II · Programare
Numărul din cifrele unui text: întâi impare crescător, apoi pare descrescător (cifra și numar)
✓ Rezolvare explicatăBucurești 2020 · nr. 16
Enunț
Fișierul atestat.in conține, pe mai multe linii, cel mult un milion de caractere (litere mari și mici ale alfabetului englez, cifre și caractere speciale).
Se consideră subprogramele:
cifra, cu un singur parametrucde tip caracter: returnează1dacăceste caracter cifră, altfel0;numar, cu doi parametri:n, un număr întreg cu cel mult 9 cifre, șicif, o cifră. Modificănlipind cifracifla sfârșitul numărului. De exemplu, pentrun = 12, dupănumar(n, 3)valoarea luineste123.
a. Scrieți definiția completă a subprogramului cifra.
b. Scrieți definiția completă a subprogramului numar.
c. Scrieți un program care citește datele din atestat.in și, folosind apeluri utile ale subprogramelor cifra și numar, scrie pe prima linie a lui atestat.out numărul obținut din cifrele care apar în fișier. Numărul conține, de la stânga la dreapta, mai întâi cifrele impare în ordine crescătoare, apoi cifrele pare în ordine descrescătoare, fiecare cifră o singură dată. Dacă în fișier nu există cifre, se scrie nu exista.
Exemple
atestat.in |
atestat.out |
Explicații |
|---|---|---|
w e r r t y u h f d sd f h y i u h n 2 7 6 56 6 6 0 0 d f g h j k la s d r v b g t t t y ya a q w v c 3 5 8 * ) n& ! n s |
3578620 |
Cifrele din text: 0, 2, 3, 5, 6, 7, 8. Impare crescător: 3 5 7; pare descrescător: 8 6 2 0 |
Rezolvare
Exersează mai departe