![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Heeelp!
Titanik © (2006-03-30 14:00:00)Всем привет! Мастера, как, бы мне реализовать такое: сумма(sqr(Xi-3,7)). Xi - это данные из таблицы.
Сергей М. (2006-03-30 15:21:00) [1]
> Titanik (30.03.06 15:17) [19]
> Блин, по человечески объясняю - все так и есть
Врать своей бабушке будешь.
Вот цитата из станд.справки, если тебе иные аргументы побоку:
Lists the strings for each cell in the grid.
Delphi syntax:
property Cells[ACol, ARow: Integer]: string;
Выделенное жинрым тебе о чем-то говорит ?
Titanik (2006-03-30 15:17:00) [2]Блин, по человечески объясняю - все так и есть...
Сергей М. (2006-03-30 15:14:00) [3]
> Titanik (30.03.06 15:08) [17]
Когда врешь, прищуривайся)
Titanik (2006-03-30 15:08:00) [4]Клянусь такой и есть код!Сам Нихрена не пойму! Делаю все как надо - ругается!
Kolan (2006-03-30 14:58:00) [5]Titanik (30.03.06 14:56) [12]
Ну не может быть :). Даже компилятор не пустил... :)
Как можно от строки отнять ЧИСЛО?
Romkin (2006-03-30 14:57:00) [6]1.
For i:= 1 to 50 do
StringGrid1.Cells[i,0]:=inttostr(i);
StringGrid1.Cells[i,1]:=floattostr(i);
Ты уверен?
2.
B:=B+(sqr(StringGrid1.Cells[i,1]-3.7));
Не может быть! Это не может пропустить компилятор!
Приведи реальный код
balepa (2006-03-30 14:57:00) [7]
> Kolan © (30.03.06 14:54) [11]
Во, во. Думать немогут, А сами на дельфи все валят
Kolan (2006-03-30 14:57:00) [8]И даже так:
for i:=1 to 50 do
S:=S+ (Sqr( StrToFloat(StringGrid1.Cells[I,1])-3.7)) ;
ShowMessage(FloatToStr(S));
Неправильно.
Да и вообще у тебя что F7, F8 не работает? Элементарная задача. Задана в основную конф.
Для отладики нода 1 мин.
Titanik (2006-03-30 14:56:00) [9]хм...у меня нет такой ошибки! все считается, только результат неверный
Kolan (2006-03-30 14:54:00) [10]Вот специально проверил:
S:=S+(sqr(StringGrid1.Cells[i,1]-3.7));
[Error] Unit1.pas(40): Incompatible types: 'String' and 'Extended'
Ну и что дальше...
Titanik (2006-03-30 14:50:00) [11]procedure TForm1.FormCreate(Sender: TObject);
Var i:integer;
begin
StringGrid1.Cells[0,0]:='Ni';
StringGrid1.Cells[0,1]:='Xi';
For i:= 1 to 50 do
StringGrid1.Cells[i,0]:=inttostr(i);
StringGrid1.Cells[i,1]:=floattostr(i);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
B:real;
begin
B:=0;
for i:=1 to 50 do
B:=B+(sqr(StringGrid1.Cells[i,1]-3.7));
Edit4.Text:= FloatToStr(B);
end;
Kolan (2006-03-30 14:44:00) [12]Titanik (30.03.06 14:39) [7]
В
Kolan © (30.03.06 14:23) [4]
Тебе было доказано, что этот метод подсчета суммы работает верно.
Что и как ты запускаещь у себя никто не знает. Почему икому он должне быть 131,33 тоже никто, кроме тебя незнает.
Поэтому приведи свваой код. Может тогда можно будет сказать где у тебя ошибка....
Сергей М. (2006-03-30 14:44:00) [13]
> 50 разных цифр
> Чувствуется разница?
50-ричная система счисления ?
Или ты не чувствуешь разницу между "цифра" и "число" ?
Titanik (2006-03-30 14:39:00) [14]Xi - это 50 разных цифр в одной строке таблицы! Запускаю этот цикл, ответ:2236,17. А должен быть 131,33. Чувствуется разница?
Kolan (2006-03-30 14:30:00) [15]А я знаю что такое ТВОЙ Xi?
Titanik (2006-03-30 14:28:00) [16]
> for I := 1 to 2 do
> begin
> S := S + Sqr( 0- 3.7);
> end;
А с какого перепуга здесь0?
Kolan (2006-03-30 14:23:00) [17]Врать не надо....
procedure TForm1.BitBtn1Click(Sender: TObject);
var
S: Double;
I: Integer;
begin
S := 0;
for I := 1 to 2 do
begin
S := S + Sqr(0 - 3.7);
end;
ShowMessage(FloatToStr(S));
end;
Ответ:
27,38
Если не веришь проверь на калькуляторе...
Плохиш (2006-03-30 14:17:00) [18]Хм, у всех правильный, а у тебя неправильный. Ни на какие мысли не наводит?
Titanik (2006-03-30 14:15:00) [19]Уже пробовал, неправильный результат!
Kolan (2006-03-30 14:10:00) [20]
var
S: Double;
S := 0;
for I := 1 to N do
begin
S := S + Sqr(Xi - 3.7);
end;