Локальные и глобальные переменные




Общие сведения о функциях и области видимости переменных

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

Объявление функции

При объявлении функции указывается (слева направо):

· тип возвращаемого функцией значения;

· имя функции;

· в круглых скобках – типы и имена параметров (переменных).

Как и всякое объявление, конструкция заканчивается точкой с запятой. Пример.

int buf (int a);

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

Определение функции

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

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

Int summa(int x, int y)

{

int z;

z=x+y;

return z;

}

Вызов функции

Для вызова функции надо указать 1) ее имя и 2) в скобках – список аргументов в соответствии с прототипом. Если функция возвращает значение, и оно дальше будет использоваться в программе, то его необходимо присвоить какой-либо переменной. Например:

w = delta (x,y);

В данном примере вызывается функция delta, которой передаются два аргумента. После выполнения функция возвращает значение, которое присвоится переменной w.

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

Далее приведен пример программы, в которой используются две функции. По условию требуется вычислить z = x². Возведение числа в квадрат оформляется в виде отдельной функции.

 

# include<iostream>

int square (int a); // объявление функции square()

Int main ()

{

int z;

int x = 3;

z = square(x);

cout<< ” square =” << z << ”\n”;

return 0;

}

// определение функции square

Int square (int a)

{

int b;

b = a*a;

return b; // оператор возврата управления

}

 

Особенности передачи массива в функцию

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

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

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

int sum(int p[]).

При вызове функции в скобках указывается только имя массива:

Sum(arr).

 

 

#include <iostream>

using namespace std;

int sum(int p[])

{

int s=0;

for(int i=0; i<6; i++)

s=s+p[i];

return s;

}

Int main()

{

setlocale(0,"");

int a, arr[6];

for(a=0; a<6; a++)

{

cout<<"Введи "<<a+1<<"-тый элемент массива: ";

cin>> arr[a];

}

cout<<"Сумма = "<< sum(arr)<<endl;

return 0;

}

Локальные и глобальные переменные

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

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

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

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

 

Практикум

Задание 1. Используя локальные переменные разработать программу в соответствии со следующими условиями. В главной функции заполнить 8 -элементный целочисленный массив с клавиатуры и задать два дробных числа. Спроектировать две отдельные функции:

1) запись элементов массива в файл в виде матрицы 2˟4;

2) нахождение наибольшего из двух дробных чисел; вывод результата произвести в главной функции.

Интерфейс программы оформить в виде меню. Выход из программы по – желанию пользователя.

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

Задание 3(дополнительно). Объединить две разработанные программы в одну и сделать общее меню.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-10-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: