Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mr.Twister
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 2
#1

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

18.11.2009, 18:15. Просмотров 577. Ответов 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
#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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2009, 18:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Добавить в код программы использование функций Френд и Статик, перегрузку опереций, наследование, использование шаблонов, обработку искл. ситуаций... (C++):

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

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

Использование функций шаблонов - C++
Ребят помогите. надо для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода массива а также...

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

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

Использование функций-шаблонов - C++
На уроке преподаватель не объясняет как решать. Задачи берутся из &quot;Основы программирования на языке С++&quot; часть 2 Огнева М.В., Кудрина Е.В....

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2009, 18:15
Привет! Вот еще темы с ответами:

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

Использование шаблонов функций - C++
После си только начал изучение с++, так вот программа просто выводит минимум из двух чисел, компилятор выдает ошибку call of overloaded...

Использование функций шаблонов - C++
Помогите с задачей: Подсчитать среднее арифметическое ненулевых элементов, расположенных под побочной диагональю. Вот моя наработка,...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.