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

Проверьте пожалуйста, правильно ли я сделал задание - C++

Восстановить пароль Регистрация
 
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
07.09.2012, 00:17     Проверьте пожалуйста, правильно ли я сделал задание #1
Вот задание
Дано действительное х. Вычислить
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{(x-1)(x-3)(x-7)K(x-63)}{(x-2)(x-4)(x-8)K(x-64)}

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
                    {
        {
        int n=63,i,j=n+1;
        double x,s,f,t,g;
        cout<<"Vvedite x= "; cin>>x;
        t=1;
        for (i=1;i<=n;i++)
                {
                    s=x-i;
                    t=s*t;
                //  cout<<t<<" ";
                }
        g=1;
        for (j=2;j<n+1;j++)
                {
                    f=x-j;
                    g=f*g;
                //  cout<<g<<" ";
                }
        cout<<"Znachenie virazheniya ravno "<<t/g<<"\n";
             }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2012, 00:17     Проверьте пожалуйста, правильно ли я сделал задание
Посмотрите здесь:

C++ Правильно ли сделал
C++ Правильно ли я всё сделал? CGI и Visual C++
C++ правильно ли я сделал задание?
C++ Проверьте пожалуйста. Правильно ли написано.
C++ C++ | Правильно ли я сделал задание | Массивы | Указатели и Ссылки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
07.09.2012, 00:25     Проверьте пожалуйста, правильно ли я сделал задание #2
Цитата Сообщение от delexa Посмотреть сообщение
j=n+1;
зачем присваивать значение
если в цикле опять присваиваешь
Цитата Сообщение от delexa Посмотреть сообщение
j=2;
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
07.09.2012, 00:27  [ТС]     Проверьте пожалуйста, правильно ли я сделал задание #3
Цитата Сообщение от ValeryS Посмотреть сообщение
зачем присваивать значение
если в цикле опять присваиваешь
ОК

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
        int n=63,i,j;
        double x,s,f,t,g;
        cout<<"Vvedite x= "; cin>>x;
        t=1;
        for (i=1;i<=n;i++)
                {
                    s=x-i;
                    t=s*t;
                //  cout<<t<<" ";
                }
        g=1;
        for (j=2;j<n+1;j++)
                {
                    f=x-j;
                    g=f*g;
                //  cout<<g<<" ";
                }
        cout<<"Znachenie virazheniya ravno "<<t/g<<"\n";
            }
Тогда вот так?
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
07.09.2012, 00:33     Проверьте пожалуйста, правильно ли я сделал задание #4
Цитата Сообщение от delexa Посмотреть сообщение
Тогда вот так?
конечно нет
у тебя там (x-1)(x-3).....
а здесь
Цитата Сообщение от delexa Посмотреть сообщение
for (i=1;i<=n;i++)
(х-1)(х-2)(х-3).........
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
07.09.2012, 00:38  [ТС]     Проверьте пожалуйста, правильно ли я сделал задание #5
Проглядел( Тогда через один цикл можно...
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
07.09.2012, 00:39     Проверьте пожалуйста, правильно ли я сделал задание #6
Напишите через функцию
C++
1
2
3
4
5
6
7
8
9
10
11
double func(double x, double K)
{
    double temp = ((x-2)*(x-4)*(x-8)*(x-64)*K);
    if (temp == 0)
    {
        cout<<"Bad argument\n";
        return 0;
    }
    double result = ((x-1)*(x-3)*(x-7)*(x-63)*K)/temp;
    return result;
}
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
07.09.2012, 00:47     Проверьте пожалуйста, правильно ли я сделал задание #7
Цитата Сообщение от delexa Посмотреть сообщение
Проглядел( Тогда через один цикл можно...
не понял что ты имеешь ввиду
тебе надо просто написать
C
1
for (i=1;i<=n;i+=2)
т.е i будет изменятся на 2
1 3 5 7

Добавлено через 3 минуты
опанки все не так
у тебя же
1 3 7
по моему это степени 2 без 1
а в знаменателе степени 2
т.е первый цикл
C
1
2
3
for (i=2;i<=n;i*=2)
 {
                    s=x-i-1;
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
07.09.2012, 00:52  [ТС]     Проверьте пожалуйста, правильно ли я сделал задание #8
yuron_477, Спасибо, но к сожалению до функций я еще не дошел в своем изучении)


ValeryS, я имею в виду вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
    {
        int n=64,i;
        double x,s,f,t,g;
        cout<<"Vvedite x= "; cin>>x;
        t=1, g=1; 
        for (i=1;i<=n;i++)
        {
                    if (i%2!=0) {s=x-i; t=s*t;}
                    else  (f=x-i); g=f*g;
        }           
         cout<<"Znachenie virazheniya ravno "<<t/g<<"\n";
            }
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
07.09.2012, 00:59     Проверьте пожалуйста, правильно ли я сделал задание #9
Цитата Сообщение от delexa Посмотреть сообщение
я имею в виду вот так
ты на задание то посмотри
у тебя в числителе степени двойки без единицы а в знаменателе степени двойки (геометрическая прогрессия) а ты реализуешь арифметическую
Цитата Сообщение от delexa Посмотреть сообщение
i++
и знаменатель надо проверять на 0 иначе не поделится
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
07.09.2012, 01:16  [ТС]     Проверьте пожалуйста, правильно ли я сделал задание #10
Понял) Сейчас сделаю...

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    {
        int n=64,i,j;
        double x,s,f,t,g;
        cout<<"Vvedite x= "; cin>>x;
        t=1;
        for (i=2;i<=n;i*=2)
                {
                    if (i%2==0)
                    s=x-i-1;
                    t=s*t;
                //  cout<<t<<" ";
                }
        g=1;
        for (j=2;j<=n;j*=2)
                {
                    f=x-j;
                    g=f*g;
                //  cout<<g<<" ";
                }       
         cout<<"Znachenie virazheniya ravno "<<t/g<<"\n";
            }
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
07.09.2012, 01:34     Проверьте пожалуйста, правильно ли я сделал задание #11
Цитата Сообщение от delexa Посмотреть сообщение
for (i=2;i<=n;i*=2)
{
if (i%2==0)
это будет всегда равно 0 i степень 2
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
07.09.2012, 01:43  [ТС]     Проверьте пожалуйста, правильно ли я сделал задание #12
Цитата Сообщение от ValeryS Посмотреть сообщение
это будет всегда равно 0 i степень 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
        int n=64,i,j;
        double x,s,f,t,g;
        cout<<"Vvedite x= "; cin>>x;
        t=1;
        for (i=2;i<=n;i*=2)
                {
                    s=x-i-1;
                    t=s*t;
                //  cout<<t<<" ";
                }
        g=1;
        for (j=2;j<=n;j*=2)
                {
                    f=x-j;
                    g=f*g;
                //  cout<<g<<" ";
                }
        if (g!=0) cout<<"Znachenie virazheniya ravno "<<t/g<<"\n";
        else cout<<"Oshibka, znamenatel' raven nulyu";
            }
убрал и сделал проверку знаменателя
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
07.09.2012, 02:04     Проверьте пожалуйста, правильно ли я сделал задание #13
Цитата Сообщение от delexa Посмотреть сообщение
s=x-i-1;
вот здесь
C++
1
s=x-i+1;
s=x-(i-1)= s=x-i+1;
остальное правильно хотя и не совсем

все можно сделать в один цикл и без дополнительных переменных
C++
1
2
3
4
5
for (i=2;i<=64;i*=2)
        {
           t*=x-i+1;
           g*=x-i;
         }
Добавлено через 13 минут
пардон вот так

C++
1
2
    t*=(x-i+1);
           g*=(x-i);
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
07.09.2012, 10:21     Проверьте пожалуйста, правильно ли я сделал задание #14
Возможно я сначала не до конца понял задание, но предложу еще один вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
double x;
double temp1 = 1, temp2 = 1;
cout<<"Enter x: ";
cin>>x;
for (int i = 1, j = 2; j<=64; i+=i+1, j*=2)
{
    temp1 *= x-i;
    temp2 *= x-j;
    //cout<<i<<" "<<j<<endl; // для контроля переменных
}
double result = temp1/temp2;
cout<<"Result: "<<result<<endl;
Регина1994
0 / 0 / 0
Регистрация: 07.09.2012
Сообщений: 34
07.09.2012, 21:56     Проверьте пожалуйста, правильно ли я сделал задание #15
ValeryS,
помогите пожалуйста . очень сильно надо
Среднее арифметическое всех отрицательных значений функции.
Y=0.56*x-11*x+4*sin(x+1)+3 L=-5, R=5
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2012, 23:46     Проверьте пожалуйста, правильно ли я сделал задание
Еще ссылки по теме:

Правильно ли я сделал пример C++
C++ Архитектура программы. Правильно ли сделал?
C++ Правильно я сделал программу по уравнению?

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

Или воспользуйтесь поиском по форуму:
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
07.09.2012, 23:46  [ТС]     Проверьте пожалуйста, правильно ли я сделал задание #16
Всем спасибо, тему можно закрывать.
Регина1994, Создай новую тему, и объясни, что такое R и L. Это х принадлежит от -5 до 5?
Yandex
Объявления
07.09.2012, 23:46     Проверьте пожалуйста, правильно ли я сделал задание
Ответ Создать тему
Опции темы

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