![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 13.05.2012
Сообщений: 4
|
![]()
Задание:На вход подается некоторое количество трапеций (координаты вершин).
Отсортировать и вывести их по возрастанию периметров. Вот первый код который рабочий мною созданный. Но нужно переделать его под классы обьектов.Во втором коде я начал переделывать код,но не могу создать класс для нахождения периметра.Помогите,подскажите полжалуйста!Спасибо Первый код: // ConsoleApplication1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; const int n = 5; typedef struct{ float x, y; } POINT; typedef struct{ POINT p[4]; } POINTARRAY; int _tmain(int argc) { srand(time(0)); POINTARRAY arr[n]; for(int i = 0; i<n;i++) { for(int j = 0; j<4; j++) { arr[i].p[j].x = rand(); arr[i].p[j].y = rand(); } } float per[n] = {0}; for(int i = 0; i<n;i++) { int otr[4] = {0}; otr[0] = sqrt(pow((arr[i].p[0].x-arr[i].p[1].x),2)+pow((arr[i].p[0].y-arr[i].p[1].y),2)); otr[1] = sqrt(pow((arr[i].p[1].x-arr[i].p[2].x),2)+pow((arr[i].p[1].y-arr[i].p[2].y),2)); otr[2] = sqrt(pow((arr[i].p[2].x-arr[i].p[3].x),2)+pow((arr[i].p[2].y-arr[i].p[3].y),2)); otr[3] = sqrt(pow((arr[i].p[3].x-arr[i].p[0].x),2)+pow((arr[i].p[3].y-arr[i].p[0].y),2)); for(int j =0; j<=3;j++) { per[i]+=otr[j]; } } for(int i = 0; i<n;i++) { for(int j =0; j<4; j++) { printf("%f %f \n\t", arr[i].p[j].x, arr[i].p[j].y); } printf("perimetr %f \n\n\t", per[i]); } for (int i = 0; i < n; i++) for (int j = i+1; j < n; j++) if (per[i] < per[j]) { int buf = per[i]; per[i] = per[j]; per[j] = buf; POINTARRAY bufPoint= arr[i]; arr[i] = arr[j]; arr[j] = bufPoint; } printf("\n sorting \n"); for(int i = 0; i<n;i++) { for(int j =0; j<4; j++) { printf("%f %f \n\t", arr[i].p[j].x, arr[i].p[j].y); } printf("perimetr %f \n\n\t", per[i]); } getchar(); return 0; } Второй код по классы : //На вход подается некоторое количество трапеций (координаты вершин). //Отсортировать и вывести их по возрастанию периметров. #include "stdafx.h" #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; const int n = 2; class tochka { public: void vvod() { int x,y; cout << "Vvedite kkoardinati x="; cin >>x; cout << "Vvedite kkoardinati y="; cin >>y; } }; class Perimetr { public: void perimetr() { int x,y; cout << "Vvedite kkoardinati x="; cin >>x; cout << "Vvedite kkoardinati y="; cin >>y; } }; typedef struct{ int x,y; } POINT; typedef struct{ POINT p[4]; } POINTARRAY; int main(int argc) { srand (time(0)); POINTARRAY arr[n]; for(int i=0;i<n;i++) { for(int j=0;i<4;i++) { tochka x; x.vvod(); tochka y; y.vvod(); } } float per[n] = {0}; for(int i = 0; i<n;i++) { int otr[4] = {0}; otr[0] = sqrt(pow((arr[i].p[0].x-arr[i].p[1].x),2)+pow((arr[i].p[0].y-arr[i].p[1].y),2)); otr[1] = sqrt(pow((arr[i].p[1].x-arr[i].p[2].x),2)+pow((arr[i].p[1].y-arr[i].p[2].y),2)); otr[2] = sqrt(pow((arr[i].p[2].x-arr[i].p[3].x),2)+pow((arr[i].p[2].y-arr[i].p[3].y),2)); otr[3] = sqrt(pow((arr[i].p[3].x-arr[i].p[0].x),2)+pow((arr[i].p[3].y-arr[i].p[0].y),2)); for(int j =0; j<=3;j++) { per[i]+=otr[j]; } } //for(int i = 0; i<n;i++) //{ //for(int j =0; j<4; j++) //{ //printf("%f %f \n\t", arr[i].p[j].x, arr[i].p[j].y); //} //printf("perimetr %f \n\n\t", per[i]); //} for (int i = 0; i < n; i++) for (int j = i+1; j < n; j++) if (per[i] < per[j]) { int buf = per[i]; per[i] = per[j]; per[j] = buf; POINTARRAY bufPoint= arr[i]; arr[i] = arr[j]; arr[j] = bufPoint; } printf("\n sorting \n"); for(int i = 0; i<n;i++) { for(int j =0; j<4; j++) { printf("%f %f \n\t", arr[i].p[j].x, arr[i].p[j].y); } printf("perimetr %f \n\n\t", per[i]); } getchar(); return 0; } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вычислить периметр | Лика505 | Помощь студентам | 6 | 05.04.2012 20:19 |
Преобразование трапеции | asoll05 | Помощь студентам | 0 | 09.02.2011 21:44 |
Периметр n-угольника | Raphael | Помощь студентам | 4 | 17.10.2010 16:21 |
периметр | shelest | Помощь студентам | 1 | 28.11.2009 23:47 |