Домашка по ИКТ Номера делаются в языке Paskal ABC Задача 1 Дан файл, содержащий ненулевые целые числа. Создать новый файл, содержащий только положительные числа исходного файла (в том же порядке). Задача 2 Дан файл вещественных чисел. Поменять в нем местами минимальный и максимальный элементы.
program Task1; var input, output: text; num: integer; begin assign(input, 'input.txt'); reset(input); assign(output, 'output.txt'); rewrite(output); while not eof(input) do begin read(input, num); if num > 0 then writeln(output, num); end; close(input); close(output); end.
Задача 2:
program Task2; var input: text; numList: array of real; i, minIndex, maxIndex: integer; min, max, temp: real; begin assign(input, 'input.txt'); reset(input); i := 0; while not eof(input) do begin SetLength(numList, i + 1); read(input, numList[i]); i := i + 1; end; min := numList[0]; max := numList[0]; minIndex := 0; maxIndex := 0; for i := 1 to Length(numList) - 1 do begin if numList[i] < min then begin min := numList[i]; minIndex := i; end; if numList[i] > max then begin max := numList[i]; maxIndex := i; end; end; temp := numList[minIndex]; numList[minIndex] := numList[maxIndex]; numList[maxIndex] := temp; rewrite(input); for i := 0 to Length(numList) - 1 do writeln(input, numList[i]); close(input); end.
Обратите внимание, что для работы программы необходимо иметь файлы input.txt с исходными данными и создать файлы output.txt для записи результатов.
Решение:
Задача 1:
program Task1;var
input, output: text;
num: integer;
begin
assign(input, 'input.txt');
reset(input);
assign(output, 'output.txt');
rewrite(output);
while not eof(input) do
begin
read(input, num);
if num > 0 then
writeln(output, num);
end;
close(input);
close(output);
end.
Задача 2:
program Task2;var
input: text;
numList: array of real;
i, minIndex, maxIndex: integer;
min, max, temp: real;
begin
assign(input, 'input.txt');
reset(input);
i := 0;
while not eof(input) do
begin
SetLength(numList, i + 1);
read(input, numList[i]);
i := i + 1;
end;
min := numList[0];
max := numList[0];
minIndex := 0;
maxIndex := 0;
for i := 1 to Length(numList) - 1 do
begin
if numList[i] < min then
begin
min := numList[i];
minIndex := i;
end;
if numList[i] > max then
begin
max := numList[i];
maxIndex := i;
end;
end;
temp := numList[minIndex];
numList[minIndex] := numList[maxIndex];
numList[maxIndex] := temp;
rewrite(input);
for i := 0 to Length(numList) - 1 do
writeln(input, numList[i]);
close(input);
end.
Обратите внимание, что для работы программы необходимо иметь файлы input.txt с исходными данными и создать файлы output.txt для записи результатов.