,   CyberForum.ru

? - C++

 
:  :  - 10,   - 4.90
mrjerr
: n/a
03.03.2012, 07:16     ? #1
)
, 4 , ??

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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#include <condefs.h>
#include <stdio.h>
 
#include <stdio.h>
#include <math.h>
#include <conio.h>
# include <iostream.h>
#include <fstream>
 
//---------------------------------------------------------------------------
#include "PolStr.h"
//---------------------------------------------------------------------------
USEOBJ("PolStr.obj");
//---------------------------------------------------------------------------
int main(void)
{
    ifstream fin ("input.txt", ios::in);
    ofstream fout ("output.txt", ios::in);
    int n; //Íîìåð ìåòîä*
    double a, b, //ãð**èöû îòðåçê*
        e, //ç*ä****ÿ ïîãðåø*îñòü
        x, ex;//ïîëó÷å**îå ðåøå*èå, ïîãðåø*îñòü ïîëó÷å**îãî ðåøå*èÿ
    char  s1[1024], s3[1024];//äëÿ ôó*êöèè è ïðîèçâîä*îé
    fin>>n>>s1>>a>>b>>e;//èç ô*éë*
    char *s2, *s4;//äëÿ ôó*êöèè è ïðîèçâîä*îé
    s2 = CreatePolStr(s1, 0);
    cout<<"Ishodnue dannue: e = "<<e<<"\nna intervale ["<<a<<","<<b
        <<"]\nfynkciya: "<<s1<<endl<<endl;
    if(Error) printf("Error: %d.\n", Error);
    double d, g = (sqrt(5)+1)/2;//äëÿ ìåòîä* çîëîòîãî ñå÷å*èÿ d è ã*ìì*
    switch (n){
        case 1://ìåòîä äèõîòîìèè
            cout<<"Metod dihotomii.\n";
            double c;
            while (((b - a)/2> e)||((a - b)/2> e)){
            //while ((double)abs((long)(pow(10,15)*(b - a)))/pow(10,15)/2 > e){//ïîê* *å âûïîë*èòñÿ óñëîâèå |b-a|/2 < e
                c = (a + b) / 2;//(2.1.6)
                if (EvalPolStr(s2, a) * EvalPolStr(s2, c) <= 0)//(2.1.7)
                    b = c;
                else a = c;
            }
            x = (a + b) / 2;//ïîëó÷å**îå ðåøå*èå
            ex = (double)abs((long)(pow(10,15)*(b - a)))/pow(10,15)/2;//ïîãðåø*îñòü ïîëó÷å**îãî ðåøå*èÿ
            cout<<"x = "<<x<<"\ny(x) = "<<EvalPolStr(s2, x)<<endl
                <<"e = "<<ex;
            break;
        case 2://ìåòîä õîðä
            cout<<"Metod hord.\n";
            while ((double)abs((long)(pow(10,15)*(b - a)))/pow(10,15)/2 > e){
                c = a-EvalPolStr(s2, a)/  //(2.1.9)
                    (EvalPolStr(s2, b)-EvalPolStr(s2, a))*(b - a);
                if (EvalPolStr(s2, a) * EvalPolStr(s2, c) <= 0)
                    b = c;
                else a = c;
            }
            x = (a + b) / 2;
            ex = (double)abs((long)(pow(10,16)*(b - a)))/pow(10,16)/2;
            cout<<"x = "<<x<<"\ny(x) = "<<EvalPolStr(s2, x)<<endl
                <<"e = "<<ex;
            break;
        case 3://ìåòîäå çîëîòîãî ñå÷å*èÿ
            cout<<"Metod zolotogo secheniya.\n";
            while ((double)abs((long)(pow(10,15)*(b - a)))/pow(10,15)/2 > e){
                d = a + (b-a)/g;//(2.1.10)
                c = a + (b-a)/pow(g, 2);
                if (EvalPolStr(s2, a) * EvalPolStr(s2, d) <= 0)//(2.1.12)
                    b = d;
                else a = c;
            }
            x = (a + b) / 2;
            ex = (double)abs((long)(pow(10,15)*(b - a)))/pow(10,15)/2;
            cout<<"x = "<<x<<"\ny(x) = "<<EvalPolStr(s2, x)<<endl
                <<"e = "<<ex;
            break;
        case 4://ìåòîä Íüþòî**
            cout<<"Metod Njutona.\n";
            double x0, x1;
            if(fin.eof()){//åñëè â ô*éëå áîëüøå *åò è*ôîðì*öèè òî *óæ*î ïîëó÷èòü ñòðîêó îò ïîëüçîâ*òåëÿ
                cout<<"Otsytstvyet analiticheskoe vurajenie proizvodnoi v faile.\n"<<
                //Îòñóòñòâóåò ***ëèòè÷åñêîå âûð*æå*èå ïðîèçâîä*îé â ô*éëå.\n"<<
                    "Vvedite dlia yravneniia: "<<s2<<"\n yravnenie proizvodnoi: ";
                //"Ââåäèòå äëÿ óð*â*å*èÿ: "<<s2<<"\nóð*â*å*èå ïðîèçâîä*îé: ";
                cin>>s3;
            }
            else fin>>s3;//è**÷å áåðåì èç ô*éë*
            s4 = CreatePolStr(s3, 0);//ïðîèçâîä**ÿ
            c = a-(b - a)*EvalPolStr(s2, b)/   //(2.1.9)
                (EvalPolStr(s2, b)-EvalPolStr(s2, a));
            if (EvalPolStr(s2, a) * EvalPolStr(s2, c) <= 0)//(2.1.16)
                x0 = a;
            else x0 = b;
            x1 = x0 - EvalPolStr(s2, x0)/EvalPolStr(s4, x0);//(2.1.17)
            while ((double)abs((long)(pow(10,15)*(x0 - x1)))/pow(10,15) > e){//(2.1.13)
                x0 = x1;
                x1 = x0 - EvalPolStr(s2, x0)/EvalPolStr(s4, x0);
            }
            x = x1;
            ex = (double)abs((long)(pow(10,15)*(x0 - x1)))/pow(10,15);
            cout<<"x = "<<x<<"\ny(x) = "<<EvalPolStr(s2, x)<<endl
                <<"e = "<<ex;
            break;
    }
    //ç*ïèñü â ô*éë: ðåøå*èå, ç**÷å*èå ôó*êöèè, ïîãðåø*îñòü
    fout<<x<<endl<<EvalPolStr(s2, x)<<endl<<ex;
    fout.close();
    fin.close();
    getch();
    delete [] s2;
    return 0;
}
, )
Similar
41792 / 34177 / 6122
: 12.04.2006
: 57,940
03.03.2012, 07:16     ?
:

C++
C++ try/catch
C++ ?
C++ DOS, ++3.0?
C++ ++ ?
C++ ?
C++ ?
C++ ?



:
.
LK
03.03.2012, 09:21
  #2
   
mrjerr, :
[CPP ] [ /CPP]
2.8. .
, , - .
vxg
   vxg
2667 / 1678 / 158
: 13.01.2012
: 6,271
03.03.2012, 21:08     ? #3
C++
1
2
3
4
5
6
7
cout
<< " :" << endl
<< "1 - " << endl
<< "2 - " << endl
//...
<< ">";
cin >> n;
Yandex
03.03.2012, 21:08     ?

: 21:43. GMT +3.
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
@Mail.ru