|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.05.2008, 14:31 | #1 |
Пользователь
Регистрация: 02.05.2008
Сообщений: 10
|
Помогите разобраться!
Добрый день!
Помогите, пожалуйста - вот такой вот код: 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; При компиляции выдается ошибка: Project xxxx raised exception class yyyyy with message 'zzzzzz'. Process stopped. Use Step or Run to continue. Подскажите, что сделано не так? |
02.05.2008, 14:40 | #2 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
При компиляции ошибки быть не должно.
А при работе программы скорее всего в Edit2 вводите число больше 50, а массив у вас [0..50]. Или же в эдитах не цифры. Последний раз редактировалось _Dmitry; 02.05.2008 в 14:43. |
02.05.2008, 14:49 | #3 |
Пользователь
Регистрация: 02.05.2008
Сообщений: 10
|
большое спасибо!
затупил - действительно, вводил числа больше 50... |
02.05.2008, 15:24 | #4 |
Пользователь
Регистрация: 02.05.2008
Сообщений: 10
|
Сорри за безграмотность - не заполняется таблица... Исправил Form2.StringGrid1.Cells[0,i]:=floattostr(y[i]); на Form2.StringGrid1.Cells[0,j]:=floattostr(y[i]);
заполняется только одна ячейка... Знаю, что где-то ошибся, но не могу сообразить где. Не подскажете? |
02.05.2008, 16:07 | #5 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
над просто расставить брекпоинты и посмотреть.
Судя по всему j осаётся неизменной... Проще говоря если раньше переменная i была связанна с циклом For, то переменая j никак несвязанна с ним. for i := a to b do begin y[i]:=0.0095*48*sqrt(i)-0.0035; Form2.StringGrid1.Cells[0,j]:=floattostr(y[i]); end;
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
02.05.2008, 16:24 | #6 |
Пользователь
Регистрация: 02.05.2008
Сообщений: 10
|
Действительно...Большое спасибо.
Исправил: Form2.StringGrid1.Cells[0,i]:=floattostr(i); Form2.StringGrid1.Cells[1,i]:=floattostr(y[i]); Работает только если цикл сделать, к примеру: for i := 0 to 10 do Если запись for i := a to b do , то снова ничего не происходит...Нужен цикл именно от a до b. Может быть у меня это как-то некорректно описывается? |
02.05.2008, 16:35 | #7 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
Всё должно работать. Поставьте на какаюнибудь строку цикла брекпоинт и проверьте сколько раз прокрутится цикл.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
02.05.2008, 16:41 | #8 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Если не надо оставлять пустые строки вначале, то лучше сделать так
Код:
|
02.05.2008, 17:03 | #9 |
Пользователь
Регистрация: 02.05.2008
Сообщений: 10
|
eoln, ваш вариант почему-то вообще не работает...
|
02.05.2008, 17:13 | #10 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Извиняюсь - писал прямо в форуме, строчки попутал.
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите разобраться | Tanuska___:) | БД в Delphi | 1 | 04.09.2008 14:56 |
Помогите разобраться с С++ | igroman | Общие вопросы C/C++ | 1 | 03.08.2008 23:15 |
Помогите разобраться! | SerSasha | Помощь студентам | 4 | 09.06.2008 10:00 |
Помогите разобраться! | Кот | Microsoft Office Excel | 3 | 14.08.2007 19:48 |