Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169

Функция Цельсий и Фаренгейт

16.10.2012, 00:09. Показов 5253. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задача: Напишите следующие функции:
 Функция celsius, которая возвращает температуру по Цельсию, эквивалентную температуре по Фаренгейту.
 Функция 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
#include<stdio.h>
#include<conio.h>
#include <locale.h>
float farengeit(float);
float celsiy(float);
int main() 
{
    setlocale(LC_ALL,"ukrainian");
    float t, a, b;
    char l;
    printf("Введіть F якщо вводите за Фаренгейтом \n Введіть C, якщо за Цельсієм");
    scanf("%c", &l);
    switch(l)
    {
    case'f': printf("Введіть температуру в Фаренгейтах:"); break;
    case'F': printf("Введіть температуру в Фаренгейтах:"); break;
    case'C': printf("Введіть температуру в Цельсіях:"); break;
    case'c': printf("Введіть температуру в Цельсіях:"); break;
    default: printf("Помилка програми: введено ні С, ні F");
    }
    scanf("%f", &t);
    if(l=='F' || l=='f')
        float T=celsiy(b);
    if(l=='c' || l=='C')
        float T=farengeit(a);
    getch();
    return 0;
}
float farengeit(float x)
{
    return x/2;
}
float celsiy(float x)
{
    return 2/x;
}
програма запускаеться, но после того как введу температуру - ошибка. в чем тут проблема. поправьте код в тех местах где ошибка, а не полностю весь код, а то я ето сам написал, и немного понимаю написаное.

Добавлено через 4 минуты
ЗЫ, функции пока не посчитают температуру правильно, те формулы что в функциях просто так написал, для наглядности, лень пока искать формулу обчысления фаренгейта в цельсий и наоборот.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.10.2012, 00:09
Ответы с готовыми решениями:

Фаренгейт и Цельсий
Друзья! В книге по С++ есть програмка вывода таблицы температур по фаренгейту и цельсию. Запускаю ее в MS Visual C++ 2008. Вот...

Ошибки - цельсий в фаренгейт
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void Filework(float* r,...

Программа конвертирует фаренгейт в цельсий или наоборот. Перегрузить ввод.
Всем привет! Столкнулся с некоторой трудностью, разбираясь с перегрузками. Пишу следующий код. #include &lt;iostream&gt; float...

8
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
16.10.2012, 00:27
ozzy_b, лови Не работает перевод из Фаренгейта в Цельсий

Не по теме:

(правда тогдашний ТС обозвал Фаренгейта Фарадеем:))

