Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интегрирование Глава 3.doc
Скачиваний:
3
Добавлен:
12.11.2018
Размер:
986.62 Кб
Скачать
        1. Заголовок программы

Заголовок (шапка) – начальная часть программы, предназначенная для выполнения некоторых вспомогательных операций до начала основных вычислений.

Заголовок содержит последовательность основных элементов (рис. 3.11).

Рис. 3.11. Структура заголовка программы

Комментарий – строка (строки) символов, подлежащих распечатке в тексте программы (исходном модуле).

Структура комментария:

/* текст */

, где текст – последовательность символов, создающих комментарий;

/* */ – ограничители комментария.

Комментарии могут быть заголовочными и внутренними.

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

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

  • Внимание! Комментарий, в отличие от символьной строки, улучшает понимание текста программы, а не результатов ее выполнения.

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

Рассмотрим варианты выполнения комментариев.

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

/* Это строчный комментарий */

Примеры многострочных комментариев представлены в табл. 3.17.

Таблица 3.17

Трёхстрочный оформленный

одним

Трёхстрочный неструктурированный

Трёхстрочный

структурированный

/*Три строки – один

комментарий */

/* Три строки */

/* – */

/* один комментарий */

/* Три строки */

/* – */

/* один комментарий */

Первый (левый) вариант может использоваться только в самостоятельных строках (не содержащих операторов).

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

На основании изложенного выполним структурированный вариант конкретного заголовочного комментария:

/* Программа расчёта площади прямоугольника */

/* Линейный вычислительный процесс */

/* Разработал студент гр. А031 Юдин С.П. */

/* Дата последней модификации 12.11.2004 */

Его сокращённый вариант может иметь вид:

/* Расчёт площади прямоугольника. Линейный процесс. */

/* Разработал студент гр. А031 Юдин С.П. */

Внутренние комментарии также выполняются несколькими вариантами:

  • оформленным отдельной строкой, например

/* Формирование ввода-вывода исходных данных */

scanf(…

printf(…

  • записанным после оператора, например

int p; /* счетчик числа посетителей */

  • завершающим операторы, например

int k; /* описатели */

float x, y; /* переменных */

Директива препроцессора – указание (команда), предписывающая препроцессору выполнение конкретных действий.

  • Внимание! Область действия директив – от точки их расположения до конца программы (файла).

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

Характерный признак директивы – специальный символ (#), указываемый перед ней. Между знаком # и названием директивы могут располагаться пробелы.

Наиболее распространены два вида директив;

  • включающие;

  • заменяющие (подставляющие).

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

Структуры включающей директивы:

# include “СВФ”

# include <СВФ>

, где # – символ директивы;

include – название директивы (ключевое слово «включить»);

СВФ – спецификация внешнего заголовочного файла, включаемого в программу;

“ ” (< >) – ограничители СВФ.

Директива предписывает препроцессору включение в точке её расположения содержимого файла с указанной СВФ.

Ограничители < >, предписывают поиск заголовочного файла в стандартных каталогах. Ограничители “ ”, определяют начало поиска с каталога программ пользователя и продолжение поиска в стандартных каталогах.

В качестве СВФ, в большинстве случаев, используется структура:

имя.h

, где имя – идентификатор заголовочного файла;

h – тип (расширение имени) внешнего файла;

. – разделитель имени и типа.

Например, в качестве директив препроцессора могут использоваться:

П

# include <stdio.h>

# include <stdlib.h>

# include <math.h>

# include "max.h"

ервая директива предписывает в исходный модуль включить файл с именем stdio (объявления функций стандартного ввода-вывода), вторая – stdlib (объявления стандартных функций), третья – math (объявления математических функций).

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

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

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

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

В частности файл stdio.h содержит объявления функций необходимых при решении любых задач:

scanf – форматный ввод с клавиатуры;

printf – форматный вывод на экран;

fprintf – форматный вывод в поток.

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

Структура директивы:

#define имя значение

, где # – символ директивы;

define – название директивы (ключевое слово «заменить»);

имя – идентификатор переменной;

значение – константа, заменяющая указанную именем переменную.

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

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

Например, директива

#define PI 3.1416

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

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

Описатели переменных подробно рассмотрены в разд. 3.5.2.3.

Рассмотрим некоторые дополнительные сведения. В языке Си/Си++ с каждым операндом связывается область действия – часть программы, в которой этот операнд доступен. Область действия зависит от расположения описателя операнда в программе.

Переменные, в зависимости от места описания в программе, делятся на глобальные (внешние) и локальные (внутренние).

Глобальные – переменные, описанные в заголовке программы, т.е. доступные в пределах всей программы (ее исходного модуля).

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

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

Они характеризуются «локальным» временем жизни, т. е. им выделяются новые ячейки памяти при каждом входе в блок (функцию), в котором они объявлены.

Идентификаторы локальных переменных рекомендуется записывать строчными буквами.