Программа
Program Task2;
{ Поиск пар чисел с максимальным
и минимальным модулями разности }
Uses Mod_23_2; { Подключение модуля }
Var Data:DataType; { Описание переменной данных }
Max1,Max2:integer; { Переменные с наибольшим модулем разности }
Min1,Min2:integer; { Переменные с наименьшим модулем разности }
DeltaMin:integer; { Буферная переменная модуля наименьшей разности }
i,iBuf:integer; { Счетчик и буфер счетчика }
FileName:string[79]; { Имя файла }
Out:text; { Файловая переменная }
Procedure Sort(var Data:DataType); { Процедура сортировки массива данных }
var i,j:integer; { Счетчики }
Buf:integer; { Буфер для переноса элементов массива }
NumberMin:integer;
{ Номер минимального числа в неотсортированной части массива }
Begin
for i:=1 to DataQuantity do { Цикл просмотра массива }
begin
NumberMin:=i; { Начальное определение номера минимального
числа в неотсортированной части массива }
for j:=i+1 to DataQuantity do
{ Цикл просмотра неотсортированной части массива }
if Data[j]<Data[NumberMin] then NumberMin:=j;
{ Если текущий элемент меньше зафиксированного минимального,
то переопределение номера зафиксированного минимального }
{ Перенос найденного минимального в неотсортированной
части массива в начало неотсортированной части: }
Buf:=Data[NumberMin];
Data[NumberMin]:=Data[i];
Data[i]:=Buf
end;
End;
BEGIN
WriteLn; { Пропуск строки }
GetData(Data); { Получение данных }
Sort(Data); { Сортировка данных }
{ Определение пары с наибольшим модулем разности: }
Max1:=Data[1];
Max2:=Data[DataQuantity];
{ Поиск пары с наименьшим модулем разности: }
iBuf:=1; { Начальное определение буфера счетчика }
DeltaMin:=Data[2]-Data[1]; { Начальное определение разности }
for i:=iBuf+1 to DataQuantity-1 do { Просмотр массива данных }
if (Data[i+1]-Data[i])<DeltaMin
{ Если разность текущей параы меньше зафиксированной }
then Begin { то }
iBuf:=i; { переопределение буфера счетчика }
DeltaMin:=Data[i+1]-Data[i]
{ переопределение наименьшей разности }
End;
{ Определение пары чисел с минимальной разностью }
Min1:=Data[iBuf];
Min2:=Data[iBuf+1];
Write('Введите имя файла результатов ');
{ Вывод приглашения ввести имя файла }
ReadLn(FileName); { Ввод имени файла }
if FileName='' then FileName:='CON';
{ Переопределение пустого имени файла под консоль }
Assign(Out,FileName); { Связывание файловой переменной с файлом }
Rewrite(Out); { Открытие файла для записи }
{ Вывод результатов: }
WriteLn(Out,'Наибольший модуль разности имеют числа: ',Max1,' ',Max2);
WriteLn(Out,'Наименьший модуль разности имеют числа: ',Min1,' ',Min2);
Close(Out) { Закрытие файла }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию