Lietuvos gyventojų duomenų registre gyventojų asmens kodo duomenys laikomi tokiu formatu SYYMMDDXXXX.
Čia:S - lytis 3 (vyras, 1900-1999), 4 (moteris, 1900-1999), 5 (vyras, 2000-), 6 (moteris, 2000-), YY - gimimo metų paskutinieji du skaitmenys (00, 01, 02, 03, ... 98, 99), MM - gimimo mėnesio numeris (01, 02, 03, ... 12), DD - gimimo dienos numeris (01, 02, 03, ... 31), XXXX - registracijos numeris (0001 ... 9999).
Pirmoje pradinių duomenų failo eilutėje yra asmens kodų kiekis n (1 <= n <= 3000).
Toliau kiekvienoje eilutėje yra po vieną asmens kodą. (Didelėms skaičiams reikalingas kintamosios tipas "long long int")
1) Parenkite programą, kuri į rezultatų failą perkeltų gyventojų asmens kodus.
Pradiniai duomenys
6
36508230023
43210060068
60111300321
40203190010
30501150007
50310241123
2
33303033333
33303023332
Rezultatai
36508230023
43210060068
60111300321
40203190010
30501150007
50310241123
33303033333
33303023332
#include <iostream> #include <fstream> using namespace std int main() { int n long long int ak ifstream FD ("kodai.txt") ofstream FR ("rezultatai.txt") FD >> n for (int i = 0 i < n i++){ FD >> ak cout << ak << endl FR << ak << endl } FR.close() FD.close() return 0 }
2) Parenkite programą, kuri į rezultatų failą įrašytų iš pradžių vyrų asmens kodus, o po to moterų asmens kodus.
Pradiniai duomenys
6
36508230023
43210060068
60111300321
40203190010
30501150007
50310241123
2
33303033333
33303023332
Rezultatai
36508230023
30501150007
50310241123
43210060068
60111300321
40203190010
33303033333
33303023332
#include <iostream> #include <fstream> using namespace std int main() { int n long long int ak[3000] ifstream FD ("kodai.txt") FD >> n for (int i = 0 i < n i++){ FD >> ak[i] } FD.close() ofstream FR ("rezultatai.txt") for (int i = 0 i < n i++){ if ((ak[i] / 10000000000) % 2 != 0) FR << ak[i] << endl } FR << endl for (int i = 0 i < n i++){ if ((ak[i] / 10000000000) % 2 == 0) FR << ak[i] << endl } FR.close() return 0 }
3) Parenkite programą, kuri rastų vyriausio Lietuvos vyro ir vyriausios moters gimimo datas ir jas įrašytų į rezultatų failą po asmens kodų sąrašo.
Pradiniai duomenys
6
36508230023
43210060068
60111300321
40203190010
30501150007
50310241123
2
33303033333
33303023332
Rezultatai
36508230023
43210060068
60111300321
40203190010
30501150007
50310241123
Vyriausias vyras gimė: 1905 m. sausio 15 d.
Vyriausia moteris gimė 1902 m. kovo 19 d.
33303033333
33303023332
Vyriausias vyras gimė: 1933 m. kovo 2 d.
Moterų nėra
#include <iostream> #include <fstream> using namespace std int main() { int n long long int ak[3000] = {0}, v_v = 99999999999, v_m = 99999999999 ifstream FD ("kodai.txt") FD >> n for (int i = 0 i < n i++){ FD >> ak[i] } FD.close() for (int i = 0 i < n i++){ if (((ak[i] / 10000000000) % 2 != 0) && ak[i] < v_v) v_v = ak[i] } for (int i = 0 i < n i++){ if (((ak[i] / 10000000000) % 2 == 0) && ak[i] < v_m) v_m = ak[i] } ofstream FR ("rezultatai.txt") for (int i = 0 i < n i++){ FR << ak[i] << endl } FR << endl if (v_v == 99999999999) FR << "Vyru nera" << endl else { int mm string mn[12] = {"sausio", "vasario", "kovo", "balandzio", "geguzies", "birzelio", "liepos", "rugpjucio", "rugsejo", "spalio", "lapkricio", "gruodzio"} if (v_v / 10000000000 == 3) mm = 1900 + v_v / 100000000 % 100 if (v_v / 10000000000 == 5) mm = 2000 + v_v / 100000000 % 100 FR << "Vyriausias vyras gime: " << mm << " m. " << mn[(v_v / 1000000 % 100) - 1] << " " << (v_v / 10000 % 100) << " d." << endl } if (v_m == 99999999999) FR << "Moteru nera" << endl else { int mm string mn[12] = {"sausio", "vasario", "kovo", "balandzio", "geguzies", "birzelio", "liepos", "rugpjucio", "rugsejo", "spalio", "lapkricio", "gruodzio"} if (v_m / 10000000000 == 4) mm = 1900 + v_m / 100000000 % 100 if (v_m / 10000000000 == 6) mm = 2000 + v_m / 100000000 % 100 FR << "Vyriausioji moteris gime: " << mm << " m. " << mn[(v_m / 1000000 % 100) - 1] << " " << (v_m / 10000 % 100) << " d." << endl } FR.close() return 0 }