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

Программа - C++

Восстановить пароль Регистрация
 
St56383
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 56
21.10.2013, 01:26     Программа #1
Доброе время суток,мне нужна помощь ,я написал программу которая ( рассчитывет значение функции f(x) по соответсвующей формуле) но где то допустил ошибку (я понимаю может для вас окажется очень глупая моя ошибка но я только учусь и стараюсь на ошибках учиться).Моя ошибка в данной программе состоит в том что при 'x<=0' и '0<x<=5'
даёшь переменной x значение например "-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
#include <iostream>
#include <cmath>
using namespace std ;
 
int main ()
{ 
    double x;
    double f1,f2,f3;
 
    cout << "Enter number x:" << "\n" ;
    cin>>x;
 
 
    f1=1/(x-5.0);
    f2=pow((x+3.0),2);
    f3=sqrt(x+5.0);
    
    if (x<=0)
        
        cout<<"f1(x)="<<f1<<endl;
 
    
    if (0<x<=5)     
        
        cout<<"f2(x)="<<f2<<endl;
    
    else 
        cout<<"f3(x)="<<f3<<endl;
    
    system("PAUSE");
    return 0;
}
Миниатюры
Программа   Программа   Программа  

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Br8k
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
21.10.2013, 01:39     Программа #2
вместо этого
C++
1
2
3
if (0<x<=5) 
 
cout<<"f2(x)="<<f2<<endl;
попробуй так
C++
1
if(x>0 && x<=5)
Добавлено через 1 минуту
p.s. может не так прочитал
но возможно же что при условии х = -3 выполняються оба условий, посчитай в ручную и проверь
St56383
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 56
21.10.2013, 01:42  [ТС]     Программа #3
C++
1
2
3
4
5
if(x>0 && x<=5)
{
cout<<"f1(x)="<<f1<<endl;
cout<<"f2(x)="<<f2<<endl;
}
вот так ? ?

а всё остальное правильно написано у меня ??
B@R_LOG
 Аватар для B@R_LOG
18 / 18 / 0
Регистрация: 03.07.2013
Сообщений: 49
21.10.2013, 01:49     Программа #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
#include <iostream>
#include <cmath>
using namespace std ;
 
int main ()
{ 
    double x;
    double f1,f2,f3;
 
    cout << "Enter number x:" << "\n" ;
    cin>>x;
 
 
    f1=1/(x-5.0);
      f2=pow((x+3.0),2);
    f3=sqrt(x+5.0);
    
    if (x<=0) 
        cout<<"f1(x)="<<f1<<endl;
         else     
         if ( (x>0)&&(x<=5) )       
            cout<<"f2(x)="<<f2<<endl;   
                              else 
                               cout<<"f3(x)="<<f3<<endl; /* выведет при х > 5*/ 
    system("PAUSE");
    return 0;
}
St56383
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 56
21.10.2013, 01:57  [ТС]     Программа #5
eslse два раза писать ??просто на сколько я знаю эта часть может отсутствовать

Добавлено через 2 минуты
Вроде всё идёт, спасибо вам ребята огромное.

Добавлено через 3 минуты
Вопрос а почему надо убирать if ( (x>0)&&(x<=5) ) во втором случае (x<=5) а не (0<x<=5)
Br8k
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
21.10.2013, 02:13     Программа #6
немного понятней спроси пожалуйста
B@R_LOG
 Аватар для B@R_LOG
18 / 18 / 0
Регистрация: 03.07.2013
Сообщений: 49
21.10.2013, 02:42     Программа #7
Цитата Сообщение от St56383 Посмотреть сообщение
eslse два раза писать ??просто на сколько я знаю эта часть может отсутствовать

Добавлено через 3 минуты
Вопрос а почему надо убирать if ( (x>0)&&(x<=5) ) во втором случае (x<=5) а не (0<x<=5)
В этом случае - да.
if (..) {..}
else
if (..) {..}
else (можно и так далее до бесконечности)

if по смыслу эквивалентно "если", else эквивалентно "иначе".

(0<x<=5) записывается как ( (x>0)&&(x<=5) ).

Порядок условий обычно распределяется по принципу: чем меньше кода в { }, тем выше условие.
Либо, чем больше вероятность выполнения.
Yandex
Объявления
21.10.2013, 02:42     Программа
Ответ Создать тему
Опции темы

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