Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/22: Рейтинг темы: голосов - 22, средняя оценка - 4.77
Ollister

Задание из книги Страуструпа

29.07.2013, 15:37. Показов 4312. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я решил начать изучать программирование, конкретнее - язык C++. Самым логичным способом изучения мне показалось попробовать почитать книгу Страуструпа "Программирование. Принципы и практика использования C++". Разумеется, по ходу чтения пытаюсь выполнять задания из книги, и вот в конце 3й главы возникла проблема - не могу справиться с заданием, поэтому было решено попросить помощи у более опытных людей.
Собственно, текст задания:
Кликните здесь для просмотра всего текста

Задание
На каждом этапе выполнения задания запустите программу и убедитесь, что она
делает именно то, что вы ожидали. Создайте список сделанных ошибок, чтобы предотвратить их в будущем.
1. Напишите программу, формирующую простую форму для письма на основе входной информации. Для начала наберите программу из раздела 3.1, предложив пользователю ввести свое имя и предусмотрев вывод строки "Hello, firstname", где firstname— это имя, введенное пользователем. Затем модифицируйте программу следующим образом: измените приглашение на строку "Введите имя адресата" и измените вывод на строку "Dear firstname,". He забудьте о запятой.
2. Введите одну или две вступительные фразы, например "Как дела? У меня все хорошо. Я скучаю по тебе". Убедитесь, что первая строка отделена от других. Добавьте еще несколько строк по своему усмотрению—это же ваше письмо.
3. Предложите пользователю ввести имя другого приятеля и сохраните его в переменной frlend_name. Добавьте в ваше письмо следующую строку: "Видел ли ты friend_name недавно?
4. Объявите переменную типа char с именем frlendsex и инициализируйте его нулем. Предложите пользователю ввести значение хп, если ваш друг — мужчина, и f — если женщина. Присвойте переменной friendsex введенное значение. Затем с помощью двух инструкций if запишите следующее. Если друг— мужчина, то напишите строку: "Если ты увидишь friendname, пожалуйста, попроси его позвонить мне". Если друг — женщина, то напишите строку: "Если ты увидишь friend_name, пожалуйста, попроси ее позвонить мне".
5. Предложите пользователю ввести возраст адресата и присвойте его переменной age, имеющей тип int. Ваша программа должна вывести на экран строку: "Я слышал, ты только что отметил день рождения и тебе исполнилось age лет". Если значение переменной age меньше или равно 0 или больше или равно 110, выведите на экран строку error ("ты шутишь!").
6. Добавьте в ваше письмо следующие строки
Если вашему другу меньше 12 лет, напишите: "На следующий год тебе исполнится age+1 лет".
Если вашему другу 18 лет, напишите: "На следующий год ты сможешь голосовать".
Если вашему другу больше 60 лет, напишите: "Я надеюсь, что ты не скучаешь на пенсии".
Убедитесь, что ваша программа правильно обрабатывает каждое из этих значений.
7. Добавьте строку "Искренне твой," затем введите две пустые строки для подписи
и укажите свое имя.

Проблема возникла на 5м пункте. Насколько я понял, проверку значения переменной age (больше она 110 или меньше 0, например) следует выполнять через if-else. Но либо я не понял принцип использования функции if, либо я не понимаю чего-то ещё, но проверка значения переменной age не происходит, и сообщение об ошибке не показывается, каким бы значение переменной ни было. Собственно, мой код:
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "..//..//std_lib_facilities.h"
int main()
{
    cout << "Enter recipient's first name and press Enter: \n";
    string first_name;
    cin >> first_name;
    cout << "Dear " << first_name << ",\n"
        << "How are u? I'm fine. Miss you.\n";
    cout << "Enter other friend's name and press Enter:\n";
    string friend_name;
    cin >> friend_name;
    cout << "Have you seen " << friend_name << " recently?\n";
    char friend_sex = 0;
    cout << "Enter m for man, f for woman: \n";
    cin >> friend_sex;
    if (friend_sex == 'm') //тут было критично закавычить ('m') значение, принимаемое функцией friend_sex
        cout << "If u'll see " << friend_name << " please ask him to call me.\n";
    if (friend_sex == 'f')
        cout << "If u'll see " << friend_name << " please ask her to call me.\n";
    cout << "Enter recipient's age and press Enter: \n";
    int age;
    cin >> age;
    if (0 <= age <= 110) cout << "I've heard You've just turned " << age << "\n";
        else simple_error ("you're kidding");
    
}

Расскажите, в чём моя ошибка и как её исправить? Любые комментарии на тему кода приветствуются.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.07.2013, 15:37
Ответы с готовыми решениями:

пример из книги страуструпа
struct pair { char* name; // ñòðîêà int val; // öåëîå }; const int large = 1024; ...

Задача из книги Страуструпа (4.6.3)
Читаю книгу Страуструпа не могу понять как сортировать функцией sort. пример взят и переписан их книги: &quot;Принципы и практика...

Задача из книги Страуструпа
Нужна ваша помощь или хотя бы подсказка, в одном из упражнений в книге Страуструпа &quot; Программирование. Принципы и практика с...

3
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
29.07.2013, 15:52
Цитата Сообщение от Ollister Посмотреть сообщение
C++
1
if (0 <= age <= 110) cout << "I've heard You've just turned " << age << "\n"; else simple_error ("you're kidding");
странная констуркция условия для с++,
C++
1
if( (age>0) && (age < 110) )
1
19 / 20 / 0
Регистрация: 09.01.2013
Сообщений: 168
29.07.2013, 15:57
C++
1
2
if ( (age <= 0) || (age >=100) )
cout << "you are kidding/n";
Двойные неравенства в условии писать нельзя
3
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 22
12.06.2015, 22:21
В 6 пункте выше указанного задания упоминается использование simple_error. Что страуструп хочет? Объясните пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.06.2015, 22:21
Помогаю со студенческими работами здесь

Достаточно ли книги Страуструпа?
В общем, учу с++ по страуструпу и думаю: &quot; а хватит ли этого???&quot; . Подскажите книгу, по которой учиться дальше? Спасибо!

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

Задачка из книги Страуструпа...
Доброго времени суток всем! Заранее благодарен за ответы и, возможные, пути исправления... Итак: &quot;Считайте последовательности...

Задача из книги Страуструпа
Меня настораживает несколько странная формулировка, я не понимаю зачем так предлагают решать задачу: Напишите программу, содержащую цикл...

Задание из Страуструпа
Добрый день,дорогие форумчане.В общем читаю книжечку Страуструпа.Выполняю задания.Вот что-то у меня ступор.Прошу Вашего совета:) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru