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

Найдите ошибку в тексте программы - C++

Восстановить пароль Регистрация
 
Perlo
0 / 0 / 0
Регистрация: 24.10.2011
Сообщений: 5
07.11.2011, 14:53     Найдите ошибку в тексте программы #1
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.h>
#include <math.h>
#include <windows.h>
char buf [256];
char *rus(char *s) {CharToOem(s,buf); return buf;}
void main ()
{
    cout <<  ( " programma dl9 vi4esleni9 sostavnoe fynkcii " )  << endl;
    double s,x,fx,b,e,r;
    char q;
    cout <<  ( " vvedite peremennie e, x, b: " );
    cin >> e >> x >> b;
    cout <<  ( " vibor fynkcii " );
    cout <<  ( " 1 eto x^2, 2 eto exp(x) " );
    cin >> r;
    if (r==1) fx=x*x;
    else fx=exp(x);
    if (x*b>1 && x<10) s=pow(e,fx);
    if (x*b>=10 && x<40) s=sqrt(abs(fx+4*b));
    else s=b*fx*fx;
    cout <<  ( " Otvet " );
    cout << "x=" << x << "b=" << b << "fx=";
    if (fx==x*x) cout << "x^2";
    else cout << "f(x)";
    cout << "s=" << s << endl;
    cin>>e>>x>>b;
}
 Комментарий модератора 
Используйте теги форматирования кода!


Никак не могу найти ошибку...в воде может быть..
Миниатюры
Найдите ошибку в тексте программы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2011, 14:53     Найдите ошибку в тексте программы
Посмотрите здесь:

C++ Найдите ошибку!
C++ Найдите ошибку
Найдите ошибку C++
C++ найдите ошибку
Найдите ошибку C++
C++ Найти ошибку в выделенном тексте программы
Найдите ошибку в следующем фрагменте программы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
07.11.2011, 16:04     Найдите ошибку в тексте программы #2
Perlo, Как я понял программа переделывалась с Си судя из скобок в cout<<, чттож они там не нужны.
Руссифицировать программу можно и без CharToOem из <windows.h>, а перегрузкой оператора вывода как привёл ниже. В заключение скажу что писал в 6-й студии там модуль вещественного из cmath возвращает функция fabs, для современных компиляторов её нужно заменить на abs - она там уже перегружена
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
#include <iostream>
#include <cmath>
using namespace std;
 
//Руссификация
ostream& operator<<(ostream &stream,char* s){
        for(char* ps=s; *ps; ps++){
                if(*ps=='ё')
                        stream<<char(241);
                else if(*ps=='Ё')
                        stream<<char(240);
                else if(*ps>=-64 && *ps<=-17)                   
                        stream<<char(*ps+64+128);
                else if(*ps<0)
                        stream<<char(*ps+64+176);
                else
                        stream<<*ps;
        }
        return stream;
}
 
int main()
{
    int choise = 0;
    double s,fx,x,b;
    cout<<"Программа для вычисления сoставной функции\n";
    cout<<"Введите x : ";cin>>x;
    cout<<"Введите b : ";cin>>b;
    cout<<"\tВыбор функции\n";
    cout<<"1 - f(x) = x^2\n2 - f(x) = exp(x)\n";
    //Пока не введём 1 или 2 дальше цикла не идём
    while(choise != 1 && choise != 2)
        cin>>choise;
    if(choise == 1)
        fx = pow(x,2);
    else
        fx = exp(x);
    if(1 < x*b && x*b < 10)
        s = exp(fx);
    else
    if(10 <= x*b && x*b < 40)
        s = sqrt(fabs(fx + 4*b));
    else
        s = b*pow(fx,2);
    cout<<"Ответ s = "<<s<<"\n";
    system("pause");
    return 0;
}
Миниатюры
Найдите ошибку в тексте программы  
-=ЮрА=-
Заблокирован
Автор FAQ
07.11.2011, 20:30     Найдите ошибку в тексте программы #3
Цитата Сообщение от Perlo
Спасибо большое))
Но ты мог бы еще выполнить мою просьбу,а ты можешь мой код,исправить ну т.е. без перегрузки оператора для русификации,в общем все как у меня но просто переписать мой код и исправить же его)) хочу посмотреть как он измениться..) Заранее спасибо)
- Perlo, e^fx - это экспонента fx и никакого е(произвольного основания) я бы не вводил, но раз уж е - для вас какое либо основание, то вот код с учётом ваших пожеланий. По поводу ошибок - у вас диапазоны неправельные были:
Цитата Сообщение от Perlo Посмотреть сообщение
if (x*b>1 && x<10)
1 < x*b и x < 10 - по условию же x*b < 10
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 <iostream.h>
#include <math.h>
 
void main ()
{
    cout<<"programma dl9 vi4esleni9 sostavnoe fynkcii"<< endl;
    double s,x,fx,b,e;
    int r;
    cout<<"vvedite peremennie e, x, b: ";
    cin>>e>>x>>b;
    cout<<"vibor fynkcii ";
    cout<<"1 eto x^2, 2 eto exp(x) ";
    cin >> r;
    if (r==1) 
        fx = x*x;
    else 
        fx = exp(x);
 
    if (1 < x*b && x*b < 10) 
        s=pow(e,fx);
    else
    if (10 <= x*b && x*b < 40) 
        s=sqrt(fabs(fx+4*b));
    else 
        s=b*fx*fx;
    cout<<"Otvet \n";
    cout<<"x = " << x << " b = " << b << " fx= ";
    if (r == 1) 
        cout << "x^2";
    else 
        cout << "exp(x)";
    cout<<" = "<<fx<<endl;
    cout << "s=" << s << endl;
    cout<<"Enter any key to continue\n";
    char q;cin>>q;
}
Миниатюры
Найдите ошибку в тексте программы  
Yandex
Объявления
07.11.2011, 20:30     Найдите ошибку в тексте программы
Ответ Создать тему
Опции темы

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