Глава 1. Итоговый тест

  Юрий Ворон  | 

    | 

  Обновлено 9 Дек 2016  | 

 9961

 ǀ   24 

Эти задания рассчитаны для улучшения запоминания пройденного материала и применение его на практике.

Задание №1

Напишите однофайловую программу (с именем main.cpp), которая получает два отдельных целых числа от пользователя, выполняет сложение этих чисел, а затем выводит результат. В программе должно быть три функции:

Функция «readNumber», которая запрашивает в пользователя одно целое число, затем возвращает его в main.

Функция «writeAnswer», которая выводит результат в консоль. Она должна быть без возвращаемого значения и принимать только один параметр.



Функция main(), которая соединяет две вышеуказанные функции вместе.

Подсказка 1: Не нужно отдельной функции для математической операции сложения (просто используйте оператор +).

Подсказка 2: Функцию readNumber() нужно вызывать дважды.

Подсказка 3: Если вы используете Visual Studio с предварительно откомпилированными заголовками, не забудьте #include "stdafx.h".

Ответ 1

main.cpp

Задание №2

Измените программу с задания №1, чтобы функции readNumber() и writeAnswer() находились в отдельном файле с названием «io.cpp». Используйте предварительные объявления для доступу к ним с главной функции main().

Подсказка: Если у вас возникли проблемы, убедитесь, что io.cpp правильно добавлено к вашему проекту и подключено к компиляции (смотрите Урок 20. Многофайловые программы для получения более подробной информации о том, как это сделать).

Ответ 2

io.cpp

main.cpp

Задание №3

Измените программу с задания №2, чтобы она использовала заголовочный файл (с именем io.h) для доступа к функциям, вместо использования предварительных объявлений. Убедитесь, что ваш заголовочный файл использует header guards.

Ответ 3



io.cpp

io.h

main.cpp

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (131 оценок, среднее: 4,95 из 5)
Загрузка...

Комментариев: 24

  1. GAS:

  2. Лёха:

    То чувство, когда все на изи этот тест пишут, а я ни одного задания не сделал, половину кода не понимаю. Придётся заново всё перечитывать, пока не начну понимать 🙁

  3. ufo:

    Пример хороший но не логичнее ли будет вписать #include <iostream>в io.h (а также все нужные инклюды которые могут потребоваться для других функций).
    После чего в io.cpp и в main.cpp в инклюдах надо писать только #include "io.h" (вместо дублирования инклюдов а их может быть много, тем более у нас хеадергвард прописан)
    врезультате например std::cout<<"ALL OK"; в конце main будет работать.

  4. Руслан:

    а таким способом будет правильно?

  5. Andrey:

    Решил «тупо» переписать ответы на тесты, что бы набить руку.(Итоговый тест 1). Первое задание откомпелировалось без проблем. А второе из 2-х файлов никак не компилируется. И в первом и во втором случае выдаёт ошибку 1010 и советуе добавить #include ‘’stdafx.h’’, но я точно копирую ответ. В чем прикол? Я полный ‘’чайник’’, но тема зашла, хочется дойти до сути.

  6. Рома:

    Здравствуйте, в 3 задании сделал точно также как и у вас в ответе, но мне выдает две ошибки :
    1) идентификатор readNumber() не определён
    2) идентификатор writeAnswer() не определён
    в чём может заключаться проблема?
    Проверял уже много раз код один в один с вашим .

    1. Алексей:

      Тут 2 варианта. Либо в main.cpp не прописан файл заголовка (#include "io.h"), либо в файлезоголовка не объявлены указанные функции. Подробнее здесь: Урок 21. Заголовочные файлы.

    2. Эрик:

      Подключение io.h идет до подключения <iostream>?

      1. Рома:

        Эрик, спасибо огромное, у меня в принципе #include <iostream> не был подключен в этом была вся проблема , не понимаю как я упустил это, ещё раз огромное спасибо )))

      2. Алексей:

        Файл заголовка можно подключить и до и после jostream.

  7. Tahir:

    Отличный тест. Без лишней теории и охватывает все основные аспекты Главы1. Спасибо за Ваш труд!

    1. Юрий Юрий:

      Спасибо, что читаете 🙂

  8. Даниил:

    Здравствуйте , такой вопрос )
    Во второй функции мы вводим одну переменную x
    А в функции main() мы выводим эту функцию и (x+y)….
    Уточните пожалуйста что здесь и как )

    1. Александр:

      А что там не понятного? Мы вызываем функцию writeAnswer() А "x+y" — это параметр этой функции, который равен сумме x и y, и вот это значение присваивается переменной x в функции writeAnswer() Просто нужно внимательно читать уроки. У каждой функции своя переменная с именем "X" (в каждом городе есть своя улица Ленина)

    2. Алексей:

      Все просто. Каждая из предстваленных функций "не знает", что одноименные переменные есть в других функциях.
      Подробнее тут: Урок 15. Локальная область видимости.

  9. Алекей:

    Есть недочет. После каждого урока надо штук по 10 практических заданий для закрепления материала. Все получилось с первого раза! Но практики очень не хватает.

    1. Максим:

      Согласен, это уже будет полировка, а так все хорошо.

    2. Константин:

      Да-да, полностью поддерживаю Алексея: Юрий, пожалуйста, прибавьте контрольных заданий, а то как-то мало связей между нейронами образуется у меня в голове от одного задания:-(

  10. илья:

    у меня в 1задании 39 ошибок, придется кодить сначала

  11. Игорь...:

    Прикольно, первое задание выполнил так же как и в ответе, кроме…

    Работает… Но правильно ли так?

    1. Юрий Юрий:

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

  12. Diana:

    В итоге все получилось, не без ошибок, конечно, но получилось) очень рада) спасибо за Ваш труд!)

    1. Юрий Юрий:

      Пожалуйста 🙂

  13. Дима:

    Хм….урок без коментов.
    У всех все просто получилось?!)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

telegram канал
RAVESLI