Файл: Лабораторная работа 1 1 Лабораторная работа 1 Структура программы на языке Паскаль.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.10.2024

Просмотров: 9

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ПиОА
Лабораторная работа № 1 1
Лабораторная работа № 1
Структура программы на языке Паскаль
Цель работы: изучение основных приемов проектирования и отлад- ки программ линейной структуры на Паскале.
Основные функции среды PascalABC.NET
Система программирования PascalABC.NET предназначена для раз- работки программ на языке Паскаль и представляет собой совокупность компилятора языка программирования Паскаль и инструментальной про- граммной оболочки.
После запуска PascalABC.NET на экране монитора появляется ин- струментальная оболочка системы, предоставляющая программисту сред- ства для разработки, отладки и выполнения программы на языке Паскаль
(рисунок 1.1).
В верхней строке оболочки находится меню режимов работы
PascalABC.NET, в нижней строке - краткая справка о состоянии про- граммы. Центральная часть экрана (заключена в рамку) является окном
текстового редактора, где программист осуществляет ввод и редактиро- вания текста программы. Редактор является многооконными и позволяет открывать одновременно несколько окон, в каждом из которых можно ре- дактировать свой файл. Имя редактируемого файла указывается в заголов- ке вкладки.
При разработке программы в PascalABC.NET можно пользоваться командами, которые находятся в меню (некоторые команды, наиболее вос- требованные, дублированы в панели инструментов).
Под окном редактора расположено Окно вывода. Оно предназначено для вывода данных процедурами write и writeln. Вкладка Список ошибок предназначена для отображения сообщений об ошибках и предупреждений во время работы программы. Вкладка Сообщения компилятора предна- значена для отображения сообщений компилятора об этапах обработки программы.

ПиОА
Лабораторная работа № 1 2
Окно вывода может быть скрыто. Клавиша F5 и кнопка показы- вают/скрывают окно вывода. Для скрытия окна вывода используется также клавиша Esc.
Окно вывода обязательно открывается при любом выводе в него.
Для очистки окна вывода следует нажать комбинацию клавиш Ctrl-
Del.
Рисунок 1.1 - Инструментальная оболочка PascalABC.NET
Окно ввода (рисунок 1.2) открывается при выполнении процедур ввода данных read и readln в ходе работы программы. Ввод данных в окно ввода сопровождается эхо-выводом в окно вывода. После нажатия клави- ши Enter данные из окна ввода передаются в соответствующие перемен- ные, окно ввода закрывается, программа продолжает работать дальше.
Рассмотрим выполнение в PascalABC.NET некоторых наиболее рас- пространенных действий.
Строка меню
Вкладка
Рабочее окно программы
Окно вывода
Панель инструментов
Строка состояния
Строка заголовка окна


ПиОА
Лабораторная работа № 1 3
Рисунок 1.2 – Окно ввода в инструментальной оболочке
PascalABC.NET
Для создания нового файла необходимо выполнить следующие дей- ствия: Файл/Новый или нажать кнопку на панели инструментов. На экране откроется вкладка с именем Programl.pas (при сохранении файла имя желательно изменить).
При вводе и редактировании текста программы используются такие же приемы, как и при работе в текстовом редакторе ставшие стандартными де-факто. С помощью команды меню Помощь можно ознакомиться со справочной системой PascalABC.NET.
Для сохранения программы необходимо выполнить команду
Файл/Сохранить как... и указать имя файла. Если необходимо сохранить
существующую уже программу, то надо выполнить команду
Файл/Сохранить (или нажать кнопку на панели инструментов).

