Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Функции. Формальные параметры и фактические аргументы. Способ передачи аргументов в функции. Привести пример.

Читайте также:
  1. I. Способ цепных подстановок.
  2. I.1 . Конкурентоспособность частного предприятия здравоохранения, факторы ее определяющие.
  3. II. Окраска или иной способ контрастирования структур препарата
  4. II. СПОСОБЫ РАСЧЕТА ТОЧКИ ОТДЕЛЕНИЯ ПАРАШЮТИСТОВ ОТ ВОЗДУШНОГО СУДНА.
  5. III. По способу формирования.
  6. IV. Биогенетические методы, способствующие увеличению продолжительности жизни
  7. А) в разделении труда между специалистами, способными более эффективно выполнить работу

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

Определение любой функции имеет вид:

Тип-результата имя-функции (объявления аргументов)

{ //блок с телом ф-ции //объявления, инструкции}

Отдельные части могут отсутствовать. Функция void dummy () {} ничего не делает.

void - ключевое слово указывает, что ф-ция ничего не возвращает. Вычисление ф-ции завершается при достижении последней } или выполнении инструкции return. Когда функция завершает работу, выполнение передаётся в вызывающую программу той инструкции, которая следует за вызовом функции. return ВЫР; - вычисляется выражение, его значение передаётся в вызывающую программу в точку вызова функции. Значение, возвращаемое функцией, может быть использовано вызывающей программой или проигнорировано.

Аргументы, используемые при определении функции, называются формальными параметрами (m и n). При вызове функции вместо формальных параметров подставляются фактические аргументы (2, i и -3,i)

В языке С++ аргументы ф-ции передаются по значению. Это значит, что внутри ф-ции создаются локальные копии фактических аргументов, которые и используются в вычислениях. Поэтому фактические аргументы не могут быть изменены внутри ф-ции. Если нужно изменить фактический аргумент внутри функции, то в неё должен передаваться адрес аргумента. Когда аргументом функции является массив, то в функцию передаётся значение адреса 1го элемента массива и массив можно изменить. Функция может записать по этому адресу новое значение. Зная адрес 1го элемента массива, функция может получать доступ ко всем его элементам.

Пример функции: //power: возводит m в степень n

int power(int m, int n) //power - имя функции; m, n - аргументы функции

{ int i, p = 1;

for(i = 1; i <= n; i++) // m возводится

p = p * m; // в n-ю степень

return p; } // Возвращение вычисленного значения

#include <iostream.h>

int main() // Использование функции power

{ int i;

for(i = 1; i < 10; i++)

cout << "2 в степ. " << i << " =\t" << power(2, i) << "\t-3 в степ. " << i << " =\t" << power(-3, i) << "\n";

return 0;}

Программа выдает следующее:

2 в степ. 1 = 2 -3 в степ. 1 = -3

2 в степ. 2 = 4 -3 в степ. 2 = 9

2 в степ. 3 = 8 -3 в степ. 3 = -27

2 в степ. 4 = 16 -3 в степ. 4 = 81

2 в степ. 5 = 32 -3 в степ. 5 = -243

2 в степ. 6 = 64 -3 в степ. 6 = 729

2 в степ. 7 = 128 -3 в степ. 7 = -2187

2 в степ. 8 = 256 -3 в степ. 8 = 6561

2 в степ. 9 = 512 -3 в степ. 9 = -19683

Прототипом ф-ции называется её предварительное объявление: тип-результата имя-ф-и (объявления аргументов);. После чего ф-цию можно использовать в выражениях, причём компилятор сгенерирует правильный код вызова, т.к. прототип сообщает ему всё необходимое. Вызов функции должен быть согласован с прототипом, иначе возникает ошибка. Имена аргументов в объявлении можно не указывать (int power (int, int)). Компилятору достаточно объявления функции, но редактор связей должен иметь код функции, поэтому функции должны быть где-то определены.


Дата добавления: 2015-07-08; просмотров: 590 | Нарушение авторских прав


Читайте в этой же книге: Строки символов представляют последовательность произвольных символов, заключенных в двойные кавычки, например, “Строка символов”, “String of characters”. | Процесс создания программы. Исходная и рабочая программы. Препроцессор, компилятор, редактор связей. | Целые типы в языке Си и операции над ними. Представление целых констант в различных системах счисления. | Операторы присваивания. Приоритет и порядок выполнения операторов. Привести примеры. | Символы и символьные константы. Представления символов. Ввод и вывод символов. Привести примеры. | Привести пример программы по обработке строк. | Препроцессор. Директивы препроцессора. | Макросы. Макросы с параметрами. | Указатели и адреса. Привести пример программы, использующей указатели. | Указатели и массивы. Адресная арифметика. |
<== предыдущая страница | следующая страница ==>
Цикл do…while. Программа вычисления квадратного корня.| Массивы как аргументы функций. Функция сортировки массива методом пузырька.

mybiblioteka.su - 2015-2024 год. (0.008 сек.)