Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Рабочая тетрадь Паскаль

.pdf
Скачиваний:
166
Добавлен:
30.03.2015
Размер:
1.61 Mб
Скачать

ЧУВАШСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ

Паскаль

Рабочая тетрадь

Бельчусов А.А.

2011

Г . Ч Е Б О К С А Р Ы

Рабочая тетрадь по программированию. Паскаль

Система Pascal ABC

Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на школьников и студентов младших курсов.

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

Язык Паскаль признан многими российскими преподавателями как один из лучших именно для начального обучения. Однако, среда Borland Pascal, ориентированная на MS DOS, устарела, а среда Borland Delphi с ее богатыми возможностями сложна для начинающего программиста. Так, попытка начинать обучение с написания событийной программы в Borland Delphi вызывает у обучаемого массу сложностей и приводит к ряду неправильно сформированных навыков.

Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить плавный переход от простейших программ к модульному, объектноориентированному, событийному и компонентному программированию. Многие концепции в Pascal ABC сознательно упрощены, что позволяет использовать их на более ранних этапах обучения. Например, модуль графики обходится без объектов, хотя его возможности практически совпадают с графическими возможностями Borland Delphi. Простейшие событийные программы также можно писать без объектов, пользуясь лишь процедурными переменными. Даже в консольных программах можно создавать таймеры и звуки, которые реализованы не в виде объектов. В модулях может отсутствовать разделение на секцию интерфейса и секцию реализации; в этом случае модули устроены практически так же, как и основная программа, что проще на ранних этапах обучения. Тела методов можно определять непосредственно внутри классов, что позволяет создавать классы практически сразу после изучения записей, процедур и функций. Имеется библиотека визуальных компонентов, упрощенная по сравнению с аналогичной библиотекой Borland Delphi. Имеется модуль контейнерных классов (динамические массивы, стеки, очереди, множества). В языке Pascal ABC имеются арифметические операции с типизированными указателями (в стиле языка C), а также тип complex, предназначенный для работы с комплексными числами.

Компилятор Pascal ABC является компилятором переднего плана (front-end). Это означает, что он не генерирует исполняемый код в виде .exe-файла, а создает в

Турнир по программированию - http://compilers.infoznaika.ru/

2

Рабочая тетрадь по программированию. Паскаль

результате компиляции дерево программы в памяти, которое затем выполняется с помощью встроенного интерпретатора.

В системе Pascal ABC ученик может выполнять так называемые проверяемые задания, обеспечивающие постановку задачи со случайными исходными данными, контроль операций ввода-вывода, проверку правильности решения, а также ведение протокола решения задач.

Проверяемые задания реализованы в виде электронного задачника по программированию Programming Taskbook, содержащего 1000 задач по программированию разного уровня сложности (от простейших задач до задач на файлы, указатели и рекурсию) а также в виде исполнителей Робот и Чертежник, предназначенных для быстрого обучения основам программирования школьников младших и средних классов.

В свободно распространяемую версию Pascal ABC & Programming Taskbook Mini

Edition входит мини-версия электронного задачника (200 задач) и урезанный комплект задач для исполнителей Робот и Чертежник. Версия Pascal ABC &

Programming Taskbook Complete Edition содержит полный комплект задач.

Система Pascal ABC используется для обучения студентов первого курса физикоматематического факультета Чувашского государственного педагогического университета.

Редактор Pascal ABC.

Горячие клавиши

F2, Ctrl-S - сохранить файл.

F3, Ctrl-O - загрузить файл.

F12 - сохранить файл под новым именем.

Ctrl-Shift-S - сохранить все открытые файлы.

Ctrl-Shift-0 ... Ctrl-Shift-9 - установить закладку с номером 0...9.

Ctrl-0 ... Ctrl-9 - перейти к закладке с номером 0...9.

Ctrl-Tab, Ctrl-Shift-Tab - перейти к следующему/предыдущему окну редактора.

Ctrl-Shift-I - увеличить отступ выделенного блока.

Турнир по программированию - http://compilers.infoznaika.ru/

3

Рабочая тетрадь по программированию. Паскаль

Ctrl-Shift-U - уменьшить отступ выделенного блока.

Окно вывода

Под окном редактора расположено окно вывода. Оно предназначено для вывода данных процедурами write и writeln, а также для вывода сообщений об ошибках и предупреждений во время работы программы.

