Что значит структура программы

7.1. ПОНЯТИЕ СТРУКТУРЫ ПРОГРАММЫ

7.1. ПОНЯТИЕ СТРУКТУРЫ ПРОГРАММЫ

Структура программы — искусственно выделенные программистом взаимодействующие части программы. Использование рациональной структуры устраняет проблему сложности разработки; делает программу понятной людям; повышает надежность работы программы при сокращении срока ее тестирования и сроков разработки вообще.

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

Описание подпрограммы (функции или процедуры) состоит из двух частей: заголовка и тела. Заголовок содержит идентификатор подпрограммы. Тело состоит из одной или нескольких инструкций. Идентификатор подпрограммы используется в качестве сокращенной записи в тех местах программы, где встречается соответствующая последовательность инструкций.

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

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

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

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

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

Если видеть в поэтапной декомпозиции и одновременном развитии и детализации программы постепенное продвижение вглубь, то такой метод при решении задач можно охарактеризовать как нисходящий (сверху вниз). И наоборот, возможен такой подход к решению задачи, когда программист сначала изучает имеющиеся в его распоряжении вычислительную машину и/или язык программирования, а затем собирает некоторые последовательности инструкций в элементарные процедуры, типичные для решаемой задачи. Элементарные процедуры затем используются на следующем уровне иерархии процедур. Такой метод перехода от примитивных машинных команд к требуемой реализации программы называется восходящим (снизу вверх).

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

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

Читайте также

Понятие о стилях CSS

Понятие о стилях CSS Для создания представления Web-страниц предназначена технология каскадных таблиц стилей (Cascading Style Sheets, CSS), или просто таблиц стилей. Таблица стилей содержит набор правил (стилей), описывающих оформление самой Web- страницы и отдельных ее фрагментов. Эти

1.4.8. Понятие о монтировании

1.4.8. Понятие о монтировании Особого внимания заслуживает операции монтирования. На вашем жестком диске, кроме Linux-разделов, есть разделы других операционных систем (например, Windows). Для того чтобы получить доступ к файлам, находящимся в этих разделах, вам нужно

Понятие об ODS

55. Понятие системы VВА

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

Понятие выделения

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

Понятие шаблона

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

5. Понятие индексов

5. Понятие индексов Создание ключей в базовых отношениях автоматически связано с созданием индексов.Дадим определение понятия индекса.Индекс – это системная структура данных, в которой размещается обязательно упорядоченный перечень значений какого-либо ключа со

Понятие текстуры

Понятие текстуры Бытует мнение, что текстура — это изображение, накладываемое на трехмерную модель. Данное утверждение совершенно не верно. Изображение, накладываемое на модель в рамках текстуры, называется картой (Map), понятие же текстуры — шире.Текстура в 3ds Max

9.1. Понятие о моделях

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

4.1. ПОНЯТИЕ СТРУКТУРЫ ДАННЫХ ПРОГРАММ

4.1. ПОНЯТИЕ СТРУКТУРЫ ДАННЫХ ПРОГРАММ Под структурой данных программ в общем случае понимают множество элементов данных, множество связей между ними, а также характер их организованности.Под организованностью данных понимается продуманное устройство с целью

Понятие доверия

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

Источник

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

Данный курс рассчитан на студентов, обладающих начальными навыками программирования. Основной нашей целью является помочь студенту решать задачи вычислительной математики, составляя для этого программы на языке С++. В связи с тем, что язык С++ на современном этапе своего развития чрезвычайно усложнился и получил много новых возможностей (для полного изучения языка требуется несколько лет), ограниченный объем курса позволит познакомить студентов лишь с базовыми понятиями языка. При этом неизбежны определенные упрощения. Для желающих самостоятельно изучать С++ предлагается список дополнительной литературы.

Для работы можно выбрать любой из доступных компиляторов С++ ( автор использовал Tizen SDK for Linux, программы также работают и на MS Visual Studio 2015). В качестве платформы рекомендуется использовать компьютер классом не ниже Pentium.

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

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

Объявление переменной задает ее имя и атрибуты, а объявление функции — ее имя, тип возвращаемого значения и атрибуты ее формальных параметров.

Объявление типа позволяет программисту создавать собственный тип данных — точнее присвоить свое имя некоторому базовому или составному типу языка С++, что во многих случаях позволяет повысить читаемость программы. Для типа понятия объявления и определения совпадают.

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

Комментарии и пробелы

/* Комментарий — часть текста программы, предназначенная для краткой характеристики выполняемых действий или поясняющая назначение данных, которая игнорируется компилятором. */

Символы // открывают комментарий, заканчивающийся в конце той же строки.

int count; //эта переменная служит для

//подсчета числа символов в строке

Во втором случае осмысленные имена даются идентификаторам.

Идентификаторы

Ключевые слова языка С++

autodoubleintstruct
breakelselongswitch
caseenumregistertypedef
charexternreturnunion
constfloatshortunsigned
continueforsignedvoid
defaultgotosizeofvolatile
doifstaticwhile

Как уже говорилось выше, желательно, чтобы идентификаторы имели осмысленные имена.

Константы

Константы — это лексемы, представляющие собой фиксированные числовые или символьные значения.

В языке С++ имеется четыре типа констант: целые, вещественные, символьные и перечисляемого типа.

Источник

Что значит структура программы

В общем случае программа имеет вид:

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

Заголовок

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

&nbspменю &nbsp &nbsp &nbsp &nbsp вверх

Разделы программы

Программа на языке Turbo Pascal состоит из следующих разделов:

• раздел подключаемых библиотечных модулей;

• раздел объявления меток;

• раздел объявления констант;

• раздел объявления типов;

• раздел объявления переменных;

• раздел объявления процедур и функций;

• раздел инструкций (операторов) программы, заключаемый в слова begin И end ;

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

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

&nbspменю &nbsp &nbsp &nbsp &nbsp вверх

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

В самом общем виде структура программы имеет вид:

Обратите внимание — разделы описания могут встречаться в программе любое количество раз и следовать в произвольном порядке (кроме раздела uses, который всегда расположен после заголовка программы). Любой раздел, кроме раздела операторов, может отсутствовать. Главное, чтобы все описания объектов программы были сделаны до того, как они будут использованы.

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

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

Например, запись вида:

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

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

&nbspпредыдущая&nbsp &nbsp &nbsp &nbsp &nbspменю &nbsp &nbsp &nbsp &nbsp вверх &nbsp &nbsp &nbsp &nbsp &nbspследующая

Источник

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

Основные элементы языка ПАСКАЛЬ.

Основные элементы языка программирования.

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

Дадим краткое описание каждого элемента:

1. Ввод означает считывание значений, поступающих с клавиатуры, с диска или из порта ввода-вывода.

2. Данные – это константы, переменные и структуры, содержащие числа (целые и вещественные), текст (символы и строки) или адреса (переменных и структур).

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

4. Вывод означает запись информации на экран, на диск или в порт ввода-вывода.

5. Условное выражение предполагает выполнение набора команд в случае, если удовлетворяется (является истинным) некоторое условие (если это условие не удовлетворяется, то эти команды пропускаются или же выполняется другой набор команд).

6. Благодаря циклам некоторый набор команд выполнятся повторно или фиксированное число раз, или пока является истинным некоторое условие, или пока некоторое условие не стало истинным.

7. Подпрограмма представляет собой набор команд, который имеет имя и может быть неоднократно вызван из любого места программы по его имени.

Теперь рассмотрим, как эти элементы используются в Паскале.

Алфавит и словарь языка Паскаль.

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

Идентификаторы.

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

Для обозначения программ, а в программе постоянных и переменных величин, различных процедур, функций, объектов используются имена – идентификаторы.

Для обозначения заранее определенных разработчиками языка типов данных, констант, процедур и функций служат стандартные идентификаторы, например: intrger,sin,read,writeln.

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

Общие правила написания идентификаторов:

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

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

3) Между двумя идентификаторами должен быть по крайней мере один пробел.

4) Максимальная длина идентификатора 127 символов.

5) Прописные и строчные буквы не различаются.

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

1.2.2 Константы и переменные.

[Решение задач на компьютере – это процесс сбора, обработки и передачи информации. Поэтому любая программа имеет смысл, если она обрабатывает какие-либо данные. Данные, разделяются на константы и переменные. В программе константы и переменные определяются идентификаторами (именами), по которым к ним можно обратиться для получения текущих значений].

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

Все константы должны быть описаны в специальном разделе, который начинается зарезервированным словом const.

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

Maxint – 32767 (максимальное целое)

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

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

Переменные описываются в специальном разделе, который начинается зарезервированным словом var.

Кроме констант и переменных существуют так называемые типизированные константы.

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

Синтаксически программа состоит из необязательного заголовка и блока.

Блок может содержать в себе другие блоки. Блок состоит из двух частей: описательной и исполнительной. Первая часть может отсутствовать, без второй блок не имеет смысла. Блок, который не входит ни в какой другой блок, называется глобальным. Если в глобальном блоке находятся другие блоки, они называются локальными. Глобальный блок – это основная программа, он должен присутствовать в любом случае. Локальные блоки – это процедуры и функции, их присутствие необязательно. Объекты программы (типы, переменные, константы и т. д.) соответственно называются глобальными и локальными. Область действия объектов – блок, где они описаны, и все вложенные в него блоки.

Структура программы выглядит следующим образом:

uses ; //подключение библиотечных модулей

procedure ; // описание процедуры

function ; // описание функции

В начале программы находится заголовок, состоящий в общем случае из зарезервированного слова program и имени программы. Заголовок программы несет только несет смысловую нагрузку и может отсутствовать, однако его рекомендуется всегда записывать для быстрого распознавания нужной программы среди листингов других программ. После заголовка следует программный блок, состоящий в общем случае из семи разделов. Любой раздел, кроме раздела операторов может отсутствовать. Разделы описаний (кроме uses) могут следовать в произвольном порядке.

Комментарии. Для лучшего понимания программы в ней записывается пояснительный текст – комментарий. Комментарий можно записывать в любом месте программы где разрешен пробел. Текст комментария ограничен символами <> или (* *) и может содержать любое количество символов. В тексте не должны находится знаки ограничителей, с которых комментарий начинается, однако ограничители <> можно вложить в (* *) и наоборот.

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

Типы данных.

Типы данных – множество величин, объединенных определенной совокупностью допустимых операций.

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

В Паскале для описания типа в общем случае используется зарезервированное слово type. Формат:

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

Источник

Что значит структура программы

Синтаксис определения и вызова функции

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

Что значит структура программы. Смотреть фото Что значит структура программы. Смотреть картинку Что значит структура программы. Картинка про Что значит структура программы. Фото Что значит структура программы

Как любая другая переменная, результат функции относится к определенному типу данных, который указан в заголовке функции ( 6). Это делается тем же способом, что и для обычных переменных. Используется тот же самый синтаксис, в котором имя функции выступает в роли переменной-результата. Тип результата может быть любым, за исключением функции или массива.

return (nn+1) ; // FF = (double)(nn + 1)

Nothing(); // Просто вызов без использования результата

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

Фактические параметры – переменные, константы и выражения, которые ставятся в соответствие формальным параметрам при текущем вызове функции. По поводу них можно сказать следующее :

· между формальными и фактическими параметрами устанавливается «один-один» соответствие, которое действует только в течение текущего вызова функции (динамически);

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

Способы соответствия формальных и фактических параметров

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

· формальные параметры являются собственными переменными функции, аналогом локальных переменных;

· при вызове функции происходит присваивание формальным параметрам значений фактических (копирование вторых в первые);

· при изменении формальных параметров значения соответствующих им фактических параметров не меняются;

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

· формальные параметры существуют как синонимы фактических, в этом смысле они не являются «настоящими» переменными, под которые отводится память, а реализуется как элемент отображения;

· при изменении значений формальных параметров эти изменения проецируются на соответствующие им фактические;

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

Что значит структура программы. Смотреть фото Что значит структура программы. Смотреть картинку Что значит структура программы. Картинка про Что значит структура программы. Фото Что значит структура программыДоступ к объекту в виде значения (копии) и ссылки на оригинал широко используются в информационных технологиях. Для любого набора данных можно создать копию, передав ее пользователю, либо создать ссылку на оригинал. Например, на рабочем столе можно разместить копию файла (аналог передачи по значению), либо его ярлык (аналог передачи по ссылке).

В Си приняты следующие правила передачи, которые определяются синтаксическим видом формальных параметров в заголовке функции:

· по умолчанию (т.е. при отсутствии явных символов обозначения) все параметры, кроме массивов, передаются по значению, т.е. копируются ;

· массивы передаются исключительно по ссылке, т.е. отображаются;

· для явного указания способа передачи параметра по ссылке служит символ « &», который записывается перед именем формального параметра.

Механизм вызова функции

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

· последовательность выполняемых действий (поток управления) при вызовах функций:

· соответствие между формальными и фактическими параметрами.

Именно поэтому мы и рассмотрим процесс вызова вышеприведенной функции в «исторической перспективе»:

1. результатом трансляции функции является программный код, размещенный в сегменте команд;

3. выполняется программный код вызывающей функции, пока в ней не встретится выражение, содержащий вызов функции;

4. в соответствии со списком фактических параметров устанавливается соответствие между элементами контекста вызывающей функции и формальными параметрами;

Что значит структура программы. Смотреть фото Что значит структура программы. Смотреть картинку Что значит структура программы. Картинка про Что значит структура программы. Фото Что значит структура программы

7. сохраняется точка возврата в вызывающую функцию, после чего происходит переход к началу блока программного кода функции sum ;

8. выполняется программный код функции sum ;

9. в контексте вызываемой функции используются локальные переменные и формальные параметры, в соответствии со способами передачи параметров массив A отображается на исходный массив B в контексте main ;

12. продолжается выполнение программного кода вызывающей функции.

Области действия функций. Определения и объявления

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

· список формальных параметров (переменные и типы).

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

// определенной далее по тексту

extern int printf(char *. ); // Объявление библиотечной функции

// с переменным числом параметров

extern int other(void); // Объявление функции без

// параметров из другого

void main() // файла программы

int sum(int s[], int n) <. >// Определение ранее объявленной функции

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

· объявление заканчивается символом «;» ;

· если функция находится вне текущего файла, то объявление предваряется служебным словом extern;

· имена переменных в списке формальных параметров объявления могут отсутствовать;

· если функция не имеет формальных параметров, то в объявлении присутствует формальный параметр типа void.

Имея предварительно определенную функцию или ее объявление, транслятор в состоянии проверить соответствие формальных и фактических параметров как по их количеству, так и по типам. При этом транслятор может выполнить неявные преобразования типов фактических параметров к типам формальных, если это потребуется:

extern double sin(double);

y = sin(x); //——Неявное преобразование (double)x

Глобальные переменные. Инициализация

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *