Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2011, 14:08   #1
Narayana
Новичок
Джуниор
 
Аватар для Narayana
 
Регистрация: 28.05.2011
Сообщений: 2
Лампочка Лафоре, задачи

Доброго времени суток!
С недавнего времени занимаюсь C++ по Лафоре. Во второй главе есть задача про преобразование фунтов старого образца, в новый десятичный. Пример: старая запись 5.2.8, новая 5.13.
Нужно написать программу которая запрашивает колличество фунтов, шиллингов и пенсов(старый фунт) и преобразует в новый(десятичный).
С запросом проблем небыло, а вот с переводом в десятичный фунт я затупил. Объясните что и как.Вот мой код:
Цитата:
#include <iostream>
using namespace std;
int main()
{
double pound, shilling, penny;
cout << "Enter amount in pounds: " << endl;
cin >> pound;
cout << "Enter amoundt in shillings: " << endl;
cin >> shilling;
cout << "Enter amount in pennies: " << endl;
cin >> penny;
cout << "Old mark: " << pound << "." << shilling << "." << penny << endl;


return 0;
}
Никогда - всего лишь вопрос времени.
Narayana вне форума Ответить с цитированием
Старый 28.05.2011, 17:54   #2
Narayana
Новичок
Джуниор
 
Аватар для Narayana
 
Регистрация: 28.05.2011
Сообщений: 2
По умолчанию

Все решил) Приводим все к пенсам, а там део техники) Кому интересно вод код
Цитата:
#include<iostream>
using namespace std;

int main()
{
double pound, shilling, penny, old_pound;

cout << "\n Enter amount in pounds: " << endl;
cin >> pound;
cout << "Enter amoundt in shillings: " << endl;
cin >> shilling;
cout << "Enter amount in pennies: " << endl;
cin >> penny;
cout << "Old pound: " << pound << "." << shilling << "." << penny << endl;
old_pound = pound * 20 * 12 + shilling * 12 + penny;
cout << "New pound: " << old_pound / (20 * 12) << endl;

return 0;
}
Спасибо за внимание))) Тему можно закрывать!
Никогда - всего лишь вопрос времени.
Narayana вне форума Ответить с цитированием
Старый 28.05.2011, 18:03   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Или вот так я решал Тоже вроде была первой задачей, над которой долго тупил)
Код:
int main()
   {
   setlocale(LC_ALL, "Russian");
   float pound, shill, pence;
   cout << "Введитте количество фунтов: " ; cin >> pound;
   cout << "Введите количество шиллингов: "; cin >> shill;
   cout << "Введите количество пенсов: "; cin >> pence;
   float newmoney = (pound + shill/20 + pence/240);
   cout << "Десятичных фунтов: " << setprecision(3) << newmoney << endl;
   return 0;
   }
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.07.2011, 01:16   #4
vazaz
Новичок
Джуниор
 
Регистрация: 06.07.2011
Сообщений: 1
По умолчанию

А вот еще один способ:

Код:
#include <iostream> 
#include <math.h> // для round

using namespace std;

int main()
{

	int oldgbp, oldshg, oldpn;
	float gbp;

	cout << "Enter amount in pounds: "; 
	cin >> oldgbp;
	cout << "Enter amount in shillings: ";
	cin >> oldshg;
	cout << "Enter amount pennies: ";
	cin >> oldpn;

	gbp = oldgbp + 0.05*oldshg + 0.00417*oldpn; // формула конвертации

	cout << "Decimetrical GBP: \x9C"  // вывод и
			<< round(gbp *100)/100; // округление в новых фунтах

	return 0;
}
а вот обратная конвертация, но она у меня вышла менее точная почему-то:
Код:
#include <iostream>

using namespace std;

int main()
{
	float gbp;
	int oldgbp, pens, oldshg, oldpens;

	cout << "Enter amount in decimetrical gbp: ";
	cin >> gbp;

	oldgbp = static_cast<int>(gbp); // убираем дробную часть и получаем старые фунты
	pens = (gbp - oldgbp) * 100; // оставляем только новые пенсы и для удобства переводим в целое число
	oldshg = pens / 5; // расчитываем шиллинги
	oldpens = pens%5 * 2.4; // расчитываем старые пенсы

	cout << "Sum in GBP, shillings and pennies: \x9C" << oldgbp
			<< "," << oldshg << "," << oldpens << endl;

	return 0;
}
Подскажите,если есть ошибка, то где она.

Последний раз редактировалось vazaz; 06.07.2011 в 01:44.
vazaz вне форума Ответить с цитированием
Старый 28.02.2012, 17:39   #5
xxbigxl
 
Регистрация: 28.02.2012
Сообщений: 3
По умолчанию

Лафоре С++ Обратная конвертация денежных сумм Великобритании

Код:
//------------------Кампилятор dev-C++ 4.9.9.2 Windows 7 x64------------------------------------------------------------
#include <iostream>
using namespace std;
int main ()
{
setlocale(LC_ALL,"Russian"); // Русский язык 
float new_$, new_pens, shiling;
int funt,  pens, int_shiling;

cout << "Введите число десятичных фунтов: ";
cin >> new_$;                            // 5.13
  funt = static_cast<int>(new_$); // 5 фунтов -------------------------------------------------------------------------- в ответ
    new_pens = new_$ - funt;       // 0.13
    shiling = new_pens * 20;         // 0.13*20(20 шилингов в 1 фунте) = 2.6 2 шиллинга и 6 десятичных пенсов т.е 0.6 
      int_shiling = static_cast<int>(shiling); // 2 шиллинга  ----------------------------------------------------------------в ответ
        new_pens = shiling - int_shiling;       // 0.6  десятичных пенсов
        pens = new_pens * 12;                   // 0.6*12(12 пенсов в 1 шилинге)= 7 пенсов ------------------------------ ---в ответ
    cout << endl << "Эквивалентная сумма в старой форме записи: $" << funt << "." << int_shiling << "." << pens << endl << endl;     
   system ("pause");
   return 0;    
}
xxbigxl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лафоре, консольная графика Alex11223 Общие вопросы C/C++ 9 05.07.2014 16:20
4 задачи в системе Mathematica(задачи уже решены) Toni Milano Фриланс 2 08.02.2011 19:28
Задачи в делфи. информационная модель задачи. @leks@ Помощь студентам 2 17.10.2010 19:15
Роберт Лафоре. Объектно-ориентированное программирование на c++ blackbanny Обсуждение статей 2 11.11.2009 10:08