Паскаль. Основы программирования

       

Ввод и выполнение программ


1. В интегрированной среде Турбо Паскаль 7.0.

После запуска Турбо Паскаля на экране появится следующая оболочка (см. рис. 3): 

Рис. 3

Верхняя строка открывшегося окна содержит "меню"  возможных режимов работы Турбо Паскаля, нижняя  -  краткую  справку  о назначении основных функциональных клавиш. Вся  остальная  часть экрана принадлежит окну текстового

редактора, очерченному двойной рамкой и предназначенному для ввода и редактирования текста программы.

Когда мы вводим программу, то работаем с текстовым редактором, встроенным в среду Турбо Паскаль. Поэтому ниже мы и  познакомимся с работой редактора и основными его командами.

Признаком того, что среда находится в состоянии  редактирования, является наличие в окне редактора курсора  -  небольшой мигающей черточки.

Для создания текста программы нужно ввести этот  текст  с помощью клавиатуры подобно тому, как это делается при  печатании текста на пишущей машинке.  После  заполнения  очередной  строки следует нажать на клавишу  <Enter> "Ввод",  чтобы  перевести  курсор  на следующую строку (курсор всегда показывает место на экране,  куда будет помещен очередной вводимый символ программы).

Окно редактора имитирует  длинный  и  достаточно  широкий лист бумаги, часть которого видна в  окне  экрана.  Если курсор достиг нижнего края, осуществляется    прокрутка    окна редактора: его содержимое смещается вверх на одну строку и  внизу появляется новая строка "листа". Наибольшая длина  строки  на  Турбо Паскале - 126 символов.

Окно можно смещать относительно листа с  помощью  следующих клавиш:


PgUp                -  на страницу вверх (PaGe UP - страница вверх);



PgDn                -  на страницу вниз (PaGe DowN - страница вниз);

Home                -  в начало текущей строки (HOME - домой);

End                   -  в конец текущей строки (END - конец);

Ctrl-PgUp        -  в начало текста;

Ctrl-PgDn        -  в конец текста.

Клавишами управления курсора “курсор” можно смещать по  тексту на экране (заметьте, только по тексту!).
По "чистому" не исписанному экрану курсор не перемещается!
Если Вы ошиблись при вводе очередного символа, его  можно стереть с помощью клавиши, обозначенной стрелкой влево  (клавиша Backspace - <Забой>, она располагается справа и вверху зоны  основных алфавитно-цифровых клавиш над клавишей  <Enter> - “Ввод”).  Клавиша <Delete> (Delete - стирать, удалять) стирает символ, на который  в данный момент указывает курсор, а команда  Ctrl-Y  - всю строку, на которой располагается курсор. Следует помнить, что редактор Турбо Паскаля  вставляет  в конце каждой строки невидимый на экране символ-разделитель. Этот символ вставляется клавишей <Ввод>, а стирается клавишей <Забой> или <Delete>. С помощью вставки/стирания  разделителя  можно  "разрезать”/"склеить" строки.
Чтобы "разрезать" строку, следует подвести курсор к  нужному месту и нажать клавишу  <Ввод>,  чтобы  "склеить"  соседние строки, нужно установить курсор в конец первой строки  и  нажать клавишу <Delete>
или установить курсор в начало  следующей  строки  и нажать клавишу <Забой>.
Режим вставки
Нормальный режим работы редактора - режим вставки, в  котором каждый вновь вводимый символ как бы "раздвигает" текст  на экране, смещая вправо остаток  строки.  Следует  учитывать,  что "разрезание" и последующая вставка пропущенных символов возможна только в этом режиме.
Примеры "разрезания", "склеивания" строк и вставки символов в текст.
Пусть по  каким-то  причинам  на  экране  получена  такая запись:
Program Serg; var
         a, b, c : integer;
Если говорить об эстетической стороне написания программы,  то  желательно, чтобы раздел описаний, который начинается со слова   var,   начинался с красной строки. Для внесения изменений в текст установим курсор на букву  v  и нажмем  клавишу  <Ввод>,  при  этом  часть текста после курсора и под ним переместится на следующую  строку, получим:


Program Serg;
var
         a, b, c : integer;
Для большей красоты и наглядности, не перемещая  курсора, а оставляя его на букве  v, нажмем несколько раз клавишу <Пробел>.  Вся строка передвинется на  вправо  и  запись  станет такой:
Program Serg;
      var
      a, b, c : integer;
Допустим другую ситуацию, когда часть текста  "разорвалась" и ее нам надо "склеить", например, получилось так:
 write('Введите число лет, кото
 рое было бы Серёже ");
Устанавливаем курсор в начало второй строки перед буквой  "р" и нажимаем клавишу <Забой>, получим:
write('Введите число лет, которое было бы Серёже ');
Можно поступить иначе, установить курсор в конец первой строки после буквы "о" и нажимая несколько раз клавишу <Delete> "подтягивать" нижнюю строчку вверх.
С помощью клавиш <Забой> и <Delete>
можно "соединять" "разорванную” строку. Например, в такой ситуации:
write('Вве  дите число лет, которое было бы Сереже ');
Устанавливаем курсор перед буквой "д"  и  нажимаем  несколько раз клавишу <Забой> до тех пор, пока слово "Введите" примет нужную конструкцию, или, установив курсор после буквы "е" нажать несколько раз клавишу <Delete>.
Вставка пропущенных символов делается еще проще.
Например, вы пропустили несколько букв:
       wrte('Ввете число лет, которое было бы Сеже ');
В первом слове пропущена буква  "i",  в  слове  "Введите" пропущены две буквы "ди", в слове "Сережа" буквы "ер".
Установим курсор на букву "t" в первом  слове  и  наберем с клавиатуры "i", она тут же вставится на  нужное  место.  Далее установим курсор на букву "т" в слове "Ввете" и наберем  с  клавиатуры "ди", слово "раздвинется" и буквы  "ди" станут  на  свои места. Установим курсор на "е" в слове  "Сежа" и  наберем  "ер",


Режим наложения
Редактор может также работать в  режиме  наложения  новых символов на существующий старый текст: в этом режиме новый  символ заменяет собой тот символ, на который  указывает  курсор,  а остаток строки справа от курсора не смещается вправо. Для  перехода к режиму наложения надо нажать клавишу <Insert> (Insert  - вставка), если нажать эту клавишу еще раз, вновь  восстановится  режим вставки. Признаком того, в каком режиме  работает  редактор, является форма курсора:  в  режиме  вставки курсор похож на мигающий символ подчеркивания, а в режиме наложения  он представляет собой крупный мигающий прямоугольник, заслоняющий символ целиком.
Режим автоотступа
Еще одной особенностью редактора является то, что  обычно он работает в режиме автоотступа. В  этом  режиме  каждая  новая строка начинается в той же позиции экрана, что и предыдущая.
Режим автоотступа поддерживает хороший  стиль  оформления текстов программ: отступы от левого края выделяют различные операторы и делают программу более наглядной.
Отказаться от режима автоотступа можно командой  Ctrl-O I (при нажатой клавише Ctrl
нажимается сначала  клавиша  O,  затем клавиша O отпускается и нажимается клавиша I), повторная команда Ctrl-O I восстановит режим автоотступа.
Ниже  перечислены  наиболее  часто  используемые  команды текстового редактора Турбо Паскаля, кроме тех, которые были приведены выше.

Команды редактирования
Backspac         -  <Забой> - стереть символ слева от курсора;
Del                    -  стереть символ, на который указывает курсор;
Ctrl-Y               -  стереть  строку,  на  которой  располагается курсор;
Enter                -  <Ввод> - вставить новую строку,  "разрезать" старую;
Ctrl-Q L           -  восстановить текущую строку (действует,  если
                            курсор не покидал измененную строку).
Работа с блоком
Ctrl-K B           - пометить начало блока; 
Ctrl-K Y          - стереть блок;                   


Ctrl-K V          - переместить блок;          
Ctrl-K R          - прочитать блок из дискового файла;
Ctrl-K P           - напечатать блок;
Ctrl-K H
         - спрятать/отобразить блок (снять пометку);
Ctrl-K K
         - пометить конец блока;
Ctrl-K C          - копировать блок;
Ctrl-K W
        - записать блок в дисковый файл;
Выполнение программы

После того, как программа набрана  можно  попробовать  ее выполнить.
Для этого нажимаем  клавиши  <Ctrl>+<F9>  (удерживая  клавишу <Ctrl>, нажать клавишу  <F9>). Эту же операцию можно выполнить, перейдя в основное меню, нажав клавишу  <F10>,  а  затем  перемещением указателя выбрать опцию  Run  и нажать клавишу <Ввода>.
На экране раскроется меню второго уровня, связанное с этой опцией.  Новое меню как бы "выпадает" из верхней строки, поэтому такое меню часто называют выпадающим (Pull-down). Экран станет таким (см. рис. 4):

Рис. 4
Теперь надо найти в новом меню опцию RUN (пуск) и  нажать клавишу <Ввод>.
Если не было ошибки при вводе текста, то, спустя несколько секунд, произойдет смена изображения на экране. Турбо Паскаль  предоставляет экран в распоряжение работающей программы пользователя. Такой экран  называется окном программы.
В ответ на запрос:
Введите число лет, которое было бы Серёже, надо ввести 16 и нажать клавишу <Ввод>.
После завершения прогона (работа программы часто  называется ее прогоном) на экране  вновь  появится  окно  редактора  с текстом программы. Если Вы не успели разглядеть изображение окна программы, то нажмите Alt-F5. При этом окно редактора скроется
и вы сможете увидеть результаты работы  программы.  Чтобы  вернуть экран в режим воспроизведения окна редактора, надо нажать на любую клавишу.
Можно экран сделать более удобным, чтобы видеть результаты работы программы. Для  этого  в  нижней  части  экрана  можно открыть второе окно.
Для этого нажмите клавишу F10, чтобы перейти к режиму выбора из главного меню,  подведите указатель к опции Debug (отлаживать)  и  нажмите  клавишу  <Ввод> - на экране раскроется меню второго уровня, связанное с этой опцией.


Экран станет таким (см. рис. 5):

Рис. 5
Найдите в новом меню опцию OUTPUT (вывод программы), подведите к ней указатель и нажмите клавишу <Ввод>.
В нижней части экрана появится второе окно, но  оно  уже не будет исчезать.
Теперь добьемся того, чтобы  на  экране демонстрировалось два окна  одновременно:  снова  нажмите  клавишу  F10,  выберите WINDOW, нажмите клавишу <Ввод>, подведите указатель к опции TILE (черепица) и нажмите клавишу <Ввод>.
Если все сделано правильно, экран примет вид (см. рис. 6):

Рис. 6
Двойная рамка, очерчивающая окно программы,  свидетельствует о том, что именно это окно активно в данный момент.
Сделаем активным окно редактора: нажмем клавишу <Alt> и, не отпуская ее, - клавишу с цифрой 1 (окно редактора имеет номер 1, окно программы - номер 2, эти номера написаны в  верхних  правых углах рамок). Теперь всё готово к дальнейшей работе  с  программой.
Первые ошибки и их исправление
1. Не поставлена точка с запятой, например, после  оператора readln(a). После пуска программы,  нажатием клавиш <Ctrl>+<F9>, в верхней  строке  экрана  появится  написанное  красным  цветом сообщение:
Error 85: ";" expected.
(Ошибка 85: ";" отсутствует.)
Редактор установит курсор на следующий символ после  пропущенного знака, в нашем примере на переменную b. После нажатия любой клавиши, сообщение об ошибке исчезает и редактор переходит в режим вставки. Надо подвести курсор  к  нужному  месту,  поставить точку с запятой - “;” и продолжить работу.
2. В описании переменных не записана переменная, а в программе она присутствует, например переменная c. После пуска программы, будет выдано сообщение:
Error 3: Unknown identifier.
(Ошибка 3: Неизвестный идентификатор.)
Курсор будет установлен на эту переменную, в нашем примере на переменную  c. Надо исправить ошибку, т.е.  записать переменную c в раздел описаний переменных и продолжить работу.
3. Не поставлена точка после оператора  end  в конце программы.


Сообщение компилятора будет таким:
Error 10: Unexpected end of file.
(Ошибка 10: Неправильный конец файла.),
курсор установится на букву "e" в слове  "end".  Надо  поставить точку и снова выполнить программу.

Запись файла на диск
Итак, программа отредактирована и выполнена (прокручена), теперь ее надо записать на диск. Для этого можно воспользоваться основным меню, в котором выбрать опцию "File" (см. рис. 7). Последовательность действий такова: 1) нажать клавишу F10 и перейти в основное меню; 2) переместить указатель на опцию "File" и нажать <Ввод>, откроется второе меню опции "File":

Рис. 7
Вы можете из этого меню выбрать опцию "Save". Она записывает содержимое активного окна редактора в дисковый файл.
Если нажать клавишу <Ввод>, то среда запросит имя  файла, если такового не было установлено и окно было связано  с  именем NONAME00.PAS. Вы можете изменить имя, или оставить его прежним.
Эта опция вызывается непосредственно из редактора  клавишей <F2>.
Можно выбрать опцию SAVE AS. Она  записывает  содержимое активного окна редактора в дисковый файл под другим именем.
Диалоговое окно этой опции имеет вид (см. рис. 8):

Рис. 8
В поле ввода Вы должны написать имя того файла, в который будет переписано содержимое активного окна редактора. Вы  можете выбрать уже существующий файл из поля выбора  или  из  протокола с опциями. В этом случае в зависимости от настройки среды старое содержимое файла будет уничтожено или сохранено в виде страховой копии с расширением .BAK.
Построчная запись текста программы
В Паскале нет правил разбивки текста программы на строки.
Однако  для  записи  программы   можно   дать   некоторые
Рекомендации
Очень важно, чтобы текст программы был расположен наглядно не только ради красоты, но (и это главное!) ради избежания ошибок.   (Найти ошибки в наглядном  тексте значительно легче.)
1. Каждый оператор следует писать с новой строки, за исключением коротких и по смыслу связанных операторов.


Например,
   write ... readln ... - записываются в одной строке, короткие операторы присваивания можно записать в одну  строку:
a := 23; b := 105; c := -11.2.
2. Операторы одного уровня, находящиеся в разных строках, должны быть выровнены по вертикали, т.е. одинаково отодвинуты от левого края.
Например, запишем последовательность операторов для определения суммы цифр трехзначного числа:
s := a div 100;
d := a div 10 mod 10;
e := a mod 10;
sum := s + d + e     
Здесь все операторы равноценны, последовательно идут один за другим, поэтому все начинаются с одной и той же  вертикальной позиции.
3. Операторы, включенные в другой оператор, следует сдвинуть вправо на несколько позиций (желательно одинаково).
       begin
          write ...
          readln ...
            if ... then
                     begin
                     .....
                     end
                   else
                     begin
                      .....
                     end;
       end.
4. Рекомендуется  вертикально  выравнивать  пары  базовых слов: begin и end, с которыми мы уже познакомились, а также слова, с которыми мы познакомимся позже: repeat и until,  record  и end, case
и end.
5. Оператор  if  рекомендуется размещать с учетом длины и сложности условия, и операторов, идущих после слов then  и  else.
Вот несколько самых популярных вариантов размещения оператора  if:
а)  if ...   then ...
                      else ...
       б)  if ...   then ...
               else ...
       в)  if ...
                 then ...
                 else ...
       г)  if ...
              then ...
              else ...
       д)  if ... then ... else ... 
6. Комментарии пишутся либо рядом с конструкцией (идентификатором, оператором, его частью), которую они объясняют,  либо в отдельной строке.
7. После знаков препинания: , - запятой,  ; - точки с запятой,  : - двоеточия рекомендуется оставлять по одному пробелу.
Задание
Наберите программу  Serg и выполните ее.Закончите работу в системе Turbo Pascal.

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