Форум программистов, компьютерный форум CyberForum.ru

Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Конвертер текстового файла http://www.cyberforum.ru/cpp-beginners/thread439174.html
Добрый день!!! Простите за наглость... Помогите пожалуйста написать программу-конвертер текстовых файлов из dos в windows и обратно. С командной строки должно вводится направление /d или /w. Я очень мало в этом понимаю. Заранее спасибо!!!
C++ Проблема с libmms - ошибка при компиляции. Здравствуйте. Уже который день не могу разобраться с упомянутой в заголовке библиотекой, а именно: пишу примерно такой тестовый код #include <iostream> #include <libmms/mms.h> int main() { mms_t *stream; char mms_link="mms://audio.rfn.ru/radiorus/audio/710/90.asf"; stream=mms_connect(0, 0, mms_link, 128); http://www.cyberforum.ru/cpp-beginners/thread439169.html
C++ Привет. Как можна найти с даного примера умножение элементов массива с четными номерами?
#include "stdafx.h" #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; int main(int argc, _TCHAR* argv)
C++ Начало DEV С++
Здравствуйте, подскажите где ошибка? Задание Даны действительные числа х, у . Если х, у отрицательные то каждое значение заменить его модулем; если отрицательное только одно из них, то оба значения увеличить на 0.5; если оба значения не отрицательные и ни одно из них не принадлежат отрезку , то оба значения уменьшить в 10 раз; в остальных случаях х, у оставить без изменения. Решение ...
C++ Запись текста в файл http://www.cyberforum.ru/cpp-beginners/thread439138.html
Нужно составить прогрумма которая создает файл и записывает в него текст. Программа не записывает в файл текст после пробела, помогите пожалуйста. char name; char text; cout<<"vvedite put' i im9 faila:\n"; cin>>name; ofstream out(name); cout<<"vvedite text:\n"; cin>>text; out<<text; out.close();
C++ allocator std::map Подскажите вопрос, есть тестовое задание: Написать allocator для std::map, располагающий элементы контейнера последовательно в памяти. Подскажите где про это почитать и разъясните по-возможности, что это вообще такое (std::map я вкурсе что это контейнер и как с ним работать) в ступор вводит allocator подробнее

Показать сообщение отдельно
Recrut_rf
6 / 6 / 0
Регистрация: 14.10.2014
Сообщений: 44
Завершенные тесты: 2
17.01.2015, 01:10     Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++"
А разве в книге есть решение 12-ой задачи второй главы? (судя по коду это это оно ) Мой вариант если что ...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <clocale>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
 
int main()
 {
    setlocale (LC_CTYPE, "rus");
    float decfunt, decshiling, decpens, a, b;
    int funt, shiling, pens;
    cout << "Введите число десятичных фунтов:";
    cin >> decfunt;
    funt = static_cast<int>(decfunt);
    a = decfunt - funt;
    decshiling = a * 20;
    shiling = static_cast<int>(decshiling);
    b = decshiling - shiling;
    decpens = b * 12;
    pens = static_cast<int>(decpens);
    cout << "Эквивалентная сумма в старой форме записи:" << funt << '.' << shiling << '.' << pens << endl;
    system("pause");
    return 0;
}
Вроде не сильно отличается от вашего...

Добавлено через 1 час 32 минуты
Цитата Сообщение от dicros Посмотреть сообщение
Или я чего не понял либо у вас тут ошибка.
if (z>11)(y+=1)&&(z=z%12);//если сумма пенсов >11, то прибавляем к сумме шиллингов 1 и приводим с
Т.е по вашему получается, что если сумма пенсов >11 мы к шиллингам прибавляем 1. Но если допустим я ввиду число пенсов=34. В вашем случае шиллинги увеличатся только на 1 и в пенсы попадет 1. А должно количество шиллингов увеличиться на 3 а количество пенсов должно быть равно 1.
Значение шилингов увеличивается на 1 а в пенсы попадёт 10 а не 1 (если складывать 0.0.34 + 0.0.0), хотя вроде как должно быть 2 шилинга и 10 пенсов (12+12+10). Один хрен - если подставить значения из книги - 5.10.6 + 3.2.6 - получим нужные 8.13.0. У меня результаты точно такие же. Вот код если что:
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
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <clocale>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv)
 {
    setlocale (LC_ALL, "rus");
    char ch;
    int funt, shiling, pens, funt2, shiling2, pens2, vsegosh, vsegop, vsegof;
    do
    {
        cout << "Введите первую сумму :\n";
        cin >> funt >> shiling >> pens;
        cout << "\nВведите вторую сумму:\n";
        cin >> funt2 >> shiling2 >> pens2;
        vsegof = funt + funt2;
        vsegosh = shiling+shiling2;
        vsegop = pens + pens2;
        if (pens + pens2 > 11)
        {
            (vsegosh+=1) && (vsegop = vsegop%12);
            
        }
        if (shiling+shiling2 > 19)
        {
            (vsegof+=1) && (vsegosh = vsegosh%20);
        
        }
        cout << "\nВсего:" << vsegof << '.' << vsegosh << '.' << vsegop << endl;
        cout << "\nЕщё раз? (y,n)";
        cin >> ch;
    }
    while (ch!='n');
    return 0;
}
 
Текущее время: 15:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru