Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
1

Вычисление функции с заданной точностью с использованием разложения в ряд

05.12.2011, 21:27. Просмотров 1705. Ответов 17
Метки нет (Все метки)

Цель работы: освоение средств языка C++ для описания итерационных циклов и закрепление навыков использования их при программировании.
Пример
Задание. Составить схему программы и программу на языке C++ с использованием оператора цикла с предусловием и оператора цикла с постусловием для вычисления функции с заданной точностью с использованием разложения в ряд

2 программы: Программа с использованием оператора цикла с предусловием и с использованием оператора цикла с постусловием
0
Миниатюры
Вычисление функции с заданной точностью с использованием разложения в ряд  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2011, 21:27
Ответы с готовыми решениями:

Вычислить функции arcctgс заданной точностью с использованием разложения в ряд
Помогите довести программу до рабочего состояния. Задание. Составить схему...

Вычисление функции с использованием их разложения в ряд
Прошу помочь с решением задачи. Только начал постигать С++. Для х...

Вычисление функции с использованием разложения в ряд
Вычисление функции с использованием разложения в ряд Вычислить и вывести на...

Найти значение функции c заданной точностью с помощью разложения в ряд Тейлора
Найти значение функции √(1+x) в точке х (-1≤x≤1) c заданной точностью с помощью...

Вычисление заданной функции разложением ее в ряд с использованием рекурсии
Программа вычисляет неправильно. Видимо, я что-то упустила. Не могли бы вы...

17
TamTam
18 / 18 / 2
Регистрация: 28.12.2011
Сообщений: 176
15.01.2012, 12:55 2
э.. чего-то с утра немогу сообразить зависимось в изменении 1/3. Ну примерно так:
введите максимальное н-макс,
введи а, в
проверить что если в/а в третьей за нужными рамками то выход.

н = 1
(начало цикла)
м = 1+ 1/3*(в/а^3)^н
н++
м = м + (непонятая мной зависимость)*1/3*(в/а^3)^н
и так в нужном цикле н раз (т.е н больше н-макс)
умножить м на а = с
вывести с.
1
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
15.01.2012, 13:04  [ТС] 3
Плиз, а не могли бы мне бв это каким то образом оформить поподробнее, я просто не особо понимаю в этом С++, помогите прогу написать

Добавлено через 5 минут
Мне надо бы как то оформить вот типо этого только с моим примером.
с использованием оператора цикла с предусловием:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Программа вычисления sin x
# include <iostream.h>
# include <conio.h>
# include <math.h>
void main ()
{
   double x, eps;
   cout<<”Введите значения аргумента и точности\n”;
   cin>>x>>eps;
   double F=x, a=x;
   int n=2;
   while (fabs(a)>=eps)
     {
      a*= –x*x/(n*(n+1));
      F+=a;
      n+=2;
      }
   cout<<”Приближенное значение sin x=<<F;
   cout<<”Точное значение sin x=<<sin(x);
}
0
TamTam
18 / 18 / 2
Регистрация: 28.12.2011
Сообщений: 176
15.01.2012, 13:18 4
найдите зависимость в этой 1/3 ей, а то ж как сдавать будете? нодо же написать как оно изменяется.
0
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
15.01.2012, 13:20  [ТС] 5
Да какая зависимость, я ноль в этом, да отвечать и сдавать это фигня, мне лиш бы было написано это и оформленно. У меня сессия поджимает, сделайте плиз пожалуйста.
0
TamTam
18 / 18 / 2
Регистрация: 28.12.2011
Сообщений: 176
15.01.2012, 13:33 6
м = м + (непонятая мной зависимость)*1/3*(в/а^3)^н - вот сдесь что-то должно быть, вместо надписи в скобках. Без этого программа будет считать неправильно, не по формуле.

могу написать без этого, но это будет не по заданию

Добавлено через 54 секунды
это математика, а не программирование. прогу напишу, нужна ф-ла.

Добавлено через 1 минуту
у вас написано сначала 1/3, потом 2/3*6, потом 2*5/3*6*9. Какая дробь будет следующей?
0
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
15.01.2012, 13:33  [ТС] 7
Ну такой пример, я как бы не сам придумал его, ну если не понятное для вас попробуйте без этого обойдитесь, без него напишите, там уже поразмыслить можно будет хоть над чем то. Может найдут добровольцы которые знают. Скиньте то что знаете хотябы))
0
TamTam
18 / 18 / 2
Регистрация: 28.12.2011
Сообщений: 176
15.01.2012, 13:53 8
сейчас напишу, 3 минуты.

Добавлено через 18 минут
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 <stdio.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
 
 
int main()
{
    int  s, n, m, b, a, c, nm;
cout << "Vvedi a ";
cin >> a;
 
cout << "Vvedi b ";
cin >> b;
if  ((b/a^3>1)||( b/a^3<-1)) 
{
 cout<<"net sxodimosti";
}
 
cout << "Vvedi n(max)>0";
cin >> nm;
n = 1;
m = 1+(1/3)*(b/a^3)^n;
while(n>nm)
{
  n++
   m = m+s*(1/3)*(b/a^3)^n;
}
m*a = c
cout << " " << c << endl;
 
getch();
 
return 0;
 
}
s - нужная зависимость.
1
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
15.01.2012, 13:53  [ТС] 9
Там 2 проги надо, одна с использованием оператора цикла с предусловием и с использованием оператора цикла с постусловием
0
TamTam
18 / 18 / 2
Регистрация: 28.12.2011
Сообщений: 176
15.01.2012, 14:02 10
это был с пред.

