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

Добавить в код программы использование функций Френд и Статик, перегрузку опереций, наследование, использование шаблонов, обработку искл. ситуаций... - C++

Войти
Регистрация
Восстановить пароль
 
Mr.Twister
Сообщений: n/a
18.11.2009, 18:15     Добавить в код программы использование функций Френд и Статик, перегрузку опереций, наследование, использование шаблонов, обработку искл. ситуаций... #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
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
 
class tochka{
    public:
        int x,y;
};
class mn{
    public:
        int kol;
        float s;
};
double poisk(tochka point,tochka sidebar[],int count);
 
int main(){
        int z;
        mn mn1,mn2;
        tochka m1[10],m2[10];
 
            printf("Vvedite chislo vershin pervogo mnogougol'nika\n"); scanf("%d",&mn1.kol);
            printf("Vvedite cherez probel koordinaty X i Y, tochek, nazhimaja vvod, v porjadke obhoda granicy\n");
    
            for(int i=1; i<=mn1.kol; i++) scanf("%d%d", &m1[i].x,&m1[i].y);
            printf("Vvedite chislo vershin vtorogo mnogougol'nika\n"); scanf("%d",&mn2.kol);
            printf("Vvedite cherez probel koordinaty X i Y, tochek, nazhimaja vvod, v porjadke obhoda granicy\n");
        
            for(int i=1; i<=mn2.kol; i++) scanf("%d%d", &m2[i].x,&m2[i].y);
            mn1.s=0;
 
            for(int i=3; i<=mn1.kol; i++) mn1.s=mn1.s+((abs((m1[i-1].x-m1[1].x)*(m1[i].y-m1[1].y)-(m1[i].x-m1[1].x)*(m1[i-1].y-m1[1].y)))/2);
                
            printf("Plowad' pervogo mnogougol'nika = %5.2f\n", mn1.s);
            mn2.s=0;
 
            for(int i=3; i<=mn2.kol; i++) mn2.s=mn2.s+((abs((m2[i-1].x-m2[1].x)*(m2[i].y-m2[1].y)-(m2[i].x-m2[1].x)*(m2[i-1].y-m2[1].y)))/2);
            printf("Plowad' vtorogo mnogougol'nika = %5.2f\n", mn2.s);
            z=0;
    
            if(mn1.s>mn2.s)for(int i=1; i<=mn2.kol; i++) if(poisk(m2[i],&m1[1],mn1.kol)==1) z++;
    
            if(z==mn2.kol)printf("Mnogougol'nik 2 lezhit strogo v mnogougol'nike 1\n");
            z=0;
    
            if(mn2.s>mn1.s)for(int i=1; i<=mn1.kol; i++) if(poisk(m1[i],&m2[1],mn2.kol)==1) z++;
    
            if(z==mn1.kol)printf("Mnogougol'nik 1 lezhit strogo v mnogougol'nike 2\n");
        
            scanf("%d",&mn1.s);
        
            return 0;
}
double poisk(tochka point,tochka sidebar[],int count)
{
    double x1,y1,x2,y2;
    double Sum=0;
    double y0=point.y;
    double x0=point.x;
    double divisor;
 
    for (int i=0;i<count-1;++i)
    {
        x1=sidebar[i].x;
        y1=sidebar[i].y;
        x2=sidebar[i+1].x;
        y2=sidebar[i+1].y;
 
        divisor=y1*x2-x1*y2-y0*x2+y0*x1+x0*y2-x0*y1;
 
        Sum+=(-atan((-x2*x1+x1*x0+y0*y1-x2*x0+x2*x2-y2*y0+y2*y2-y1*y2 )/divisor)+
              atan((-x1*x1+x2*x1+x1*x0+y0*y1+y1*y2-x2*x0-y1*y1-y2*y0 )/divisor));
    };
    x1=sidebar[count-1].x;
    y1=sidebar[count-1].y;
    x2=sidebar[0].x;
    y2=sidebar[0].y;
 
    divisor=y1*x2-x1*y2-y0*x2+y0*x1+x0*y2-x0*y1;
    Sum+=(-atan((-x2*x1+x1*x0+y0*y1-x2*x0+x2*x2-y2*y0+y2*y2-y1*y2)/divisor)+
          atan((-x1*x1+x2*x1+x1*x0+y0*y1+y1*y2-x2*x0-y1*y1-y2*y0)/divisor));
 
    return abs(Sum)<0.0001?0:1;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2009, 18:15     Добавить в код программы использование функций Френд и Статик, перегрузку опереций, наследование, использование шаблонов, обработку искл. ситуаций...
Посмотрите здесь:

использование функций-шаблонов C++
Использование функций шаблонов C++
C++ Использование функций и шаблонов функций
Использование функций шаблонов C++
Использование функций-шаблонов C++
C++ использование шаблонов функций в с++
C++, использование функций шаблонов. C++
Использование функций-шаблонов C++
использование функций шаблонов C++
Задача по С++ на Использование функций шаблонов! C++
C++ Определение и использование шаблонов функций для обработки массивов
Использование шаблонов функций в задаче на двумерные массивы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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