Студопедия

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

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

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






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Упражнения. 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 :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.