Ці завдання розраховані для поліпшення запам’ятовування пройденого матеріалу і застосування його на практиці.
Завдання №1
Напишіть однофайлову програму (з ім’ям main.cpp
), яка просить у користувача два цілих числа, додає їх, а потім виводить результат. У програмі має бути 3 функції:
readNumber()
, яка просить у користувача ціле число, а потім повертає його в main().
writeAnswer()
, яка виводить результат на екран. Функція не повинна повертати значення і повинна мати тільки 1 параметр.
main()
, який з’єднує все і вся.
Підказка №1: Для виконання операція додавання не потрібно створювати окрему функцію (просто використовуйте оператор +
).
Підказка №2: Функцію readNumber() потрібно викликати двічі.
Відповідь №1
main.cpp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <iostream> int readNumber() { std::cout << "Enter a number: "; int x; std::cin >> x; return x; } void writeAnswer(int x) { std::cout << "The answer is " << x << std::endl; } int main() { int x = readNumber(); int y = readNumber(); writeAnswer(x + y); // передаємо результат в функцію writeAnswer() return 0; } |
Завдання №2
Змініть програму з завдання №1 так, щоб функції readNumber() і writeAnswer() знаходилися в окремому файлі io.cpp
. Використовуйте попередні оголошення для доступу до цих функцій з функції main().
Підказка: Якщо у вас виникли проблеми, то переконайтеся, що ви правильно додали файл io.cpp
і він підключений до компіляції (див. Урок №23. Багатофайлові програми).
Відповідь №2
io.cpp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> int readNumber() { std::cout << "Enter a number: "; int x; std::cin >> x; return x; } void writeAnswer(int x) { std::cout << "The answer is " << x << std::endl; } |
main.cpp:
1 2 3 4 5 6 7 8 9 10 11 |
// Це попередні оголошення функцій, які знаходяться в файлі io.cpp int readNumber(); void writeAnswer(int x); int main() { int x = readNumber(); int y = readNumber(); writeAnswer(x+y); return 0; } |
Завдання №3
Змініть програму з завдання №2 так, щоб вона використовувала заголовок io.h
для доступу до функцій (замість використання попередніх оголошень). Переконайтеся, що ваш заголовок використовує header guards
.
Відповідь №3
io.cpp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> int readNumber() { std::cout << "Enter a number: "; int x; std::cin >> x; return x; } void writeAnswer(int x) { std::cout << "The answer is " << x << std::endl; } |
io.h:
1 2 3 4 5 6 7 |
#ifndef IO_H #define IO_H int readNumber(); void writeAnswer(int x); #endif |
main.cpp:
1 2 3 4 5 6 7 8 9 |
#include "io.h" int main() { int x = readNumber(); int y = readNumber(); writeAnswer(x+y); return 0; } |