Veiksmai su tekstais

1 PAVYZDYS

Duomenys13

//Pavardei skirta 20 pozicijų, vardui – dar 20 pozicijų. Suskaičiuoti, kiek yra vardų.
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;
//———————————————
struct Mokinys
{
string pav, vard, vardas;
int kiek;
};
//—————————————
void Skaityti(int & n, Mokinys A[]);
void Rasti(int n, Mokinys A[], int &m);
int Yra(Mokinys A[], int n, string vardas);
void Spausdinti(int n, Mokinys A[]);
//——————————————-
int main()
{
int n, m;
Mokinys A[100];
Skaityti(n, A);
Rasti(n, A, m);
Spausdinti(m, A);
return 0;
}
//————————————————
void Skaityti(int & n, Mokinys A[])
{
ifstream F(„Duomenys13.txt“);
F >> n;
for (int i = 0; i < n; i++)
F >> A[i].pav >> A[i].vard;
F.close();
}
void Rasti(int n, Mokinys A[], int &m)
{
int k;
for (int i = 0; i < n; i++)
A[i].kiek = 1;   //pradinis kiekis = 1
m = 0;
for (int i = 0; i < n; i++)
{
k = Yra(A, m, A[i].vard);
if (k >= 0)
A[k].kiek++;
else
{
A[m].vard = A[i].vard;   //sudeda vardus į masyvą
m++;
}

}
}
//—————–ar yra vienodas vardas—————————————-
int Yra(Mokinys A[], int n, string vardas)
{
for (int i = 0; i < n; i++)
if(A[i].vard == vardas)
return i;
return -1;
}
//——————————————————————————
void Spausdinti(int m, Mokinys A[])
{
ofstream R(„Rezultatai13.txt“);
for (int i = 0; i < m; i++)
R << setw(20) << left << A[i].vard << A[i].kiek << endl;
R.close();
}

2 PAVYZDYS

Duomenys13

//Pavardei skirta 20 pozicijų, vardui – dar 20 pozicijų. Suskaičiuoti, kiek yra vardų ir surikiuoti sąrašą pagal vardus abėcėliškai didėjančiai.
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;
//———————————————
struct Mokinys
{
string pav, vard, vardas;
int kiek;
};
//—————————————
void Skaityti(int & n, Mokinys A[]);
void Rasti(int n, Mokinys A[], int &m);
int Yra(Mokinys A[], int n, string vardas);
void Rikiuoti(int m, Mokinys A[]);
void Spausdinti(int n, Mokinys A[]);
//——————————————-
int main()
{
int n, m;
Mokinys A[100];
Skaityti(n, A);
Rasti(n, A, m);
Spausdinti(m, A);
return 0;
}
//————————————————
void Skaityti(int & n, Mokinys A[])
{
ifstream F(„Duomenys13.txt“);
F >> n;
for (int i = 0; i < n; i++)
F >> A[i].pav >> A[i].vard;
F.close();
}
void Rasti(int n, Mokinys A[], int &m)
{
int k;
for (int i = 0; i < n; i++)
A[i].kiek = 1;   //pradinis kiekis = 1
m = 0;
for (int i = 0; i < n; i++)
{
k = Yra(A, m, A[i].vard);
if (k >= 0)
A[k].kiek++;
else
{
A[m].vard = A[i].vard;   //sudeda vardus į masyvą
m++;
}

}
}
//—————–ar yra vienodas vardas—————————————-
int Yra(Mokinys A[], int n, string vardas)
{
for (int i = 0; i < n; i++)
if(A[i].vard == vardas)
return i;
return -1;
}
//—————-rikiavimas—————————————————-
void Rikiuoti(int m, Mokinys A[])
{
for (int i = 0; i < m – 1; i++)
for (int j = i + 1; j < m; j++)
if(A[i].vard > A[j].vard)
{
Mokinys x = A[i];
A[i] = A[j];
A[j] = x;
}
}
//——————————————————————————
void Spausdinti(int m, Mokinys A[])
{
ofstream R(„Rezultatai14.txt“);
Rikiuoti(m, A);
for (int i = 0; i < m; i++)
R << setw(20) << left << A[i].vard << A[i].kiek << endl;
R.close();
}