Турбо отладчик (Turbo Debugger) 3.0

хотя вы можете предполагать, что


       ле это не так.  Например,  переменная T в теле основной программы
       не изменяется,  хотя вы можете предполагать, что это не так. Этот
       результат, обратный описанным ранее "скрытым эффектам".
            Если бы вы использовали следующее описание записи, все стало
       бы еще более запутанным:
            type
               RecType = record
                       A,B : integer;
               end;
            var
               A,B : integer;
               Rec : RecType;
            В операторе  with  ссылка  на A или B привела бы к ссылке на


       fields, а не к ссылке на variables.
                 Неправильное использование точки с запятой
       -----------------------------------------------------------------
            Как и  язык  Си,  Паскаль  допускает использование "пустого"

       TDeb 3.0 #2-3               = 135 =
       оператора (оператора, состоящего только из точки с запятой). Раз-
       мещенная в неверном месте точка с запятой может вызвать различные
       проблемы. Рассмотрим следующую программу:
            program Test;
            var
                    I,J : integer;
            begin
                    for I := 1 to 20 do;
                    begin
                            J := I*I;
                            Writeln(I:2,' ',J:4)
                    end;
                    Writeln('Выполнено!')
            end.
            Выводом этой программы будет не список из  первых  20  целых
       чисел и их квадратов, а просто:
               20 400
               Выполнено!
            Это вызвано тем, что оператор for I := 1 to 20 заканчивается
       точкой с запятой. При этом 20 раз будет выполнен пустой оператор.
       После этого выполняется оператор в блоке begin...end  и, наконец,
       оператор Writeln. Чтобы исправить эту ошибку, нужно просто устра-
       нить точку с запятой за ключевым словом do.
                 Функция возвращает неопределенное значение

Содержание раздела