2 / 2 / 0
Регистрация: 31.08.2020
Сообщений: 44
1

Функции, расчет температуры земли на определенной глубине

03.10.2020, 02:14. Показов 785. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, делаю задание и возник один вопрос.
Нужно написать программу, которая считает температуру земли на определенной глубине.
Программа должна состоят из 4х функций:
You should have 4 functions in your program.
1. void print_introduction (){}
// печатает информацию, чтобы рассказать пользвателю что делает данная программа.
2. double celsius_at_depth (double depth){}
// вычисляет и возвращает температуру в градусах Цельсия на глубине стольки-то метров.
3. double celsius_to_fahrenheit (double celsius){}
// переводит градусы Цельсия в гр. Фаренгейта.
4. void print_conclusion(double depth){}
// отображает результаты вычисления, т.е. температуру в градусах Цельсия и в гр. Фарингейта.

Программу я написала, только я немного запуталась с третьей функцией. Она зависит от предыдущей функции, то есть от double celsius_at_depth (double depth){}. C double celsius_at_depth (double depth){} все понятно, ее параметр - это depth. А вот для double celsius_to_fahrenheit (double celsius){} не очень понятно, так как, насколько я понимаю, функция не может быть параметром другой функции. Я пока сделала так:

C++
1
2
3
4
double celsius_at_depth (double depth)
{
    return ((10 * depth) + 20);
}
C++
1
2
3
4
double celsius_to_fahrenheit ()
{
    return (1.8 * (celsius_at_depth (depth)) + 32);
}
Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2020, 02:14
Ответы с готовыми решениями:

Расчет гравитационного поля Земли
Прочитал материалы темы Планета Земля и гравитация-Обо всем от 19.12.2016 г. Эта тема представляет...

Расчет параметров гравитационного поля Земли
Доброго времени суток! Хотелось бы одну могучую тему поднять - а именно расчет параметров...

Расчет температуры
Здравствуйте, не работает программа для расчета средней температуры за год, в чем ошибка? <html>...

Расчет средней температуры чурки

5
377 / 228 / 79
Регистрация: 24.11.2009
Сообщений: 695
03.10.2020, 03:46 2
Это правильно было:
C++
1
2
3
4
double celsius_to_fahrenheit (double celsius)
{
    return (1.8 * (celsius)) + 32);
}
Используйте переменную для сохранения результата:
C++
1
2
3
4
5
int main()
{
double t_cels = celsius_at_depth (depth);
double t_fah = celsius_to_fahrenheit(t_cels);
}
или то же самое записанное иначе:
C++
1
2
3
4
int main()
{
double t_fah = celsius_to_fahrenheit(celsius_at_depth (depth));//результат от глубины передается аргументом фаренгейту
}
1
2 / 2 / 0
Регистрация: 31.08.2020
Сообщений: 44
03.10.2020, 06:54  [ТС] 3
Vladimir., спасибо, про первый вариант я думала, до второго не дошла. Но, судя по условиям задания, нужно сделать именно так, как вы написали во втором варианте.
Еще раз спасибо!

Добавлено через 2 часа 19 минут
В общем, перечитала я требования к заданию и...я не верно сделала.
Там есть дополнительные требования:
В основной функции вычислений нет. Это шаги для псевдо кода основной функции:
1. напечатать введение в программу, вызвав print_introduction function.
2. попросить пользователя внести значение глубины земли.
3. получить ввод от пользователя.
4. распечатать заключение с помощью вызова print_conclusion.
5. спросить пользователя, хочет ли он выполнить еще одно вычисление.
6. получить ввод от пользователя.
7. повторить шаги со 2го по 6й, если пользователь ответил "да".
8. Остановить программу.

Все необходимые вычисления выполняются в функции print_conclusionю
Функции celsius_at_depth и celsius_to_fahrenheit вызваются из print_conclusion.
В основной функции вычисление нет, так же как и нет вызова функций celsius_at_depth и celsius_to_fahrenheit.

Переписала, Подскажите, пожалуйста, есть ли у меня какие-то ошибки?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
using namespace std;
 
double depth;
 
void print_introduction ();
// Prints out information to explain the user what this program does. 
 
double celsius_at_depth (double depth);
// Computes and returns the Celsius temperature at a depths measured in kilometers.
 
