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

Ошибка в цикле - C++

Восстановить пароль Регистрация
 
internat
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 15
27.10.2013, 21:15     Ошибка в цикле #1
Задание:
Написать цикл программы. от К=1 до К=10

Код
#include <iostream>
#include <math.h>

using namespace std;

int main ()
{
double x;
int k;
x=12;
for (k=1; k<=10; k++)
log10(x) + = 2*(1/(2*k-1))*(pow(x-1,2*k-1))/pow(x+1,2*k-1);[/COLOR]
cout << log10(x);
return 0;
}
Возникло 2 вопроса.
1) После компиляции выбивает ошибку "lvalue required as left operand of assignment" в 12ой стоке, пытался не задавать изначальное х, результат тот же.
2) Правильно ли я вообще вывожу результат? или надо вывести чисто х? тогда как вообще можно посчитать, если он находится и справа и слева уравнения
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2013, 21:15     Ошибка в цикле
Посмотрите здесь:

C++ Ошибка в цикле while
Ошибка в цикле C++
Арифметическая ошибка в цикле C++
C++ Ошибка в цикле
Ошибка в цикле C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
27.10.2013, 21:22     Ошибка в цикле #2
я натолкну тебя на мысль, что по-твоему такое log10(x) ...?
internat
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 15
27.10.2013, 22:16  [ТС]     Ошибка в цикле #3
Боюсь, не до конца понимаю ответ на этот вопрос, но может функция?
newbie666
Заблокирован
27.10.2013, 22:20     Ошибка в цикле #4
1. подключи файл #include <math.h>
2. Это что за нахрен ? [/COLOR]
internat
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 15
27.10.2013, 22:22  [ТС]     Ошибка в цикле #5
1. подключен же
2. этого в коде нет, просто уже здесь на форуме, пытался выделить строку, забыл убрать
Alex_Skripa
17 / 17 / 1
Регистрация: 16.09.2013
Сообщений: 126
27.10.2013, 22:31     Ошибка в цикле #6
Цитата Сообщение от internat Посмотреть сообщение
Задание:
Написать цикл программы. от К=1 до К=10

Код
#include <iostream>
#include <math.h>

using namespace std;

int main ()
{
double x;
int k;
x=12;
for (k=1; k<=10; k++)
log10(x) + = 2*(1/(2*k-1))*(pow(x-1,2*k-1))/pow(x+1,2*k-1);
cout << log10(x);
return 0;
}
Возникло 2 вопроса.
1) После компиляции выбивает ошибку "lvalue required as left operand of assignment" в 12ой стоке, пытался не задавать изначальное х, результат тот же.
2) Правильно ли я вообще вывожу результат? или надо вывести чисто х? тогда как вообще можно посчитать, если он находится и справа и слева уравнения
Как бы а задание по подробней можно) просто не совсем понятно что вы хотите делая это:
C++
1
log10(x) + = 2*(1/(2*k-1))*(pow(x-1,2*k-1))/pow(x+1,2*k-1);
на мой взгляд это криво написано...
internat
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 15
27.10.2013, 22:31  [ТС]     Ошибка в цикле #7
Цитата Сообщение от dzrkot Посмотреть сообщение
я натолкну тебя на мысль, что по-твоему такое log10(x) ...?
кажется, я понял, к чему вы клоните. мне надо выражение приравнять к переменной, поэтому она не может называться log10(x), надо как-то иначе. например "a", я правильно понял?
newbie666
Заблокирован
27.10.2013, 22:34     Ошибка в цикле #8
Цитата Сообщение от internat Посмотреть сообщение
я правильно понял?
Функция log10 возвращает double , тоесть ты как бы результат функции в виде дабла приравниваешь к другому число которое вычисляется справа....
Alex_Skripa
17 / 17 / 1
Регистрация: 16.09.2013
Сообщений: 126
27.10.2013, 22:34     Ошибка в цикле #9
напишите что именно вам нужно в цикле вычислить... И да такой переменной быть не может, у тебя получается что ты значению функции пытаешься присвоить другое значение...
Anton_Kretov
 Аватар для Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
