При оголошенні змінних у програмі велике значення має те місце, де вона оголошена. Від того, де оголошена змінна, залежить можливість її використання.
У С++ можливі три місця оголошення змінних.
По-перше, поза будь-яких функцій, у тому числі і main(). Така змінна називається глобальною і може використовуватися в будь-якому місці програми від місця оголошення і до кінця програми.
По-друге, змінна може бути оголошена усередині блоку, у тому числі й усередині тіла функції. Оголошена в такий спосіб змінна називається локальною і може використовуватися лише усередині блоку. Така змінна поза блоком, у якому вона оголошена, невідома.
По-третє, змінна може бути оголошена як параметр функції. Крім спеціального призначення, а саме для передачі даних у функцію, параметр можна розглядати як локальну змінну для тіла функції.
Приклад. Скласти програму для обчислення суми k чисел.
#include <iostream.h>
void sum(int);// прототип функції
int s=0;// глобальна змінна
void main()
{
int i,b,k;// локальні змінні
cout<<"\nВведіть число доданків";
cin>>k;
for(i=0;i<k;i++)
{
cout<<"\nВведіть новий доданок ";
cin>>b;
sum(b);// звернення до функції
}
cout<<"\ns="<<s;
}
void sum(int c)
{
s=s+c;
}
У цій програмі змінна s є глобальною, вона доступна із обох функцій програми — main() і sum(), а змінні i, b, k та с — локальні, доступні тільки у тих функціях, де вони оголошені.
Якщо глобальна і локальна змінні мають одне і теж ім’я, тоді вважається, що оголошені дві різні змінні зі своїми областями використання. При цьому локальна змінна буде видима у тій функції, де вона оголошена, а глобальна у всій програмі за виключенням функції, у якій оголошена локальна змінна.
Приклад
Скласти програму, яка звертається до функції обрахунку максимуму з двох чисел:
Можливий розв’язок даної задачі має вид:
#include<iostream.h>
int max(int,int);/* прототип функції */
void main()
{
int x,y,z;
cout << "\n почергово введіть x та у \n";
cin >> x; cin >> у; z=max(x,y); cout <<"z=" << z;
}
int max (int a,int b)
{
int с; /* робоча змінна */
if(a>=b)c=a;
else c=b;
return c;
}
Постановка завдання
1. Проаналізувати умову задачі.
2. Розробити алгоритм та створити програму розв’язання задачі згідно з номером варіанту.
3. Результати роботи оформити протоколом.