Дан одномерный массив найти разность максимального и минимального элементов массива - Free Pascal
Формулировка задачи:
Нужен код для командного приложения на Лазарусе и если возможно комментарии...
Решение задачи: «Дан одномерный массив найти разность максимального и минимального элементов массива»
textual
Листинг программы
program project1; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Classes, SysUtils, CustApp { you can add units after this }; type { TMyApplication } TMyApplication = class(TCustomApplication) protected procedure DoRun; override; public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; procedure WriteHelp; virtual; end; { TMyApplication } procedure TMyApplication.DoRun; var ErrorMsg: String; n,i:integer; amin,amax:real; a:array of real; begin // quick check parameters ErrorMsg:=CheckOptions('h','help'); if ErrorMsg<>'' then begin ShowException(Exception.Create(ErrorMsg)); Terminate; Exit; end; // parse parameters if HasOption('h','help') then begin WriteHelp; Terminate; Exit; end; { add your program here } write('n='); readln(n); SetLength(a,n); {устанавливаем размерность массива} randomize; writeln('MaccuB:'); for i:=0 to n-1 do begin a[i]:=random*100; {заполняем массив случайными числами от 0 до 100} writeln(a[i]:0:4); if i=0 then begin amin:=a[0];amax:=a[0];end {если первый элемент массива то максимальное и минимальное число признаем равным ему} else begin if amin>a[i] then amin:=a[i];{если минимальное больше текущего присваиваем значение минимальному} if amax<a[i] then amax:=a[i];{если максимальное больше текущего присваиваем значение максимальному} end; end; writeln('MuH=',amin:0:4); writeln('Makc=',amax:0:4); writeln('ux pa3HocTb=',amax-amin:0:4); readln; // stop program loop Terminate; end; constructor TMyApplication.Create(TheOwner: TComponent); begin inherited Create(TheOwner); StopOnException:=True; end; destructor TMyApplication.Destroy; begin inherited Destroy; end; procedure TMyApplication.WriteHelp; begin { add your help code here } writeln('Usage: ',ExeName,' -h'); end; var Application: TMyApplication; begin Application:=TMyApplication.Create(nil); Application.Title:='My Application'; Application.Run; Application.Free; end.
Объяснение кода листинга программы
В этом коде написана программа на языке Free Pascal, которая решает задачу поиска разности максимального и минимального элементов в одномерном массиве. Список действий, которые выполняются в коде:
- Создается новый экземпляр приложения TMyApplication.
- Задаются начальные значения переменных:
- n - количество элементов в массиве;
- i - счётчик элементов массива;
- amin, amax - переменные для хранения минимального и максимального значений массива соответственно;
- a - массив для хранения чисел;
- Проверяются параметры командной строки.
- Заполняется массив a случайными числами от 0 до 100.
- Находится минимальное и максимальное значение массива.
- Выводится на экран содержимое массива.
- Выводятся на экран минимальное и максимальное значение массива.
- Вычисляется разность максимального и минимального значения массива.
- Программа ожидает ввода с клавиатуры, чтобы пользователь мог увидеть результат.
- Программа завершается. Список переменных:
- n - количество элементов в массиве;
- i - счётчик элементов массива;
- amin, amax - переменные для хранения минимального и максимального значений массива соответственно;
- a - массив для хранения чисел;
- ErrorMsg - строка для хранения сообщения об ошибке;
- ExeName - строка, содержащая имя исполняемого файла программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д