Дан одномерный массив найти разность максимального и минимального элементов массива - 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 - строка, содержащая имя исполняемого файла программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д