Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 5.00
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
16.10.2012, 00:09     Функция Цельсий и Фаренгейт #1
Есть задача: Напишите следующие функции:
 Функция 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 минуты
ЗЫ, функции пока не посчитают температуру правильно, те формулы что в функциях просто так написал, для наглядности, лень пока искать формулу обчысления фаренгейта в цельсий и наоборот.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
16.10.2012, 00:27     Функция Цельсий и Фаренгейт #2
ozzy_b, лови Не работает перевод из Фаренгейта в Цельсий

Не по теме:

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

ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
16.10.2012, 01:13  [ТС]     Функция Цельсий и Фаренгейт #3
но меня интересует ошибка моего кода, который я сам написал.
-=ЮрА=-
Заблокирован
Автор FAQ
16.10.2012, 01:52     Функция Цельсий и Фаренгейт #4
Цитата Сообщение от 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);
- повторное объявление. И самое странное - у программы просто нет вывода на экран
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
16.10.2012, 02:14  [ТС]     Функция Цельсий и Фаренгейт #5
формулы пока неважны, важен сам код, он после ввода градуса выдает ошибку

Добавлено через 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, как ето прописать?
-=ЮрА=-
Заблокирован
Автор FAQ
16.10.2012, 02:20     Функция Цельсий и Фаренгейт #6
Цитата Сообщение от ozzy_b Посмотреть сообщение
я не могу понять так призвать нужную мне ф-цию в зависимости от того введу я F или C
Добавлено через 4 минуты
и каким образом функция возьмет к себе t, как ето прописать?
Выделил оставшиеся ошибки
Цитата Сообщение от ozzy_b Посмотреть сообщение
float T=celsiy(b);
Цитата Сообщение от ozzy_b Посмотреть сообщение
float T=farengeit(a);
Цитата Сообщение от ozzy_b Посмотреть сообщение
printf ("T=&T", T);
- неверный спецификатор формата!
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
16.10.2012, 02:24  [ТС]     Функция Цельсий и Фаренгейт #7
немного подумал, поправил, посмотрите правильно ли все с ф-циями. и почему в конце кода, где вывод Т пишет что индификатор Т неопределен?
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);
}
-=ЮрА=-
Заблокирован
Автор FAQ
16.10.2012, 02:40     Функция Цельсий и Фаренгейт #8
Цитата Сообщение от 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 Кб, 3 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 17:39     Функция Цельсий и Фаренгейт
Еще ссылки по теме:

Перевод из Цельсия в Фаренгейт C++
C++ Перевод температуры с Цельсия на Фаренгейт
Из Цельсия в Фаренгейт и наоборот C++

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

Или воспользуйтесь поиском по форуму:
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
16.10.2012, 17:39  [ТС]     Функция Цельсий и Фаренгейт #9
спасибо, тепер все работает)
Yandex
Объявления
16.10.2012, 17:39     Функция Цельсий и Фаренгейт
Ответ Создать тему
Опции темы

Текущее время: 11:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru