Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.09.18;
Скачать: [xml.tar.bz2];

Вниз

Ошибки переменных   Найти похожие ветки 

 
DagOT-R ©   (2011-06-02 12:24) [0]

Столкнулся с такой ошибкой: переменная, изменяющаяся в цикле for, внутри вложенного цикла, ведет себя некорректно.

Скриншот в run-time на точке останова:
http://i036.radikal.ru/1106/80/ec3f368ec207.png
я наскоряк заменил все вхождения этой переменной на integer(a), вроде пишет результат правильно, но все равно далее функции не работают корректно. Уточняю: все использованные переменные - типа integer, переменная "а" - внутри цикла. На всякий случай переустановил делфи - результат тот же. Подскажите, что нужно делать/не делать, чтобы впоследствии таких непоняток не происходило.


 
DagOT-R ©   (2011-06-02 12:32) [1]

добавлю:
а изменяется примерно так:


var a, b, dopusk: integer;
begin
...
for a:=0 to dopusk*2 do
 for b:=1 to 9 do
   begin
     ...//та самая проверка условия
   end;
...


 
sniknik ©   (2011-06-02 12:34) [2]

http://delphimaster.net/view/15-1305447899/


 
DagOT-R ©   (2011-06-02 13:00) [3]

разверну мысль. Часть кода:


...
   bit1.Canvas.Brush.Color:=clred;
   bit1.Canvas.Pen.Style:=psclear;
   bit1.Canvas.Pen.Width:=3;
   bit1.Canvas.Brush.Style:=bssolid;
   bit1.Canvas.Rectangle(rect(0, 0, image1.picture.Bitmap.Width, image1.picture.Bitmap.Height));
   bit1.Canvas.Brush.Color:=clgreen;
   bit1.Canvas.Brush.Style:=bsclear;
   bit1.Canvas.Pen.Style:=psSolid;
//    bit1.Canvas.moveto(5, 5); bit1.Canvas.LineTo(image1.picture.Bitmap.Width-30, image1.picture.Bitmap.Height-30);
   for b:=1 to 9 do
     if (form1.SpinEdit1.Value-dopusk+integer(a) > 0)and(integer(a)<dopusk*2) then
       begin
         poi:=point(ZeroPoint.X-((panel1.Height-30-ZeroPoint.Y) div (dopusk*2)-3)*integer(a)+b*GraphSize.X div 10, ZeroPoint.y-round(GraphSize.Y*graphic(form1.SpinEdit1.Value+integer(a)-dopusk, b/10))+1+((panel1.Height-30-ZeroPoint.Y)div (dopusk*2)-3)*integer(a));
         bit1.Canvas.moveto(poi.X, poi.Y);
         poi:=point(ZeroPoint.X-((panel1.Height-30-ZeroPoint.Y) div (dopusk*2)-3)*(integer(a)+1)+b*GraphSize.X div 10, ZeroPoint.y-round(GraphSize.Y*graphic(form1.SpinEdit1.Value+(integer(a)+1)-dopusk, b/10))+1+((panel1.Height-30-ZeroPoint.Y)div (dopusk*2)-3)*(integer(a)+1));
         bit1.Canvas.LineTo(poi.X, poi.Y);
       end;
...


если убрать комментарий,, выделенный жирным текстом, то тот код рисует линию как надо. Однако, функции moveto/lineto внутри не рисуют вообще. Думал, рисуют за пределами канвы, вывел результаты расчета в переменную poi - в ней все значения верны.


 
DagOT-R ©   (2011-06-02 13:37) [4]

Все, нашел в чем проблема. Тема закрыта.


 
DiamondShark ©   (2011-06-02 14:02) [5]


>  переменная, изменяющаяся в цикле for, внутри вложенного
> цикла, ведет себя некорректно.

Стрелять-колотить. Когда ж вы все передохните-то, находители, блин.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.09.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
2-1307083946
TKN
2011-06-03 10:52
2011.09.18
Стереть информацию с дискеты (флеш-диска)


15-1306441804
Юрий
2011-05-27 00:30
2011.09.18
С днем рождения ! 27 мая 2011 пятница


8-1216548902
Паша123
2008-07-20 14:15
2011.09.18
Вывод текста по синусу


2-1306785926
R_R
2011-05-31 00:05
2011.09.18
Строка в DateTime.


15-1306528204
Юрий
2011-05-28 00:30
2011.09.18
С днем рождения ! 28 мая 2011 суббота





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский