Сейчас мы напишем конвертер температур. Т. е. он будет переводить температуры из одной системы в другую (например: из шкалы Кельвина в градусы по шкале Цельсия). Для начала вспомним формулы по которым это все переводится.
Для того, что бы перевести температуру из шкалы Цельсия в температуру по шкале Кельвина, нужно добавить 273 к первоначальному значению. Для того, что бы перевести температуру из шкалы Цельсия в температуру по шкале Фаренгейта, нужно исходное значение умножить на 9 и разделить на 5, затем к результату добавить 32. Этих двух формул нам будет достаточно.
Для начала решим, что будем делать все процедурами.
Приступаем. Добавляем заголовочный файл iostream.h в программу. Для тех, кто еще не знает как это сделать, напоминаю:
#include <iostream.h>
Затем пишем тело главной функции.
#include <iostream.h>
int main(){
return(0);
}
В программе нам потребуется две переменные. Строка, которая будет определять, что нужно сделать и число градусов, которые нужно перевести. Строка представляет собой массив символов. Объявляется она следующим образом:
char s[100];
или, если нам нужна строка неограниченной длины:
char s[];
В нашем случае, нам нужна строка с тремя символами и переменная типа double (значит с плавающей точкой). Пишем:
#include <iostream.h>
char eq[3];
double a;
int main(){
return(0);
}
Для начала программа должна прочесть значения eq и a:
#include <iostream.h>
char eq[3];
double a;
int main(){
cin>>eq[1]>>eq[2];
cin>>a;
return(0);
}
Затем, оператором switch мы делаем разбиение и проверку всех возможных значений. eq[1] – символ шкалы из которой нужно перевести (C – Цельсия, K – Кельвина, F – Фаренгейта). eq[2] – символ шкалы в которую надо перевести.
Соответственно, eq[1] и eq[2], могут принимать по 3 разных значения. Т. е. в итоге, нам нужно рассмотреть 9 случаев. Рассматриваем:
switch (eq[1]){
case 'C':
switch (eq[2]){
case 'K' :
cout<<"Температура в К: "<<CK(a)<<'n';
break;
case 'F':
cout<<"Температура в F: "<<CF(a)<<'n';
break;
}
break;
case 'K':
switch (eq[2]){
case 'C':
cout<<"Температура в С: "<<KC(a)<<'n';
break;
case 'F':
cout<<"Температура в F: "<<KF(a)<<'n';
break;
}
break;
case 'F':
switch (eq[2]){
case 'C':
cout<<"Температура в С: "<<FC(a)<<'n';
break;
case 'K':
cout<<"Температура в К: "<<FK(a)<<'n';
break;
}
break;
default :
cout<<"Вы ввели неверные символы."<<'n';
break;
}
Надеюсь понятно почему именно так. (Если нет, то перечитайте еще раз и напишите в каком именно месте непонятно в комментарии.) Но, как вероятно многие заметили, я использовал 6 функций с параметрами. В функциях идет расчет значений и каждая функция возвращает уже готовое значение. Привожу код всех функций:
double CK(double a){
return(a+273);
}
double CF(double a){
return((a*9)/5+32);
}
double KC(double a){
return(a-273);
}
double FC(double a){
return((-32*5)/5);
}
double KF(double a){
a=KC(a);
a=CF(a);
return(a);
}
double FK(double a){
a=FC(a);
a=CK(a);
return(a);
}
Разберем первую:
double CK(double a){
return(a+273);
}
Тип double указывается перед именем переменной, для того, что бы программа знала, какого типа переменную, мы собираемся возвращать. В скобках (), мы указываем параметр функции, который мы будем передавать ей для расчетов. Параметры могут быть разнотипные и их может быть множество. в операторе return();, мы указываем выражение, значение которого должна принять (вернуть) функция.
Полный код программы:
#include <iostream.h>
char eq[3];
double a;
double CK(double a){
return(a+273);
}
double CF(double a){
return((a*9)/5+32);
}
double KC(double a){
return(a-273);
}
double FC(double a){
return((-32*5)/5);
}
double KF(double a){
a=KC(a);
a=CF(a);
return(a);
}
double FK(double a){
a=FC(a);
a=CK(a);
return(a);
}
int main(){
cout<<"Для перевода из одной системы в другую, введите сперва ту, из которой нужно перевести, затем ту, в которую нужно перевести.n C - температура по шкале Цельсияn F - температура по шкале Фаренгейтаn K - температура по шкале Кельвина n Затем, после нажатия <Enter>, введите кол-во градусов, которые нужно перевести.n";
cin>>eq[1]>>eq[2];
cin>>a;
switch (eq[1]){
case 'C':
switch (eq[2]){
case 'K' :
cout<<"Температура в К: "<<CK(a)<<'n';
break;
case 'F':
cout<<"Температура в F: "<<CF(a)<<'n';
break;
}
break;
case 'K':
switch (eq[2]){
case 'C':
cout<<"Температура в С: "<<KC(a)<<'n';
break;
case 'F':
cout<<"Температура в F: "<<KF(a)<<'n';
break;
}
break;
case 'F':
switch (eq[2]){
case 'C':
cout<<"Температура в С: "<<FC(a)<<'n';
break;
case 'K':
cout<<"Температура в К: "<<FK(a)<<'n';
break;
}
break;
default :
cout<<"Вы ввели неверные символы."<<'n';
break;
}
return(0);
}
До новых программ. Пишите всегда те программы, которые Вам нужны на данный момент и которые Вам интересны.
Сегодня
лечение зубов без боли возможно - обратитесь к нам!