27.10.2013, 22:37     Ошибка в цикле #10
Хоть я и не пока не юзал логарифмы, но жопой чую, что логарифм 10 по основанию x находится иначе, ибо в С++ не предусмотрено over100500 функций для каждого логарифма.
internat
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 15
27.10.2013, 22:37  [ТС]     Ошибка в цикле #11
Цитата Сообщение от Alex_Skripa Посмотреть сообщение
Как бы а задание по подробней можно) просто не совсем понятно что вы хотите делая это:
C++
1
log10(x) + = 2*(1/(2*k-1))*(pow(x-1,2*k-1))/pow(x+1,2*k-1);
на мой взгляд это криво написано...
да, слабо объяснил, надо выполнить итерационный цикл суммы.
Ошибка в цикле
Alex_Skripa
17 / 17 / 1
Регистрация: 16.09.2013
Сообщений: 126
27.10.2013, 22:48     Ошибка в цикле #12
Ошибаетесь есть такая функция) вот только присваивать значение функции ну я хз по моему нельзя)

Добавлено через 7 минут
Цитата Сообщение от internat Посмотреть сообщение
да, слабо объяснил, надо выполнить итерационный цикл суммы.
Вложение 322006
ну вот так наверно будет лучше
C++
1
2
3
for(k=1;k<=n;k++)
sum=sum +pow(x-1,double(2*k-1))/((2*k-1)*pow(x+1,double(2k-1)))
sum=2*sum;
n количество итераций можно задавать а можно и сохранить 10 как у вас, я предполагаю это разложение в ряд функции ln(x)
ну и наверно нужно типа проверку
C++
1
2
cout <<"log("<<x<<")="<<log(x)<<"\n";
cout <<"значение вычисления в цикле = "<<sum;
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
27.10.2013, 22:53     Ошибка в цикле #13
Цитата Сообщение от internat Посмотреть сообщение
кажется, я понял, к чему вы клоните. мне надо выражение приравнять к переменной, поэтому она не может называться log10(x), надо как-то иначе. например "a", я правильно понял?
именно) почитайте про то, что значит lvalue и rvalue, в данном случае это актуально)
программа я так понял должна искать сумму 2*(1/(2*k-1))*(pow(x-1,2*k-1))/pow(x+1,2*k-1); для всех К.
Как вы правильно догадались, это делается простой заменой log10(x) на какую-либо объявленную переменную подходящего типа.
C++
1
2
3
double a;
for (int k=1;k<=10;k++)
a+=2*(1/(2*k-1))*(pow(x-1,2*k-1))/pow(x+1,2*k-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
#include<iostream>
#include<cmath>
using namespace std;
double asd(int const counter, int const x)
{
double a;
for (int k=1;k<=counter;k++)
a+=2*(1/(2*k-1))*(pow(x-1,2*k-1))/pow(x+1,2*k-1); // я не задумывался над смыслом этого.. логарифм там или что вы хотели найти)
return a;
}
 
int main()
{
int x,counter;
double result;
cout<<"Enter x:";
cin>>x;
cout<<"\nEnter counter:";
cin>>counter;
result=asd(counter,x);
cout<<"result is:"<<result;
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2013, 23:00     Ошибка в цикле
Еще ссылки по теме:

Ошибка в цикле C++
C++ Ошибка в цикле
C++ Ошибка в цикле while

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

Или воспользуйтесь поиском по форуму:
internat
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 15
27.10.2013, 23:00  [ТС]     Ошибка в цикле #14
Спасибо всем, кто отозвался, очень выручили! В следующий раз такой ошибки не допущу)
Yandex
Объявления
27.10.2013, 23:00     Ошибка в цикле
Ответ Создать тему
Опции темы

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