русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ФУНКЦИИ

С увеличением объёма программы становится невозможным удерживать в памяти все детали. Естественным способом борьбы со сложностью любой задачи является разбиение её на части. В С++ задача может быть разделена на более простые и обозримые с помощью функций, после чего программу можно рассматривать в более укрупнённом виде – на уровне взаимодействия функций. Деление программы на функции является базовым принципом структурного программирования. Использование функций является первым шагом к повышению степени абстракции программы и ведёт к упрощению её структуры. Разделение программы на функции позволяет также избежать избыточности кода, поскольку функцию записывают один раз, а вызвать её на выполнение можно многократно из разных точек программы. Несмотря на то, что функция в процессе выполнения программы может исполняться не один раз, её код хранится только в одной области памяти.

Функция – это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие. Функция может принимать параметры и возвращать значение. Любая функция должна быть объявлена и определена. Объявление функции задаёт её имя, тип возвращаемого значения и список передаваемых параметров. Определение функции содержит, кроме объявления, тело функции, представляющее собой последовательность операторов и описаний в фигурных скобках:

[класс] тип имя ([список параметров]) { тело функции }

Здесь, с помощью необязательного модификатора класс, принимающего значения extern и static, можно явно задать область видимости функции: extern – глобальная видимость во всех модулях программы (по умолчанию); static - видимость только в пределах модуля, в котором определена функция. Тип возвращаемого значения может быть любым, кроме массива и функции. Если функция не должна возвращать значение, указывается тип void. Список параметров определяет величины, которые требуется передать в функцию при её вызове. Для каждого параметра, передаваемого в функцию, указывается его тип и имя. В определении, в объявлении и при вызове одной и той же функции типы и порядок следования параметров должны совпадать.

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

Продемонстрируем пример программы с простой функцией (типа void), которая печатает строку из 45 *.

#include <iostream>

#include <conio>

using namespace std;

void starline(); // объявление функции (прототип)

int main() {

starline(); // вызов функции (не указывается тип возвращаемого значения)

cout << "Tip dannyh Diapazon" << endl;

starline(); // вызов функции

cout << "char -128...127" << endl

<< "short -32,768...32,767" << endl

<< "int Systemno-zavisim." << endl

<< "long -2,147,483,648...2,147,483,647" << endl;

starline(); // вызов функции

getch(); return 0;

}

//------------------определение функции starline()

void starline() { // заголовок функции

for(int j=0; j<45; j++ ) cout << '*'; // тело функции

cout << endl; // тело функции

}

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

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

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

Просмотров: 468


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.