У Фаронова есть простейший пример для иллюстрации работы с массивами. Вроде все просто, но я столкнулся с такой штукой: когда я начинаю цикл for ( он помечен у меня ЦИКЛ2), он считается у меня почему-то в обратном порядке (я пробовал пошагово его пройти и первое значение индекса равно 99, затем 98 и т.д.). Не могу понять, почему он не считает от 2 до N. Подскажите кто-нибудь.
Код:
unit unAverage1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btnRun: TButton;
memOutPut: TMemo;
lblOutPut: TLabel;
procedure btnRunClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnRunClick(Sender: TObject);
const
N = 100;
Max_Value = 100+1;
var
m: array[1..N] of Integer;
i,j: Integer;
max, min: Integer;
sum: Real;
S: String;
begin
S := '';
for i := 1 to N do
begin
m[i] := Random(Max_Value);
S := S + #9 + IntToStr(m[i]);
if i mod 10=0 then
begin
memOutPut.Lines.Add(S);
S := '';
end
end;
sum := m[1];
max := m[1];
min := m[1];
for j := 2 to N do { ЦИКЛ 2}
begin
sum := sum + m[j];
if m[j] < min then
min := m[j]
else if m[j] > max then
max := m[j]
end;
lblOutPut.Caption := ' Минимум = ' + IntToStr(min) + ' Максимум = ' +
InttoStr(max) + ' Среднее = ' + FloatToStr(sum/N);
end;
end.