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

  1. Создается новый экземпляр приложения TMyApplication.
  2. Задаются начальные значения переменных:
    • n - количество элементов в массиве;
    • i - счётчик элементов массива;
    • amin, amax - переменные для хранения минимального и максимального значений массива соответственно;
    • a - массив для хранения чисел;
  3. Проверяются параметры командной строки.
  4. Заполняется массив a случайными числами от 0 до 100.
  5. Находится минимальное и максимальное значение массива.
  6. Выводится на экран содержимое массива.
  7. Выводятся на экран минимальное и максимальное значение массива.
  8. Вычисляется разность максимального и минимального значения массива.
  9. Программа ожидает ввода с клавиатуры, чтобы пользователь мог увидеть результат.
  10. Программа завершается. Список переменных:
  11. n - количество элементов в массиве;
  12. i - счётчик элементов массива;
  13. amin, amax - переменные для хранения минимального и максимального значений массива соответственно;
  14. a - массив для хранения чисел;
  15. ErrorMsg - строка для хранения сообщения об ошибке;
  16. ExeName - строка, содержащая имя исполняемого файла программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы