#578 · Subiectul II · Programare
Căutare binară printre numerele de trei cifre, ordonate descrescător (construire și cautare)
✓ Rezolvare explicatăBucurești 2020 · nr. 6
Enunț
Fișierul atestat.in conține cel mult 100 de numere naturale cu cel mult patru cifre, scrise pe o singură linie, separate prin câte un spațiu. Valorile din fișier sunt ordonate descrescător.
Se consideră subprogramele:
construire, cu doi parametri:v, un tablou unidimensional cu numere naturale, șin, numărul de elemente ale luiv. Subprogramul citește numerele dinatestat.inși furnizează prinvun tablou care conține doar numerele din fișier care au exact trei cifre, iar prinnnumărul acestora. Fișierul conține cel puțin un număr cu 3 cifre;cautare, cu trei parametri:v, un tablou unidimensional cu numere naturale,n, numărul de elemente ale luiv, șix, un număr natural. Subprogramul returnează, utilizând algoritmul de căutare binară, poziția pe care se găseștexînv, sau-1în caz contrar.
a. Scrieți definiția completă a subprogramului construire.
b. Scrieți definiția completă a subprogramului cautare.
c. Scrieți un program care, utilizând apeluri utile ale celor două subprograme, scrie în atestat.out poziția din v pe care se găsește un număr natural x cu exact trei cifre, citit de la tastatură, sau mesajul nu exista dacă x nu se află printre elementele lui v.
Exemple
atestat.in |
Tastatură | atestat.out |
Explicații |
|---|---|---|---|
1204 991 234 102 79 |
105 |
nu exista |
v = 991 234 102; 105 lipsește |
1204 991 234 102 79 |
991 |
1 |
Subiectul nu dă acest exemplu; pozițiile se numără de la 1 (alegere declarată, enunțul nu decide) |
Rezolvare
Exersează mai departe
Probleme cu aceeași tehnică
#283ProgramarePoziția unui element în vectorul ordonat, fără a-l ordona#569ProgramareElementele comune ale unui tablou crescător și ale unuia descrescător (subprogramul tablou)#573ProgramareNumere cu prima cifră pătrat perfect, ordonate descrescător (p_cifra recursiv și sortare)#577ProgramareSortarea descrescătoare a unor numere reale cu poziția maximului (citeste și pozmax)#061ProgramareModulele numerelor complexe dintr-un fișier, afișate în ordine descrescătoare#067ProgramareSă se afişeze, în ordine crescătoare, numerele distincte din cele două fişiere