Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прак. ОАиП 230401.doc
Скачиваний:
17
Добавлен:
17.02.2016
Размер:
375.81 Кб
Скачать

Контрольные вопросы и задания:

  1. Дайте определение массива.

  2. Каким образом производится описание массивов в С++?

  3. Назовите библиотеку и её функции, отвечающие за произвольное заполнение массивов.

  4. Опишите трёхмерный массив целых чисел.

  5. Сравните организацию общепринятого вывода матриц в Pascal и С++.

Рекомендуемая литература: 1.3, 1.4, 1.5, 1.7, 2.1, 2.2.

Практическое занятие №17

Тема: Использование функций и прототипов функций

Цель: закрепление навыков по описанию и использованию функций и прототипов функций для решения задач.

Вид работы: фронтальный.

Время выполнения: 2 часа.

Теоретический материал:

Процесс разработки программного обеспечения предполагает разделение сложной задачи на набор более простых задач и заданий. В С++ поддерживаются функции как логические единицы (блоки текста программы), служащие для выполнения конкретного задания.

Функции имеют нуль или более формальных параметров и возвращают значение скалярного типа, типа void (пусто) или указатель. При вызове функции значения, задаваемые на входе, должны соответствовать числу и типу формальных параметров в описании функции. Если функция не возвращает значения (т.е. возвращает void), то она служит для того, чтобы изменять свои параметры (вызывать побочный эффект) или глобальные для функции переменные.

Например, функция, возвращающая куб ее вещественного аргумента:

double cube( double x )

{

return x * x * x ;

}

Аргумент х типа double специфицируется вслед за первой открывающей скобкой.

Структура каждой функции совпадает со структурой главной программы (main), поэтому функции иногда еще называют подпрограммами.

Функции могут записываться как до main(), так и после, но в последнем случае требуется указать прототип (описание) функции.

Задания:

  1. Напишите функцию для перевода числа из десятичной системы счисления в двоичную. Продемонстрируйте работу функции.

  2. Напишите функцию для перевода числа из двоичной системы счисления в десятичную. Продемонстрируйте работу функции.

Ход работы: в тетрадь оформите блок-схемы (функций и основных программ и листинги программ

1. Назовём функцию для перевода числа из десятичной системы счисления в двоичную int dectoby(int n), где n – входной параметр, т.е. число в десятичной системе. Для перевода в двоичную систему применим метод вычисления остатка от деления на два. Определяем остаток и целую часть от деления на два, записываем остаток в массив f (результат в двоичной системе), целую часть снова делим на два и т.д. до тех пор, пока целая часть не станет равна нулю. Функция может быть записана так:

int dectoby(int x) //заголовок функции (результат– число целого типа)

{ //начало тела функции

int y; //описание локальной переменной целого типа

while (x!=0) //цикл с предусловием – пока x не равно нулю

{ //начало тела цикла

y=x%2; //переменная y присваивает остаток от деления x на 2

x=x/2; //переменная x присваивает целую часть от деления x на 2

f[i]=y; //элемент массива f под номером i присваивает остаток

i++; //переменная i (номер элемента) увеличивается на единицу

} //закрывается цикл

return f[i];} //функция dectoby возвращает как результат выполнения массив из нулей и единиц, конец функции

В основной программе с клавиатуры вводится значение числа n в десятичной системе. Вызывается функция с входным параметром n. Осуществляется вывод на экран элементов массива f, начиная с последнего по нулевой элемент (первый элемент в массиве имеет номер ноль).

2. Функцию для перевода из двоичной системы в десятичную назовём int bytodec(int f[n]), где f[n] – двоичное представление числа. Число в двоичной системе вводится с клавиатуры по элементам. В функции элементы массива умножаются на два в соответствующей степени и складываются. Полученная сумма – результат выполнения функции, т.е. число в десятичной системе счисления.