Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Либерти Джесс. Освой самостоятельно С++ за 21 день. - royallib.ru.rtf
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.55 Mб
Скачать

Коллоквиум

В этом разделе предлагаются вопросы для самоконтроля и укрепления полученных знаний и приводится несколько упражнений, которые помогут закрепить ваши практические навыки. Попытайтесь самостоятельно ответить на вопросы теста и выполнить задания, а потом сверьте полученные результаты с ответами в приложении Г. Не приступайте к изучению материала следующей главы, если для вас остались неясными хотя бы некоторые из предложенных ниже вопросов.

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

1. Что такое выражение?

2. Является ли запись x = 5 + 7 выражением? Каково его значение?

3. Каково значение выражения 201 / 4?

4. Каково значение выражения 201 % 4?

5. Если переменные myAge, а и b имеют тип int, то каковы будут их значения после выполнения выражения:

   myAge = 39;

   а = myAge++;

   b = ++myAge;

6. Каково значение выражения 8+2*3?

7. Какая разница между выражениями if(x = 3) и if(x == 3)?

8. Будут ли следующие выражения возвращать true или false?

   а) 0

   б) 1

   в) -1

   г) x = 0

   д) x == 0 // предположим, что x имеет значение 0

Упражнения

1. Напишите один оператор if, который проверяет две целочисленные переменные и присваивает переменной с большим значением меньшее значение, используя только один дополнительный оператор else.

2. Проанализируйте следующую программу. Представьте, что вы ввели три значения. Какой результат вы ожидаете получить?

   1: #include <iostream.h>

   2: int main()

   3: {

   4:    int a, b, с;

   5:    cout << "Please enter three numbers\n";

   6:    cout << "a: ";

   7:    cin  >> a;

   8:    cout << "\nb: ";

   9:    cin  >> b;

 10:   cout << "\nc: ";

 11:   cin  >> c;

 12:

 13:   if (c = (a-b))

 14:   { cout << "a: ";

 15:     cout << a:

 16:     cout << "minus b: ";

 17:     cout << b;

 18:     cout << "equals c: ";

 19:     cout << c << endl;}

 20:   else

 21:     cout << "a-b does not equal c: " << endl;

 22:   return 0;

 23: }

3. Введите программу из упражнения 2; скомпилируйте, скомпонуйте и запустите ее на выполнение. Введите числа 20, 10 и 50. Вы получили результат, который и ожидали? Почему нет?

4. Проанализируйте эту программу и спрогнозируйте результат:

   1: #include <iostream.h>

   2: int main()

   3: {

   4:    int а = 1, Ь = 1, с;

   5:    if (с = (a-b))

   6:    cout << "The value of с is: " << с;

   7:    return 0;

   8: }

5. Введите, скомпилируйте, скомпонуйте и запустите на выполнение программу из упражнения 4. Каков был результат? Почему?

День 5-й. Функции

Несмотря на то что при объектно-ориентированном программировании внимание акцентируется не на функциях, а на объектах, функции тем не менее остаются центральным компонентом любой программы. Итак, сегодня вы узнаете:

• Что такое функция и из чего она состоит

• Как объявлять и определять функции

• Как передавать параметры функциям

• Как возвращать значение функции

Что такое функция

Функция по своей сути — это подпрограмма, которая может манипулировать данными и возвращать некоторое значение. Каждая программа C++ имеет по крайней мере одну функцию main(), которая при запуске программы вызывается автоматически. Функция main() может вызывать другие функции, те, в свою очередь, могут вызывать следующие и т.д.

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

Хорошо разработанные функции должны выполнять конкретную и вполне понятую задачу. Сложные задачи следует "разбивать" на несколько более простых, достаточно легко реализуемых с помощью отдельных функций, которые затем могут вызываться по очереди.

Различают два вида функций: определяемые пользователем (нестандартные) и встроенные. Встроенные функции являются составной частью пакета компилятора и предоставляются фирмой-изготовителем. Нестандартные функции создаются самим программистом.

Рис. 5.1. Когда программа вызывает функцию, управление переходит к телу функции, а затем выполнение программы возобновляется со стро­ки, следующей после вызова