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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.68
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
#1

Нужен пример цикла while - C++

08.10.2011, 15:31. Просмотров 3218. Ответов 46
Метки нет (Все метки)

Помогите решить задачку или хотябы обьясните как делать а то сижу и думаю как это так реализовать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2011, 15:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужен пример цикла while (C++):

Нужен пример с массивами - C++
Не могу догнать, зачем нужен массив конкретно.

Нужен пример хэширования - C++
Здравствуйте! Ни как не могу понять хэширование,если не трудно, то напишите какие нибудь простейшие примеры реализации. Заранее благодарю!

Нужен пример интерфейса - C++
Помагите нужен пример интерфейса на С++. В заранее благодарен.

Нужен пример класса - C++
Привести пример класса для работы с комплексными числами и содержащего перегруженную операцию для вычитания комплексных чисел.

Нужен пример классов - C++
Привести пример классов с наследованием и доступом к компонентам их экземпляров через указатели на базовый и производный классы.

C++ строки нужен хотябы пример - C++
С клавиатуры вводится текстовая строка. Написать программу которая подщитывает слова котрые имеют одинаковое количество гласных и согласных...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
08.10.2011, 17:38 #31
sergeu90, не прикопается.
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
08.10.2011, 17:39  [ТС] #32
спасибо а еще вопрос там в задании вычисляем функцию а в таблице че то написано что еще какая то
Миниатюры
Нужен пример цикла while  
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
08.10.2011, 17:41 #33
math F - это результат, полученный математической функцией из стандартной библиотеки. Просто для сравнения
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
08.10.2011, 17:44  [ТС] #34
а как ее записать?что бы вывелось?
и какой тип данных должна быть переменная eps что бы можно ввести 1e-18

Добавлено через 2 минуты
и как мне записать условие в while()не могу понять то слагаемое как впихнуть на проверку
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
08.10.2011, 17:47 #35
Цитата Сообщение от sergeu90 Посмотреть сообщение
а как ее записать?что бы вывелось?
C
1
log((1 + x) / (1 - x))
Цитата Сообщение от sergeu90 Посмотреть сообщение
и какой тип данных должна быть переменная eps что бы можно ввести 1e-18
long, double, long double

Цитата Сообщение от sergeu90 Посмотреть сообщение
не могу понять то слагаемое как впихнуть на проверку
C
1
2
3
4
5
6
double a; /* слагаемое */
/* ... */
while(fabs(a) > eps)
{
   /* ... */
}
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
08.10.2011, 17:48  [ТС] #36
а с клавы прям так и можно ввести что ли 1e-18
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
08.10.2011, 17:52 #37
sergeu90, можно. Это называется экспоненциальной записью
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
08.10.2011, 17:55  [ТС] #38
спасибо буду сейчас пробывать потом кину исходник проверите

Добавлено через 2 минуты
вы наверное ошиблись когда говорили fabs(a)>esp может быть наоборт?
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
08.10.2011, 18:01 #39
Цитата Сообщение от sergeu90 Посмотреть сообщение
спасибо буду сейчас пробывать потом кину исходник проверите

Добавлено через 2 минуты
вы наверное ошиблись когда говорили fabs(a)>esp может быть наоборт?
Как я уже писал, цикл работает пока условие истинно, т.е. цикл работает пока очередное слагаемое больше точности eps. Когда a станет меньше точности eps, цикл завершится.
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
08.10.2011, 18:02 #40
sergeu90, нет, именно так. Дословно: "пока очередное слагаемое больше по модулю, чем точность...". Когда условие цикла станет ложным, слагаемое станет меньше точности, значит, сумма посчитана
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
08.10.2011, 19:03  [ТС] #41
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
#include <iostream>
#include  <math.h>
#include <iomanip>
using namespace std;
void  main(void)
{
    int i;
    setlocale(LC_ALL,"Russian");
    double  x1,x2,dx,f,s=0,y=0,esp,a;
    int n=0;
    cout<<"Ввведите xn,xk,dx,eps"<<endl;
    cin>>x1>>x2>>dx>>esp;
    cout<<setw(15)<<"-----------------"<<endl;
    cout<<"|   x  |    f   |"<<endl;
    cout<<"------------------"<<endl;
while (y<esp)
{
y=((pow(x1,(2*n)+1))/((2*n)+1));
s=s+y;
cout<<"|"<<setw(6)<<x1<<"|"<<setw(8)<<s<<"|"<<endl;
x1=x1+dx;
}
 
 
cin>>a;
}
посмотрите пожалуйста что то не то

Добавлено через 21 минуту
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  <math.h>
#include <iomanip>
using namespace std;
void  main(void)
{
    int i;
    setlocale(LC_ALL,"Russian");
    double  x1,x2,dx,f,s=0,y=0,esp,a;
    int n=0;
    cout<<"Ввведите xn,xk,dx,eps"<<endl;
    cin>>x1>>x2>>dx>>esp;
    cout<<setw(15)<<"-----------------"<<endl;
    cout<<"|   x  |    f   |"<<endl;
    cout<<"------------------"<<endl;
while (y<esp && x1<=x2)
{
y=((pow(x1,(2*n)+1))/((2*n)+1));
s=s+y;
cout<<"|"<<setw(6)<<x1<<"|"<<setw(8)<<s<<"|"<<endl;
x1=x1+dx;
n=n+1;
}
 
 
cin>>a;
}
Добавлено через 9 минут
посмотрите так я сделал или не так

