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

надо переделать - C++

Восстановить пароль Регистрация
 
Salawat
 Аватар для Salawat
0 / 0 / 0
Регистрация: 01.12.2010
Сообщений: 28
31.05.2012, 18:03     надо переделать #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
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
class chetbIreh_ugolnik {
public:
    chetbIreh_ugolnik();
    ~chetbIreh_ugolnik();
    void dl_storon();
    double diagonal();
    double perimetr();
    double plosh();
    double Ax,Ay,Bx,By,Cx,Cy,Dx,Dy;
};
chetbIreh_ugolnik::chetbIreh_ugolnik(){
cout<<"Vvedite koordinatbI tocheki A  "<<endl;
cout<<"x=";
cin>>Ax;
cout<<"y=";
cin>>Ay;
cout<<"Vvedite koordinatbI tocheki B  "<<endl;
cout<<"x=";
cin>>Bx;
cout<<"y=";
cin>>By;
cout<<"Vvedite koordinatbI tocheki C  "<<endl;
cout<<"x=";
cin>>Cx;
cout<<"y=";
cin>>Cy;
cout<<"Vvedite koordinatbI tocheki D  "<<endl;
cout<<"x=";
cin>>Dx;
cout<<"y=";
cin>>Dy;
}
chetbIreh_ugolnik::~chetbIreh_ugolnik(){
    cout<<"Destructor runs"<<endl;}
void chetbIreh_ugolnik::dl_storon(){
    double dlAB,dlBC,dlCD,dlAD;
    dlAB=pow((Bx-Ax)*(Bx-Ax)+(By-Ay)*(By-Ay), 0.5);
    cout<<"Dlina storoni AB="<<dlAB<<endl;
    dlBC=pow((Cx-Bx)*(Cx-Bx)+(Cy-By)*(Cy-By), 0.5);
    cout<<"Dlina storoni BC="<<dlBC<<endl;
    dlCD=pow((Dx-Cx)*(Dx-Cx)+(Dy-Cy)*(Dy-Cy), 0.5);
    cout<<"Dlina storoni CD="<<dlCD<<endl;
    dlAD=pow((Dx-Ax)*(Dx-Ax)+(Dy-Ay)*(Dy-Ay), 0.5);
    cout<<"Dlina storoni AD="<<dlAD<<endl;
}
double chetbIreh_ugolnik::diagonal(){
    double dlAC,dlBD;
    dlAC=pow((Cx-Ax)*(Cx-Ax)+(Cy-Ay)*(Cy-Ay), 0.5);
    dlBD=pow((Dx-Bx)*(Dx-Bx)+(Dy-By)*(Dy-By), 0.5);
    if(dlAC<dlBD) return dlAC;
    else return dlBD;
}
double chetbIreh_ugolnik::perimetr(){
    double dlAB,dlBC,dlCD,dlAD,P;
    dlAB=pow((Bx-Ax)*(Bx-Ax)+(By-Ay)*(By-Ay), 0.5);
    dlBC=pow((Cx-Bx)*(Cx-Bx)+(Cy-By)*(Cy-By), 0.5);
    dlCD=pow((Dx-Cx)*(Dx-Cx)+(Dy-Cy)*(Dy-Cy), 0.5);
    dlAD=pow((Dx-Ax)*(Dx-Ax)+(Dy-Ay)*(Dy-Ay), 0.5);
P=dlAB+dlBC+dlCD+dlAD;
return P;
}
double chetbIreh_ugolnik::plosh(){
    double dlAB,dlAD,dlBC,dlCD,dlBD,p1,p2,s1,s2,S;
    dlAB=pow((Bx-Ax)*(Bx-Ax)+(By-Ay)*(By-Ay), 0.5);
    dlBC=pow((Cx-Bx)*(Cx-Bx)+(Cy-By)*(Cy-By), 0.5);
    dlCD=pow((Dx-Cx)*(Dx-Cx)+(Dy-Cy)*(Dy-Cy), 0.5);
    dlAD=pow((Dx-Ax)*(Dx-Ax)+(Dy-Ay)*(Dy-Ay), 0.5);
    dlBD=pow((Dx-Bx)*(Dx-Bx)+(Dy-By)*(Dy-By), 0.5);
    p1=(dlAB+dlAD+dlBD)/2;
    p2=(dlBC+dlCD+dlBD)/2;
    s1=pow(p1*(p1-dlAB)*(p1-dlAD)*(p1-dlBD),0.5);
    s2=pow(p2*(p2-dlBC)*(p2-dlCD)*(p2-dlBD),0.5);
    S=s1+s2;
    return S;
}
class trapeciya: public chetbIreh_ugolnik
{
public:
 bool fl;
 void proverka();
 double plosh();
 void vbIvod();
};
void trapeciya::proverka(){
double dlCD,dlAB,dlAD,k1,k2,c1,c2;
dlCD=pow((Dx-Cx)*(Dx-Cx)+(Dy-Cy)*(Dy-Cy), 0.5);
dlAD=pow((Dx-Ax)*(Dx-Ax)+(Dy-Ay)*(Dy-Ay), 0.5);
dlAB=pow((Bx-Ax)*(Bx-Ax)+(By-Ay)*(By-Ay), 0.5);
k1=(Bx-Ax)*(Dx-Ax)+(By-Ay)*(Dy-Ay);
k2=(Cx-Dx)*(Ax-Dx)+(Cy-Dy)*(Ay-Dy);
c1=cos(k1/(dlAB*dlAD));
c2=cos(k2/(dlCD*dlAD));
if((dlCD==dlAB)&&(fabs(c1-c2)<0.001))
fl=true;
else
fl=false;
}
double trapeciya::plosh(){
double dlBC,dlAB,dlAD,dlCD,k1,k2,c1,c2;;
    dlAB=pow((Bx-Ax)*(Bx-Ax)+(By-Ay)*(By-Ay), 0.5);
    dlBC=pow((Cx-Bx)*(Cx-Bx)+(Cy-By)*(Cy-By), 0.5);
    dlCD=pow((Dx-Cx)*(Dx-Cx)+(Dy-Cy)*(Dy-Cy), 0.5);
    dlAD=pow((Dx-Ax)*(Dx-Ax)+(Dy-Ay)*(Dy-Ay), 0.5);
    k1=(Bx-Ax)*(Dx-Ax)+(By-Ay)*(Dy-Ay);
    k2=(Cx-Dx)*(Ax-Dx)+(Cy-Dy)*(Ay-Dy);
    c1=cos(k1/(dlAB*dlAD));
    c2=cos(k2/(dlCD*dlAD));
if(fabs(c1-c2)<0.001)
return ((dlBC+dlAD)*dlAB*c1/2);
else
return 0;
}
void trapeciya::vbIvod(){
    if (fl==true){
    cout<<"Trapeciya ravnobokaya"<<endl;
    cout<<"Perimetr="<<perimetr()<<endl;
    cout<<"Diagonal=";
    diagonal();
    cout<<"Ploshad="<<plosh()<<endl;}
    else
    cout<<"Trapeciya ne ravnobokaya"<<endl;
}
int main(){
    int i,n,m,k=0,p;
    cout<<"Vvedite kolichestvo chetirexugolnikov i trpecii."<<endl;
    cout<<"n="; cin>>n; cout<<"m="; cin>>m;
    chetbIreh_ugolnik *a=new chetbIreh_ugolnik [n];
    trapeciya *b=new trapeciya [m];
    for (i=0; i<m; i++) {
        b[i].proverka();}
    double max=-10e37;
    for(i=0; i<n; i++){
        if(a[i].plosh()>max){max=a[i].plosh(); k=0;}
        if(a[i].plosh()==max) k++;
    }
    double min=10e37;
    for(i=0; i<m; i++){
        if (b[i].fl==true && b[i].diagonal()<min){min=b[i].diagonal(); p=i;}
    }
    cout<<"Maximalnaya ploshad chetbIrehugolnikov="<<max<<endl;
    cout<<"Takih chetbIrehugolnikov "<<k<<endl;
    if(min==10e37) cout<<"KoordinatbI trapecii vvedenbI ne pravilno"<<endl;
    else cout<<"Minimalnaya diagonal="<<min<<"  "<<p<<"-trapecii"<<endl;
    return 0;
}
Добавлено через 4 минуты
надо сделать так чтобы координаты были взяты из файла ну например input.data и вывод был записан на файл output.data короче файловый ввод/вывод fstream.h
заранее спасибо!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 18:03     надо переделать
Посмотрите здесь:

