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

Нахождения перимтров нескольких трапеций заданных по точкам - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу,которая вычисляет среднее арифметическое http://www.cyberforum.ru/cpp-beginners/thread665807.html
Решить задачу двумя методами:используя цикл for и используя цикл whilе(либо do-whilе). Написать программу,которая вычисляет среднее арифметическое вводимой с клавиатуры последовательности дробных чисел. Количество чисел должно задаваться во время работы программы
C++ Найти количество точек треугольника, принадлежащих осям координат Найдите количество точек треугольника с вершинами (x1, y1), (x2, y2), (x3, y3), принадлежащих осям координат. Ввод В первой строке содержатся вещественные числа x1, y1, x2, y2, x3, y3 – координаты вершин треугольника. Вывод Вывести целое число – количество точек треугольника, принадлежащих осям координат. Возможен также ответ "Infinite set" – бесконечное множество. Пример ввода -1.0 -1.0... http://www.cyberforum.ru/cpp-beginners/thread665805.html
Написать программу,которая сравнивает два числа C++
Разработать программные модули для решения задачи,используя предложение if. Написать программу,которая сравнивает два введеных с клавиатуры числа. Программа должна указать,какое число больше, или,если числа равны,вывести соответствующее сообщение.
C++ Компилятор ругается на синтаксис
cout << "Введите значение длины в заданных единицах: m, cm, ft, in: " << '\n'; for (i=0;i<100;++i){ cin >> length >> len_unit; if (len_unit=="m") void(); if (len_unit=="cm") length*=0.01; if (len_unit=="ft") length*=12*0.0254; if (len_unit=="in") length*=0.0254; else cout << " Можно ввести только m, cm, ft или in " << '\n'; sum+=length; }
C++ Табулирование функций http://www.cyberforum.ru/cpp-beginners/thread665796.html
ребят, срочно. Туплю по страшному. Я вообще на делфи пишу, но волей судьбы пришлось учить С++. Не пойму где ошибка ( Начинает выводить дикие значения и выкидывает "закрытие программы" Пишу в C::B вот оригинал #include <stdio.h> #include <conio.h> #include <math.h> #include <string.h> void main() {
C++ Определить двоичные числа из промежутка [a,b], сумма цифр которых - простое число Условие: Определить все двоичные числа, принадлежат промежутку , сумма цифр которых есть простые числа. вот то что я уже написал, цикл для нахождения сумы есть, а вот как определить простая ли ета сума, а потом еще й вывести на екран числа, сумы которых простое число я просто незнаю. #include <math.h> #include <conio.h> #include <stdio.h> int main() { int a, b; printf("Vvedite... подробнее

Показать сообщение отдельно
DeFeND
0 / 0 / 1
Регистрация: 18.10.2011
Сообщений: 37
12.11.2012, 19:54  [ТС]     Нахождения перимтров нескольких трапеций заданных по точкам
Задание:На вход подается некоторое количество трапеций (координаты вершин).
Отсортировать и вывести их по возрастанию периметров.

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


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
Макс
// 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;
}
Второй код переделываю под классы:
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
// Trapecia.cpp: определяет точку входа для консольного приложения.
//
 
//На вход подается некоторое количество трапеций (координаты вершин). 
//Отсортировать и вывести их по возрастанию периметров.  
 
#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;
}
 
Текущее время: 12:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru