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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2011, 23:29   #11
Костя Соколов
Новичок
Джуниор
 
Аватар для Костя Соколов
 
Регистрация: 21.07.2011
Сообщений: 9
Стрелка ЗДАРОВА!!! ПРОБЛЕМА Лафоре ГЛАВА 2 УПРАЖНЕНИЕ 8

ЗДАРОВА ))
У МЕНЯ ПРОБЛЕМА С ПОД ЗАДАНИЕМ Лафроне ООП
Глава 2 упражнение 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 значение переменной decfrac. Аналогичным образом можно получить число пенсов.
}

НАПИШИТЕ РАБОЧИЙ КОД С КОМЕНТАРИЯМИ.
ПЕРЕНЁС ВОПРОС ВОТ ПО ЕТОЙ СЫЛКЕ http://programmersforum.ru/showthrea...457#post849457
связь со мной по почте cokol1pro@gmail.com
или по скайпу coko1994
-_- хватит меня критиковать.

Последний раз редактировалось Костя Соколов; 22.07.2011 в 23:39.
Костя Соколов вне форума Ответить с цитированием
Старый 22.07.2011, 23:38   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
вставило вот такой символ £
http://programmersforum.ru/showthread.php?t=153996

Цитата:
Глава 2 упражнение 12.
ПОЖАЛУЙСТА НАПИШИТЕ РАБОЧИЙ КОД
Код:
		pound = static_cast<int>(decpounds);
		double decfraction = decpounds - pound;
		shil = decfraction * 20;
		pence = decfraction * 12;
		
                 while (pence > 11)
		{
			shil = shil + pence / 12;
			pence %= 12;
		}

		while (shil > 19)
		{
			pound = pound + shil / 20;
			shil %= 20;
		}
Кстати, вырвите (предварительно отжав) кнопку Caps Lock на клавиатуре.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 22.07.2011 в 23:44.
Alex11223 вне форума Ответить с цитированием
Старый 24.07.2011, 16:31   #13
Костя Соколов
Новичок
Джуниор
 
Аватар для Костя Соколов
 
Регистрация: 21.07.2011
Сообщений: 9
Восклицание НЕПОЛУЧАЕТЬСЯ

ОШИБКУ ВЫДАЁТ


Цитата:
Вот мой код
#include <iostream>
#include <iomanip>
#include <ctype.h>
using namespace std;
int main()
{
float funt,shil,pence,newmoney,new1,new2, new3,new4,new5,inpens,pensOld,PensO ld,decpounds,pound;

cin >> decpounds;

pound = static_cast<int>(decpounds);

double decfraction = decpounds - pound;
shil = decfraction * 20;
pence = decfraction * 12;

while (pence > 11)
{
shil = shil + pence / 12;
pence %= 12;
}

while (shil > 19)
{
pound = pound + shil / 20;
shil %= 20;
}

return 0;
}



Цитата:
\CodeBlocks\001\020.cpp||In function `int main()':|
\CodeBlocks\001\020.cpp|20|error: invalid operands of types `float' and `int' to binary `operator%'|
\CodeBlocks\001\020.cpp|20|error: in evaluation of `operator%=(float, int)'|
\CodeBlocks\001\020.cpp|26|error: invalid operands of types `float' and `int' to binary `operator%'|
\CodeBlocks\001\020.cpp|26|error: in evaluation of `operator%=(float, int)'|
||=== Build finished: 4 errors, 0 warnings ===|
связь со мной по почте cokol1pro@gmail.com
или по скайпу coko1994
-_- хватит меня критиковать.
Костя Соколов вне форума Ответить с цитированием
Старый 24.07.2011, 16:59   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

наверно потому что фунты, пенсы и шиллинги должны быть целочисленного типа. Не надо дублировать сообщения на е-маил.

upd: там, кстати, какая-то ошибка, результат не верный.
Вот работающий вариант, правда как и почему он работает не помню:
Код:
 double decpounds; 
 int pounds, shillings, pence; 
 double decfrac; 

 cout<<"Enter decimal pounds: "; 
 cin >>decpounds;
 pounds = static_cast<int>(decpounds); 

 decfrac = 240*(decpounds - pounds); 
 pence = (static_cast<int>(decfrac))%12; 
 shillings = static_cast<int>((decfrac-pence)/12); 
 cout<<"Equivalent in old notation = "<<pounds<<"."<<shillings<<"."<<pence<<endl;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 24.07.2011 в 18:37.
Alex11223 вне форума Ответить с цитированием
Старый 25.07.2011, 18:22   #15
Костя Соколов
Новичок
Джуниор
 
Аватар для Костя Соколов
 
Регистрация: 21.07.2011
Сообщений: 9
По умолчанию

спасибо алекс за всё
вот сам написал =) и работающий

Код:
#include <iostream>
#include <iomanip>
#include <ctype.h>
using namespace std;
int main()
{
int old01,old02,old1,old2,old3;
double decpounds;

		cin>>decpounds;//3.51
		old01=decpounds*240;
		old02=old01/12;
		old1=old02/20;
		old2=(old01/12)-(20*old1);
        old3=old01%=12;
		cout<<old1<<"."<<old2<<"."<<old3<<endl;
return 0;
}

}
связь со мной по почте cokol1pro@gmail.com
или по скайпу coko1994
-_- хватит меня критиковать.
Костя Соколов вне форума Ответить с цитированием
Старый 29.11.2011, 14:55   #16
Viadioz
Новичок
Джуниор
 
Регистрация: 29.11.2011
Сообщений: 2
По умолчанию

Всем Привет! Я сдесь впервые. Вот простенькое решение, но думаю
правильное:

Код:
#include <iostream>
using namespace std;
int main()
{
	double funt, shilling, pens, sum=0;

	cout<<"Vvedite funt:";
	cin>>funt;

	cout<<"Vvedite shilling:";
	cin>>shilling;

	cout<<"Vvedite pens:";
	cin>>pens;

	sum=(shilling*12+pens)/2.4;
	
	funt+=sum/100;

	cout<<"Desjatichnuh funtov:"<<funt<<endl;
	cout<<"\n";

	return 0; 
}
Извините чуть не туда попал



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Viadioz; 29.11.2011 в 15:11.
Viadioz вне форума Ответить с цитированием
Старый 29.11.2011, 15:23   #17
Viadioz
Новичок
Джуниор
 
Регистрация: 29.11.2011
Сообщений: 2
По умолчанию

Подскажите пожалуйста, что здесь не так:

Код:
#include <iostream>
using namespace std;
int main()
{
	double desfunt;
	int funt, shilling, pens, sum;

	cout<<"Vvedite desyatichny funt:";
	cin>>desfunt;

	sum = static_cast<int>(desfunt);
        funt = desfunt - sum;
	shilling = funt*20;
	pens = shilling*12;

	cout<<"Summa v staroy forme zapisi:"<<funt<<"."<<shilling<<"."<<pens<<"."<<endl;

	cout<<"\n";
	return 0;
}

Последний раз редактировалось Viadioz; 29.11.2011 в 15:36.
Viadioz вне форума Ответить с цитированием
Старый 28.02.2012, 17:44   #18
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 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дороги Великобритании Utkin Свободное общение 53 14.04.2016 08:29
Лафоре, задачи Narayana Общие вопросы C/C++ 4 28.02.2012 17:39
Денежная система Великобритании 2 Костя Соколов Общие вопросы C/C++ 1 22.07.2011 23:47
Бизнес в Великобритании KOC Свободное общение 5 27.04.2010 02:08