Читайте также:
|
|
Сначала определимся, что из себя представляет рекурсивная функция. Рекурсивной называется функция, которая возвращает значение самой себя, рассмотрим пример рекурсивной функции на примере программы, вычисляющей факториал целого числа
#include <iostream>
using namespace std;
long double fact(int N)
{
if (N < 0) // если пользователь ввел отрицательное число
return 0; // возвращаем ноль
if (N == 0) // если пользователь ввел ноль,
return 1; // возвращаем факториал от нуля - не удивляетесь, но это 1 =)
else // Во всех остальных случаях
return N * fact(N - 1); // делаем рекурсию.
}
int main() {
int N;
setlocale(0,""); // Включаем кириллицу
cout << "Введите число для вычисления факториала: ";
cin >> N;
cout << "Факториал для числа " << N << " = " << fact(N) << endl << endl; // fact(N) - функция для вычисления факториала.
return 0; }
27.Пречислите и охарактеризуйте классы памяти при выделении памяти под переменные в С++.
Класс памяти переменной — понятие в некоторых языках программирования. Он определяет область видимости переменной, а также как долго переменная находится в памяти.
Классы памяти в С и С++:
Переменная в этих языках должна принадлежать ровно к одному классу памяти, что указывается с помощью ключевого слова, который пишется перед типом переменной.
auto— автоматическая (локальная). Автоматические переменные создаются при входе в функцию и уничтожаются при выходе из неё. Они видны только внутри функции или блока, в которых определены. В C++0x значение слова auto изменили.
static — статическая переменная (локальная). 1) Если static - внутри функцию. Статические переменные имеют такую же область действия, как локальные(автоматические), но они не исчезают, когда содержащая их функция закончит свою работу. Их значения сохраняются от одного вызова функции до другого. 2) static вне функции имеет другое значение
extern — внешняя (глобальная) переменная. Внешние переменные доступны везде, где описаны, а не только там, где определены. Включение ключевого слова extern позволяет функции использовать внешнюю переменную, даже если она определяется позже в этом или другом файле.
register — регистровая переменная (локальная). Это слово является всего лишь «пожеланием» компилятору помещать частоиспользуемую переменную врегистры процессора для ускорения программы.
Класс памяти можно не указывать, тогда действуют следующие умолчания:
· переменные, описанные внутри функции или блока, считаются локальными (auto)
· переменные, описанные вне всех функций, считаются внешними.
· функции считаются внешними.
Статическая переменная, описанная вне любой функции, становится внешней статической. Разница между внешней переменной и внешней статической переменной заключается в области их действия. Обычная внешняя переменная может использоваться функциями в любом файле, а внешняя статическая переменная может использоваться только функциями того же самого файла, причем после определения переменной.
28.Опишите приёмы использования массивов в С++
Дата добавления: 2015-02-16; просмотров: 163 | Поможем написать вашу работу | Нарушение авторских прав |