Показать сообщение отдельно
  #4  
Старый 19.06.2009, 20:13
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
По умолчанию

Код:
var
  Form1: TForm1;
  N, i, p ,s: integer;
  A: array [1..100] of integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
N := StrToInt(InputBox('5.16','Введи количество чисел',''))  ;
p:= 0;

for i:=1 to n do
begin
A[i]:= StrToInt(InputBox('5.16','Введи числo',''))  ;
p := p + A[i]    ;
end;

s := Round(p / n);  // Сдесь ошибка// уже нет =)
Edit1.Text:= FloatToStr(s);

end;
end.
Поясню ошибок в выложенном коде моя делфа нашла 3:
1. ';' после 'end';
2. Приравнивание Integer Real'ное ( ) значение;
3. И переменная в цикле должна быть локальной.
Round - (насколько я знаю) округляет real до Integer
Можно так же через div:
Код:
s := p  div  n;
А проще всего просто сделать s : Real:
Код:
var
  Form1: TForm1;
  N, i, p : Integer;
  s: Real;
  A: array [1..100] of integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
N := StrToInt(InputBox('5.16','Ââåäè êîëè÷åñòâî ÷èñåë',''))  ;
p:= 0;

for i:=1 to n do
begin
A[i]:= StrToInt(InputBox('5.16','Ââåäè ÷èñëo',''))  ;
p := p + A[i]    ;
end; // А ТУТ!!!

s := p / n  ;  // ОШИБКА НЕ ТУТ!!!
Edit1.Text:= FloatToStr(s);

end;
end.
На самом деле ошибка строкой выше - надо после end ставить ';' .
P.s. ...на всяк случай если в инпут бокс нажать "Отмена" ниче хорошего не выйдет!...
__________________
Я ни в чем никогда не уверен... И в этом тоже...
Ответить с цитированием