Помогите сделать код по паскалю pascal
Нужно создать типизированный файл куда записать n целых чисел. На основе исходного файла создать массив утроенных чётных чисел. Упорядочить его по убыванию элементов
Ответы
Відповідь: но ПОЖАЛУЙСТА, хотя бы разберись как работает.Старалась делить по частям, чтобы легче можно было разобраться.
program TripleAndSort;
const
MaxSize = 100;
type
IntArray = array[1..MaxSize] of Integer;
var
inputFile, outputFile: file of Integer;
numbers: IntArray;
tripledEvenNumbers: IntArray;
n, i, j, temp: Integer;
//Читает набор интеджеров от пользователя
procedure ReadNumbers(var numbers: IntArray; var n: Integer);
begin
writeln('Enter the number of integers (n): ');
readln(n);
writeln('Enter ', n, ' integers:');
for i := 1 to n do
read(numbers[i]);
end;
//Здесь записывает в файл эти интеджеры.
procedure WriteToFile(var numbers: IntArray; n: Integer; filename: string);
var
fileVar: file of Integer;
begin
assign(fileVar, filename);
rewrite(fileVar);
for i := 1 to n do
write(fileVar, numbers[i]);
close(fileVar);
end;
//читает с файла
procedure ReadFromFile(var numbers: IntArray; var n: Integer; filename: string);
var
fileVar: file of Integer;
begin
assign(fileVar, filename);
reset(fileVar);
n := 0;
while not eof(fileVar) do
begin
n := n + 1;
read(fileVar, numbers[n]);
end;
close(fileVar);
end;
//процедура утроения четных чисел в массиве
procedure TripleEvenNumbers(var numbers: IntArray; n: Integer; var tripledEvenNumbers: IntArray);
var
tripledIndex: Integer;
begin
tripledIndex := 0;
for i := 1 to n do
begin
if (numbers[i] mod 2 = 0) then
begin
tripledIndex := tripledIndex + 1;
tripledEvenNumbers[tripledIndex] := numbers[i] * 3;
end;
end;
end;
//сортировка целых чисел в порядке убывания
procedure SortDescending(var numbers: IntArray; n: Integer);
begin
for i := 1 to n - 1 do
for j := i + 1 to n do
if numbers[i] < numbers[j] then
begin
temp := numbers[i];
numbers[i] := numbers[j];
numbers[j] := temp;
end;
end;
//главная программа
begin
ReadNumbers(numbers, n);
WriteToFile(numbers, n, 'inputFile.dat');
ReadFromFile(numbers, n, 'inputFile.dat');
TripleEvenNumbers(numbers, n, tripledEvenNumbers);
SortDescending(tripledEvenNumbers, n);
WriteToFile(tripledEvenNumbers, n, 'outputFile.dat');
writeln('Tripled and sorted even numbers have been written to outputFile.dat');
end.