ПиОА
Лабораторная работа № 1 4
Для загрузки программы из файла необходимо выполнить команду
Файл/Открыть (или нажать кнопку на панели инструментов) и вы- брать файл.
Для выполнения программы необходимо выполнить команду Про-
грамма/Выполнить, либо нажать клавишу F9, либо нажать кнопку на панели инструментов. Программа вначале компилируется во внутреннее представление, после чего, если не найдены ошибки, программа начинает выполняться. При выполнении программы кнопка запуска программы ста- новится неактивной, кнопка останова программы, наоборот, активной и в строке статуса отображается информация вида "Компиляция прошла
успешно (6 строк)". При запуске программы на вкладке перед ее именем появляется точка, что свидетельствует о том, что данную программу за- пускали последней. Выполнение программы можно в любой момент пре- рвать нажатием комбинации клавиш Ctrl-F2 или кнопки .
Если при компиляции обнаружена ошибка, то курсор устанавливает- ся в области ошибки, а в окне Список ошибок выдается сообщение об ошибке. В этом случае следует исправить ошибки и вновь попытаться вы- полнить программу.
Наиболее часто встречающиеся ошибки при работе в системе про- граммирования PascalABC.NET:
«Неизвестное имя» - этот идентификатор не был описан;
«Неожиданный символ» - в исходном тексте найден неверный сим- вол;
«Нельзя преобразовать тип» - 1) несовместимые типы переменной и выражения в операторе присваивания, 2) несовместимые типы операндов в выражении;
«Встречено "…. ", а ожидалось ";"» - не указана, где это требуется, точка с запятой;
«Ожидалось "."» - отсутствует необходимый символ (например, по- сле end в конце программы).
Для отладки программы может быть использован режим пошагово-
го выполнения. Для выполнения одного шага (одной строки) программы следует нажать клавишу F8 или кнопку
(шаг без входа в подпрограм- му), либо клавишу F7 или кнопку
(шаг с входом в подпрограмму). Для выполнения программы до данной строки следует установить на нее кур- сор и нажать клавишу F4.
Прервать программу, находящуюся в режиме пошагового выполне- ния, можно с помощью комбинации клавиш Ctrl-F2 или кнопки . Если


ПиОА
Лабораторная работа № 1 5 программа находится в режиме пошагового выполнения, то ее можно вы- полнить до конца, нажав F9.
Просматривать значения переменных во время пошагового исполне- ния программы позволяет вкладка Локальные переменные. Просматривать значения выражений во время пошагового исполнения программы позво- ляет вкладка Просмотр выражений.
При работе в среде PascalABC.NET при разработке небольших про- грамм обычно реализуется следующий порядок действий. В текстовом ре- дакторе формируется текст программы. Если текст программы готов и за- писан в файл на диске, то выполняется загрузки программы из файла. За- тем программа выполняется. Если в программе есть синтаксические ошиб- ки, то сообщение о первой из них появится в специальной строке редакто- ра (при этом она будет выделена красным цветом), а курсор будет поме- щен на ту строку программы, где обнаружена ошибка. Ошибку следует ис- править и программу повторно попытаться выполнить. Если ошибок не обнаружено, то начнется выполнение программы. Если в программе предусмотрен ввод исходных данных с клавиатуры, то появится окно вво- да и надо будет ввести значения соответствующих переменных.
В ходе выполнения программы на экране отображается окно вывода результатов программы.
Если в ходе выполнения программы обнаружена ошибка, то среда
PascalABC.NET прекращает дальнейшие действия программы и помещает курсор на ту строку программы, на которой обнаружена ошибка. Причина прекращения выполнения программы указывается в окне Список ошибок.
Ошибку следует исправить и программу повторно выполнить.
Среда PascalABC.NET имеет справочную систему, воспользоваться которой можно, нажав клавишу F1 или выполнить команду Помощь ме- ню.
Структура программы на языке Паскаль
Программа, написанная на языке Паскаль, состоит из заголовка, опи- сательной части и операторной части. Кратко рассмотрим структуру про- граммы на простейшем примере, который реализует вычисление произве- дения двух чисел.
Program ABC; {заголовок программы}
Var a, b, s: integer; {описательная часть программы}
BEGIN {начало операторной части программы}

ПиОА
Лабораторная работа № 1 6
Write('a='); {вывод на экран сообщения a=}
Readln(a); {ввод числа a}
Write('b='); {вывод на экран сообщения b=}
Readln(b); {ввод числа b} s:=a*b; {вычисление произведения s}
Writeln('s=',s); {вывод результата}
END. {конец операторной части программы}
Заголовок программы имеет вид:
Program <идентификатор программы>;
(символы <...> являются элементами описания формата и в программу не переносятся). Идентификатор – это имя программы. В приведенном при- мере идентификатор программы –ABC. Идентификаторы также использу- ются для обозначения переменных, меток, констант и других элементов программы. Идентификатор может состоять из латинских букв, цифр и символа подчеркивания. Начинается идентификатор с буквы или символа подчеркивания. Длина идентификатора не может быть больше 127 симво- лов, причем значащими являются только первые 63. Прописные и строч- ные буквы в идентификаторах не различаются.
В описательной части блока определяются все идентификаторы, ко- торые будут использованы в операторной части. Описательная часть включает несколько разделов в соответствии с видами элементов, имею- щимися в Паскале: метки, константы, типы данных, переменные, функции и процедуры. Все эти разделы не являются обязательными и, таким обра- зом, описательная часть блока может полностью отсутствовать. В примере используются только переменные, поэтому в описательной части только один раздел – раздел описания переменных. Он начинается со слова var, за которым следует список перечисляемых через запятую переменных, затем символ двоеточие и указывается тип переменных. В примере все перемен- ные (a, b, s) целого типа (integer), то есть их значениями могут быть толь- ко целые числа.
Операторная часть начинается с зарезервированного слова BEGIN и заканчивается зарезервированным словом END,. вслед за которым ставит- ся точка. Операторная часть содержит операторы, которые выполняются в естественном порядке, то есть по очереди как они записаны, начиная с оператора, стоящего после слова BEGIN. В примере первый оператор -
write оператор вывода (точнее стандартная процедура вывода). При за- пуске программы он выведет на экран сообщение a=. Следующий опера- тор - readln – оператор ввода. Когда наступает очередь этого оператора, выполнения программы приостанавливается – она ждет, когда с клавиату- ры будет введено значение переменной, указанной в списке ввода (в при-


ПиОА
Лабораторная работа № 1 7 мере – переменная a). На клавиатуре следует набрать значение переменной
a и нажать клавишу Enter. Следующая пара операторов обеспечит ввод значения переменной b. Далее стоит оператор присваивания (:= - знак при- сваивания), после выполнения которого переменная s получит значение равное произведению двух чисел a и b. Результат будет выведен на экран с помощью оператора writeln. После выполнения оператора writeln, в отли- чие от оператора write, курсор автоматически переводится на следующую строку.
Алгоритмы и способы их представления
Алгоритмомназывается точное предписание, задающее преобразо- вание исходных данных в искомый результат. При этом могут произво- диться числовые вычисления, преобразования буквенных выражений, не- которых символов и т.д.
Числа, буквы, символы, над которыми производятся те или иные операции (вычисления, преобразования и т.д.), называются операндами, а указания, предписания, правила преобразования операндов - оператора-
ми.
В процессе разработки алгоритма могут использоваться различные способы его описания, отличающиеся по простоте, наглядности, компакт- ности, степени формализации, ориентации на машинную реализацию и другим показателям. В практике программирования наибольшее распро- странение получили словесная запись алгоритмов, схемы алгоритмов, структурограммы (диаграммы Насси - Шнейдермана).
Схема алгоритма - это графическое представление алгоритма, до- полненное элементами словесной записи. Каждый пункт алгоритма отоб- ражается на схеме некоторой геометрической фигурой - блоком (блочным символом), причем различным по типу выполняемых действий блокам со- ответствуют различные геометрические фигуры, изображаемые в соответ- ствии с ГОСТом. Правила выполнения схем алгоритмов регламентирует
ГОСТ 19.701-90.
Схема программы состоит из:
1) символов процесса, указывающих фактические операции обработ- ки данных (включая символы, определяющие путь, которого следует при- держиваться с учетом логических условий);
2) линейных символов, указывающих поток управления;
3) специальных символов, используемых для облегчения написания и чтения схемы.