double celsius_to_fahrenheit (double depth);
// Converts a Celsius temperature to Fahrenheit.
 
void print_conclusion (double depth);
// Prints out the results of the computations in both Celsius and Fahrenheit for a certain depth. 
 
int main()
{
    char ans;
    do
    {
        print_introduction();
        cout << "Please enter a depth in kilometers:\n";
        cin >> depth;
        cout.setf(ios::fixed);
        cout.setf(ios::showpoint);
        cout.precision(2);
        print_conclusion(depth);
        cout << "Would you like to do another calculation?\n";
        cin >> ans;
    } while ((ans == 'y') || (ans == 'Y'));
    cout << "The end of the program.\n";
    return 0;
}
 
void print_introduction()
{
    cout << "Hello! This program will compute the temperature of the earth at any depth.\n";
}
double celsius_at_depth(double depth)
{
    return (10 * depth + 20);
}
double celsius_to_fahrenheit(double depth)
{
    return (1.8 * (celsius_at_depth(depth)) + 32);
}
void print_conclusion(double depth)
{
    cout << "The temperature of the earth at a depth of" << " " << depth << " " << "kilometers is" << " " << celsius_at_depth(depth) << " "
        << "in Celsius, and" << " " << celsius_to_fahrenheit(depth) << " " << "in Fahrenheit.\n";
}
0
377 / 228 / 79
Регистрация: 24.11.2009
Сообщений: 695
03.10.2020, 12:45 4
ksuharik85, всё отлично! (и у вас, судя по всему, хорошая программа обучения).
Просто информация:
1) пробелы тоже символы, и могут стоять на границах строковых литералов:
C++
1
2
3
cout << "The temperature of the earth at a depth of" << " " << depth << " " << "kilometers is" << " " << celsius_at_depth(depth) << " "
        << "in Celsius, and" << " " << celsius_to_fahrenheit(depth) << " " << "in Fahrenheit.\n";
cout << "The temperature of the earth at a depth of "<< depth <<" kilometers is "celsius_at_depth(depth)<< " in Celsius, and " << celsius_to_fahrenheit(depth) << " in Fahrenheit.\n";
2) Язык гарантирует, что в случае, если выполнение main (и только main) дошло до закрывающей скобки будет возвращен 0.
То есть:
C++
1
2
3
4
5
int main()
{
// какой-то код
 return 0; // строка перед закрывающей скобкой.
}
эквивалентно
C++
1
2
3
4
int main()
{
// какой-то код
}
1
2 / 2 / 0
Регистрация: 31.08.2020
Сообщений: 44
03.10.2020, 19:58  [ТС] 5
Vladimir., спасибо большое на добром слове. Я всего 1,5 месяца учу программирование с нуля. Это не так уж просто. Очень любят писать: вы не понимаете это и не понимаете то, и третье и десятое. Я не понимаю - и я спрашиваю, и, как могу, пытаюсь разобраться. Курс у меня ориентирован на самообучение - вот книга, вот задание - делай все сам. От преподавателя никакой помощи нет.
Теперь пробелы буду по вашему методу ставить, это намного удобнее.
Спасибо еще раз.
2
2523 / 1243 / 459
Регистрация: 08.11.2016
Сообщений: 3,412
05.10.2020, 17:00 6
ksuharik85, многим здесь Вас в пример.
1
05.10.2020, 17:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2020, 17:00
Помогаю со студенческими работами здесь

Расчёт температуры кристалла светодиода
Есть у нас светодиод 1W в корпусе Emitter имеющий тепловое сопротивление кристалл-основание 10...

Расчет средней температуры StringGrid
Зафиксируйте у StringGrid верхнюю строку, в которой перечислите дни: от 1 до 30. В следующей...

Расчет цвета температуры на основе данных
Имеется двумерный массив с распределением температуры в пластине. Необходимо его визуализировать....

Как откалибровать расчет температуры по термистору?
переделываю ламинатор, решил использовать установленный в нем термистор судя по номиналу на...

Нажатие определенной клавиши на клавиатуре = Запуск определенной функции
Здравствуйте. У меня такой вопрос: как при нажатии, к примеру, клавиши &quot;1&quot; на клавиатуре запустить...

Программа расчёт температуры по сопротивлению ТСМ гр.23 (53М)
В связи с удалением из ГОСТ датчиков 53М, программы в интернете рассчитывают только температуру...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru