- •Текстовый редактор
- •Прогон и отладка программы
- •Справочная служба Турбо Паскаля
- •Строка
- •Строка
- •Задание 2. Разветвления
- •Простейшие циклы
- •Вложенные циклы
- •Примечания
- •Строка
- •Процедуры и функции
- •Процедуры ввода
- •Обозначение
- •Представим определение языка Показушка в расширенной форме Бэкуса-Наура
- •Предложение
- •Синтаксис Паскаля
- •Задание 14
- •Операторы Паскаля
- •Задание 15
- •Новые типы данных. Определение типа. Диапазоны.
Занятие 2
Работа с файлами
Как уже говорилось, сразу после запуска Турбо Паскаля среда автоматически переходит в режим редактирования текста, в котором можно подготовить новую программу или исправить существующую.
Основной формой хранения текстов программ вне среды являются файлы. После завершения работы с Турбо Паскалем можно сохранить текст новой программы в дисковом файле с тем, чтобы использовать его в следующий раз. Для обмена данными между дисковыми файлами и редактором среды предназначены клавиши F2 (запись в файл) и F3 (чтение из файла) .Если Вы создаете новую программу, то среда еще не знает имя того файла, в который Вы захотите поместить текст этой программы, и поэтому она присваивает тексту стандартное имя NONAMEOO.PAS (NO NAME - нет имени). Для сохранения текста программы в файле нужно нажать на клавишу F2. В этот момент среда проверит имя и, если это - стандартное имя NONAME, спросит, нужно ли его изменять: на экране появится небольшое окно запроса с надписью в верхней части:
Save file as (Сохранить в файле с именем)
Ниже надписи располагается поле для ввода имени файла, в котором можно написать любое имя и нажать клавишу «Enter», текст будет сохранен в файле. Если в имени файла опущено расширение, среда присвоит файлу стандартное расширение .PAS.
Если завершена работа с Турбо Паскалем (командой Alt—X), но не сохранен текст программы на диске, на экране появится окно с запросом:
NONAMEOO.PAS has been modified.
Save?
(Файл NONAMEOO.PAS был изменен. Сохранить?)
В ответ следует нажать Y (Yes - да), если необходимо сохранить текст в файле, или N (No - нет), если сохранять текст не нужно.
Прогон и отладка программы
После подготовки текста программы можно попытаться исполнить ее, т.е. откомпилировать программу, связать ее (если необходимо) с библиотекой стандартных процедур и функций, загрузить в оперативную память и передать ей управление. Вся эта последовательность действий называется прогоном программы и реализуется командой Ctrl—F9.
Если в программе нет синтаксических ошибок, то все действия выполняются последовательно одно за другим, при этом на экране сообщается о количестве строк откомпилированной программы и объеме доступной оперативной памяти. Перед передачей управления загруженной программе среда очищает экран (точнее, выводит на экран окно прогона программы), а после завершения работы программы вновь берет управление компьютером на себя и восстанавливает на экране окно редактора.
Если на каком-либо этапе среда обнаружила ошибку, она прекращает дальнейшие действия, восстанавливает окно редактора и помещает курсор на ту строку программы, при компиляции или исполнении которой обнаружена ошибка. При этом в верхней строке редактора появляется диагностическое сообщение о причине ошибки. Все это позволяет очень быстро отладить программу, т.е. устранить в ней синтаксические ошибки и добиться правильной ее работы.
Если ошибка возникла на этапе работы программы, простое указание того места, где она обнаружена, может не дать нужной
5
информации, так как ошибка может явиться следствием |
среда вычислит и покажет значение этого выражения или |
|
неправильной подготовки данных. Например, если ошибка |
переменной. |
|
возникла при извлечении корня из отрицательного числа, будет |
|
Справочная служба Турбо Паскаля |
указан оператор, в котором осуществлялась сама операция |
|
|
извлечения корня хотя ясно, что первопричину ошибки следует |
|
|
искать где-то раньше, там, где соответствующей переменной |
Органической составной частью среды Турбо Паскаль является |
|
присваивается отрицательное значение. В таких ситуациях, |
встроенная справочная служба. Если Вы достаточно хорошо |
|
обычно прибегают к пошаговому исполнению программы с |
владеете английским языком, у Вас не будет проблем при работе с |
|
помощью команд, связанных с клавишами F4, F7 и F8. Пока еще |
Турбо Паскалем: в затруднительной ситуации достаточно нажать |
|
не накоплен достаточный опыт отладки, можно пользоваться |
клавишу F1 и на экране высветится необходимая справка. Эта |
|
одной клавишей F7, после нажатия на которую среда осуществит |
справка зависит от текущего состояния среды (такую справочную |
|
компиляцию, компоновку (связь с библиотекой стандартных |
службу называют контекстно-зависимой). Например, если нажать |
|
процедур и функций) и загрузку программы, а затем остановит |
F1 в момент, когда среда обнаружила ошибку в программе, в |
|
прогон перед исполнением первого оператора. Строка программы, |
справке будут сообщены дополнительные сведения о причинах |
|
содержащая этот оператор, будет выделена на экране указателем |
появления этой ошибки и рекомендации по ее устранению. |
|
(цветом). Теперь каждое новое нажатие на F7 будет вызывать |
Существует четыре способа обращения к справочной службе |
|
исполнение всех операций, запрограммированных в текущей |
непосредственно из окна редактора: |
|
строке, и смещение указателя к следующей строке программы. В |
|
|
подозрительном месте программы можно просмотреть значения |
F1 |
- получение контекстно - зависимой справки |
нужных Вам переменных или выражений. Для этого можно |
Shift – F1 |
- выбор справки из списка доступных |
действовать следующим образом. Установите курсор в то место |
|
справочных сообщений |
текущей строки, где написано имя интересующей Вас переменной, |
Ctrl – F1 |
- получение справки о нужной стандартной |
и нажмите Ctrl—F4, На экране откроется диалоговое окно, |
|
процедуре |
состоящее из трех полей. В верхнем поле будет стоять имя |
Alt – F1 |
- получение предыдушей справки |
переменной. После этого нажмите на клавишу «Enter», чтобы |
При использовании команды Shift—F1 на экране появляется |
|
получить в среднем поле текущее значение этой переменной. Если |
||
перед командой Cfrl—F4 курсор стоял на пустом участке строки |
справочное окно, содержащее упорядоченный по алфавиту список |
|
или указывал на другую переменную, верхнее поле также |
стандартных процедур, функций, констант и переменных, для |
|
окажется пустым или будет содержать имя этой другой перемен- |
которых можно получить справочную информацию. В этот момент |
|
ной. В этом случае следует ввести с помощью клавиатуры |
клавишами смещения курсора следует передвинуть указатель в |
|
интересующее Вас имя в верхнем поле и нажать клавишу «Enter». |
окне к нужному слову и нажать клавишу «Enter», чтобы получить |
|
Кстати, таким образом можно вводить не только имена |
справку. |
|
прослеживаемых переменных, но и выражения с их участием - |
Эту же справку можно получить и другим способом: |
|
|
напечатать на |
экране имя стандартной процедуры (функции, |
6
константы, переменной) или подвести курсор к имеющемуся уже в тексте программы стандартному имени и нажать Ctrl—Fl. Среда проанализирует ближайшее окружение курсора, выделит стандартное имя и даст нужную справку.
Доступ к справочной службе возможен и через главное меню Турбо Паскаля. Не торопитесь запоминать или записывать на бумаге этот текст, его можно «вырезать» из справки и перенести в окно редактора. Для этого после вызова нужной справки нажмите клавишу Ait и, не отпуская ее, — клавишу с латинской буквой E- на экране раскроется дополнительное меню Edit. Затем клавишами смещения курсора подведите указатель (светлый прямоугольник) в меню к строчке Copy examples (копировать примеры) и нажмите клавишу «Enter» - текст примера скопируется во внутренний буфер редактора. Для извлечения примера из буфера следует нажать клавишу Esc, чтобы выйти из справочной службы, подвести курсор к свободной строке в окне редактора и дать команды Shift—Ins (копирование содержимого буфера в виде блока в текст программы) и Ctrl—K H (убрать выделение блока цветом).
Занятие 3.
I. Пример программы на Паскале
II. Структура программы
III.Операторы присваивания, ввода, вывода
IV.Таблица трассировки
I.Программа на Паскале, которая вычисляет сумму двух целых чисел и выводит ее на экран.
1Program summa (input,output);
2var a,b,c: integer;
3begin
4read (a,b);
5c:=a+b;
6write (c );
7end.
Замечание. Колонка чисел слева от текста не является частью программы. Числа приведены просто для облегчения ссылок.
II. Любая программа на Паскале строится по правилам языка Паскаль и состоит из нескольких блоков (частей). Структура
программы summa: |
|
строка 1 |
заголовок программы |
строка 2 |
раздел описания переменных |
строки 3-7 |
раздел описания операторов |
Заголовок программы сообщает, что имя программы summa. Это имя используется для ее идентификации.
Раздел описания переменных всегда начинается со слова var и описывает элементы внутренних данных, требующиеся в ходе выполнения программы. Чтобы компьютер выполнил вычисления, информацию необходимо поместить в память компьютера. Для этой цели отводятся специальные ячейки памяти, которым в разделе описания переменных даются имена. В данном случае таких элементов три; их имена a, b, c. Хранимые значения обычно изменяются в ходе выполнения программы, в силу чего эти элементы данных называются переменными. Переменную можно сравнить с классной доской: ее значение можно”читать” столько раз, сколько пожелаешь, ее можно стереть и на том же месте написать другое значение. Повторная запись приводит к тому, что прежнее значение теряется.
Явное именование переменных в начале программы называется описанием переменных, отсюда и название части программы. Все переменные в программе должны быть описаны.
7
Слово integer (целочисленный) в конце строки 2 сопоставляет тип данных переменным a,b,c. При сопоставлении типа данных элементам данных подразумевается, что
1.Значение, которое имеет элемент данных, должен находиться внутри определенного диапазона значений;
2.Операции, которые могут выполняться с элементами данных, могут относиться только к определенному набору операций.
Для типа integer диапазон значений – это диапазон целых чисел, представимых в процессоре от –32768 до +32767. Что же касается операций, то их набор для целочисленных значений в стандартном Паскале включает сложение (+), вычитание (-), умножение (*), деление (div), деление по модулю (остаток от деления на цело) (mod).
II. Раздел операторов содержит команды, которые описывают процесс, подлежайший выполнению. Каждая команда называется оператором, и весь процесс описывается последовательностью операторов, начинающихся словом begin («начало») и заканчиввающихся словом end («конец»). Выполняя операторы один за другим, процессор производит требующиеся вычисления.
В начале каждого процесса переменным должны быть присвоены конкретные значения. Это можно сделать при помощи операторов ввода и присваивания.
Оператор в строке 4 read (a,b) называется оператором ввода (чтения). Общий вид оператора : read (а1,а2,...,аn), где а1,а2,...,аn - имена переменных, которым последовательно присваиваются вводимые с клавиатуры значения.
Выполнение оператора read происходит следующим образом:
•программа приостанавливает работу и ждет ввода значений переменных. Если в операторе указано две и более переменных, то набирать их значения на клавиатуре необходимо через пробел и затем заканчивать ввод нажатием клавиши Enter, либо после набора каждого значения нажимать клавишу Enter.
•введенные значения присваиваются переменным в том порядке, в каком они были указаны в операторе.
Оператор в строке 5 c:=a+b называется оператором присваивания. Общий вид оператора: V:=A, где V - имя переменной, := -знак присваивания, А – выражение (типы переменной и выражения должны совпадать!). В общем случае выражение представляет собой совокупность переменных и других объектов, соединенных знаками операций. В слуае арифметического выражения операции выполняются в соответствии со старшинством слева направо, аналогично математике. Если необходимо изменить естественный порядок вычислений, используются скобки.
Выполнение оператора присваивания:
•вычисляется значение выражения А.
•вычисленное значение записывается в переменную V (при этом старое значение переменной затирается).
Оператор в строке 6 write (c ) называется оператором вывода
(записи). Общий вид оператора: write (а1,а2,...,аn), где а1,а2,...,аn - имена переменных, строки символов, выражения.
Выполнение оператора write заключается в выводе на экран указанных в операторе значений переменных, строк символов, значения выражений вычисляются и также выводятся на экран.
IV. Отображение (на бумаге или на экране) того, что происходит при выполнении каждой строки из раздела операторов, называется трассировкой программы.
Трассировку программы удобно выполнять в таблице трассировки. Структура таблицы:
•в первой колонке записываются номера строк, соответствующие операторам, и именно в том порядке , в каком они ыполняются;
•во второй колонке записываются пометки о входах и выходах в различные части программы и о других факторах, влияющих на то, какой оператор будет выполняться следующим. Эти сведения называются информацией об управлении. В этой же колонке показываются порождаемые результаты.
8