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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.67
lilliputina
0 / 0 / 0
Регистрация: 01.01.2010
Сообщений: 10
#1

программа C++ для вычисления функции y=f(x)=arccot(x). всё ли правильно?? - C++

02.01.2010, 03:09. Просмотров 3648. Ответов 8
Метки нет (Все метки)

здравствуйте! мне нужно было написать программу для вычисления арккотангенса ( y=f(x)=arccot(x) ) с использованием формулы суммы (разложения) для|x|< 1. (формулу я, к сожалению, не могу сюда скопировать). без использования стандартных математических функций. также нужно было протестировать с каким-нибудь х. вычисление нужно прервать, когда разница значений двух следующщих друг за другом членов z i и z i+1 меньше epsilon или когда будут сложены максимум 20 членов суммы. я ввела 2 вспомогательные функции mypow и myabs. в формуле используется π/2, в программе это значение - константа.

на правильном я вообще пути? =) извините, что некоторые комменты на немецком (я в германии)
спасибо!!!!

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
72
73
74
75
76
77
78
79
80
81
82
83
/*
Kurzbeschreibung:
Berechnet die Funktionswerte der inversen trigonometrischen Funktion y = f(x) = arccot(x), wenn |x|<1 
Fuer die Berechnung wird Summenformel verwendet 
Da "cmath" nicht anzuwenden sind, wurden zwei Hilfsfunktionen eingefuhrt:
mypow (Potenzwert bilden)
myabs (Betrag bilden).
Berechnung bricht ab, wenn die Differenz des Betrages zweier aufeinanderfolgender Glieder z i und z i+1 kleiner als ein zu definierender Abbruchwert epsilon wird oder wenn maximal 20 Summenglieder berechnet wurden.
Fuer die Variablen wurde der Datentyp "double" verwendet um eine hohe Genauigkeit zu erreichen 
Hinweise:
Die Ergebnisse hangen von der verwendeten Genauigkeit von PI ab.
*/
/* 
name.vorname
*/
 
#include <iostream>
 
using namespace std;
 
double mypow(double basis, int exponent);
double myabs(double input);
 
int main(void)
{
//pi_2 - PI/2, уже высчитано
const double pi_2=1.5707963267948966192313216916398;
double x, epsilon=0.000001, summe, summe_alt=0;
int i;
 
cout<<"ввести значение x: ";
cin>>x;
 
if(myabs(x)<1)
{
//первый член формулы суммы
summe_alt=pi_2;
for(i=0; i<20; i++)
{
//следующие члены формулы суммы
summe=summe_alt-(mypow(-1,i)*(mypow(x,2*i+1)/(2*i+1)));
//разница zi и zi+1
if(myabs(summe-summe_alt)<epsilon) break;
summe_alt=summe;
 }
 
cout<<"\narccot("<<x<<")="<<summe;
 }
else
{
//пользователь задал неверные значения x
cout<<"\nпожалуйста, используйте значения, соответствующие условию (|x|<1)!";
 }
 
return 0;
}
 
//Funktion um Potenz zu berechnen
double mypow(double basis, int exponent)
{
int i;
double expwert=1;
 
for (i=0; i<exponent; i++)
expwert=expwert*basis;
 
return expwert;
}
 