ПиОА
Лабораторная работа № 1 8
Ниже приведены некоторые наиболее часто используемые символы с указанием назначения.
Символы процесса:
процесс - отображает функцию обработки данных любого вида;
данные - отображение данных, носитель не определен;
Линейные символы:
линия – символ отображает поток данных или управления.
При необходимости или для повышения удобочитаемости могут быть добавлены стрелки-указатели.
Специальные символы:
соединитель – отображает выход из одной части схемы и вход в другую часть этой схемы и исполь- зуется для обрыва линии и продолжения ее в дру- гом месте.
Соответствующие символы - соединители должны содержать одно и тоже уникальное обозначение.
терминатор - отображает выход во внешнюю сре- ду и вход из внешней среды (начало или конец схемы алгоритма, внешнее использование и источ- ник или пункт назначения данных).
Графические символы на схемах соединяются линиями потока ин- формации. Основное направление потока информации идет сверху вниз и слева направо (стрелки на линиях могут не указываться). В других случаях применение стрелок обязательно. По отношению к блоку линии потока могут быть входящими или выходящими.
Линии в схемах должны подходить к символу либо слева, либо свер- ху, а исходить либо справа, либо снизу. Линия должна быть направлена к центру символа.
Алгоритм любой степени сложности можно построить с помощью основного базового набора структур:
1) последовательная (линейная) структура;
2) ветвящаяся структура;


ПиОА
Лабораторная работа № 1 9
3) циклическая структура.
Процессы линейной структуры
Наиболее простыми для понимания и использования являются ли- нейные структуры. Линейным называется алгоритм (фрагмент алгоритма), в котором отдельные предписания выполняются в естественном порядке (в порядке записи) независимо от значений исходных данных и промежуточ- ных результатов.
Рассмотрим задачу вычисления площади треугольника по трем сто- ронам (a, b, c). Словесная запись алгоритма решения этой задачи может быть представлена следующим образом:
Пункт 1. Вычислить полупериметр треугольника
2
/
)
(
c
b
a
p



и перейти к пункту 2.
Пункт 2. Вычислить площадь треугольника
)
)(
)(
(
c
p
b
p
a
p
p
s




и перейти к пункту 3.
Пункт 3. Вывести на экран результат
s
и завершить вычисления.
Схема алгоритма решения этой задачи представлена на рисунке 1.3.
Рисунок 1.3
Полученный алгоритм является линейным, т.к. все предписания вы- полняются в порядке записи, начиная с блока "Начало" и заканчивая бло-
Начало
Ввод a,b,c
2
/
)
(
c
b
a
p



)
)(
)(
(
c
p
b
p
a
p
p
s




Вывод s
Конец

ПиОА
Лабораторная работа № 1 10 ком "Конец". Отметим, что все предписания (блоки) будут выполнены, причем только один раз.
Ниже приведена программа на языке Паскаль, реализующая этот ал- горитм.
Program P101; var a, b, c, p, s: real; begin readln(a, b, c); p:= (a+b+c)/2; s:= sqrt(p*(p-a)*(p-b)*(p-c)); writeln('s=', s); end.
Основы языка Паскаль
Рассмотрим на примере некоторые элементы языка Паскаль, необхо- димые для выполнения данной лабораторной работы.
Константы. Под константой понимается данное, значение которого в процессе обработки постоянно и не может быть изменено. Обычно кон- станта определяется непосредственно там, где она используется, путем яв- ного задания ее значения. В примере только одна константа – 2 (в операто- ре p:= (a+b+c)/2;). В Паскале, кроме того, разрешается присваивать кон- стантам имена и использовать эти имена в нужном месте программы вме- сто соответствующей константы. Такие "именованные" константы опреде- ляются в программе на Паскале в разделе определения констант (раздел const).
В Паскале стандартно определены две категории констант: числовые
и строковые. Их значения соответствуют стандартно существующим в
Паскале типам данных.
Рассмотрим основные виды числовых констант.
Целочисленные константы задают значения целого типа и могут быть представлены в десятичной или шестнадцатеричной форме. Призна- ком шестнадцатеричной формы записи служит знак $, который предше- ствует числу. Значение целочисленной константы должно находиться в диапазоне от минус 32768 до плюс 32767 в случае десятичной формы представления и в диапазоне от $0000 до $FFFF в случае шестнадцатерич- ной формы представления.
Примеры целочисленных констант: