Воробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0 (1092189), страница 4
Текст из файла (страница 4)
Положениe и размеры активного окна можно изменить. Для этого командой [Ctrl+F5] вызываем режим модификации. Рамка окна становится зеленой. Теперь клавишами управления курсором окно перемещаем по экрану, а в сочетании с клавишей [Shift] меняем размеры окна. Фиксируем все изменения клавишей [Enter]. При работе с мышью эти же действия можно выполнить, захватывая указателем мыши заголовок окна или правый нижний его угол. Щелкая указателем мыши по позиции [] в заголовке, мы закрываем и удаляем окно с экрана. Позиции [] или [] служат для распахивания окна или возвращения его к обычным размерам.
Кроме рассмотренных типов окон, по мере надобности на экране разворачиваются диалоговые окна. Внутри них может быть несколько полей. C помощью поля ввода, в котором имеется мерцающий курсор, программист может ввести с клавиатуры числа или текстовую строку. В поле выбора среда предлагает возможные варианты опций, служащих для установки необходимых настроек среды. Для перехода от одних полей к другим служит клавиша [Tab]. Внутри полей перемещение производится клавишами управления курсором или мышью. Закрыть диалоговое окно можно клавишей [Enter]. В этом случае реализуются все изменения, проведенные в окне. Чтобы закрыть окно без сохранения результатов наших манипуляций, нажимаем кнопку [Cancel].
2.4. Текстовый редактор
Выше была описана команда Edit главного меню, с помощью которой можно производить обработку набираемого текста программы. В дополнение к этому система Турбо Паскаль предoставляет достаточно эффективные возможности прямого редактирования текста.
Редактирование текста может осуществляться в режиме вставки и замены. В режиме вставки вводимый символ раздвигает текст, смещая остаток строки вправо. В режиме замены новый символ заменяет тот символ, на который указывает курсор, при этом остаток строки не смещается. Смена режимов осуществляется клавишей [Ins]. При включенном режиме замены курсор представляет собой крупный мигающий прямоугольник, заслоняющий символ целиком.
Для удаления строки, в которой находится курсор, используется команда [Ctrl + Y]. Восстановление удаленной строки осуществляется командой [Alt + Back Space].
Эффективным приемом редактирования текста является работа с блоками. Блок – это часть (фрагмент) текста. Командой [Ctrl + K , В] помечается начало блока с позиции, в которой стоит курсор. Следует отметить, что все буквы в командах набираются в латинском алфавите. Конец блока помечается командой [Ctrl +K , K] в позиции нового местоположения курсора. После этого блок выделяется другим цветом, отличным от цвета остальной части. После выделения блока с ним можно провести следующие манипуляции, используя приведенные ниже сочетания клавиш:
[Ctrl+ K , Y] – удалить блок;
[Ctrl+ K , C] – скопировать блок;
[Ctrl+ K , V] – переместить блок;
[Ctrl+ K , W] – записать блок в файл. При этом в диалоговом окне необходимо задать имя файла;
[Ctrl+ K , R] – прочитать блок из файла. В диалоговом окне необходимо задать имя файла;
[Ctrl+ K , P] – печать блока на принтере;
[Ctrl+ K , H] – снять выделение блока.
Обычно редактор работает в режиме автоотступа, когда каждая новая строка начинается на экране с той же позиции, что и предыдущая. Отказаться от режима можно командой [Ctrl + O , I]. Повторное нажатие восстановит режим автоотступа.
2.5. Интегрированный отладчик
Интегрированная среда программирования Турбо Паскаль содержит мощный и эффективный набор средств для отладки создаваемых пользователем программ.
Процесс отладки состоит в поиске ошибок, которые были допущены при программировании. Основной принцип отладки состоит в возможности трассировки - пошагового выполнения тела программы, получая на шагах информацию о том, как выполнился тот или иной оператор.
Допустим, что нам необходимо отладить некоторую программу, содержащую блок операторов:
……
a := 1;
b := 2;
c := 1;
d := b * b – 4 * a * c;
e := (a + b + c) / d;
writeln(‘e = ’, e:8:3);
……
Отладку начинаем, нажимая клавишу [F7], или выбираем команду Trace into пункта Run главного меню ( сложные команды будем записывать в виде: Run/Trace into). Если блок удален от начала программы, то нужно установить на него курсор (оператор a:=1;) и нажать [F4] (команда Run/ Go to cursor). При первоначальном обращении к отладке указанные действия вызывают компиляцию и прогон программы до интересующего нас блока, после чего компьютер переходит в режим ожидания. Последующие нажатия [F7] или [F8] (команда Run/Step over), если нас не интересует трассировка процедур, приведут к построчному выполнению программы. Выполняемая в данный момент строка подсвечивается голубым цветом. Для облегчения выполнения отладки рекомендуется на этом этапе работы в каждой строке размещать только один оператор. В рассматриваемом нами случае мы увидим, что при обработке пятой строки блока возникнет аварийный останов программы в связи с делением на ноль.
Сброс процесса отладки производится клавишами [Ctrl+ F2] (команда Run/Program reset).
Эффективность отладки многократно повышается благодаря возможности видеть, как меняются значения переменных после выполнения каждого оператора. Для этого включаем окно наблюдения командой Debug/Watch. Перед этим с помощью нажатия клавиш [Ctrl +F7] (команда Debug/Add watch) вызывается диалоговое окно для указания значений переменных или арифметических и логических выражений, которые нам необходимо наблюдать.
При отладке очень удобно работать с многооконным экраном. Для этого необходимо поочередно окнo редактора, окно наблюдения и окно программы трансформировать и переместить в соответствующее место (см. параграф 2.3).
Возвращаясь к отладке нашего блока операторов, отметим, что введя в окно наблюдения переменные d и e, уже после выполнения первых четырех строк блока (4 нажатия клавиши [F7]) мы получим d = 0. Таким образом, хотя программа еще не совершила «авост», мы уже получим сигнал о том, что предстоит «деление на ноль» на следующем шаге трассировки.
Однако возможности отладки на этом еще не исчерпаны. Вызвав клавишами [Ctrl+ F4] (командa Debug/Evaluate/Modify), мы можем «заказать» новое модифицированное значение для переменной, из-за которой по нашему мнению происходит авост. В строке Expression следует ввести имя переменной (в нашем примере - это d). При этом в поле Rezult появится ее текущее значение. Затем в строке New value вводим новое значение этой переменной (например, d = 1). После нажатия [Enter] отладка благополучно продолжается дальше, перейдя теперь в область программы, расположенной ниже нашего блока. Отметим, что «горячие клавиши» [Ctrl+F4] можно использовать как встроенный в Турбо Паскаль микрокалькулятор.
Отладка больших и сложных программ вызывает необходимость контролировать значения переменных сразу в нескольких различных фрагментах программы. Остальные участки при этом желательно прогонять быстро, без трассировки. Для этого с помощью клавиш [Ctrl+F8] (команда Debug/Add breakpoint) можно установить несколько так называемых контрольных точек (соответствующая строка будет выделена красным цветом). Чтобы снять контрольные точки, используются клавиши [Ctrl+F2] (команда Run/Program reset).
Глава 3. Простейшие конструкции языка
Турбо Паскаль
3.1. Алфавит языка
При написании программ на алгоритмическом языке можно пользоваться лишь символами, предусмотренными алфавитом этого языка.
Алфавит языка Турбо Паскаль включает в себя следующие символы.
Строчные и прописные буквы латинского алфавита:
| a | b | c | …| x | y | z | A | B | C |…| X | Y | Z |.
Арабские цифры:
| 0 | 1 | 2 |….| 9 |.
Специальные символы:
| + | - | * | / | : = | = | > | >= | < | <= | <> | . | , | : | ; | ’ | ( | ) | [ | ] |{ | } || ^ | @ | $ | # |.
Кроме того, в алфавит Турбо Паскаля включается набор зарезервированных слов, имеющих строго определенное назначение. Например, зарезервированное слово VAR служит для описания переменных, слова IF, THEN, ELSE используются в условных операторах, слово DIV обозначает операцию целочисленного деления . Назначение отдельных зарезервированных слов будет поясняться в процессе изучения языка.
3.2. Константы и переменные
Константами являются величины, которые не меняют своего значения при выполнении программы. В качестве констант в Турбо Паскале используются целые и вещественные числа, логические константы, символы и строки.
Целые числа записываются со знаком или без него по обычным арифметическим правилам.
Например: 15 +1000 -47 02.
Вещественные числа могут записываться либо в форме десятичного числа, либо с указанием порядка.
В записи десятичного числа целая часть отделяется от дробной десятичной точкой.
Например: 2.5 -14.0 +0.33 0.0.
Числа с указанием порядка имеют вид:
, где a - является мантиссой; p – десятичным порядком.
В Турбо Паскале числа с порядком записываются с использованием буквы Е, за которой следует порядок. Буква Е читается как «умножить на 10 в степени».
Мантисса может быть целым или десятичным числом. Порядок всегда является целым числом. Следует помнить, что в написании вещественного числа с порядком должны обязательно присутствовать и мантисса, и порядок.
Примеры записи чисел с порядком
Математическая запись | Запись в Турбо Паскале |
3.14105 -1710-2 25.625 10-6 0.00048 | 3.14Е5 -17Е-2 2.5625Е1 1Е-6 4.8Е-4 |
Логические константы могут принимать одно из двух логических значений, записанных либо словом TRUE (истина), либо словом FALSE (ложь).
Символьная константа – это любой символ ПК, заключенный в апострофы, например:
‘Y’ ‘Д’ ‘!’ ‘_’.
Строковая константа – любая последовательность символов из набора символов ПК, заключенная в апострофы, например:
‘X =’ ;
‘Максимальное значение =’.
Строки используются при выводе текстов и комментариев.
Переменными называются величины, значения которых могут изменяться в процессе выполнения программы. В Турбо Паскале переменная задается именем.
Имя представляет собой последовательность букв и цифр, начинающаяся с буквы. В имени может присутствовать символ подчеркивания. Длина имени составляет от 1 до 63 символов. Следует помнить, что пробелы не должны входить в написания имени.
Примеры записи имен переменных
Математическая запись | x | aр | y1 | | | d-27 |
Запись в Турбо Паскале | x | ap | y1 | alpha | S | d_27 |
Переменные, подобно константам, могут быть разных типов. Типы задаются стандартными именами.
INTEGER - целый тип;
REAL - вещественный тип;
BOOLEAN - логический тип;
CHAR - символьный тип;
STRING - строковый тип.
В программе перед использованием переменной в специальном разделе описаний VAR необходимо объявить тип переменной. Однотипные переменные в разделе перечисляются через запятую и отделяются от объявленного типа двоеточием. После определения типа ставится точка с запятой.
Пример раздела описания переменных
Var
k, l: integer;
x,y,z: real;
t: boolean;
w: char;
stv: string;
По описанию переменной в памяти компьютера резервируется ячейка для хранения ее значения. В зависимости от объявленного типа ячейка может иметь разную внутреннюю структуру, то есть содержать различное число байт.
Целый тип. Длина ячейки составляет 2 байта, что соответствует диапазону от –32768 до +32767 целых чисел.
Вещественный тип. Длина ячейки – 6 байт. Вещественные числа хранятся в памяти с указанием порядка. Диапазон значений порядка составляет от 1Е-39 до 1Е+38. Мантисса занимает приблизительно 11 значащих десятичных цифр.
3.3. Арифметические выражения
Арифметические выражения строятся из операндов, арифметических операций и круглых скобок.