Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга C++.doc
Скачиваний:
24
Добавлен:
10.11.2019
Размер:
2.48 Mб
Скачать

Примеры домашних работ на создание функций Пример №1

Написать функцию, которая принимает параметром целое число, меняет порядок следования цифр в этом числе на противоположный и возвращает полученый результат.

#include<iostream.h>

int Mirror ( int a)

{

int result=0;

while(a>0)

{

result=result*10+a%10;

a/=10;

}

return result;

}

void main()

{

int Num;

do {

cout<<"Please, enter a number >= 0 :";

cin>>Num;

} while (Num < 0);

int res=Mirror(Num);

cout<<"Mirror of number="<<res;

}

Как работает программа

Рассмотрим, как работает эта программа.

Начнем рассмотрение собственно с создания требуемой функции, которую назовем Mirror (зеркало). Начнем с типа функции: так как по условию сказано, что функция принимает целое число, меняет порядок цифр в нем, а затем возвращает полученый результат, то можно сделать вывод, что возвращать функция будет тоже целое число, следовательно тип функции будет int. По той же причине список параметров нашей функции будет содержать только один целочисленный параметр ( int a), так как никаких других дополнительных данных, кроме исходного числа, нам не требуется. Следовательно заголовок нашей функции выглядит так:

int Mirror(int a)

Далее определяем тело функции, то есть инструкции, которые необходимо выполнить для достижения поставленой цели (изменение порядка следования цифр в исходном числе). Для этого объявляем цикл while, который выполняется пока исходное число больше нуля (нас больше интересует пока исходное число не станет равным 0). В этом цикле старое значение результата умножаем на 10 и прибавляем к нему последнюю цифру исходного числа, используя для этого остаток от деления на 10. А далее делим исходное число на 10, то есть как бы отбрасываем последнюю цифру.

Для чего это делается? На первой итерации цикла результат станет равным последней цифре исходного числа, на второй из-за деления исходного числа на 10 значение результат (то есть последняя цифра исходного числа) умножается на 10 и к ней суммируется предпоследняя цифра. И так далее пока делением на 10 исходного числа не получим 0 (то есть не переберем все цифры исходного числа) и цикл прервется. А в переменной результата получим исходное число с измененным порядком цифр, так как мы сдвигаем постоянно в цикле цифры этой переменной влево умножением на 10 и добавляем справа следующую цифру числа операцией сложения.

После выполнения цикла исполняется инструкция return, которая возвращает значение полученного результата в вызывающую функцию.

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

Пример №2

Написать функцию, которая принимает целое число как параметр, и если число равно 1, то возвращает символ «y», если -1 — возвращает символ «n», иначе выводит сообщение об ошибке и возвращает символ «-».

#include<iostream.h>

#include<math.h>

char Test ( int a)

{

switch (a)

{

case 1:return 'y';

case -1:return 'n';

default:cout<<"Wrong choice!";

return '-';

}

}

void main()

{

int Num;

cout<<"Please, enter a number:";

cin>>Num;

cout<<"Return of your function:"<<Test(Num);

}