Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
с++ метода3511.doc
Скачиваний:
47
Добавлен:
15.04.2015
Размер:
409.6 Кб
Скачать

Цикл с параметром

for (выражение 1; выражение 2; выражение 3)

оператор;

Выражение 1 – для инициализации параметра (вычисляется только один раз перед началом выполнения цикла). Выражение 2 – для проверки условия окончания цикла (выполняется перед каждым шагом цикла). Выражение 3 – для модификации параметра (вычисляется в конце каждого выполнения тела цикла, используется для коррекции значения параметра цикла)

Пример вычисления суммы n целых чисел:

#include <iostream.h>

void main()

{

int i, Summa ,n;

cout<<'\n'<<"Сколько целых элементов надо сложить? ";

cin>>n;

Summa=0;

for (i=1;i<=n;i++)

Summa+=i;

cout<<'\n'<<"Сумма: "<<Summa;}

Контрольные вопросы

  1. Перечислите виды циклических операторов в С++.

  2. Приведите общую структуру оператора цикла с предусловием.

  3. Приведите общую структуру оператора цикла с постусловием.

  4. Приведите общую структуру оператора цикла с параметром.

  5. Каковы основные правила организации цикла с параметром?

Варианты заданий

Модифицировать программу вычисления значения функции из лабораторной работы № 2.

Написать программу табулирования (вывода таблицы значений аргумента и соотетствующего значения функции). В программе реализовать ввод начального значения аргумента x0, конечного значения xk аргумента и шага его изменения hx. В программе предусмотреть защиту от зацикливания (например, в случае ввода hx=0).

4. Массивы. Классы памяти переменных Классы памяти переменных

Каждая переменная принадлежит к определенному классу памяти. Эта принадлежность определяет область видимости и время жизни переменной. Традиционно классов памяти 4 (всего 5). Они определяются спецификаторами auto, register, extern, static, volatile.

Пример: static int x;

По умолчанию класс переменной определяется местом ее объявления. Это, как правило, auto или extern.

Если переменная объявлена вне функции – это внешняя переменная (extern). Если переменная объявлена внутри функции – это автоматическая переменная (auto).

Автоматические переменные

При традиционном объявлении внутри блока auto писать не надо. Область видимости автоматических переменных: от точки объявления до конца блока, в котором она объявлена, т.е. доступ к ним извне блока невозможен. До входа в блок переменной не существует. Время жизни – время работы функции, в которой она объявлена. При объявлении автоматические переменные не инициализируют нулями.

Регистровые переменные

Пример: register int z;

Такое объявление не носит директивного характера. Переменная помещается не в оперативную память, а в регистрах микропроцессора. Сейчас применяется редко. Это указание необязательно для компилятора. Обычно этим спецификатором помечают типы short и int и указатели (локальные переменные).

Внешние переменные

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

Пример: extern int z = 5;