Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Упражнения. 1. Запишите прототип для функции с именем Perimeter, которая возвращает значение типа unsigned long int и принимает два параметра






 

1. Запишите прототип для функции с именем Perimeter, которая возвращает значение типа unsigned long int и принимает два параметра, имеющих тип unsigned short int.

unsigned long int Perimeter(unsigned short int, unsigned short int);

2. Запишите определение функции Perimeter согласно объявлению в упражнении 1. Два принимаемых ею параметра представляют длину и ширину прямоугольника, а функция возвращает его периметр (удвоенная длина плюс удвоенная ширина).

unsigned long int Perimeter(unsigned short int length, unsigned short int width)

{

return 2*length + 2*width;

}

3. Жучки: что неправильно в этой функции?

#include < iostream.h>

void myFunc(unsigned short int x);

int main()

{

unsigned short int x, у;

у = myFunc(int);

cout < < " x: " < < x < < " у: " < < у < < " \n";

}

void myFunc(unsigned short int x)

{

return (4*x);

}

Функция объявлена с использованием ключевого слова void, и поэтому она не может возвращать какое-либо значение. Кроме того, при вызове функции myFunc ей следует передать параметр x, а не int.

4. Жучки: что неправильно в этой функции?

#include < iostream.h>

int myFunc(unsigned short int x);

int main()

{

unsigned short int x, у;

у = myFunc(x);

cout < < " x: " < < X < < " у: " < < у < < " \n";

}

int myFunc(unsigned short int x);

{

return (4*x);

}

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

5. Напишите функцию, которая принимает два параметра типа unsigned short int и возвращает результат деления первого параметра на второй. Функция не должна выполнять операцию деления, если второе число равно нулю, но в этом случае она должна возвратить значение -1.

short int Divider(unsigned short int valOne, unsigned short int valTwo)

{

if (valTwo == 0)

return -1;

else

return valOne / valTwo;

}

6. Напишите программу, которая запрашивает у пользователя два числа и вызывает функцию, записанную при выполнении упражнения 5. Выведите результат или сообщение об ошибке, если функция возвратит значение, равное -1.

#include < iostream.h>

typedef unsigned short int USHORT;

typedef unsigned long int ULONG;

short int Divider(

unsigned short int valone,

unsigned short int valtwo);

int main()

{

USHORT one, two;

short int answer;

cout < < " Enter two numbers.\n Number one: ";

cin > > one;

cout < < " Number two: ";

cin > > two;

answer = Divider(one, two);

if (answer > -1)

cout < < " Answer: " < < answer;

else

cout < < " Error, can't divide by zero! ";

return 0;

}

7. Напишите программу, которая запрашивает число и показатель степени. Напишите рекурсивную функцию, которая возводит число в степень путем многократного умножения числа на самое себя, т.е. если число равно 2, а показатель степени равен 4, то эта функция должна возвратить число 16.

#include < iostream.h>

typedef unsigned short USHORT;

typedef unsigned long ULONG;

ULONG GetPower(USHORT n, USHORT power);

int main()

{

USHORT number, power;

ULONG answer;

cout < < " Enter a number: ";

cin > > number;

cout < < " To what power? ";

cin > > power;

answer = GetPower(number, power);

cout < < number < < " to the " < < power < < " th power is " < < answer < < endl;

return 0;

}

ULONG GetPower(USHORT n, USHORT power)

{

if(power == 1)

return n;

else

return (n * GetPower(n, power-1));

}

 

 

День 6

 

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

 

1. Что представляет собой оператор прямого доступа и для чего он используется?

Оператор точки прямого доступа представляет собой символ точки (.). Он используется для обращения к членам класса.

2. Что резервирует память — объявление или определение?

Память резервируется определениями переменных. Объявления классов не резервируют память.

3. Объявление класса является его интерфейсом или выполнением?

Объявление класса является его интерфейсом, который сообщает клиентам класса, как с ним взаимодействовать. Выполнение класса — это набор функций-членов, сохраняемых обычно в файле с расширением CPP.

4. Какова разница между открытыми (public) и закрытыми (private) данными- членами?

К открытым переменным-членам могут обращаться клиенты класса, а к закрытым могут получить доступ только функции-члены класса.

5. Могут ли функции-члены быть закрытыми?

Да. Как функции-члены, так и переменные-члены могут быть закрытыми.

6. Могут ли переменные-члены быть открытыми?

Хотя переменные-члены могут быть открытыми, но считается хорошей практикой программирования, когда переменные-члены объявляются все же закрытыми, а доступ к этим данным обеспечивается за счет открытых методов доступа.

7. Если объявить два объекта класса Cat, могут ли они иметь различные значения своих переменных-членов itsAge?

Да. Каждый объект класса имеет свои собственные переменные-члены.

8. Ну5кно ли объявления класса завершать точкой с запятой? А определения методов класса?

Объявления класса заканчиваются точкой с запятой после закрывающей фигурной скобки, а определения функций-членов — нет.

9. Как бы выглядел заголовок функции-члена Meow класса Cat, которая не принимает никаких параметров и возвращает значение типа void?

Заголовок функции-члена Meow() класса Cat, которая не принимает параметров и возвращает значение типа void, должен иметь следующий вид:

void Cat:: Meow()

10. Какая функция вызывается для выполнения инициализации класса? Для инициализации класса вызывается конструктор.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.