Окно вывода может быть скрыто. Клавиша F5 и кнопка показывают/скрывают окно вывода. Для скрытия окна вывода используется также клавиша Esc.

Окно вывода обязательно открывается при любом выводе в него.

Для очистки окна вывода следует нажать комбинацию клавиш Ctrl-Del или кнопку .

Окно ввода

Окно ввода открывается при выполнении процедур read и readln в ходе работы программы:

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

Турнир по программированию - http://compilers.infoznaika.ru/

4

Рабочая тетрадь по программированию. Паскаль

Запуск и остановка программы

Для запуска программы в текущем окне редактора следует нажать клавишу F9 или кнопку панели инструментов.

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

Выполнение программы можно в любой момент прервать нажатием комбинации клавиш Ctrl-F2 или кнопки . При этом в окне вывода появится сообщение

• Программа прервана пользователем

Если текущая программа не является модулем, то при ее запуске на вкладке перед именем появляется жирная точка, что свидетельствует о том, что данную программу запускали последней. Если текущая программа является модулем, то компилируется не она, а программа, чье имя на вкладке помечено точкой.

При выводе в графическое окно модуля GraphABC программу можно прервать нажатием клавиши Esc, при этом графическое окно будет закрыто.

Окна исполнителей Робот, Чертежник и электронного задачника Programming

Taskbook возникают лишь после завершения работы программы.

Пошаговое выполнение программы

Режим пошагового выполнения предназначен для отладки программы. Для выполнения одного шага (одной строки) программы следует нажать клавишу F8 или кнопку (шаг без входа в подпрограмму), либо клавишу F7 или кнопку (шаг со входом в подпрограмму). Для выполнения программы до данной строки следует установить на нее курсор и нажать клавишу F4 или кнопку .

Прервать программу, находящуюся в режиме пошагового выполнения, можно с помощью комбинации клавиш Ctrl-F2 или кнопки . Если программа находится в режиме пошагового выполнения, то ее можно выполнить до конца, нажав F9.

Если программа не запущена и в активном окне находится текст модуля, то при нажатии клавиши F4 в активном окне начинает выполняться программа, отмеченная точкой на вкладке.

Секции инициализации и финализации модулей трассируются только при пошаговом выполнении со входом в подпрограмму. Таким образом, трассировка

Турнир по программированию - http://compilers.infoznaika.ru/

5

Рабочая тетрадь по программированию. Паскаль

секций инициализации модулей начинается, если нажать F7 при запуске программы, а трассировка секций финализации модулей - если нажать F8, когда курсор стоит на заключительном end программы.

Трассировка обработчиков событий запрещена.

Окно отладки

Окно отладки позволяет просматривать во время пошагового исполнения программы значения переменных. По умолчанию оно располагается в правом верхнем углу окна редактора и имеет следующий вид:

Для добавления переменной или выражения в окно отладки следует нажать комбинацию клавиш Ctrl-F5 или кнопку . Можно также перетащить из редактора в окно отладки выделенное выражение или при активном окне отладки нажать клавишу Ins. Допускаются выражения, содержащие функции, в т.ч. и определенные в программе (такие функции не должны иметь побочного эффекта, т.е.не должны менять значения глобальных переменных).

Окно отладки включается/выключается нажатием комбинации клавиш Ctrl- Shift-W.

Для удаления строки из окна отладки следует выделить эту строку и нажать клавишу Del или воспользоваться командой контекстного меню окна отладки.

Для изменения строки в окне отладки следует дважды щелкнуть на ней.

Для очистки окна отладки следует нажать комбинацию клавиш Ctrl-Del или воспользоваться командой контекстного меню окна отладки.

Если выражение неверно, его вычисление вызывает ошибку или в данном контексте недоступны некоторые переменные, то при выполнении программы в столбце "Значение" появляется сообщение "нельзя вычислить".

Турнир по программированию - http://compilers.infoznaika.ru/

6

Рабочая тетрадь по программированию. Паскаль

Редактор блок-схем FCEditor

Назначение программы FCEditor состоит в редактирование блок-схем программ и конвертация из кода программы в блок-схему.

ОСНОВНАЯ ИДЕЯ - изобразить блок-схему с произвольным по величине (имеется в виду текст) содержанием. В большинстве редакторов, если и имеется возможность автоматически менять размер компонентов, то все стрелки и переходы все равно надо расставлять вручную. В FCEditor это делается автоматически.

Преимущества FCEditor:

*ИМПОРТ из кода языка Паскаль в блок-схему

*АВТО-определение размеров и расположения всех элементов

*АВТО-конвертация в программный код который демонстрируется

*возможность вставки только стандартных элементов алгоритмов

*многоязычный интерфейс (русский, английский и др.)

Принцип работы программы - работа с элементами как с объектами. При наведении на область элемента можно изменить его содержимое (если находимся в режиме "Изменение") либо при наведении на исходящую из элемента стрелку указателя мыши можно произвести вставку новых элементов (выбранных с помощью переключателей на панели инструментов либо из контекстного меню). Переключится в один из режимов работы можно как из панели инструментов,так и из контекстного меню. В строке ввода можно менять текстовое содержимое элемента. При установке флажка - "автоматическое обновление" размеры компонента будут подгоняться под его текст (только нужно указать что текущий режим - редактирование). Программа может указывать номера блоков (чтобы в описании можно было на них ссылаться). Для этого нужно выставить в опциях переключатель "Нумеровать блоки". номера жестко заданы и определяются порядков добавления блоков в схему.

КОМАНДЫ МЕНЮ:

Через меню Файл схему можно

1. сохранить в старом формате fce (ограничение текста блоков до 64 символов) 2. сохранить в новом формате fc2

(по сути текст кода на Паскале ограничение снято)

3.сконвертировать в код Паскаля

4.сконвертировать в формат *.bmp

Турнир по программированию - http://compilers.infoznaika.ru/

7

Рабочая тетрадь по программированию. Паскаль

5.сконвертировать в формат *.gif

6.получить схемы из кода языка Паскаль

Кнопки панели инструментов

+ Добавить - режим добавления нового элемента. Чтобы добавить новый элемент надо, дважды щелкнуть указателем мыши по стрелке, где предполагается добавить новый элемент.

Х Удалить - режим удаления элементов.Дважды щелкаем по элементу и он удалится.

Т Изменить - режим изменения содержания элемента. дважды щелкаем по элементу, при этом его содержание становиться доступным для редактирвания и его можно менять. Если при этом установить флажок "Обновлять при редактировании",то сразу будет происходит перерисовка схемы.

Н Передвинуть - в этом режиме схему можно перемещать удерживая левую клавишу мыши.

Замечания об импорте из кода

*файл программы должен(желательно)начинаться с program !!!

*конвертер импорта НЕ распознает блока case ... of ... end; более того, при его наличии почти гарантировано импорт завесит редактор наглухо.. единственно, что могу рекомендовать это заменять кейс вручную на структуру if .. else ..

*модуль не должен содержать синтаксических ошибок

*операторы Break, Continue, Exit, Hult НЕ обрабатываются.

ОГРАНИЧЕНИЯ НЕЗАРЕГИСТРИРОВАННОЙ ВЕРСИИ:

*дорисовывается ЛИШНЕЕ направление стрелки.

*некоторые блоки рисуются зачеркнутыми.

Турнир по программированию - http://compilers.infoznaika.ru/

8

Рабочая тетрадь по программированию. Паскаль

СТРУКТУРА ПРОГРАММЫ НА ПАСКАЛЕ

По определению стандартного Паскаля программа состоит из и (блока), за

которым следует точка — признак конца программы. В свою очередь, блок содержит разделы описаний и раздел операторов.

Program <имя программы>;

Label <раздел меток>;

Const <раздел констант>;

Туре <раздел типов>;

Var <раздел переменных>;

Procedure (Function) <раздел подпрограмма-

Begin

<раздел операторов>

End.

Раздел операторов имеется в любой программе и является основным.

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

Выделенные слова называются зарезервированными. Они используются для описания конструкций языка и не могут использоваться в качестве имен. То есть нельзя описать, скажем, переменную с именем begin, но можно - с

именем integer.

Конструкция Begin...End является составным оператором.

Зарезервированные слова Begin и End служат операторными скобками. Когда

Турнир по программированию - http://compilers.infoznaika.ru/

9

Рабочая тетрадь по программированию. Паскаль

несколько операторов записаны в таких операторных скобках, они обрабатываются как один оператор.

Пример составного оператора, используемого внутри оператора if:

If First < Last Then

Begin

Temp := First;

First := Last;

Last := Temp;

End;

Турнир по программированию - http://compilers.infoznaika.ru/

10