program lab7 APPTYPE CONSOLE Для PascalABC закомментированы некоторые

 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
66
67
68
program lab7;
{$APPTYPE CONSOLE}
//Для PascalABC закомментированы некоторые строки
//uses
//SysUtils, Windows;
//Объявление переменных
var a, c: array[1..20] of integer;
n, s, i, j, min, mindex: integer;
var src, dest: TextFile;
begin
AssignFile(src, paramstr(1));
Reset(src);
AssignFile(dest, paramstr(2));
Rewrite(dest);
read(src, n);
for i := 1 to n do begin
read(src, a[i]);
end;
writeln(dest,'Исходные данные:');
write(dest,'Число элементов массива (n): ');
writeln(dest,n);
writeln(dest,'Элементы массива:');
for i := 1 to n do begin
write(dest,a[i]:3, ' ');
end;
writeln(dest);
for i := 0 to 60 do write(dest,'-');
writeln(dest);
writeln(dest, 'Сортировка выбором:'); // Конец вывода исх
for i := 1 to n do c[i] := a[i]; // копируем a[i] для сортировки пузырьком
for i := 1 to n do begin // сортировка выбором
min := a[i];
mindex := i;
for j := i to n do begin
if abs(a[j]) < abs(min) then begin
min := a[j];
mindex := j;
end;
end;
s := a[i];
a[i] := a[mindex];
a[mindex] := s;
for j := 1 to n do write(dest, a[j]:3, ' ');
writeln(dest);
end;
writeln();
writeln(dest, 'Сортировка пузырьком:');
for i := 1 to n do begin
for j := n - 1 downto i do
if abs(c[j+1]) < abs(c[j]) then begin
s := c[j];
c[j] := c[j+1];
c[j+1] := s;
end;
for j := 1 to n do write(dest, c[j]:3, ' ');
writeln(dest);
end;
writeln(dest,'Результат:'); // Начало вывода "результатов"\
for j := 1 to n do write(dest, c[j]:3, ' ');
CloseFile(src);
CloseFile(dest);
writeln('Done');
readln;
end.