C/C++

Помогите программированию с++ пожалуйста

Напишите программу, выполняющую действия, обратные тем, которые описаны в предыдущем упражнении 4, то есть запрашивающую у пользователя сумму, указанную в десятичных фунтах, и переводящую ее в старую систему фунтов, шиллингов и пенсов. Пример взаимодействия программы с пользователем может выглядеть так: Введите число десятичных фунтов: 3.51 Эквивалентная сумма в старой форме записи: £3.10.2 Обратите внимание на то, что если вам придется присваивать вещественное значение (например, 12.34) переменной целого типа, то его дробная часть (0,34) будет потеряна, а целая переменная получит значение 12. Чтобы избежать предупреждения со стороны компилятора, используйте явное преобразование типов. Можно использовать операторы, подобные приведенным ниже: float decpounds: // сумма в десятичных фунтах float decfrac: // десятичная дробная часть int pounds: // сумма в старых фунтах pounds = static_cast(decpounds): //отбрасывание //дробной части decfrac = decpounds - pounds; //выделение дробной части Чтобы получить число шиллингов, следует умножить на 20 значение переменной decfrac. Аналогичным образом можно получить число пенсов.
*Упражнение №12:
Напишите программу, выполняющую действия, обратные тем, которые описаны в упражнении 10, т.е. запрашивающую у пользователя сумму, указанную в
десятичных фунтах, и переводящую ее в старую систему фунтов, шиллингов и пенсов. Пример взаимодействия программы с пользователем может выглядеть так:

Введите число десятичных фунтов: 3.51
Эквивалентная сумма в старой форме записи: £3.10.2

Обратите внимание на то, что если вам придется присваивать вещественное значение (например 12.34) переменной целого типа, то его дробная часть (0.34)
будет потеряна, а целая переменная получит значение 12. Чтобы избежать предупреждения со стороны компилятораЮ используйте явное преобразование типов.
Можно использовать операторы, подобные приведенным ниже:
float decpounds; //сумма в десятичных фунтах
int pounds; //сумма в старых фунтах
float decfrac; //Десятичная дробная часть
pounds=static_cast<int>(decpounds); //отбрасывание дробной части
decfrac=decpounds - pounds; //определение дробной части

Чтобы получить число шиллингов, следует умножить на 20 значение переменной defrac. Аналогичным образом можно получить число пенсов.
*/
//Решение:
#include <iostream>
using namespace std;
int main()
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Готовим программу к работе, заводим переменные и получаем необходимые значения:

float decpounds; //сумма в десятичных фунтах
int pounds; //сумма в старых фунтах
float decfrac; //Десятичная дробная часть
cout«"Введите число десятичных фунтов: ";
cin»decpounds;
pounds=static_cast<int>(decpounds); //отбрасывание дробной части
decfrac=(decpounds - pounds)*20; //шиллинги на данном этапе нужны в такой форме, чтобы правильно расчитать пенсы
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*Экономим память: так как переменную decpounds использовали по назначению и сохраненное в нее значение уже не нужно приводим ее к типу int.
Выполняем следующие действия производим расчет пенсов в этой переменной*/

static_cast<int>(decpounds);
decpounds=static_cast<int>((decfrac-static_cast<int>(decfrac))*12);

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Производим вывод старой формы и досчитываем шиллинги:
cout«"Эквивалентная сумма в старой форме записи: £"«pounds«'.'«static_cast<int>(decfrac)«'.'«decpounds«endl;
return 0;
}
/*Вывод программы:
Введите число десятичных фунтов: 7.89
Эквивалентная сумма в старой форме записи: £7.17.9

Введите число десятичных фунтов: 3.51
Эквивалентная сумма в старой форме записи: £3.10.2
*/
Сашка Ильев
Сашка Ильев
367
Лучший ответ