Слайд 1Продолжительность хранения
и область видимости
С.116-123
Слайд 2Все переменные имеют ограниченное время жизни при выполнении программы.
Они появляются
в точке, где их объявили, а затем в некоторой точке
они исчезают — не позднее момента завершения программы. Насколько долго существует конкретная переменная, определяется свойством, называемым продолжительностью хранения (storage duration). Существуют три продолжительности хранения переменных:
автоматическая;
статическая;
динамическая.
Слайд 3Автоматические переменные
Такие переменные называются автоматическими, и о них говорят, что
у них локальная область видимости, или область видимости блока. Автоматическая
переменная “видима”, начиная с точки, в которой она объявлена, и до конца блока, содержащего ее объявление.
Слайд 5Автоматические переменные
Период жизни — это период времени выполнения программы, начиная
с момента первого объявления переменной до момента ее уничтожения и
освобождения занятой ею памяти для другого использования. Область видимости переменной — это часть программного кода, в которой доступна переменная.
Слайд 6Глобальные переменные
Переменные, которые объявлены вне всех блоков и классов (о
классах речь пойдет позже), называются глобальными, они имеют глобальную область
видимости (которая так же называется областью видимости глобального пространства имен или областью видимости файла).
Глобальные переменные также по умолчанию имеют статическую продолжительность хранения.
Слайд 7Области видимости переменных
Слайд 8Оператор разрешения области видимости
Глобальная переменная может быть скрыта локальной переменной
с тем же именем. Но все же остается возможность получить
доступ к такой глобальной переменной, используя оператор разрешения области видимости (:: ).
Слайд 10Статические переменные
Необходимо иметь возможность объявить переменную, имеющую область видимости в
пределах блока, но обеспечить ей статический период хранения. Спецификатор static
обеспечивает такую возможность.
static int count;
Слайд 12Сравнение значений
Существует шесть базовых операторов для сравнения двух доступных значений.
меньше больше >= больше или равно
==
равно != неравно
Слайд 13true — если сравнение истинно,
и false — если нет
int i=10,
j=-5
i > j i != j j > -8 i
<= j + 15
char first = 'A', last = 'Z';
first == 65 first < last 'Е' <= first first != last
Слайд 14int i = -10, j = 20;
double x = 1.5,
у = -0.25E-10;
-1 < у j < (10 - i)
2.0*х >= (3 + у)
Слайд 15Оператор if
if('А' == letter)
cout
== 'А')
{
cout
Слайд 16Вложенные операторы if
#include
using std::cin;
using std::cout;
using std::endl;
int main()
{
char letter(0); //
Для хранения введенного значения
cout
Приглашение ввода
cin >> letter; // Прочитать символ
Слайд 17if(letter >= 'А') // Больше или равно 'А'
{
if(letter
// Меньше или равно 'Z'
{
cout
букву."
<< endl;
return 0;
}
}
if(letter >= 'a') // Больше или равно 'а'
{
if(letter <= 'z') // Меньше или равно 'z'
{
cout << endl
<< "Вы ввели прописную букву."
<< endl;
return 0;
}
}
cout << endl << "Вы ввели не букву." << endl;
return 0;
}
Слайд 18Расширенный оператор if
#include
using std::cin;
using std::cout;
using std::endl;
int main()
{
long number(OL); //
Здесь хранится ввод
cout
миллиардов: ";
cin >> number;
Слайд 19if(number % 2L) // Проверить остаток после деления на 2
cout
<< "Ваше число нечетное." << endl;
else
cout << endl // Здесь остаток равен 0
<< "Ваше число четное." << endl;
return 0;
}
Слайд 21Вложенные операторы if-else
if('y' == coffee)
if('у' == donuts)
cout
и пончики.";
else
cout << "У нас есть кофе, но нет пончиков.";
Слайд 22Логические операторы и выражения
&& Логическое И
|| Логическое ИЛИ ! Логическое НЕ
Слайд 23Логическое И
if((letter >= 'А') && (letter
"Это заглавная буква.";
Слайд 24Логическое ИЛИ
if((income >= 100000.00) || (capital >= 1000000.00))
cout
Слайд 26Комбинирование логических операторов
#include
using std::cin;
using std::cout;
using std::endl;
int main()
{
char letter(0); // Здесь сохранить ввод
Слайд 27cout letter;
// Проверка на
вхождение в алфавит
if (((letter >= 'А') && (letter
|| ((letter >= 'а') && (letter <= 'z')))
cout << endl << "Вы ввели букву." << endl;
else
cout << endl << "Вы ввели не букву." << endl;
return 0;
}
Слайд 28Условный оператор
с = а > b ? а : b;
Условный
оператор имеет следующий синтаксис.
условие ? выражение1 : выражение2
Слайд 29Использование условного оператора при выводе
#include
using std::cout;
using std::endl;
int main()
{
int nCakes(1); // Количество пирожных
"oe.") << endl;
++nCakes;
cout << endl << "У нас есть " << nCakes << " пирожн"
<< ((nCakes > 1) ? "ых." : "oe.") << endl;
return 0;
}
Слайд 31Оператор switch
Оператор switch обеспечивает выбор из множества вариантов на основании
набора фиксированных значений заданного выражения. Он действует подобно вращающемуся переключателю
(switch, дословно — переключатель), который можно установить в одно из фиксированных положений. В операторе switch выбор определяется значением указанного выражения. Вы устанавливаете возможные позиции switch одним или более значений case, одно из которых выбирается, если значение выражения совпадает с ним. Каждому возможному значению выражения оператора switch соответствует одно значение case, причем эти значения case должны отличаться друг от друга. Если значение выражения switch не соответствует ни одному из значений case, то оператор switch автоматически выбирает случай default.
Слайд 33Операторы, которые будут выполнены для конкретного случая, могут быть также
заключены в фигурные скобки, причем иногда это необходимо.
Слайд 35Совместное использование в операторе case