Модуль: (C++) Подпрограммы: процедуры и функции - 1


Задача

9 /12


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

Теория Нажмите, чтобы прочитать/скрыть

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

Основная программа в С++ - это тоже подпрограмма, поэтому все переменные объявленные внутри main(), - это локальные переменные.
Остальные подпрограммы про локальные переменные других подпрограмм ничего не "знают".

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

Если необходимо объявить переменную, которая была бы видна в любом месте программы (в любой подпрограмме), то такие переменные описываются вне всех подпрограмм (см. программу 3 из таблицы ниже).
Такие переменные называются глобальными.

В С++ при старте программы все глобальные переменные автоматически обнуляются (логические переменные принимают значение false).


Проанализируйте три программы:
1) В этой программе переменная i локальная. Локальная переменная описывается внутри подпрограммы 2) Здесь, даже если есть переменная i в основной программе (со значением 7), будет создана новая локальная переменная i со значением 5. 
При выполнении этой программы на экране появится значение 75
3) В этой программе существует глобальная переменная i. Ее значение можно изменить внутри подпрограммы, и внутри основной программы
Процедура будет работать с глобальной переменной i и ей будет присвоено новое значение, равное 2. На экран выводится значение 2
void test()
{
    int i = 5;
    cout << i;
}
void test()
{
  int i = 5; 
  cout << i;
}

main()
{
   int i = 7;
   cout << i;
   test();
}
#include <iostream>
using namespace std;
int i;
void test()
{
  i = 2;
}

main()
{
  test();
  cout << i;
}

Задача

Напишите процедуру с параметром n, которая выводит ёлочку с кроной высотой n.
Основная программа должна содержать ввод значения переменной n и вызов процедуры.
 
 
Примеры
Входные данные Выходные данные
1 5
    o
   ooo
  ooooo
 ooooooo
ooooooooo



time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w64535
Python2
Комментарий учителя