Добавлено через 29 минут
посмотрите плиз мой код
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
08.10.2011, 23:40 #42
Нет, не так
Во-первых, не соответствует заданию - тебе же вроде надо вычислять следующее слагаемое через рекуррентную формулу, а значит забудь про функции pow как про страшный сон
Во-вторых, у тея здесь будет два вложенных цикла - один для суммы, один для вычисления функции на отрезке - я это описала в твоей другой теме, почитай там. Если что, задавай вопросы
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
09.10.2011, 11:34  [ТС] #43
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  <math.h>
#include <iomanip>
using namespace std;
void  main(void)
{
    int i;
    setlocale(LC_ALL,"Russian");
    double  x1,x2,dx,f,s=0,y,esp,a;
    int n=0;
    cout<<"Ввведите xn"<<endl;
    cin>>x1;
    cout<<setw(15)<<"--------------------"<<endl;
    cout<<"|   x  |    f   |    n  "<<endl;
    cout<<"---------------------"<<endl;
    y=x1;
while (fabs(y)>esp)
{
y=((pow(x1,(2*n)+1))/((2*n)+1));
s=s+y;
cout<<"|"<<setw(6)<<x1<<"|"<<setw(8)<<s<<"|"<<n<<endl;
n=n+1;
}
 
 
cin>>a;
}
Добавлено через 1 минуту
что то я навоял
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
09.10.2011, 12:13 #44
Почти, но не совсем то - нет рекуррентной формулы. Если в задании сказано использовать рекуррентные формулы. то функции pow использовать нельзя

Сначала вычисляем рекуррентный множитель. Для этого берем n-oe и (n+1)-ое слагаемые и делим (n+1)-ое слагаемое на n-ое слагаемое.
Слагаемые выписываем из-под знака суммы - у тебя это http://www.cyberforum.ru/cgi-bin/latex.cgi?{C}_{n}=\frac{{x}^{2n+1}}{2n+1}, http://www.cyberforum.ru/cgi-bin/latex.cgi?{C}_{n+1}=\frac{{x}^{2(n+1)+1}}{2(n+1)+1}=\frac{{x}^{2n+3}}{2n+3}. (n+1)-ое слагаемое получается, если в n-ое слагаемое вместо n поставить (n+1)
Теперь делишь их:
http://www.cyberforum.ru/cgi-bin/latex.cgi?T=\frac{{C}_{n+1}}{{C}_{n}}=\frac{{x}^{2n+3}}{2n+3} : \frac{{x}^{2n+1}}{2n+1} = \frac{{x}^{2n+3}}{2n+3} * \frac{2n+1}{{x}^{2n+1}}=\frac{{x}^{2} (2n+1) }{(2n+3)}
Т - твой реуррентный множитель
Находишь первое слагаемое, подставляя в http://www.cyberforum.ru/cgi-bin/latex.cgi?{C}_{n} n=0, получишь http://www.cyberforum.ru/cgi-bin/latex.cgi?{C}_{0}=x

Эта программа вычисляет сумму ряда с использованием рекуррентного множителя для одного х.
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
#include <iostream>
#include  <math.h>
#include <iomanip>
using namespace std;
void  main(void)
{
    double  x=0.3,esp=1e-18; //фиксированный х для примера
    cout<<"-------------------------------------"<<endl;
    cout<<"|   x  |     f    |   n  |  math F  |"<<endl;
    cout<<"-------------------------------------"<<endl;
    double ck=x;//первое слагаемое
    double S=0, T;//Т - рекуррентный множитель
    int n=0;
    while (fabs(ck)>esp && n<=500)
    {
        S=S+ck;
        T=x*x*(2*n+1)/(2*n+3.0);
        ck=ck*T;
        n=n+1;
    }
    S=S*2;
    double mathF=log((1+x)/(1-x)); //точное значение функции, полученное по формуле
    cout<<"|"<<setw(6)<<x<<"| "<<setw(8)<<S<<" |"<<setw(6)<<n<<"| "<<setw(8)<<mathF<<" |"<<endl;
    cout<<"-------------------------------------"<<endl;
}
Теперь тебе ее нужно расширить, поместив вычисление суммы в цикл while, параметром для которого будет xn<=xk

Попробуй. Если все еще не понятно, пиши
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
09.10.2011, 12:16  [ТС] #45
что то еще не понял до конца допишите уже до конца мне я разберусь как нить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2011, 12:16
Привет! Вот еще темы с ответами:

Массивы и указатели - нужен пример - C++
любые задания на тему массивы и указатели завтра сдавать очень нуна!!!!

Нужен пример работы со структурами - C++
Здравствуйте, не могли ли вы мне привести пример простой программы, в которой происходят простые действия, в которой присутствует структура...

Нужен пример оператора switch - C++
Приведите пожалуйста простенький пример оператора switch с пояснением. просто чтоб понять как он работает) (в книге непонятный пример)

Нужен пример использование паттернов - C++
Мне нужно пример использование паттернов в программах написанных на JAVA или C++ языках!


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.10.2011, 12:16
Ответ Создать тему
Опции темы

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