//Funktion um Betrag zu berechnen
double myabs(double input)
{
if(input>0)
return input;
else
return -input;
 
//пользователь задал значение x
cout<<x=0.5
cout<<"y="<<y
 
return=0
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2010, 03:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос программа C++ для вычисления функции y=f(x)=arccot(x). всё ли правильно?? (C++):

Программа для вычисления функции - C++
Состивить программу для вычисления функции y\begin{cases}a{x}^{2}+b\sqrt{x}+c &amp; \text{ if } x=&gt; 5 \\ \pi \arcsin x &amp; \text{ if }...

Программа для вычисления значения функции С++ - C++
Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика. Параметр R задается в...

Программа для вычисления значения функции. - C++
Вычислить значения функций (см.рис.) при заданном m, если х изменяется от a до b с шагом h. Результаты получить в виде таблицы.

программа для вычисления значения функции y - C++
для заданного значения x у= если x&lt;-3 то y= √1 - x² если 1,5&lt;x-3, то y= в числителе 1

Программа для приближенного вычисления функции ln(1+x) - C++
Всем привет. Ребят, помогите написать прогу для приближенного вычисления функции ln(1+x). на с++ желательно.

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
02.01.2010, 04:31 #2
Программа выдает верное решение(x=0.58 arcctg = pi/3=1.04521), но у меня такой вопрос, судя по всему создание ф-ций myabs и mypow требовалось по заданию, иначе в их использовании просто нету смысла, есть же стандартные
И исправте ф-цию :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 double myabs(double input)
 {
if(input>0)
 return input;
 else
 return -input;
 
//ïîëüçîâГ*òåëü Г§Г*Г¤Г*Г« Г§Г*Г*Г·ГҐГ*ГЁГҐ x
 //cout<<x=0.5;// x,y ведь даже не определены в этой ф-ции
 //cout<<"y="<<y;
 
 //return 0;
}

Не по теме:

и используйте в дальнейшем пожалуйста теги кода

body90
361 / 294 / 8
Регистрация: 26.05.2009
Сообщений: 2,676
02.01.2010, 04:54 #3
У меня на первом курсе тоже была такая лабораторная работа.
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
02.01.2010, 09:50 #4
const double pi_2=1.5707963267948966192313216916398;
Вроде double не хранит значения с такой точностью - хвост все равно потеряется.
В модуле math.h есть константа PI.

Добавлено через 57 секунд
формулу я, к сожалению, не могу сюда скопировать
А почему собственно ?
Снять с экрана, обрезать края, выложить в виде картинке в форум через Расширенный режим.

Добавлено через 1 минуту
извините, что некоторые комменты на немецком
Хе - я когда-то давно в школе немецкий учил

Добавлено через 3 минуты
mypow(-1,i)
Лучше так:
int sign= 1;
В цикле
sign= -sign;
Как минимум это быстрее считает.
body90
361 / 294 / 8
Регистрация: 26.05.2009
Сообщений: 2,676
02.01.2010, 16:54 #5
Пи как то через math.h и define делалось.
malaya
0 / 0 / 0
Регистрация: 12.12.2009
Сообщений: 3
02.01.2010, 17:48 #6
C++
1
2
3
4
5
6
7
8
9
10
// через define можно объявить вот так 
#include<iostream.h>
#include<math.h>
#define pi 3.14 //как пример  
 
void main ()
{
..............................
..............................
}
body90
361 / 294 / 8
Регистрация: 26.05.2009
Сообщений: 2,676
02.01.2010, 20:01 #7
Не так
lilliputina
0 / 0 / 0
Регистрация: 01.01.2010
Сообщений: 10
03.01.2010, 01:38  [ТС] #8
спасибо!!! многое прояснили ) а как без myabs и mypow? просто убрать их?

вот формула:

http://www.tu-chemnitz.de/informatik..._m479bfe54.gif

спасибо!
оренбуржец
5 / 5 / 0
Регистрация: 12.12.2009
Сообщений: 56
06.01.2010, 16:19 #9
Цитата Сообщение от body90 Посмотреть сообщение
Пи как то через math.h и define делалось.
а не легче задать число пи как переменную с присвоенным значением типа float или double?)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2010, 16:19
Привет! Вот еще темы с ответами:

Программа для вычисления значений функции F(x) на отрезке [a,b] с шагом h (Dev-C++) - C++
F(x)=7{sin}^{2}x-\frac{1}{2}cosx a, b, h - вводит пользователь. Результат выводится в таблице. Первый столбец - значение аргумента,...

Программа для вычисления квадратного корня. Ошибка компиляции в аргументе функции - C++
Всем привет, программа для вычисления квадратного корня. Не компилируется из за вызова функции вычисления кв корня. Ругается на аргументы. ...

Программа для вычисления суммы и произведения элементов массива с использованием функции - C++
Программа для вычисления суммы и произведения элементов массива с использованием функции.Рассмотреть возможность образения к этим функциям...

Составить блок-схему, алгоритм вычисления и программу для вычисления значения кусочно заданной функции - C++
помогите пожалуйста =) заранее благодарен =) П.5.19.Правил Запрещено создавать темы в виде ссылок на задания или коды программ,...


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

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

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