Программа, которая переводит градусы Кельвина в градусы Цельсия - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Напишите программу, которая бы переводила градусы Кельвина в градусы Цельсия и наоборот. Проверить введенные значения на отсутствие ошибок.

Решение задачи: «Программа, которая переводит градусы Кельвина в градусы Цельсия»

textual
Листинг программы
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
 
const double ABS_ZERO = -273.15;
const double ERROR = -300.0;
 
double cel_to_kel(double cel)
{
    if( cel < ABS_ZERO ) return ERROR;
    return cel - ABS_ZERO;
}
 
double kel_to_cel(double kel)
{
    if( kel < 0.0 ) return ERROR;
    return kel + ABS_ZERO;
}
 
int main(int argc, char* argv[])               
{
    double temp;
    char buf[10];
    char scale;
 
    while( true ) {
        puts("Enter temperature");
        fgets(buf, sizeof(buf), stdin);
        scale = toupper(buf[0]);
        if( scale != 'C' && scale != 'K' ) break;
        buf[0] = ' ';
        temp = atof(buf);
        if( temp == ERROR ) break;
        if( scale == 'C' ) {
            temp = cel_to_kel(temp);
        } else {
            temp = kel_to_cel(temp);
        }
        printf("Converted temperature = %0.2f\n", temp);
    }
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: для работы с булевыми значениями, для работы с вводом/выводом данных и для работы с числами с плавающей точкой.
  2. Объявление констант: ABS_ZERO = -273.15 (абсолютная температура в Кельвинах при которой начинается отсчет в Цельсиях) и ERROR = -300.0 (значение, возвращаемое функцией при ошибке).
  3. Объявление функций: cel_to_kel(double cel) (переводит температуру из Цельсия в Кельвины) и kel_to_cel(double kel) (переводит температуру из Кельвина в Цельсии).
  4. Цикл while(true) для бесконечного выполнения программы, пока пользователь не введет неверное значение или не прервет выполнение программы.
  5. Ввод значения температуры с помощью функции fgets(buf, sizeof(buf), stdin) в буфер buf.
  6. Определение шкалы ввода температуры (C или K) с помощью функции toupper(buf[0]) и проверка на корректность введенного значения.
  7. Проверка на корректность введенного значения: если введено не число или некорректная шкала, то выход из цикла с помощью break.
  8. Выполнение перевода температуры в нужную систему с помощью функции cel_to_kel(temp) или kel_to_cel(temp) и сохранение результата в переменной temp.
  9. Вывод результата перевода с помощью функции printf(Converted temperature = %0.2f\n, temp).
  10. Возврат 0 из функции main() означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы