- •Министерство образования российской федерации
- •Введение
- •Программирование функций
- •Основные теоретические положения
- •Задания
- •Контрольные вопросы
- •Обработка массивов
- •Основные теоретические положения
- •1. Определение массивов
- •2. Массивы и указатели
- •3. Передача массивов функциям
- •Задания
- •Контрольные вопросы
- •Задания
- •Контрольные вопросы
- •Разработка абстрактных типов данных
- •Основные теоретические положения
- •1. Определение классов
- •3. Дружественные функции
- •4. Указатель this
- •5. Статические компонентные данные и компонентные функции static и const
- •6. Изменчивость
- •7. Вложенные классы
- •Задания
- •Контрольные вопросы
- •Раздел V создание и уничтожение объектов класса
- •Основные теоретические положения
- •Задания
- •Контрольные вопросы
- •Рекомендуемая литература
- •Раздел I. Программирование функций 4
Задания
Составить алгоритм и программу, реализующую разные механизмы передачи параметров, на примере нахождения значений функций:
функция принимает параметры по значению и возвращает значение;
функция в качестве параметров принимает указатели, в том числе и параметр адреса результата, а возвращает значение типа Void.
функция принимает параметры по ссылке и возвращает ссылку на тип результата.
Исходные данные представлены в следующей таблице (по вариантам):
Параметры |
Номер варианта | |||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | |
|
0,01 |
0,001 |
0,0001 |
0,001 |
0,01 |
0,001 |
0,0001 |
0,001 |
0,0001 |
0,001 |
Xmin |
-2π |
0 |
0 |
-2π |
-π |
π |
-π |
-π |
0 |
0 |
Xmax |
2π |
π |
3π/2 |
0 |
π/2 |
3π |
π |
2π |
4π |
3π |
Δx |
Π/4 |
π/12 |
π/6 |
π/12 |
π/12 |
π/4 |
π/6 |
π/8 |
π/4 |
π/3 |
П р и м е ч а н и е . Переменная n вводится с клавиатуры.
Процесс суммирования прекращается, когда будет обнаружено, что очередной член ряда | h | ≤ ε.
Выбор механизма передачи параметров оформить с помощью оператора Switch.
Контрольные вопросы
Сформулируйте назначение функций, необходимость использования, синтаксис и семантику определения, объявления и вызова функций.
Что такое прототип функции? Какие преимущества имеют прототипы функций?
С какой целью применяются аргументы по умолчанию? В чем заключается синтаксис и семантика их использования?
Объясните механизм передачи параметров, в чем преимущества и недостатки передачи параметров по значению и по ссылке?
Каким образом функции возвращают значения?
Что означает понятие «встроенная функция»?
Сформулируйте алгоритм выбора перегруженной функции.
Р а з д е л II
Обработка массивов
Цель работы: изучить способы определения массивов, правила индексирования и инициализации; приобрести практические навыки передачи массивов функциям; изучить способы создания динамических массивов, правила управления свободной памятью, взаимосвязь между массивами и указателями.
Основные теоретические положения
1. Определение массивов
Массив (array) – это тип данных, предоставляющий набор однородных значений, доступ к которым осуществляется с помощью индексов (индексированный набор однотипных данных). В языке С++ допустимы массивы любых типов – массивы скалярных значений, массивы указателей, массивы структур, массивы объектов, массивы массивов.
Объявление массива имеет префиксную форму и в общем виде может быть представлено так:
тип имя_массива [размер]; // вектор
тип имя_массива [размер_1][размер_2]; // матрица
Доступ к элементу массива осуществляется через его имя и значение индекса, приведенное в квадратных скобках:
имя_массива [выражение]
имя_массива [выражение_1][выражение_2],
Здесь выражение – это выражение целого типа, значение которого должно быть в диапазоне от 0 до (размер – 1). Компилятор не выполняет строгую проверку выхода индекса за границы диапазона.
Примеры объявления массивов:
int m[10]; // массив-вектор из 10 целых, доступ – m[i], i = 0 ÷ 9
float mm[3][4]; //массив-матрица из 3 4 вещественных, доступ mm[i][j], i = 0÷2, j = 0÷3
char *d[3]; //массив из 3 указателей на char (строк), доступ d[i], i = 0÷2
Массив может быть инициализирован при объявлении:
int m[10] = {9,8,7,6,5,4,3,2,1,0};
float mm[3][4] = {{0.1,0.2,0.3,0.4},{1.1,1.2,1.3,1.4},{2.1,2.2,2.3,2.4}};
char *d[] = {«С++», «Паскаль», «Ада»}; // размер соответствует количеству // инициализаторов