Вот програмка, надо переделать штоби она мИстыла C++
надо переделать C++
C++ Программу на С++ надо переделать под С
C++ надо переделать программу
надо переделать программу C++
C++ Написал программу на С++, надо переделать на С (пару строк!)
Надо переделать немного программу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
31.05.2012, 18:03     надо переделать #2
Привет. У меня собака. У неё перхоть.

может ты бы написал, что надо переделать? и что ты сделал?
Salawat
 Аватар для Salawat
0 / 0 / 0
Регистрация: 01.12.2010
Сообщений: 28
31.05.2012, 20:44  [ТС]     надо переделать #3
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
#include <locale.h>
#include <iomanip>
#include "lib.h"
using namespace std;
 
ifstream inFile;    //входной поток данных
ofstream outFile;   //выходной поток данных
 
 
int main(){
    setlocale(LC_CTYPE,"Russian");
    createInFile(inFile, "input.data"); //вызов функции связи входного
                                        //потока с файлом
    createOutFile(outFile, "output.data");//вызов функции связи выходного
                                          //потока с файлом
 
    float a, b, d;
    inFile >> a >> b >> d;
    Circle c(a, b, d);
    outFile << "Координата X равна " << c.getX() << endl
            << "Координата Y равна " << c.getY() << endl
            << "Радиус равен " << c.getRadius() << endl;
   inFile >> a;
    c.setRadius(a);
    inFile >> a >> b;
    c.setPoint(a, b);
 
    outFile << setiosflags(ios::fixed | ios::showpoint);
    outFile << "Координата X равна " << c.getX() << endl
            << "Координата Y равна " << c.getY() << endl
            << "Радиус равен " << c.getRadius() << endl
            << "Площадь равна " << c.area() << endl;
 
    outFile << "Печать объекта класса Circle: " << c << endl;
 
    Point &pRef = c;
 
    outFile << "Печать Circle как Point: " << pRef << endl;
 
    return 0;
}


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
///////////////////////////////////////////////////////////////////////
#ifndef LIB_H
#define LIB_H
#include <fstream>
 
using namespace std;
 
//прототипы функций
void createInFile(ifstream &, const char *);
void createOutFile(ofstream &, const char *);
 
#endif // LIB_H
///////////////////////////////////////////////////////////////////////
#include "lib.h"
 
//функции для связи потоков и файлов
 
void createInFile(ifstream &inf, const char *name){
    inf.open(name);
}
 
void createOutFile(ofstream &outf, const char *name){
    outf.open(name);
}
//////////////////////////////////////////////////////////////////////

ну что-то типо похоже на этого
видишь вывод output.data и ввод из файла input.data
короче координаты 4-угольник берет из файла input.data, а ответ выводит не на экран а в файл output.data
Yandex
Объявления
31.05.2012, 20:44     надо переделать
Ответ Создать тему
Опции темы

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