Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
#1

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

07.09.2012, 00:17. Просмотров 752. Ответов 15
Метки нет (Все метки)

Вот задание
Дано действительное х. Вычислить
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";
             }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2012, 00:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверьте пожалуйста, правильно ли я сделал задание (C++):

правильно ли я сделал задание? - C++
правильно ли сделано задание? //предположим, что указатель pa был определен в следующем выражении с использованием оператора new. ...

C++ | Правильно ли я сделал задание | Массивы | Указатели и Ссылки - C++
Вообще прога должна показывать самое большое число по модулю, что она и делает, но меня интересует другой вопрос, правильно ли я...

Проверьте пожалуйста. Правильно ли написано. - C++
Программа работает как в задании. Но может есть ошибки? Подскажите. #include &lt;iostream&gt; #include &lt;string&gt; using namespace std;...

Знаю , что подобное задание на форуме есть, но подскажите как правильно оформить мой код, пожалуйста - C++
#include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &quot;locale.h&quot; #include &quot;math.h&quot; #include &quot;ctype.h&quot; //Не правильно считает сумму и в...

Правильно ли я сделал? - C++
#include &lt;iostream&gt; using namespace std; int main() { int a,b,c; cin&gt;&gt;a&gt;&gt;b&gt;&gt;c; if ((a+b&gt;c) || (a+c&gt;b) ||...

Правильно ли сделал - C++
Нужно проверить правильно ли я сделал?? #include &lt;iostream.h&gt; #include &lt;math.h&gt; void main() { double k,a,n,m,p; cout...

15
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,188
07.09.2012, 00:25 #2
Цитата Сообщение от delexa Посмотреть сообщение
j=n+1;
зачем присваивать значение
если в цикле опять присваиваешь
Цитата Сообщение от delexa Посмотреть сообщение
j=2;
0
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";
            }
Тогда вот так?
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,188
07.09.2012, 00:33 #4
Цитата Сообщение от delexa Посмотреть сообщение
Тогда вот так?
конечно нет
у тебя там (x-1)(x-3).....
а здесь
Цитата Сообщение от delexa Посмотреть сообщение
for (i=1;i<=n;i++)
(х-1)(х-2)(х-3).........
0
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
07.09.2012, 00:38  [ТС] #5
Проглядел( Тогда через один цикл можно...
0
DiffEreD
1431 / 768 / 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;
}
1
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,188
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;
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";
            }
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,188
07.09.2012, 00:59 #9
Цитата Сообщение от delexa Посмотреть сообщение
я имею в виду вот так
ты на задание то посмотри
у тебя в числителе степени двойки без единицы а в знаменателе степени двойки (геометрическая прогрессия) а ты реализуешь арифметическую
Цитата Сообщение от delexa Посмотреть сообщение
i++
и знаменатель надо проверять на 0 иначе не поделится
1
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";
            }
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,188
07.09.2012, 01:34 #11
Цитата Сообщение от delexa Посмотреть сообщение
for (i=2;i<=n;i*=2)
{
if (i%2==0)
это будет всегда равно 0 i степень 2
1
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";
            }
убрал и сделал проверку знаменателя
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,188
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);
1
DiffEreD
1431 / 768 / 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;
1
Регина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
0
07.09.2012, 21:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2012, 21:56
Привет! Вот еще темы с ответами:

Правильно ли я сделал пример - C++
http://www.cyberforum.ru/cpp-beginners/thread648042.html#post3434602 Правильно*?

Правильно ли я сделал?(Математические.Функции) - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;iostream&gt; int main() { setlocale(0,&quot;&quot;); float pi,rez; ...

Архитектура программы. Правильно ли сделал? - C++
Собствено с архитектурой вроде определился. Хотелось бы конструктивной критики. Задача по сути следующая: - Считывать данные...

Правильно я сделал программу по уравнению? - C++
z=\sqrt{\left|y-2 \right|+3}+\frac{x+\frac{y}{2}}{2\left|1+y \right|}\left(x+1 \right) вот что у меня получилось ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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