Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Цикл


Страницы:   1 2

holodok ©   (2008-05-02 12:43:00) 

Доброе время суток! Подскажите, плиз - изначально задается некий диапазон, к примеру 280-288. Программа должна перебрать все эти 8 значений и для каждого вычислить по определенной формуле значение x. К сожалению, не обладаю глубокими знаниями в этой области, а решить задачу очень надо!


{RASkov}   (2008-05-02 18:22:00) [1]

> [28] Loginov Dmitry ©   (02.05.08 18:11)
> но опасная!

Ни сколько!
Но я по другому скажу: -В некоторых руках Делфи - опасно. :)

Только после прочтения сего не нужно делать так:
try
 A:=StrToInt(Edit1.Text);
except
 try
  Edit1.SetFocus;
  raise Exception.Create('Не верно введено число в первый Эдит');
 except
  raise Exception.Create('Ну не шмогла я установить фокус на первый Эдит :(');
 end;
end;

:о)


Loginov Dmitry   (2008-05-02 18:11:00) [2]

> Дим, последнюю мою строчку в том посмту прочитал?)
> Она также относится и к вымышленному ПэйджКонтролу.... если
> что)


Я че знаю, то и говорю :D
Edit1.SetFocus - конечно благородная попытка сделать удобнее и лучше, но опасная! ))


{RASkov}   (2008-05-02 17:59:00) [3]

> [25] Loginov Dmitry ©   (02.05.08 17:48)

Хотя это наверное не мне замечание, так ведь?... Тогда и в [26] также нужно было без ников :(


{RASkov}   (2008-05-02 17:56:00) [4]

> [25] Loginov Dmitry ©   (02.05.08 17:48)

Дим, последнюю мою строчку в том посмту прочитал?)
Она также относится и к вымышленному ПэйджКонтролу.... если что)


Loginov Dmitry   (2008-05-02 17:48:00) [5]

>По уму наверное все-таки это должно выглядеть нечто так:
> except
>   Edit1.SetFocus;
>  raise Exception.Create('Не верно введено число в первый
> Эдит');
> end;


а если Edit1 лежит на одной из вкладок TPageControl?


{RASkov}   (2008-05-02 17:32:00) [6]

По уму наверное все-таки это должно выглядеть нечто так:
var A, B, N: Integer;
*    ArrVal: array of Extended;
begin
 try
  A:=StrToInt(Edit1.Text);
 except
  Edit1.SetFocus;
  raise Exception.Create('Не верно введено число в первый Эдит');
 end;
 try
  B:=StrToInt(Edit2.Text);
  if B<=A then begin
   ShowMessage('Значение второго Эдита должно быть больше первого');
   Exit;
  end;
 except
  Edit2.SetFocus;
  raise Exception.Create('Не верно введено число во второй Эдит');
 end;
*  SetLength(ArrVal, B-A+1);
 StringGrid1.RowCount:=B-A+2;
 for N:= A to B do try
*    ArrVal[N-A]:=0.0095*48*sqrt(N)-0.0035;
*    StringGrid1.Cells[1, N-A+1]:=FloatToStr(ArrVal[N-A]);
  // StringGrid1.Cells[1, N-A+1]:=FloatToStr(0.0095*48*sqrt(N)-0.0035);
  except
   StringGrid1.Cells[1, N-A+1]:='Error Calc';
  end;
end;

строки помечанные звездочками можно вообще убрать за ненадобностью... и расскометировать строку.
Может где и индексы какие неправильно указал, или еще какие ошибки в коде, но это уже мне не нужно...


Игорь Шевченко   (2008-05-02 17:19:00) [7]


> a:=strtoint(Edit1.Text);
> b:=strtoint(Edit2.Text);
>
>    for i := a to b do
>    begin
>          y[i]:=0.0095*48*sqrt(i)-0.0035;


А это не страшно, что массив объявлен от нуля до 50, а обращение к нему идет по введенным индексам, которые необязательно от нуля до 50 ?


{RASkov}   (2008-05-02 17:02:00) [8]

> [19] holodok   (02.05.08 14:15)
> Результат такой же. Если не сложно, намекните почему

Введи в Эдит1 значение "1", а во второй эдит - "4"
Тыж не менял свойства стринггрида в ИО и в программе, так ведь?


Anatoly Podgoretsky   (2008-05-02 16:10:00) [9]

> Плохиш  (02.05.2008 14:46:20)  [20]

Ты что, там же такие бабки можно зарабатывать, даже пальцем шевелить не нужно.


Плохиш   (2008-05-02 14:46:00) [10]


> Если не сложно, намекните почему

Намекаю, обращения по ссылке неизвестно куда.

PS. Нафига оно тебе это программирование нужно?


holodok   (2008-05-02 14:15:00) [11]

Спасибо. Почитал, исправил кое-какие ошибки, получилось это:

procedure TForm1.N2Click(Sender: TObject);
Var a,b:integer;
i:integer;
y:array[0..50] of double;
begin
a:=strtoint(Edit1.Text);
b:=strtoint(Edit2.Text);

   for i := a to b do
   begin
         y[i]:=0.0095*48*sqrt(i)-0.0035;
Form2.StringGrid1.Cells[0,i]:=floattostr(y[i]);
end;
end;

Результат такой же. Если не сложно, намекните почему
> не код, а сплошная ошибка....


Kolan   (2008-05-02 14:07:00) [12]

> А это как, где об этом можно прочитать?

В исходниких кривого алгоритма поиска ссылок на форуме?


Anatoly Podgoretsky   (2008-05-02 14:05:00) [13]


> Скопируй её целиком

А это как, где об этом можно прочитать?


Kolan   (2008-05-02 14:04:00) [14]

> И ведь пошел читать-то…Тока ссылка не рабочая… :(

Скопируй её целиком


Anatoly Podgoretsky   (2008-05-02 14:04:00) [15]

Мы еще и Интернетом не умеем пользоваться.
Ссылка рабочая.


holodok   (2008-05-02 14:02:00) [16]

И ведь пошел читать-то...Тока ссылка не рабочая... :(


Kolan   (2008-05-02 13:58:00) [17]

> Я же сказал — знания в этой области оставляют желать лучшего…

Не, все, иду читай:
http://www.ksoftware.ru/files/books/Delphi/Delphi5_DevelopersGuide_Volume_1(rus).pdf


{RASkov}   (2008-05-02 13:56:00) [18]

> [10] holodok   (02.05.08 13:54)
> Я же сказал - знания в этой области оставляют желать лучшего...

Это дело, надеюсь, попровимое?


{RASkov}   (2008-05-02 13:56:00) [19]

> [8] holodok   (02.05.08 13:43)
> Только компилятор ругается на эту строчку:

И правильно делает. В виду того, что в
> [6] holodok   (02.05.08 13:17)

не код, а сплошная ошибка....


holodok   (2008-05-02 13:54:00) [20]

Я же сказал - знания в этой области оставляют желать лучшего...
Спасибо за помощь


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо