![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Программа для нахождение среднего арифметического. невыполняет
Код HTML:
|
|
#2
|
|||
|
|||
|
Правильная ошибка. Ты производишь операцию деления, результатом которой будет число с плавающей точкой, но хочешь пометить результат в тип Integer. Либо используй функцию Int, либо опиши переменную s как Double.
|
|
#3
|
|||
|
|||
|
можно подробнее...
выставил double, неработает |
|
#4
|
|||
|
|||
|
Код:
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.1. ';' после 'end'; 2. Приравнивание Integer Real'ное ( ) значение;3. И переменная в цикле должна быть локальной. Round - (насколько я знаю) округляет real до Integer Можно так же через div: Код:
s := p div n; Код:
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. .P.s. ...на всяк случай если в инпут бокс нажать "Отмена" ниче хорошего не выйдет!... Последний раз редактировалось Interface, 19.06.2009 в 20:29. Причина: Добавил коментарий |
|
#5
|
|||
|
|||
|
Спасибо... как меня это ";" достали. после VB сложно переходить на др. системы
|