
- •Рязанская государственная радиотехническая академия Объектно-ориентированное программирование
- •Рязань 2003
- •390005, Рязань, ул. Гагарина, 59/1.
- •1. Программирование линейных алгоритмов Основные понятия
- •Идентификаторы
- •Объявление переменных
- •Стандартные типы данных
- •Представление констант
- •Символьные константы
- •Строковые константы
- •Ввод – вывод данных
- •Математические функции
- •Контрольные вопросы
- •Варианты заданий
- •2. Программирование алгоритмов разветвляющейся структуры Операторы управления
- •Контрольные вопросы
- •Цикл с параметром
- •Контрольные вопросы
- •Варианты заданий
- •4. Массивы. Классы памяти переменных Классы памяти переменных
- •Распределение памяти
- •Массивы
- •Инициализация
- •Указатели
- •Связь одномерных массивов с указателями
- •Связь двумерных массивов с указателями
- •Динамические массивы
- •Контрольные вопросы
- •Варианты заданий
- •5. Функции пользователя
- •Передача параметров в функции
- •Шаблоны функций
- •Контрольные вопросы
- •Варианты заданий
- •6. Структуры, объединения, битовые поля Структуры
- •Объединение
- •Битовые поля
- •Контрольные вопросы
- •Варианты заданий
- •7. Файлы
- •Типовые операции с файлами
- •Функции форматного ввода и вывода данных
- •Определение длины файла:
- •Спецификаторы доступа
- •Конструкторы и деструкторы
- •Наследование
- •Наследование и контроль доступа
- •Указатель this
- •Перегрузка операций
- •Константные объекты и константные методы
- •Статические элементы класса
- •Виртуальные функции
- •Абстрактные классы
- •9. Варианты заданий на курсовое проектирование
- •Оглавление
Цикл с параметром
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;}
Контрольные вопросы
Перечислите виды циклических операторов в С++.
Приведите общую структуру оператора цикла с предусловием.
Приведите общую структуру оператора цикла с постусловием.
Приведите общую структуру оператора цикла с параметром.
Каковы основные правила организации цикла с параметром?
Варианты заданий
Модифицировать программу
вычисления значения функции
из лабораторной работы № 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;