0
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
16.10.2012, 01:13  [ТС]
но меня интересует ошибка моего кода, который я сам написал.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
16.10.2012, 01:52
Цитата Сообщение от ozzy_b Посмотреть сообщение
но меня интересует ошибка моего кода, который я сам написал.
- Разница между градусом цельсия и градусом Фаренгейта составляет 32 * 5/9 а у тебя в коде
Цитата Сообщение от ozzy_b Посмотреть сообщение
return x/2;
}
float celsiy(float x)
{
* * return 2/x;
Где ты взял свои формулы?
http://www.bereg.ru/sprav_info/inform/gradus.shtml
При переводе из шкалы Фаренгейта в шкалу Цельсия из исходной цифры вычитают 32 и умножают на 5/9.
При переводе из шкалы Цельсия в шкалу Фаренгейта исходную цифру умножают на 9/5 и прибавляют 32.
Кроме всего прочего -
Цитата Сообщение от ozzy_b Посмотреть сообщение
float T=celsiy(b);
* * if(l=='c' || l=='C')
* * * * float T=farengeit(a);
- повторное объявление. И самое странное - у программы просто нет вывода на экран
0
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
16.10.2012, 02:14  [ТС]
формулы пока неважны, важен сам код, он после ввода градуса выдает ошибку

Добавлено через 4 минуты
во так дописал, но в чем проблема сечас?
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
#include<stdio.h>
#include<conio.h>
#include <locale.h>
float farengeit(float);
float celsiy(float);
int main() 
{
    setlocale(LC_ALL,"ukrainian");
    float t, a, b;
    char l;
    printf("Введіть F якщо вводите за Фаренгейтом \n Введіть C, якщо за Цельсієм");
    scanf("%c", &l);
    switch(l)
    {
    case'f': printf("Введіть температуру в Фаренгейтах:"); break;
    case'F': printf("Введіть температуру в Фаренгейтах:"); break;
    case'C': printf("Введіть температуру в Цельсіях:"); break;
    case'c': printf("Введіть температуру в Цельсіях:"); break;
    default: printf("Помилка програми: введено ні С, ні F");
    }
    scanf("%f", &t);
    if(l=='F' || l=='f')
        float T=celsiy(b);
    if(l=='c' || l=='C')
        float T=farengeit(a);
    printf ("T=&T", T);
    getch();
    return 0;
}
float farengeit(float x)
{
    return (x*(5/9))-32;
}
float celsiy(float x)
{
    return (x-32)*(5/9);
}
Добавлено через 2 минуты
я не могу понять так призвать нужную мне ф-цию в зависимости от того введу я F или C

Добавлено через 4 минуты
и каким образом функция возьмет к себе t, как ето прописать?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
16.10.2012, 02:20
Цитата Сообщение от ozzy_b Посмотреть сообщение
я не могу понять так призвать нужную мне ф-цию в зависимости от того введу я F или C
Добавлено через 4 минуты
и каким образом функция возьмет к себе t, как ето прописать?
Выделил оставшиеся ошибки
Цитата Сообщение от ozzy_b Посмотреть сообщение
float T=celsiy(b);
Цитата Сообщение от ozzy_b Посмотреть сообщение
float T=farengeit(a);
Цитата Сообщение от ozzy_b Посмотреть сообщение
printf ("T=&T", T);
- неверный спецификатор формата!
1
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
16.10.2012, 02:24  [ТС]
немного подумал, поправил, посмотрите правильно ли все с ф-циями. и почему в конце кода, где вывод Т пишет что индификатор Т неопределен?
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
#include<stdio.h>
#include<conio.h>
#include <locale.h>
float farengeit(float);
float celsiy(float);
int main() 
{
    setlocale(LC_ALL,"ukrainian");
    float t, a, b;
    char l;
    printf("Введіть F якщо вводите за Фаренгейтом \n Введіть C, якщо за Цельсієм");
    scanf("%c", &l);
    switch(l)
    {
    case'f': printf("Введіть температуру в Фаренгейтах:"); break;
    case'F': printf("Введіть температуру в Фаренгейтах:"); break;
    case'C': printf("Введіть температуру в Цельсіях:"); break;
    case'c': printf("Введіть температуру в Цельсіях:"); break;
    default: printf("Помилка програми: введено ні С, ні F");
    }
    scanf("%f", &t);
    if(l=='F' || l=='f')
        float T=celsiy(t);
    if(l=='c' || l=='C')
        float T=farengeit(t);
    printf ("T=%f", T);
    getch();
    return 0;
}
float farengeit(float x)
{
    return (x*(5/9))-32;
}
float celsiy(float x)
{
    return (x-32)*(5/9);
}
Добавлено через 3 минуты
чтото считаеться, но фигня получаеться (((
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
#include<stdio.h>
#include<conio.h>
#include <locale.h>
float farengeit(float);
float celsiy(float);
int main() 
{
    setlocale(LC_ALL,"ukrainian");
    float t, T;
    char l;
    printf("Введіть F якщо вводите за Фаренгейтом \n Введіть C, якщо за Цельсієм");
    scanf("%c", &l);
    switch(l)
    {
    case'f': printf("Введіть температуру в Фаренгейтах:"); break;
    case'F': printf("Введіть температуру в Фаренгейтах:"); break;
    case'C': printf("Введіть температуру в Цельсіях:"); break;
    case'c': printf("Введіть температуру в Цельсіях:"); break;
    default: printf("Помилка програми: введено ні С, ні F");
    }
    scanf("%f", &t);
    if(l=='F' || l=='f')
        T=celsiy(t);
    if(l=='c' || l=='C')
        T=farengeit(t);
    printf ("T=%f", T);
    getch();
    return 0;
}
float farengeit(float x)
{
    return (x*(5/9))-32;
}
float celsiy(float x)
{
    return (x-32)*(5/9);
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
16.10.2012, 02:40
Цитата Сообщение от ozzy_b Посмотреть сообщение
чтото считаеться, но фигня получаеться (((
- ну а формулы ты свои проверил, сейчас именно в них фигня несоответвующая тому что написано выше

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
При переводе из шкалы Фаренгейта в шкалу Цельсия из исходной цифры вычитают 32 и умножают на 5/9.
При переводе из шкалы Цельсия в шкалу Фаренгейта исходную цифру умножают на 9/5 и прибавляют 32.
+ друг ну кто пишет 5/9 вот такой дробь?Это же будет целое на целое
Короче вот твой код который считает
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
#include<stdio.h>
#include<conio.h>
#include <locale.h>
 
float farengeit(float);
float celsiy(float);
 
int main() 
{
    setlocale(LC_ALL,"ukrainian");
    float t, T;
    char l;
    printf("Введіть F якщо вводите за Фаренгейтом\n Введіть C, якщо за Цельсієм : ");
    scanf("%c", &l);
    switch(l)
    {
        case'f': printf("Введіть температуру в Фаренгейтах:"); break;
        case'F': printf("Введіть температуру в Фаренгейтах:"); break;
        case'C': printf("Введіть температуру в Цельсіях:"); break;
        case'c': printf("Введіть температуру в Цельсіях:"); break;
        default: printf("Помилка програми: введено ні С, ні F");
    }
    scanf("%f", &t);
    if(l=='F' || l=='f')
        T=farengeit(t);
    if(l=='c' || l=='C')
        T=celsiy(t);
    printf ("T = %f", T);
    getch();
    return 0;
}
float farengeit(float x)
{
    return 5*(x - 32)/9;
}
float celsiy(float x)
{
    return (x*9)/5 + 32.0;
}
Миниатюры
Функция Цельсий и Фаренгейт  
Вложения
Тип файла: rar CelciFareng.exe.rar (43.5 Кб, 7 просмотров)
1
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 169
16.10.2012, 17:39  [ТС]
спасибо, тепер все работает)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.10.2012, 17:39
Помогаю со студенческими работами здесь

Функция преобразования температуры из Фаренгейт в Цельсий
Прошу помочь разобраться в проблеме, возникающей при компилляции данной программы. #include &lt;stdio.h&gt; #define lower 0 //нижний...

Не работает функция конвертации "Фаренгейт -> Цельсий и Кельвин"
Всем привет! Не судите строго за вопрос, недавно начал учить язык. Данная программа должна считать введенные значение градуса по...

Преобразование температуры Фаренгейт-Цельсий
Друзья! Кто поможет с объяснение, как реализовать данную задачку? класс TemperatureConverter. метод для преобразования...

Конвертер цельсий в фаренгейт и наоборот
По заданию должен был написать код, который будет переводить Фаренгейт в Цельсий и наоборот, вроде написал, но что-то все равно не так,...

Конвертер температур (Цельсий - Фаренгейт)
Здравствуйте, для курсовой нужно разработать приложение, я только учусь этому. Вот, что у меня получается: Код: import...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru