Тело функции заключается в операторные скобки <>, и содержит описание локальных данных и операторы функции.
где, тип_результата – это тип того значения, которое функция должна вычислить (если функция не должна возвращать значение, указывается тип void);
имя_функции – имя, с которым можно обращаться к этой функции;
параметры – список её аргументов (может отсутствовать).
Точка с запятой (;) является разделителем между описаниями и операторами.
Директивы процессора
Понятие препроцессора является одним из ключевых в языке С++.
Препроцессор – это программа, действующая как фильтр на этапе компиляции.
Исходная программа => Препроцессор => Расширенная исходная программа => Компилятор
Перед тем, как попасть на вход компилятора, исходная программа проходит через препроцессор.
Основному тексту программы предшествуют директивы препроцессора (preprocessor directive), которые начинаются с символа решётки #, не являются выражением языка С++ (и потому не заканчивается точкой с запятой).
Из чего состоит программа? Алгоритмический язык.
Команды (директивы) препроцессора представляют собой инструкции, записанные в исходном тексте программы, используемые для того, чтобы облегчить модификацию программ и сделать их независимыми от особенностей различных реализаций компилятора.
Например: Директивы могут быть записаны в любом месте исходного файла, но их действие распространяется только от точки программы, в которой они записаны, до конца исходного файла.
Файлы, которые появляются в директивах, обычно заканчиваются на .h, что означает файл заголовков (header file). Файлы заголовков содержат объявления констант, переменных и функций, необходимы для работы программы.
Директива #include
Директива препроцессора #include позволяет включать в текст программы, написанной программистом, тексты других программ.
Эта директив имеет две формы записи: В случае, когда имя_включаемого_файла (файла включений) записывается в угловых кавычках, то поиск этого файла осуществляется в стандартных системных каталогах (каталоге подключаемых файлов (include directory), то есть в месте, где компьютерная система хранит все доступные для использования файлы заголовков).
Например: Если же имя_включаемого_файла указано в кавычках, то сначала поиск осуществляется в текущем каталоге и лишь затем в системных. Имя_включаемого_файла может также содержать полный путь для его поиска, что наблюдается редко, так как это предполагает жёсткую связь программы с конфигурацией файловой системы конкретной ЭВМ.
Пример:
Директивы #define, #undef
Директива препроцессора #define позволяет заменять все вхождения указанного идентификатора какой-то определенной последовательностью символов.
Удобно использовать для объявления и определения констант, когда одно и то же значение (например, длина массива) используется в разных местах программы. Например: В результате препроцессорной обработки получится следующий текст программы: Изменив значение lin_arr на любое другое только в директиве #define, автоматически изменятся и длина массива, и условие окончания цикла.
Неделя 1: 2 Что из себя представляет любая программа; Алгоритм, входные и выходные данные
Также удобно использовать директиву #define для определения и описания функций (func — функция, выбирающая минимальное из двух чисел):
На экран будет выведено: 4.5
Директива #undef отменяет действие идентификаторов, определенных директивой #define: Например: После препроцессорной обработки фрагмент будет иметь вид:
Поделиться
- Получить ссылку
- Электронная почта
- Другие приложения
Источник: statelycode.blogspot.com
Лекция №4. Структура программы, ее основные разделы и их назначение
Программа реализует алгоритм решения задачи, т.е. представляет собой конечную совокупность действий, выполняемых над определенными данными с помощью определенных операций, приводящих к решению задачи.
Основные характеристики программы:
· точность полученного результата;
· время выполнения программы;
· объем требуемой памяти;
О соответствии этих показателей решаемой задаче и возможностям ЭВМ должен позаботится сам программист. Ограничения по объему памяти и времени выполнения носят менее жесткий характер.
Программа на языке ТР состоит из строк, максимальная длина которой не должна превышать 127 символов. Если строка содержит более 127 символов, то все лишние символы игнорируются компилятором. Для Delphi явных ограничений нет.
Программист, набирая текст программы, может располагать строки на экране произвольным образом, достигая тем самым наибольшей читабельности программы. Количество операторов в строке также произвольно.
Размер программы на ТР имеет предел. Редактор текстов и компилятор позволяют обрабатывать программы и библиотечные модули объемом до 64 Кбайт. Если программа требует большего количества памяти, следует использовать библиотечные модули (.TPU-файлы) или оверлейные структуры. Для Delphi явных ограничений нет, т. к. проблема решается использованием модулей.
Структура консольных (программ, написанных с использованием процедур Read, Readln и Write, Writeln) и оконных приложений имеет как общие черты, так и различия.
В любом случае программа состоит из двух основных частей: описательной (описания данных, с которыми оперируют действия) и исполнительной (описания последовательности действий, которые необходимо выполнить).
Действия представляются операторами языка, данные вводятся посредством описаний и определений.
Описания данных предшествуют описанию действий и должны содержать упоминание всех объектов, используемых в действиях (операторах).
Совокупность описаний и определений и следующая за ним последовательность операторов называется блоком. Блок может содержать в себе другие блоки.
Блок, который не входит ни в какой другой блок, называется глобальным. Если в глобальном блоке находятся другие блоки, они называются локальными.
Глобальный блок – это основная программа, он должен присутствовать в любом случае. Локальные блоки – это процедуры и функции, их присутствие необязательно.
Объекты программы (типы, переменные, константы и т.д.) соответственно называются глобальными и локальными. Область действия объектов – блок, где они описаны, и все вложенные в него блоки. Блочная структура обеспечивает структурный подход к написанию программ. В идеальном случае программа на языке ОР состоит из процедур и функций, которые вызываются для выполнения из раздела операторов основной программы.
Параметрами программы обычно являются стандартные идентификаторы стандартных файлов ввода-вывода Input, Output. Как правило, они используются как параметры, принятые по умолчанию.
Источник: studopedia.su
Структура программы
Хотим мы того или нет, но мы уже подошли к моменту, когда надо разобраться со структурой программы. Поскольку в своих экспериментах мы используем Паскаль, то это будет структура программы на Паскале. В других языках программирования структура может немного отличаться, но суть, как правило, остаётся похожей.
Program ; Label ; Const ; Type ; Var ; Procedure (Function) ; Begin ; End.
Программа состоит из заголовка программы и тела программы, за которым следует точка. Тело программы содержит раздел описаний (объявлений) и раздел операторов.
Зарезервированные слова (иногда их ещё называют ключевыми или служебными) – это слова, которые в Паскале имеют строго определённое значения. Эти слова нельзя использовать для других целей. Список зарезервированных слов вы можете найти в справочной системе Free Pascal.
Раздел Const содержит объявления констант.
Раздел Type содержит объявления пользовательских типов данных.
Раздел Var содержит объявления переменных.
Раздел Label содержит объявления меток. Метки — это ещё не знакомые вам элементы языка. Использование меток в современных программах на языках высокого уровня считается дурным тоном. Поэтому я не буду в ближайшем будущем рассказывать о метках. Может быть когда-нибудь… Но не сегодня и не завтра.
Разделы Const, Type, Var, Label могут следовать друг за другом в любом порядке. Однако по разным причинам лучше придерживаться порядка, указанного выше.
В разделе подпрограмм описываются процедуры и функции, используемые в программе. В разделе операторов располагается текст самой программы. Более подробно о подпрограммах мы будем говорить далее. А пока посмотрите листинг 18.1, в котором приведена программа, использующая все элементы рассмотренной выше структуры.
Листинг 18.1. Структура программы на Паскале.
Program prog; Label myLabel; Const myConst = 0; Type myType = byte; Var myVar : myType; Function myFunc: byte; begin end; Procedure myProc; begin end; Begin End.
Эта программа не выполняет никаких полезных действий, однако её можно откомпилировать и запустить на выполнение.
Как видите, в теле программы нет ничего. Однако программа компилируется без ошибок и нормально работает (точнее, нормально ничего не делает))).
Домашнее задание:
Разобраться со структурой программы.
Догадаться, почему после слов Function и Procedure следуют слова begin и end.
Догадаться, почему после слова End в процедуре и в функции ставится точка с запятой, а не точка.
Источник: info-master.su