Составные части программы записываются с помощью специальных ключевых слов.
Эти зарегистрированные слова являются индефикаторами, которые имеют специальное
значение для компилятора. Так, заголовок программы состоит из зарезервированного
слова Program, имени программы и заканчивается точкой с запятой. Имена, создаваемые
программистом, не должны совпадать с ключевыми словами.
Раздел описаний состоит из объявления всех элементов, которые будут использованы в
данной программе. Раздел описания данных может включать в себя следующие
подразделы:
· раздел описания меток;
· раздел описания констант;
· раздел описания типов;
· раздел описания переменных;
· раздел описания процедур и функций;
· раздел подключаемых библиотек (модулей).
Тело программы (раздел операторов) представляет собой последовательность операторов, необходимых для выполнения программы. Операторы должны отделяться друг от друга точкой с запятой. Раздел операторов по сути дела является составным оператором, и содержится между служебными словами BEGIN и END. Слово END и является концом программы. После него ставится точка.
Уроки C# (Для новичков) #3 — Структура программы
Основная программа представляет собой сложную программную структуру, включающую нужное количество подпрограмм и модулей. Подпрограммы осуществляют решения локальных задач, входящих в общий проект задачи. А модули — это независимые части, состоящие из комплекса отдельно хранимых и независимых подпрограмм и данных, логически связанных между собой и которые могут быть использованы в других программах.
Модуль в программировании представляет собой функционально законченный фрагмент программы, оформленный в виде отдельного Файла с исходным кодом. Модули могут объединяться в пакеты и, далее, в библиотеки. Часто говорят о модулях, как о библиотеках — наборах полезных подпрограмм, которые могут использоваться несколькими программами.
Однако у модуля есть еще одна функция — разбивать большую программу на составные части. В общем случае программа может иметь модульную структуру, т.е. состоять из нескольких программных единиц, связанных между собой командами передачи управления. Такой принцип построения программ называется модульным. Программная единица, с первой команды которой начинается выполнение программы, называется головной программой. Остальные программные единицы, входящие в единую программу, называются подпрограммами.
Напомним, что подпрограмма — это последовательность операторов, которые определены и записаны только в одном месте программы, однако их можно вызвать для выполнения из одной или нескольких точек программы.
Иначе говоря, повторяющаяся группа операторов оформляется в виде самостоятельной программной единицы — подпрограммы, записывается однократно, а в соответствующих местах программы обеспечивается лишь обращение к ней (ссылка). Использование аппарата подпрограмм позволяет сократить объем и улучшить структуру программы с точки зрения наглядности и читаемости, уменьшить вероятность ошибок и облегчить процесс отладки программы. Подпрограммы имеют структуру, аналогичную главной программе. Они содержат заголовок со специальным словом — признаком подпрограммы, имя и, при необходимости, списки передаваемых на обработку и получаемых из подпрограммы данных.
Основы программирования: структура программ
Кроме того, подпрограмма может быть рассмотрена как самостоятельный модуль (со своими входными и выходными данными), что позволяет использовать ее в общем, иерархическом подходе при конструировании алгоритма и программы по принципам нисходящего проектирования.
Подпрограммами можно разделить на две категории: процедуры и функции. Отличие функций от процедур:
1. Результат выполнения функции — одно значение, а процедуры — одно или несколько.
2. Результат выполнения функции — передается в основную программу как значение имени этой функции, а результат выполнения процедуры — как значения ее параметров.
Если подпрограмма только осуществляет действия над переменными, то такая подпрограмма называется процедурой. Процедуры отличаются от функций тем, что функции возвращают какое-либо значение, а процедуры — нет. Легко заметить схожесть структуры программы целиком и любой из ее процедур. Действительно, ведь и процедура и основная программа реализуют некий алгоритм, просто процедура не дает решения всей задачи. Отличие в заголовке и в знаке после End (а именно, знак;).
В теле подпрограммы-функции обязательно должна быть команда присвоения такого вида: : = ;. Указанное выражение должно приводить к значению того же типа, что и тип результата функции. Вызов функции должен входить в выражение. При вычислении значения такого выражения функция будет вызвана, действия, находящиеся в ее теле, будут выполнены, в выражение будет подставлено значение результата функции.

Рис. 1. Структура языка программирования высокого уровня
В общем случае структуру языка высокого уровня можно представить в виде следующего рисунка (рис. 1).
В заключение можно расширить определение языка высокого уровня.
Язык программирования высокого уровня — набор ключевых слов (словарь) и система правил (грамматических и синтаксических) для конструирования операторов, состоящих из групп или строк чисел, букв, знаков препинания и других символов, с помощью которых программисты могут сообщать компьютеру набор команд и строить программу.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.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
- Вконтакте
- Одноклассники
Научные статьи на тему «Структура программы»
Способы построения и структура программ
Способы построения учебных программ Практика и теория создания учебных программ выделяет два способа.
В отличие от концентрической структуры, при которой к начальной задаче возвращаются порой даже спустя.
несколько лет, в спиральной структуре нет перерывов такого типа.
Структура учебных программ I. ТИТУЛЬНЫЙ ЛИСТ Наименование образовательного учреждения.
с оценкой логической структуры учебного предмета.
Автор Жанна Хачатуровна Степанян
Источник Справочник
Категория Педагогика
Статья от экспертов
Структура компилятора одноразовой программы
Данной статье описывается структура компилятора для создания одноразовых программ (one-time program) из традиционных программ. В результате выполненного исследования сформулированы основные принципы работы компилятора, рассмотрена структура и способы взаимодействия компилятора с программно-аппаратной системой для контроля числа запуска программы.
Автор(ы) А. И. Стрелец
Е. А. Черникова
Л. В. Малков +1
Источник Международный журнал гуманитарных и естественных наук
Научный журнал
Структура простых программ, классы и процедуры
Определение 1 Структура простых программ — это специально определённые программистом части программного.
Данными могут быть константы, переменные, текстовые символы, числовые структуры, адресные компоненты.
переменных и структур.
Структура языка Паскаль В языке Паскаль программы пишутся с использованием прописных и строчных букв.
Структура простых программ Синтаксис программы содержит необязательный заголовок и блок.
Автор Оксана Богуцкая
Источник Справочник
Категория Информатика
Статья от экспертов
Преобразование структуры программы на этапе проектирования
В работе рассматривается преобразования структуры программного обеспечения (ПО) на стадии проектирования. Рассмотрение происходит в рамках функциональной парадигмы программирования с использованием расширения нотации UML для функционального анализа и проектирования [1].
Источник: spravochnick.ru