Добавлено через 4 минуты
а с пост все то же, только

C++
1
2
3
4
5
6
do
     {
         n++
   m = m+s*(1/3)*(b/a^3)^n;
     }
     while (n>=nm);
либо равно потому тут условие проверяется после выполнения тела цикла, и блок цикла с постусловием всегда будет выполнен хотя бы один раз, независимо от истинности условия. Можно написать while (n-1>nm)
0
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
15.01.2012, 14:03  [ТС] 11
Спасибо))
0
TamTam
18 / 18 / 2
Регистрация: 28.12.2011
Сообщений: 176
15.01.2012, 14:07 12
ой. ой ой ой. в первой исправте:
Цитата Сообщение от TamTam Посмотреть сообщение
while(n>nm)
на while(n<nm)

Добавлено через 1 минуту
и во второй соответственно. Пойду ка я спать.
0
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
15.01.2012, 15:47  [ТС] 13
ошибок мой Borland C++ выдаёт 5 штук

Добавлено через 1 час 21 минуту
Цитата Сообщение от TamTam Посмотреть сообщение
m*a = c
обьясни что за строка, что это, у меня ошибка всей проги только тут.
0
TamTam
18 / 18 / 2
Регистрация: 28.12.2011
Сообщений: 176
15.01.2012, 19:53 14
точку с запятой после неё поставте. у вас в примере а*на выражение в квадратных скобках. Цикл вычисляет скобки, после цикла * на это а.
Борланд, хм, надо же) Насколько знаю, там надо не инт мейн, а воид мейн.

Напишите так:
с = а*м;

Добавлено через 19 секунд
а зависимость то нашли?

Как/если найдете возьмите её в скобки и напишите в строке m = m+s*(1/3)*(b/a^3)^n; вместо s.
И уберите s из инициализации.
0
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
15.01.2012, 20:17  [ТС] 15
Вот то что у меня получилось.
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Постусловие
 
#include<stdio.h>
#include<stdlib.h>
#include<conio.h> 
#include "stdafx.h"
void main()
{
int s, n, m, b, a, c, nm;
printf( "Vvedi a ");
scanf("%d", a);
 
printf("Vvedi b ");
scanf("%d",b);
if ((b/a^3>1)||( b/a^3<-1)) 
{
printf("net sxodimosti");
}
 
printf("Vvedi n(max)>0");
scanf("%d",nm);
n = 1;
m = 1+(1/3)*(b/a^3)^n;
do
{
n++;
m = m+s*(1/3)*(b/a^3)^n;
}
while(n>nm)
 
m*a=с;                   ТУТ ОШИБКА ВОТ
printf("%d", c);
 
}
 
ПРЕДУСЛОВИЕ
 
Постусловие
#include<stdio.h>
#include<stdlib.h>
#include<conio.h> 
#include "stdafx.h"
void main()
{
int s, n, m, b, a, c, nm;
printf( "Vvedi a ");
scanf("%d", a);
 
printf("Vvedi b ");
scanf("%d",b);
if ((b/a^3>1)||( b/a^3<-1)) 
{
printf("net sxodimosti");
}
 
printf("Vvedi n(max)>0");
scanf("%d",nm);
n = 1;
m = 1+(1/3)*(b/a^3)^n;
 
while(n>nm)
 
{
n++;
m = m+s*(1/3)*(b/a^3)^n;
}
 
m*a=с;                       ЭТА СТРОКА С ОШИБКОЙ ВЫДАЁТ
printf("%d", c);
 
}
пОСТАВЬТЕ КАК НАДО ТОЧНО И ЕСЛИ КТО МОЖЕТ СХЕМУ ПОСТРОЙТЕ ПЛИЗ.
0
TamTam
18 / 18 / 2
Регистрация: 28.12.2011
Сообщений: 176
16.01.2012, 03:10 16
Да какую ошибку он хоть пишет? нету борланда у меня. И измени
Цитата Сообщение от TamTam Посмотреть сообщение
на while(n<nm)
Хоть бы прочти про циклы эти.
0
NoMasters
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
16.01.2012, 03:38 17
После постусловия точка с запятой же.
C++
1
2
3
4
do
{
...
}while(some);
Добавлено через 5 минут
C
1
m*a=с;
Штоэта? Наверно, должно было быть
C
1
c = m * a;
1
anniklav
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 4
25.05.2013, 05:51 18
Доброе утро помогите написать код на Паскале или на Си

В массиве любого размера с целыми числами от 1 до 500,000 одно число повторяется дважды, все остальные числа уникальны. Предложите наиболее быстрый алгоритм поиска повторяющегося числа.
за ранее благодарна
0
25.05.2013, 05:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2013, 05:51

Вычисление функций с использованием их разложения в степенной ряд
Вычисление функций с использованием их разложения в степенной ряд. Вычислить...

Вычисление функций с использованием их разложения в степенной ряд - C++
http://http://www.cyberforum.ru/cpp-beginners/thread435049.html#post2443082 В...

Вычисление функций с использованием их разложения в степенной ряд!
Условие: Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить...


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

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

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