У меня есть программа, с которой Dreamlax много работал со мной, в которой используется Objective-C для преобразования температур между шкалами температур по Фаренгейту, Цельсию, Кельвину и Ренкина, но преобразование ввода с консоли в Кельвин, а затем из Кельвина в желаемая шкала температуры конечного пользователя.
Теперь у меня есть идея, которую я хотел бы реализовать для окончательного запроса преобразованных температур, как только вычисления будут выполнены. В настоящее время он настроен на отображение только так:
x градусов шкала температур
Где x = конечная преобразованная температура, а температурная шкала = шкала, в которую пользователь хочет преобразовать свою температуру.
Предположим, что конечный пользователь выбрал Фаренгейт в качестве своей исходной температуры, желая преобразовать 212 градусов в свою целевую температурную шкалу Цельсия. Очевидно, что конверсия должна равняться 100 градусам Цельсия, но я думаю, что программа будет лучше отображать результат следующим образом:
212 градусов по Фаренгейту составляет 100 градусов по Цельсию.
Теперь я сделал значения, которые нужно заменить на переменные, выделенные жирным шрифтом. У меня есть значения 212 и 100, которые легко решить, потому что переменная 100 была там, во-первых, и 212 можно легко исправить, заменив ее строковым форматером переменной sourceTemp, переменной, которая содержит исходную введенную пользователем температуру.
Теперь строка по Фаренгейту немного отличается.
Я попытался установить что-то новое в исходном переключателе, например:
switch (prompt)
{
case 1:
//end-user chooses Fahrenheit
[converter setFahrenheitValue:sourceTemp];
sourceTempText = 1;
break;
case 2:
//end-user chooses Celsius
[converter setCelsiusValue:sourceTemp];
sourceTempText = 2;
break;
case 3:
//end-user chooses Kelvin
[converter setKelvinValue:sourceTemp];
sourceTempText = 3;
break;
case 4:
//end-user chooses Rankine
[converter setRankineValue:sourceTemp];
sourceTempText = 4;
break;
}
ОК, поэтому я добавил к каждому отдельному случаю, установив новую переменную с именем sourceTempText равной 1-4, то же значение, которое конечный пользователь выбрал для выбора его / ее температуры источника.
Теперь вот как я пытался отобразить окончательное приглашение для конечного пользователя с помощью последнего переключателя:
switch (prompt2)
{
case 1:
//end-user chooses Fahrenheit
printf("%lf degrees sourceTempText is %lf degrees Fahrenheit\n", sourceTemp, [converter fahrenheitValue]);
break;
case 2:
//end-user chooses Celsius
printf("%lf degrees sourceTempText is %lf degrees Celsius\n", sourceTemp, [converter celsiusValue]);
break;
case 3:
//end-user chooses Kelvin
printf("%lf degrees sourceTempText is %lf degrees Kelvin\n", sourceTemp, [converter kelvinValue]);
break;
case 4:
//end-user chooses Rankine
printf("%lf degrees sourceTempText is %lf degrees Rankine\n", sourceTemp, [converter rankineValue]);
break;
}
Сейчас я не уверен, смогу ли я вставить sourceTempText в строку, как здесь, вместо этого, возможно, мне придется использовать форматировщик строки, но я не уверен. Это должно быть легко исправить, я просто хотел выбросить это здесь! :)
P.S. извините за неправильное форматирование вопроса, я вроде не знал, как его сформулировать, поэтому, пожалуйста, попросите разъяснений, если это необходимо.