Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не заполняет ячейки StringGrid 
:(
    Опции темы
AlexandrMAI
Дата 19.5.2010, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.5.2010

Репутация: нет
Всего: нет



Написана программа для составления таблицы значений функции, в функции один из параметров - корень уравнения, другой массив, третий - значение X (от X начального с шагом Dx до размера массива).
Когда нажимаю на кнопку выполнить (весь код на ней и записан), то ничего не происходит.
Также выбивает: Variable 'e' might not have initialized.
Изменение размеров StringGrid'ов записано при редактировании Edit5.

Код

procedure TForm1.Button1Click(Sender: TObject);
const
 Nmax=20;
type
 massiv=array[1..Nmax] of extended;
var
N,i:integer;
Xn,Dx,B,x,y,e,x0:real;
A:massiv;
begin
x:=StrToFloat(Edit1.Text);
if (x<0)or(x>8) then
begin
Label1.Caption:='Значение X должно быть от 0 до 8'
end
else
e:=StrToFloat(Edit2.Text);
Xn:=StrToFloat(Edit3.Text);
Dx:=StrToFloat(Edit4.Text);
N:=StrToInt(Edit5.Text);
for i:=1 to N do
begin
 A[i]:=StrToFloat(StringGrid1.Cells[1,i]);
end;
 repeat
  x0:=x;
  x:=sqrt(2-exp(-x0));
 until(abs(x-x0)<e);
 B:=x;
 X:=Xn;
 for i:=1 to N do
 begin
  if(x<=0) then
  begin
   StringGrid2.Cells[1,i]:=FloatToStr(x);
   StringGrid2.Cells[2,i]:=FloatToStr(a[i]);
   StringGrid2.Cells[3,i]:=FloatToStr(b);
   StringGrid2.Cells[4,i]:='Ошибка';
  end
  else
  begin
   Y:=A[i]*B*(sin(x)*sin(x))/sqrt(x);
   StringGrid2.Cells[1,i]:=FloatToStr(x);
   StringGrid2.Cells[2,i]:=FloatToStr(a[i]);
   StringGrid2.Cells[3,i]:=FloatToStr(b);
   StringGrid2.Cells[4,i]:=FloatToStr(y);
   X:=X+Dx;
  end;
 end;
end;


Это сообщение отредактировал(а) AlexandrMAI - 19.5.2010, 17:42
PM MAIL   Вверх
chip_and_dayl
Дата 19.5.2010, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 9



Цитата

Когда нажимаю на кнопку выполнить (весь код на ней и записан), то ничего не происходит.

Цитата

Также выбивает: Variable 'e' might not have initialized.

Ничего не происходит, но выбивает ошибкуsmile Вообще, кажись там написано, что переменная Е возможно не инициализирована

Добавлено через 2 минуты и 47 секунд
конечно. Ведь е имеет значение, когда не выполняется условие Х больше нуля и меньше 8

Код

if (x<0)or(x>8) then
begin
Label1.Caption:='Значение X должно быть от 0 до 8'
end
else
e:=StrToFloat(Edit2.Text);
Xn:=StrToFloat(Edit3.Text);


Добавлено через 3 минуты и 38 секунд
После елзе походу нужен бегин, но в таком случае будет бессмысленным 

Код

if(x<=0) then
  begin
   StringGrid2.Cells[1,i]:=FloatToStr(x);
   StringGrid2.Cells[2,i]:=FloatToStr(a[i]);
   StringGrid2.Cells[3,i]:=FloatToStr(b);
   StringGrid2.Cells[4,i]:='Ошибка';
  end


Это сообщение отредактировал(а) chip_and_dayl - 19.5.2010, 18:57


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
superVad
Дата 19.5.2010, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Variable 'e' might not have initialized.

Это не ошибка - это компилятор умничает.
PM MAIL   Вверх
AlexandrMAI
Дата 19.5.2010, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.5.2010

Репутация: нет
Всего: нет



После нахождения корня уравнения переменной X уже задается другое значение Xn, а найденный корень записывается в переменную B. (давно писал, не знаю, зачем так сделал =)).

Кстати да, когда я ввожу x<0 или x>8, то ошибку в Label1.Text тоже не прописывает никак. Просто остается пустое место в лейбле (размеры под текст подогнаны). 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.