1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
var f1,f2,f3:text;
n,i,a,b:integer;
begin
//создадим исходные файлы, можно вынести в отдельную программу
//или создать файлы вручную
randomize;
assign(f1,'f1.txt');
rewrite(f1);
assign(f2,'f2.txt');
rewrite(f2);
write('Сколько чисел ввести в первый файл n=');
readln(n);
writeln('Содержание файла f1:');
a:=1;
for i:=1 to n do
begin
a:=a+random(5);
write(f1,' ',a);
write(' ',a);
end;
writeln;
write('Сколько чисел ввести во второй файл n=');
readln(n);
writeln('Содержание файла f2:');
a:=1;
for i:=1 to n do
begin
a:=a+random(5);
write(f2,' ',a);
write(' ',a);
end;
writeln;
reset(f1);
reset(f2);
assign(f3,'f3.txt');
rewrite(f3);
//если не конец файла, то читаем числа иначе создаем барьер из
//максимально возможного целого числа
if not eof(f1) then read(f1,a) else a:=maxint;
if not eof(f2) then read(f2,b) else b:=maxint;
while (a<maxint) or (b<maxint) do//пока оба файла не кончились
begin
if (a<=b) and (a<maxint) then //если 1<=2
begin
write(f3,' ',a);//1 пишем в файл 3
if not eof(f1) then read(f1,a) else a:=maxint;//если не конец 1,
//то читаем следующее , иначе барьер
end
else if b<a then //иначе если 2<1 то же но со 2 файлом
begin
write(f3,' ',b);
if not eof(f2) then read(f2,b) else b:=maxint;
end;
end;
reset(f3);//смотрим что получилось
writeln('Слияние файлов:');
while not eof(f3) do
begin
read(f3,a);
write(' ',a);
end;
close(f1);
close(f2);
close(f3);
end.
Объяснение:
Вроде бы так, я не слишком в этом хорош.
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_ALL, "Russian");
int str;
cout << "Введите количество произведений: ";
cin >> str;
string glasnie = "ауоыиэяюеё";
string soglasnie = "бвгджзйклмнпрстфхцчшщ";
string * text = new string[str];
string buffer;
cin.get();
for (int i = 0; i < str ; i++)
{
cout << "Название [" << i + 1 << "]: ";
getline(cin, buffer);
text[i] += buffer;
}
cout << "\nСортировка по самому длинному названию: " << endl;
for (int i = 0; i < str - 1; i++)
{
for (int j = i + 1; j < str; j++)
{
if (text[i].length() < text[j].length())
{
string box = text[i];
text[i] = text[j];
text[j] = box;
}
}
}
for (int i = 0; i < str; i++)
{
cout << text[i] << endl;
}
cout << "\nСамое большое количество символов: " << text[0] << endl;
cout << "Самое малое количество символов: " << text[str-1] << endl;
int glasn_max = 0;
int glasn_min = 0;
string gmax, gmin;
bool check = 0;
for (int i = 0; i < str; i++)
{
int counter = 0;
for (int j = 0; j < text[i].length(); j++)
{
for (int k = 0; k < glasnie.length(); k++)
{
if (text[i][j] == glasnie[k])
{
counter++;
}
}
}
if (check == 0)
{
check = 1;
glasn_min = counter;
gmin = text[i];
}
if (glasn_max < counter)
{
glasn_max = counter;
gmax = text[i];
}
if(glasn_min > counter)
{
glasn_min = counter;
gmin = text[i];
}
}
cout << "\nСамое большое кол-во гласных: " << gmax << endl;
cout << "Самое малое кол-во гласных: " << gmin << endl;
int sglasn_max = 0;
int sglasn_min = 0;
string sgmax, sgmin;
check = 0;
for (int i = 0; i < str; i++)
{
int counter = 0;
for (int j = 0; j < text[i].length(); j++)
{
for (int k = 0; k < soglasnie.length(); k++)
{
if (text[i][j] == soglasnie[k])
{
counter++;
}
}
}
if (check == 0)
{
check = 1;
sglasn_min = counter;
sgmin = text[i];
}
if (sglasn_max < counter)
{
sglasn_max = counter;
sgmax = text[i];
}
if (sglasn_min > counter)
{
sglasn_min = counter;
sgmin = text[i];
}
}
cout << "\nСамое большое кол-во согласных: " << sgmax << endl;
cout << "Самое малое кол-во согласных: " << sgmin << endl;
delete[] text;
return 0;
}
Объяснение:
Писал в visual studio. Как работает: Вводишь число произведений, далее вводишь названия произведений. Ввел одно название, жмешь Enter, вводишь следующее название и так до конца.
Код получился большим относительно, можно меньше, но тогда будет немного сложен для начинающих программистов, поэтому писал максимально простым языком.