Структура программы что это

Структура программ

Под структурой программы понимаются предложения, необходимые для формирования законченной программы, и предложения, определяющие порядок выполнения команд в ней. Сначала рассмотрим предложения второго типа с целью ответа на вопрос: «Как можно управлять порядком выполнения команд в программе?»

КОМАНДА ПЕРЕХОДА (ПЕРЕДАЧИ УПРАВЛЕНИЯ)

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

CLEAR REGISTER 5 TO ZERO

READ FIRST NUMBER FROM DATA CARD

READ SECOND NUMBER

READ THIRD NUMBER

READ FOURTH NUMBER

READ LAST NUMBER

ADD IT TO THE SUM AND

PRINT THE FINAL TOTAL

Рис. 5.1. Вычисление суммы пяти чисел, вводимых с перфократ. последовательность команд

производит обмен содержимым между регистрами 4 и 5. Любой другой порядок выполнения этих команд (проверьте) не позволит добиться этой цели.

Основы программирования. 5. Структура программы [Финал]

Но во многих случаях желательно, чтобы команды выполнялись в несколько ином порядке, чем они написаны. Предположим, что требуется подсчитать сумму пяти чисел, набитых на картах. На рис. 5.1 представлен один из способов достижения этой цели, при этом регистр 5 используется для хранения частичных сумм чисел, считываемых последовательно в регистр 2 по команде RWD.

Такой способ сам по себе не так уже плох при условии, что для нас не составляет большого труда перфорация программы и в нашем распоряжении имеется достаточное количество машинной памяти. Но что, если необходимо вычислить сумму 100 чисел?

Теперь надо всего лишь организовать цикл, включающий команды ARи RWD; и выполнение этих команд будет возобновляться всякий раз, пока процессор не выйдет из цикла. Рис. 5.2 содержит блок- схему этого способа решения задачи. После ввода первого числа и вычисления частичной суммы мы снова возвращаемся к команде чтения карты. При этом используется безусловный переход, выполняющийся вне зависимости от каких-либо обстоятельств.

ВS2 Branch (unconditional) PC (счетчиккоманд) S2

При описании команды перехода мы указали лишь один операнд S(storage— память), снабдив его индексом 2. Это сделано потому, что данный операнд в соответствующей команде является вторым. S2 обычно представляет собой символическое имя команды, к выполнению которой мы хотим перейти. Итак, если мы хотим осуществить переход к выполнению команды с именем AGAIN, нужно написать

Рис. 5.2. Блок-схема вычисления суммы последовательности чисел, вводимых с перфокарт.

Результатом выполнения этой команды будет занесение адреса, соответствующего имени AGAIN, в счетчик команд. Таким образом, выполнение программы возобновляется, начиная с команды AGAIN.

На рис. 5.3 изображена программа, соответствующая блок-схеме 5.2. Используем следующие обозначения

SUM регистр 5

А регистр 2

Основы программирования: структура программ

Отметим, что мы решили задачу организации повторных выполнений вычислений; теперь нужно найти способ прервать их.

Можно возобновлять или нет выполнение некоторой группы команд (осуществляя переход на фиксированную ячейку памяти) в зависимости от результатов предыдущих вычислений, используя команды’ условного перехода. По команде условного перехода проверяется аппаратный индикатор, содержимое которого, называемое признаком результата, сравнивается с кодом, указанным в команде. Переход осуществляется только в случае соответствия кодов.

SR 5,5 START SUMАТ0

NEWNUM RWD 2 READ NEXTNUMBER

AR 5,2 ADD ITTO SUM

В NEWNUM GO BACK FOR MORE

Рис. 5.3. Программа вычисления суммы последовательности чисел, вводимых с перфокарт.

Например, в результате выполнения команды ARможет получиться отрицательное число, положительное число или 0 (ситуацию переполнения мы пока не будем рассматривать). Признак результата после выполнения команды ARуказывает, какой именно случай имел место. Если

то после выполнения команды

признак результата будет указывать, что результатом сложения является отрицательное число. Из известных нам команд SRи RWDвызывают установкупризнака результата подобным образом в соответствии со знаком результата. Остальные команды не влияют на его значение.

Признак результата сохраняет свое значение в промежутках между выполнением команд, изменяющих его. Если содержимое регистров то же, что в предыдущем примере, то признак результата будет указывать на положительный результат к началу выполнения команды ВОТ, а также команды ТОР, если выполняется следующая последовательность команд:

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

Сейчас нам достаточно рассмотреть 6 команд условного перехода. Другие возможности организации переходов обсуждаются в гл. 9.

BP S2 Branch on Plus PC S2, еслирезультат> О

Слово результат означает результат выполнения последней команды, меняющей признак результата. По команде ВР (ПЕРЕХОД ПО ПЛЮСУ) переход на S2 осуществляется в случае, если результат больше 0.

Рис. 5.4. Примеры применения команд условного перехода.

Команда BZ(ПЕРЕХОД ПО НУЛЮ) вызывает выбор следующей команды из ячейки с адресом S2, если результат выполнения последней команды, влияющий на признак результата, равен 0.

BM S2 Branch on Minus PC S2, еслирезультат< О

Команда ВМ (ПЕРЕХОД ПО МИНУСУ) вызывает выбор S2 в качестве следующей команды, если результат выполнения последней команды, изменяющей признак результата, меньше 0.

Обратимся теперь к рис. 5.4. Регистры содержат указанные числа перед началом выполнения каждой из четырех последовательностей команд. Какие команды выполняются по окончании каждой из последовательностей: YESили N0? В случае (а) сумма равна 00000012, т. е. положительна, поэтому по команде ВР осуществляется переход к выполнению YES.

В случае (б) также произойдет переход на команду YES, так как результат выполнения SRположителен, aLRне влияет на признак результата. В случае (в) после выполнения команды MRв регистре 8 устанавливается значение 00000000. В результате сложения получается положительное число, и следующей выполняется снова команда YES. Наконец, в случае (г) сумма равна 00000000, LCRне влияет на признак результата и переход осуществляется на команду с именем N0.

Во многих случаях переход необходимо осуществить, если результат какой-либо арифметической команды не является числом положительным (отрицательным, равным 0). Соответствующие команды условного перехода имеют вид

BNP S2BranchonNot Plus PC S2, результат 0

BNZ S2BranchonNot Zero PC S2, результат 0

BNM S2BranchonNotMinus PC S2, результат 0

При этом подразумевается, что любое число со знаком плюс больше 0 (0 — неположителен) и любое число со знаком минус — меньше 0

Статья 369 - Картинка 13

Рис. 5.5. Блок-схема программы вычисления cуммы пяти чисел.

L 9,=F’5′ FINAL VALUE OFLCOP COUNTER IN REG.9

L 7,=F’0′ STARTING VALUE OF LOOPCOUNTER IS 0

L 4,=F’1’INCREMENT FOR LOOP COUNTER IS 1

SR 5,5 START SUM AT 0

NEXTNUM RWD 2 READ A NUMBER

AR 5,2 ADD IT TO SUM

AR 7,4 INCREMENT LOOP COCNTER

Ln 8,9 MAKE A COPY OF FINAL COUNTER VALUE

SR 8.7 COMPUTE DIFFERENCE К-I

BM NEXTNUM GO BACK FOR MORE IF NOT DONE

Читайте также:
Программа дота что это

Рис. 5.6. Программа вычисления и печати суммы пяти чисел, вводимых с перфокарт.

(0 — неотрицателен). Например, по команде BNPпроизводится переход, если признак результата указывает, что последний меньше или равен 0.

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

На рис. 5.5. изображена блок-схема программы, вычисляющей сумму пяти чисел, набитых на перфокартах. На рис. 5.6 приведена соответствующая программа на языке ассемблера. В этой программе

SUM регистр5

А регистр 2

К регистр 9(контрольноезначение счетчика цикла)

I регистр 7(счетчик цикла)

Регистр 4 используется для хранения 1, прибавляемой каждый раз к счетчику цикла.

Команда сравнения и загрузки с установкой признака результата

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

Можно избежать этой неприятности, как это показано на рис. 5.6, сохраняя копию стираемого числа в некотором регистре (в данном случае копию К в регистре 8). В программе 5.6 перед сравнением счетчика цикла I, находящегося в регистре 7, с его конечным значением мы копируем содержимое регистра 9 в регистр 8.

Для сравнения выполняется команда

полученный признак результата используется командой перехода. Этот метод неудачен по крайней мере по двум причинам: используется лишний регистр для хранения копии К (а мы всегда заинтересованы в наиболее экономном использовании регистров) и выполняется команда

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

Команда CR (СРАВНЕНИЕ)

Устанавливает признак результата в соответствии со знаком (R1)—(R2)

производит вычитание (R2) из (R1) и устанавливает признак результата в соответствии с этой разностью. Но запись разности при этом не производится; таким образом, содержимое R1 остается неизменным.

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

После выполнения команды

и признак результата соответствует положительному числу.

получает ту же разность и тот же признак, но сохраняет старое содержимое регистров

На рис. 5.7 приведена программа рис. 5.6, модифицированная использованием команды CR. Теперь не нужно копировать содержите регистра 9 в регистр 8 и, значит, ни к чему выполнять команду

FINAL VALUE OF LOOP COUNTER IN REG 9

STARTING VALUE OF LOOP COUNTER IS 0

INCREMENT FOR LOOP COUNTER IS 1

Источник: itteach.ru

Лекции / Глава 2. Структура программы

Для наглядности разберем простой корректный стэйтмент присваивания х = 2 + 3; . Здесь мы вычисляем результат сложения чисел 2 + 3, который затем присваиваем переменной х . В языках программирования стэйтменты объединяются в блоки — функции. Функция — это последовательность стэйтментов.

Каждая программа в C++ должна содержать главную функцию main() (в C# — функцию Main() ). Именно с первого стэйтмента, находящегося в функции main() , и начинается выполнение всей программы. Функции, как правило, выполняют конкретное задание.

Например, функция max() может содержать стэйтменты, которые определяют большее из заданных чисел, а функция calculateGrade() может вычислять среднюю оценку студента по какой-либо дисциплине. Библиотека — это набор скомпилированного кода (например, функций), который был «упакован» для повторного использования в других программах.

С помощью библиотек можно расширить возможности программ. §2.2 Структура программы на С++ С++ — компилируемый язык. Это означает, что для запуска программы сначала необходимо транслировать ее из текстовой формы, понятной для человека, в форму, понятную для машины. Эту задачу выполняет особая программа, которая называется компилятором. То, что вы пишете и читаете, называется исходным кодом или исходным текстом программы, а то, что выполняет компьютер, называется выполняемым , объектным или машинным кодом . Обычно файлы с исходным кодом программы на языке С++ имеют суффикс .срр (например, hello_world.cpp) или .h (например, std_lib_facilities.h), а файлы с объектным кодом имеют суффикс .obj (в Windows) или .о (в Unix). Следовательно, простое слово код является двусмысленным и может ввести в заблуждение: его следует употреблять с осторожностью и только в ситуациях, 3

когда недоразумение возникнуть не может. Если не указано иное, под словом код подразумевается «исходный код» или даже «исходный код за исключением комментариев», поскольку комментарии предназначены для людей и компилятор не переводит их в объектный код. Компилятор читает исходный код и пытается понять, что вы написали.

Он проверяет, является ли программа грамматически корректной, определен ли смысл каждого слова. Обнаружив ошибку, компилятор сообщает о ней, не пытаясь выполнить программу. Рассмотрим стандартную программу «Hello, world!»: Листинг 2.1.

1 #include
2 int main()
3
4 std::cout
5 return 0;
6 >

Эту программу можно разделить на 2 части: директивы препроцессора, которые начинаются с символа # , и основную часть программы, которая начинается с определения сигнатуры главной функции int main() . §2.2.1 Директива препроцессора #include Как и предполагает название, препроцессор – это инструмент, который запускается перед фактическим началом компиляции. Директивы препроцессора – это команды препроцессору, они всегда начинаются со знака «решетка» (#). В строке 1 листинга 2.1. директива #include указывает препроцессору взять содержимое файла (в данном случае – iostream ) и включить его в строку, где расположена директива. iostream – это стандартный файл заголовка, который включается потому, что она содержит определение объекта потока вывода данных cout , используемого в строке 4 для вывода на экран сообщения «Hello, World!». 4

Компилятор смог откомпилировать строку 4 только потому, что мы заставили препроцессор включить определение объекта потока cout в строке 1. §2.2.2 Тело программы – функция main() После директив препроцессора следует тело программы, расположении в функции main() . Исполнение программы С++ всегда начинается здесь, поэтому функцию main() часто называют точкой входа в программу . По стандартному соглашению, перед функцией main() указывается тип int . Тип int в данном случае – это тип данных возвращаемого значения функции main() . Всё, что находится между открывающей фигурной скобкой в строке 3 и закрывающей фигурной скобкой в строке 6, — считается содержимым функции main() . Рассмотрим подробнее строку 4, выполняющую задачу программы, представленной в листинге 2.1. cout («console-out» — вывод на консоль, произносится как «си-аут») – оператор, выводящий на экран строку «Hello, World!» . cout – это поток, определенный в стандартном пространстве имен (поэтому и указывается std::cout) , а то, что мы делаем – это помещаем текст строки Hello, World! в данный поток, используя оператор вывода в поток

возвращающая целое число. Традиционно программисты возвращают значение 0 в случае успешного выполнения программы и -1 в случае ошибки.

Язык С++ чувствителен к регистру. Поэтому готовьтесь к неудаче компиляции, если напишете Int вместо int , Void вместо void и Std::Cout вместо std::cout . §2.2.3 Концепция пространства имен Пространства имен – это множество, в рамках которого определяются различные идентификаторы (имена типов, функций, переменных и т. д.).

Пространства имен используются для организации кода в виде логических групп и с целью избежания конфликтов имен, которые могут возникнуть, особенно в таких случаях, когда база кода включает несколько библиотек. Все идентификаторы в пределах пространства имен доступны друг другу без уточнения. Чтобы избежать конфликта имен, разрешается также объявлять собственные пространства имен через ключевое слово namespace . Всё, что объявлено внутри пользовательского пространства имен, — принадлежит только этому пространству имен. Для того, чтобы указать компилятору место поиска идентификатора в определенном пространстве имен необходимо использовать название необходимого пространства имен вместе с оператором разрешения области видимости ( :: ) и требуемым идентификатором. Причина использования в программе синтаксиса оператора std::cout , а не просто cout , в том, что используемый элемент ( cout ) находится в стандартном пространстве имен ( std ). При вызове оператора std::cout вы указываете компилятору использовать именно тот объект, который доступен в стандартном пространстве имен std . В этом пространстве объявлена вся стандартная библиотека С++. Многие программисты находят утомительным регулярный ввод в коде спецификатора при использовании оператора cout и других подобных 6

Читайте также:
Программа пдс что это

элементов, содержащих в том же пространстве имен. Объявление using namespace std; , представленное в листинге 2.2, позволит избежать этого повторения.

Листинг 2.2.
1 #include
2 int main()
3
4 //Указать компилятору пространство имен для поиска
5 using namespace std;
6 cout
7 return 0;
8 >

Сообщив компилятору, что предполагается использование пространство имен std , можно не указывать пространство имен явно в строке 6. §2.2.4 Комментарии в коде С++ Строка 4 листинга 2.2 содержит текст на человеческом языке, но программа все равно компилируется. Она также не влияет на вывод программы. Такая строка называется комментарием.

Комментарий – это способ размещения произвольного текста внутри кода программы. Комментарии игнорируются компилятором и обычно используются программистами для объяснений в коде. Различают два вида комментариев: 1. Символ // означает, что следующая строка – комментарий.

Например: // Это комментарий 2. Текст, содержащийся между символами /* и */, также являются комментариями, даже если он занимает несколько строк. Например: /* Это комментарий, Занимающий 2 строки /* 7
§2.2.5 Функции в С++ Функция — это последовательность стэйтментов для выполнения определенного задания. Часто ваши программы будут прерывать выполнение одних функций ради выполнения других.

Вы делаете аналогичные вещи в реальной жизни постоянно. Например, вы читаете книгу и вспомнили, что должны были сделать телефонный звонок. Вы оставляете закладку в своей книге, берете телефон и набираете номер. После того, как вы уже поговорили, вы возвращаетесь к чтению: к той странице, на которой остановились. Программы в C++ работают похожим образом.

Иногда, когда программа выполняет код, она может столкнуться с вызовом функции. Вызов функции — это выражение, которое указывает процессору прервать выполнение текущей функции и приступить к выполнению другой функции. Процессор «оставляет закладку» в текущей точке выполнения, а затем выполняет вызываемую функцию. Когда выполнение вызываемой функции завершено, процессор возвращается к закладке и возобновляет выполнение прерванной функции. Функция, в которой находится вызов, называется caller , а функция, которую вызывают — вызываемая функция , например, Листинг 2.3.

1 #include // для cout и endl
2 // Объявление функции doPrint(), которую мы будем
вызывать
3 void doPrint()
4 cout
5 >
6 // Объявление функции main()
7 int main()
8
8
9 using namespace std;
10 cout
doPrint(); // прерываем выполнение main() вызовом
11 функции doPrint(). main() в этом случае является
caller-ом
12 cout
13 return 0;
14 >
Результат выполнения программы:

Starting main() In doPrint() Ending main() В строке 3 находится объявление функции (function declaration), которое в основном указывает компилятору, что вы хотите создать функцию по имени doPrint() . Тип возвращаемого значения void указывает компилятору, что функция не возвращает никакое значение , а лишь производить манипуляции над данными. Далее, в строках 3-5, следует определение функции (function definition), т.е. ее реализация.

Программа, представленная в листинге 2.3., начинает выполнение с первой строки функции main() , где выводится на экран следующая строка: Starting main(). Вторая строка функции main() вызывает функцию doPrint() . На этом этапе выполнение стэйтментов в функции main() приостанавливается и процессор переходит к выполнению стэйтментов внутри функции doPrint() . Первая (и единственная) строка в doPrint() выводит текст In doPrint(). Когда процессор завершает выполнение doPrint() , он возвращается обратно в main() к той точке, на которой остановился. Следовательно, следующим стэйтментом является вывод строки Ending main(). 9

Обратите внимание, для вызова функции нужно указать её имя и список параметров в круглых скобках (). В примере выше параметры не используются, поэтому круглые скобки пусты.

Поэтому круглые скобки при объявлении функции опускать нельзя. §2.2.6 Простые операторы ввода std::cin и вывода std::cout Ваш компьютер позволяет взаимодействовать с выполняющимися на нем приложениями разными способами, а также позволяет этим приложениям взаимодействовать с вами разными способами. Вы можете взаимодействовать с приложениями, используя периферийные устройства – клавиатуру или мышь.

Рассмотрим самую простую форму ввода и вывода на языке С++ — использование консоли для отображения или ввода информации. Для записи простых тестовых данных на консоль используется оператор std::cout (произносится как standard see-out – «стандарт си-аут») и оператор std::cin (произносится как standard see-in – «стандарт си-ин») для чтения текста и чисел с консоли (как правило, с клавиатуры). Фактически при отображении слов Hello World на экране в листинге 2.1 вы уже встречались с оператором cout : std::cout << «Hello World» << std::endl; Здесь оператор cout сопровождается оператором вывода << (позволяющим вставить данные в поток вывода), который подлежит выводу строковым литералом «Hello World» и символом новой строки в форме оператора std::endl (произносится как standard endline (стандарт енд-лайн)). Применение оператора cin сопровождается указанием переменной, в которую следует поместить вводимые данные: std::cin >> ПЕРЕМЕННАЯ; Оператор сопровождается оператором извлечения значения (данные извлекаются из входного потока) и переменной, в которую следует поместить данные. Если вводимые данные, разделенные пробелом, стоит хранить в двух переменных, то можно использовать один оператор: 10

Источник: studfile.net

Структура программы

[program structure] общая схема построения программы, рассматривающая ее составные компоненты (программные блоки) и взаимосвязи между ними.

  • Telegram
  • Whatsapp
  • Вконтакте
  • Одноклассники
  • Email

Еще термины по предмету «Программирование»

Каталог (директория, папка)

оглавление файлов (доступен пользователю через командный язык операционной системы).

Системы программирования

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

end

оператор завершения любой программной единицы ФОРТРАНа.

Похожие

  • Программа
  • Структуры
  • Структура
  • Социальные программы
  • Офис программы
  • Программа проектов
  • Программа атласа
  • Программа карты
  • Прикладная программа
  • Сервисная программа
  • Учебная программа
  • Программа аудита
  • Программа наблюдения
  • Программа испытаний
  • Государственная программа
  • Музейнопедагогическая программа
  • Программа выпуска
  • Программа реализации
  • Облигационная программа
  • Программа-анкета

Научные статьи на тему «Структура программы»

1. Способы построения и структура программ

Способы построения учебных программ Практика и теория создания учебных программ выделяет два способа.
В отличие от концентрической структуры, при которой к начальной задаче возвращаются порой даже спустя.
несколько лет, в спиральной структуре нет перерывов такого типа.
Структура учебных программ I. ТИТУЛЬНЫЙ ЛИСТ Наименование образовательного учреждения.
с оценкой логической структуры учебного предмета.

Источник:
Справочник
Категория:
Педагогика
Статья от экспертов

2. Структура компилятора одноразовой программы

Данной статье описывается структура компилятора для создания одноразовых программ (one-time program) из традиционных программ. В результате выполненного исследования сформулированы основные принципы работы компилятора, рассмотрена структура и способы взаимодействия компилятора с программно-аппаратной системой для контроля числа запуска программы.

Авторы:
А. И. Стрелец
Е. А. Черникова
Л. В. Малков +1
Источник:
Международный журнал гуманитарных и естественных наук
Научный журнал

3. Структура простых программ, классы и процедуры

Определение 1 Структура простых программ — это специально определённые программистом части программного.
Данными могут быть константы, переменные, текстовые символы, числовые структуры, адресные компоненты.
переменных и структур.
Структура языка Паскаль В языке Паскаль программы пишутся с использованием прописных и строчных букв.
Структура простых программ Синтаксис программы содержит необязательный заголовок и блок.

Читайте также:
Что за программа макромайн

Источник:
Справочник
Категория:
Информатика
Статья от экспертов

4. Преобразование структуры программы на этапе проектирования

В работе рассматривается преобразования структуры программного обеспечения (ПО) на стадии проектирования. Рассмотрение происходит в рамках функциональной парадигмы программирования с использованием расширения нотации UML для функционального анализа и проектирования [1].

Авторы:
Борисенков Д.С.
Источник:
Перспективы развития информационных технологий
Научный журнал

Повышай знания с онлайн-тренажером от Автор24!

  • Напиши термин
  • ✍️ Выбери определение из предложенных или загрузи свое
  • Тренажер от Автор24 поможет тебе выучить термины, с помощью удобных и приятных карточек

Нужна помощь с работой?

Более 1 000 000 студентов получили ответ на свой вопрос. Эксперты Автор24 помогут и тебе!

Работаем по будням с 10:00 до 20:00 по Мск

  • Лекторий
  • Справочник терминов
  • Методические указания
  • Справочник рефератов
  • Калькуляторы
  • Магазин готовых работ
  • Для правообладателей
  • Сервис помощи студентам
  • Психологическая помощь
  • Партнерская программа
  • Работа для репетиторов
  • Работа для преподавателей
  • Последние статьи

Мы принимаем:

Стикер: корги смотрит почту

Возможность создать свои термины в разработке

Еще чуть-чуть и ты сможешь писать определения на платформе Автор24. Укажи почту и мы пришлем уведомление с обновлением ☺️

Источник: spravochnick.ru

Структура программы в Pascal

Любая программа, написанная на языке Pascal состоит из заголовка программы и некоторого блока. Блок содержит раздел описаний, в котором определяются все локальные по отношению к данной программе объекты, и раздел операторов. Он задает действия, которые необходимо выполнять, над этими объектами.

program имя программы; uses Label . . . ; Const . ; . ; Type = ; Var :; Function . ; Procedure . ; begin . ; . ; end.

В имени программы нельзя использовать какие-либо предописанные имена (зарезервированные слова). Они используются в программе только в том значении, которое зафиксировано для них разработчиками языка Pascal. Ниже приведен список таких слов.

and end nil set
array file not then
begin for of to
case function or type
const goto packed until
div if procedure var
do in program while
downto label record with
else mod repeat

Пример правильного написания заголовка:

program Perimetr; program Phone37; program one_two_3;

Пример неправильного написания заголовка:

program 9zet; program Samara-63; program repeat;

Label — раздел описания меток

Любой оператор программы можно маркировать, поставив перед ним через двоеточие метку, тем самым появляется возможность ссылаться на эту метку при помощи оператора перехода goto . Однако такая метка, прежде чем она будет использована, должна быть описана в разделе описания меток. Этот раздел начинается со слова Label .

Имя метки может включать в себя буквы английского алфавита, цифры и знак подчеркивания. При этом, в отличии от имени программы метка может начинаться с цифры, да и вообще состоять только из цифр, но это число должно представлять собой целое число без знака, лежащее в диапазоне от 0 до 9999.

Пример правильного написания меток:

label 13, 00100, 99, qwerty, x_y;

Раз уж разговор зашел про метки, то нужно сказать, что использование меток и оператора перехода goto не желательно при написании программы на Pascal. Применять его стоит только в необычных, исключительных ситуациях, когда приходится нарушать естественную структуру алгоритма. Частое появление в программе на Pascal оператора перехода свидетельствует о том, что программист еще не научился думать на Pascal.
Этот раздел необязателен, если у вас в программе не используются метки.

Const — раздел определения констант

Константы — это величины, которые не меняют своих значений в процессе выполнения программы. Допустим, в вашей программе часто приходится оперировать с числом 3,14 (число Пи). Чтобы каждый раз не вводить это число, мы определяем константу с именем Pi и в вычисления уже подставляем ее.

Использование имен констант делает программу более «читаемой» и способствует улучшению ее документируемости. Кроме того, это позволяет программисту сгруппировать в начале программы величины, зависящие от машины или характерные для данного примера: здесь они более заметны и их легче изменить. Тем самым улучшается переносимость программ и их модульность.

Начинается данный раздел со служебного слова Const . Далее идут описания констант, каждое из которых начинается с имени константы, затем идет символ = (равенство), после чего пишется константа или выражение, составленное из констант. Завершается каждое описание точкой с запятой.

Const = ;

Константа может иметь только предопределенный (стандартный) тип данных. Тип присваивается константе по внешнему виду значения и в соответствии с этим типом отводится память для хранения значения константы.

В качестве расширения стандартного Паскаля разрешено использовать выражения, составленные из ранее определенных констант и некоторых стандартных функций: Abs, Chr, Hi, Length, Lo, Odd, Ord, Pred, Prt, Round, SizeOf, Succ, Swap, Trunc . Константные выражения вычисляются компилятором без выполнения программы на этапе ее создания. Пример:

const Avogadro = 6.023Е23; PageLength = 60; MyMove = True; stroka = ‘abcdefg’; Min = 0; Max = 250; Centr = (Max-Min) div 2; Beta = Chr(225); NumChars = Ord(‘2’) — Ord(‘A’)+l;
Этот раздел также необязателен, если у вас в программе не используются константы.

Type — раздел описания типов

Помимо стандартных типов данных в Pascal (Real, Integer, Boolean, Char) пользователь может задать новые типы. Структура раздела описания типов имеет вид:

Type = ; = ; … = ;

Имя типа представляет собой идентификатор, который может употребляться в других типах, описанных вслед за данным типом. Вообще, новые типы можно определять и в разделе переменных Var, поэтому можно обойтись без этого раздела. Приведу несколько примеров описания типов:

Type Year = 1800.. 2015; Alfavit = (‘А’, ‘B, ‘C’, ‘T, ‘L’); Matrica = array[1..12, ‘А’.. ‘Z’] of real;

Var — раздел описания переменных

Этот раздел является обязательным. Переменные отличаются от констант тем, что им можно присваивать новые значения при исполнении программы. Любая переменная, которая будет использована в программе должна быть описана. Что включает в себя описание переменной? Это значит, что переменной должен быть присвоен какой-либо тип данных, который характеризует множество значений, которые может принимать объект; множество операций, которые могут применяться к объекту; размер памяти, занимаемый объектом.

Начинается этот раздел с предописанного слова var . Следом идут описания переменных, каждое из которых начинается со списка имен переменных, разделяемых запятыми, затем идет символ : (двоеточие), затем указывается тип этих переменных. Завершается каждое описание точкой с запятой.

Структура раздела имеет вид:

Тип переменных представляет собой имя (идентификатор), описанный в разделе TYPE при явном описании типа, или собственно описание типа в случае его неявного задания. Примеры описания переменных:

Var Year: 1800.. 2000; А, В, C: Real; Istina: Boolean; Stroka: Char; I, J, К: Integer;

Function, Procedure — раздел описаний процедур и функций

В разделе Function и Procedure описываются пользовательские процедуры и функции, если таковые имеются. Если их нет, то этот раздел не обязателен в программе.

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

Структура раздела имеет вид:

Procedure (); Begin End; Function (): ; < заголовок > Begin End;

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

Источник: program4you.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru