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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2018, 17:31   #11
Blacit
 
Регистрация: 09.12.2018
Сообщений: 8
По умолчанию

А можете сказать, что конкретно здесь делается?
И где коэффиценты перепутаны

Просто не совсем понял...
Blacit вне форума Ответить с цитированием
Старый 10.12.2018, 20:20   #12
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Здесь, это в вашей программе?
Коэффициенты: сантиметры в футы, сантиметры в метры, дюймы в футы, например. Самое простое, это проверить гугл-калькулятором эти коэффициенты один за другим.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.12.2018, 22:51   #13
Blacit
 
Регистрация: 09.12.2018
Сообщений: 8
По умолчанию

Ой, нет. Не сюда хотел отправить сообщение)
Вот готовый код. Спасибо за подсказку.


Код:
#include <iostream>
 
using namespace std;
// Используем double для большей точности
double sv, tv;
// Делаем unsigned, чтобы сделать целочисленными
unsigned int sm, E, tm;
 
int main()
{
    // Пользователь выбирает первоначальную величину
    cout << "Select size input: " << endl;
    cout << "1) CM" << endl;
    cout << "2) Inch" << endl;
    cout << "3) Feet" << endl;
    cout << "4) Metr" << endl;
    cin >> sm;
    // Пользователь выбирает конечную величину
    cout << "Select size input: " << endl;
    cout << "1) CM" << endl;
    cout << "2) Inch" << endl;
    cout << "3) Feet" << endl;
    cout << "4) Metr" << endl;
    cin >> tm;
    // Пользователь вводит число для конвертирования
    cout << "Enter a value: ";
    cin >> sv;
    // Формула преобразования
    E = (sm-1) * 4 + (tm - 1);
    // Формулы переводов из одной величины в другую
    tv = (
        // CM -> CM
        (E==0) * (sv * 1) +
        // CM -> Inch
        (E==1) * (sv * 0.39) +
        // CM -> Feet
        (E==2) * (sv * 0.032) +
        // CM -> Metr
        (E==3) * (sv * 0.01) +
        // Inch -> CM
        (E==4) * (sv * 2.54) +
        // Inch -> Inch
        (E==5) * (sv * 1) +
        // Inch -> Feet
        (E==6) * (sv * 0.833) +
        // Inch -> Metr
        (E==7) * (sv * 0.0254) +
        // Feet -> CM
        (E==8) * (sv * 30.48) +
        // Feet -> Inch
        (E==9) * (sv * 12) +
        // Feet -> Feet
        (E==10) * (sv * 1) +
        // Feet -> Metr
        (E==11) * (sv * 0.3048) +
        // Metr -> CM
        (E==12) * (sv * 100) +
        // Metr -> Inch
        (E==13) * (sv * 39.37) +
        // Metr -> Feet
        (E==14) * (sv * 3.28) +
        // Metr -> Metr
        (E==15) * (sv * 1)
        );
	// Округляем число до сотой 0.01
    cout.precision(3);
    cout << "set precision(3): " << tv << endl;
    // Выводим результат
    cout << "Result: " << tv << endl;
    return 0;
}

// Конвертер с помощью констант
/*
#include <iostream>
using namespace std;

const double MetreToCm = 100;
const double FootToCm = 30.48;
const double InchToCm = 2.54;

int main() {
	double sv, tv;
	unsigned int sm, E, tm;

	cout << "Select size input size: " << endl;;
	cout << "1) CM" << endl;
	cout << "2) Inch" << endl;
	cout << "3) Foot" << endl;
	cout << "4) Metre" << endl;
	cin >> sm;

	cout << "Select the size of the output value: " << endl;
	cout << "1) CM" << endl;
	cout << "2) Inch" << endl;
	cout << "3) Foot" << endl;
	cout << "4) Metre" << endl;
	cin >> tm;

	cout << "Enter a value:";
	cin >> sv;

	E = (sm - 1) * 4 + (tm - 1);

	tv = (
		// Cm -> Cm
		(E == 0) * (sv)+
		// Cm -> Inch
		(E == 1) * (sv / InchToCm) +
		// Cm -> Foot
		(E == 2) * (sv / FootToCm) +
		// Cm -> Metre
		(E == 3) * (sv / MetreToCm) +
		// Inch -> Cm
		(E == 4) * (sv * InchToCm) +
		// Inch -> Inch
		(E == 5) * (sv)+
		// Inch -> Cm -> Foot
		(E == 6) * (sv * InchToCm / FootToCm) +
		// Inch -> Cm -> Metre
		(E == 7) * (sv * InchToCm / MetreToCm) +
		// Foot -> Cm
		(E == 8) * (sv * FootToCm) +
		// Foot -> Cm -> Inch
		(E == 9) * (sv * FootToCm / InchToCm) +
		// Foot -> Foot
		(E == 10) * (sv)+
		// Foot -> Cm -> Metre
		(E == 11) * (sv * FootToCm / MetreToCm) +
		// Metre -> Cm
		(E == 12) * (sv * MetreToCm) +
		// Metre -> Cm -> Inch
		(E == 13) * (sv * MetreToCm / InchToCm) +
		// Metre -> Cm -> Foot
		(E == 14) * (sv * MetreToCm / FootToCm) +
		// Metre -> Metre
		(E == 15) * (sv)
		);

	cout << "Result: " << tv << endl;
	return 0;
}
*/
Blacit вне форума Ответить с цитированием
Старый 11.12.2018, 10:46   #14
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Коэффициент дюймы в футы все ещё неверный.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Самый простой поиск Fanar БД в Delphi 5 15.03.2011 19:26
Самый простой пример J-Max C++ Builder 1 03.12.2010 22:59
Самый простой способ сравнения. Mixasik Общие вопросы Delphi 6 21.04.2010 12:04
Не работает самый простой триггер nazavrik SQL, базы данных 2 11.06.2009 17:30