# Darbas su keliais duomenų ir rezultatų failais
# Vaizdo pamoka
# Pavyzdžiai
# Pavyzdys 1
Kodas:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream duomenys("duomenys.txt");
ofstream rezultatai("rezultatai.txt");
int skaiciai[100];
int kiekis = 0;
while (!duomenys.eof())
{
duomenys >> skaiciai[kiekis];
kiekis++;
}
int suma = 0;
for (int i = 0; i < kiekis; i++)
{
suma += skaiciai[i];
}
rezultatai << "Skaiciu suma: " << suma << endl;
duomenys.close();
rezultatai.close();
return 0;
}
7
4
5
9
8
5
2
Skaiciu suma: 40
// Make sure to add code blocks to your code group
# Pavyzdys 2
Kodas:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream duomenys("duomenys.txt");
ofstream rezultatai("rezultatai.txt");
string dienos[7];
int temperaturos[7];
int kiekis = 7;
for (int i = 0; i < kiekis; i++)
{
duomenys >> dienos[i] >> temperaturos[i] >> ws;
}
int silciausios_ind = 0, vesiausios_ind = 0;
for (int i = 0; i < kiekis; i++)
{
if (temperaturos[i] > temperaturos[silciausios_ind])
{
silciausios_ind = i;
}
if (temperaturos[i] < temperaturos[vesiausios_ind])
{
vesiausios_ind = i;
}
}
rezultatai << "Silciausia diena buvo " << dienos[silciausios_ind]
<< ", temperatura sieke " << temperaturos[silciausios_ind]
<< endl;
rezultatai << "Vesiausia diena buvo " << dienos[vesiausios_ind]
<< ", temperatura sieke " << temperaturos[vesiausios_ind]
<< endl;
duomenys.close();
rezultatai.close();
return 0;
}
Pirmadienis 17
Antradienis 18
Treciadienis 15
Ketvirtadienis 18
Penktadienis 19
Sestadienis 18
Sekmadienis 16
Silciausia diena buvo Penktadienis, temperatura sieke 19
Vesiausia diena buvo Treciadienis, temperatura sieke 15
// Make sure to add code blocks to your code group
# Pavyzdys 3
Kodas:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream duomenys;
int skaiciai[100];
int kiekis = 0;
duomenys.open("duomenys1.txt");
while (!duomenys.eof())
{
duomenys >> skaiciai[kiekis++];
}
duomenys.close();
duomenys.open("duomenys2.txt");
while (!duomenys.eof())
{
duomenys >> skaiciai[kiekis++];
}
duomenys.close();
ofstream rezultatai("rezultatai.txt");
rezultatai << "Skaiciai is abieju duomenu failu:" << endl;
for (int i = 0; i < kiekis; i++)
{
rezultatai << skaiciai[i] << " ";
}
rezultatai << endl;
int suma = 0;
for (int i = 0; i < kiekis; i++)
{
suma += skaiciai[i];
}
rezultatai << "Siu skaiciu bendra suma: " << suma << endl;
rezultatai.close();
return 0;
}
12
45
87
65
5 4 8 2 3
Skaiciai is abieju duomenu failu:
12 45 87 65 5 4 8 2 3
Siu skaiciu bendra suma: 231
// Make sure to add code blocks to your code group
# Pavyzdys 4
Kodas:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream duomenys;
string duomenu_failai[] = { "duomenys1.txt", "duomenys2.txt" };
int duomenu_failu_kiekis = 2;
int skaiciai[100];
int kiekis = 0;
for (int i = 0; i < duomenu_failu_kiekis; i++)
{
duomenys.open(duomenu_failai[i]);
while (!duomenys.eof())
{
duomenys >> skaiciai[kiekis++];
}
duomenys.close();
}
ofstream rezultatai("rezultatai.txt");
rezultatai << "Skaiciai is abieju duomenu failu:" << endl;
int suma = 0;
for (int i = 0; i < kiekis; i++)
{
rezultatai << skaiciai[i] << " ";
suma += skaiciai[i];
}
rezultatai << endl;
rezultatai << "Siu skaiciu bendra suma: " << suma << endl;
rezultatai.close();
return 0;
}
12
45
87
65
5 4 8 2 3
Skaiciai is abieju duomenu failu:
12 45 87 65 5 4 8 2 3
Siu skaiciu bendra suma: 231
// Make sure to add code blocks to your code group
# Užduotys
# Užduotis 1
Duomenų faile esanti informacija:
4
Liepa 12
Berzelis 10
Obelis 13
Kriause 15
Duomenų failo pirmoje eilutėje yra nurodytas įrašų kiekis.
Kitose failo eilutėse saugoma ši informacija apie medžius:
- Medžio pavadinimas.
- Medžio amžius metais.
Atkreipkite dėmesį, kad medžio pavadinimams yra naudojamas atitinkamas simbolių kiekis, kadangi pavadinimą gali sudaryti ne vienas žodis.
Nuskaitykite šią informaciją iš failo.
Į kitą failą išveskite šią nuskaitytą informaciją gražiai lentelės pavidalu.
Taip pat, raskite ir išveskite šiuos dalykus:
- Medžių amžiaus vidurkį.
- Vyriausią medį.
- Jaunausią medį.
- Skirtumą tarp vyriausio ir jaunausio medžių.
# Užduotis 2
Faile esanti informacija:
Piestukas 0.99 45
Kreideles crayon 1.99 32
Sasiuvinys 50 psl. 1.49 26
Kiekvienoje failo eilutėje yra ši informacija apie prekes:
- Prekės pavadinimas.
- Kaina, eurais.
- Turimų vienetų kiekis.
Atkreipkite dėmesį į tai kad prekės pavadinimas yra sudarytas iš atitinkamo simbolių kiekio, kadangi prekės pavadinimą gali sudaryti ne vienas žodis.
Nuskaitykite šią informaciją iš failo.
Išveskite nuskaitytą informaciją į rezultatų failą lentelės pavidalu. Kainą atvaizduokite fiksuotą du skaičiai po kablelio.
Taip pat, raskite:
- Raskite kuri prekė yra pigiausia ir kuri brangiausia.
- Kurios prekės yra daugiausiai vienetų.
- Kurios prekės pelnas būtų didžiausias, jeigu pavyktų parduoti visus turimus vienetus.