Страница 2 из 2
Re: Вычислить компоненты вектора по формуле
Добавлено: 26 май 2009, 15:23
kill301
вектор не заполняется компонентами
Re: Вычислить компоненты вектора по формуле
Добавлено: 26 май 2009, 16:08
Naeel Maqsudov
Не может быть. Весь код приведите. Что у Вас получилось в итоге?
Re: Вычислить компоненты вектора по формуле
Добавлено: 26 май 2009, 16:18
kill301
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
const
n=15;
var
b:array[1..n] of double;
p,i:integer;
ii:longint;
begin
p:=-1;
ii:=1;
for i:=1 to n do
begin
ii:=ii*i ;
b[i]:=sin(sqr(i-1)*(i-1)/ii);
if b[i]<0 then
begin
if p<0 then p:=i
else if b[i]>b[p] then p:=i;
end;
end;
end;
end.
Когда нажимаешь кнопку Button программа остается без изменений.
Re: Вычислить компоненты вектора по формуле
Добавлено: 26 май 2009, 16:59
Naeel Maqsudov
Это только так кажется. На самом деле там все происходит.

Массив B и переменная P - это результат работы. Их надо куда-то вывести.
Быстрее всего на форме (с AutoScroll=true) разместить TLabel (Label1) с AutoSize=true, и вывести туда результаты в виде текста.
В конце процедуры Button1Click:
Код: Выделить всё
with Label1 do begin
for i:=1 to n do Caption := Caption + #13#10 + floattostr(b[i]);
if p<0
then Caption := Caption +#13#10'Отрицательных элементов нет'
else Caption := Caption +#13#10'Наибольший отрицатеотный элемент='+floattostr(b[p]);
end;
Кстати, вполне может получиться, что отрицательных элементов нет.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Проверил.
На интервале i=[1,15] отрицетельных значений нет. Нет их и дальше, так как выражение под синусом сильно стремится к нулю.
(Увеличивать N больше 20 нельзя - будет выход за пределы типа longint.)
Проверяйте условие. Видимо что-то не так с Вашей формулой...
Re: Вычислить компоненты вектора по формуле
Добавлено: 26 май 2009, 17:25
kill301
Формула:
-------(i-3)^2--------------------------------------------------------------------------------
bi=sin ________
--------(i) !----------------------------------------------------------------------------------
Re: Вычислить компоненты вектора по формуле
Добавлено: 26 май 2009, 18:23
Naeel Maqsudov
b:=sin(sqr(i-3)/ii);
Re: Вычислить компоненты вектора по формуле
Добавлено: 26 май 2009, 18:35
kill301
Сейчас программа на ходит наибольшую отрицательную компоненту этого вектора. Однако вектор остается пустым.
Re: Вычислить компоненты вектора по формуле
Добавлено: 26 май 2009, 19:13
Naeel Maqsudov
Бред

Если не верите, то поставьте точку останова после
b:= и посмотрите под отладчиком. Вы увидите, что массив B заполняется числами.
По какому признаку Вы судите, что массив пустой?
Re: Вычислить компоненты вектора по формуле
Добавлено: 26 май 2009, 19:32
kill301
Вы не могли бы мне подсказать как сделать так, чтобы компоненты заполнялись в StringGrid.