Esimese vaba numbri leidmine

Andmete sisestamisel mitmesugustesse andmebaasidesse seotakse iga kirjega üldjuhul mingisugune unikaalne identifikaator, mille abil on võimalik antud kirje baasist üles leida. Kõige lihtsamal juhul on selliseks identifikaatoriks positiivne täisarv.
Unikaalse täisarvu tagamiseks võib ühe võimalusena otsida andmebaasist olemasolevate kirjete hulgast kõige suurem identifikaatori väärtus, liita sellele juurde üks ning tulemust kasutada järgmise kirje salvestamisel.
Eelmise meetodi kõige suurem puudus ilmneb, kui andmebaasis olevaid kirjeid kustutatakse. Sellisel juhul muutuvad kõigi kustutatud kirjete identifikaatorid küll vabaks, kuid neid ei saa kasutada senikaua, kuni eksisteerib mõni suurema identifikaatori väärtusega kirje.
Et vältida identifikaatorite väärtuste asjatut kasvamist, tuleks uue kirje sisestamisel ära kasutada kõik “augud” identifikaatorite jadas, mis on tekkinud varemsisestatud kirjete kustutamisel. Seega tuleks kõigepealt kontrollida, kas sääraseid tühimikke jadas eksisteerib ning alles nende puudumisel võtta kasutusele hetkel suurimast identifikaatorist ühe võrra suurem väärtus.

Ülesanne

  1. Tekstifailis on igale reale salvestatud üks identifikaatori väärtus. Väärtused ei pea olema rangelt kasvavas järjekorras.
  2. Kirjutada programm, mis loeks failist identifikaatorid ning leiaks nende hulgast esimese vaba numbri, mida saaks kasutada uue kirje salvestamisel ja trükiks selle ekraanile.
  3. Programm peab sisaldama elementaarset veatöötlust (veateade kuvatakse, kui faili ei õnnestunud avada, kui fail on tühi, kui failis sisalduvad andmed ei ole korrektsed jne.).