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

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

Войти
Регистрация
Восстановить пароль
 
ЕвгенийГусев
1 / 1 / 0
Регистрация: 17.01.2013
Сообщений: 47
#1

Ребят что означаеют две звездочки в самом начале когда объявляем массив - C++

28.01.2014, 14:54. Просмотров 876. Ответов 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
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
#include <iostream>
 
 
int main()
{
 
    float *arr1, **arr2; // массив точек
    float **kb1, **kb2; // массивы в которых храняться k и b и знак неравенства
    float area1, area2; // переменные для хранения значения площади
    int n1, n2; // количество вершин в фигурах
 
    std::cout<<"Vvedite kolichestvo vershin pervogo mnogoug\n";
    std::cin>>n1;   // считываем кол вершин первой фигуры
    kb1 = new float*[n1];   //выделяем память для массив kb
    for (int i = 0; i < n1; ++i)
        kb1[i] = new float[3];
 
    arr1 = new float[n1+ 2];   //выделяем память для массива 5точек
    for (int i = 0; i < n1 + 2; ++i)
        arr1[i] = new float*[2];
 
    std::cout<<"Vvedite koordinaty pervoi figuri\n";
    for ( int i = 0; i < n1; ++i)
        std::cin>>arr1[i][0]>>arr1[i][1];
 
    arr1[n1][0] = arr1[0][0];
    arr1[n1][1] = arr1[0][1];
    arr1[n1 + 1][0] = arr1[1][0];
    arr1[n1 + 1][1] = arr1[1][1];
 
    for (int i = 0; i < n1; ++i){
        kb1[i][0] = (arr1[i][1] - arr1[i+1][1]) / (arr1[i][0] - arr1[i+1][0]);
        kb1[i][1] = (arr1[i+1][1] * arr1[i][0] - arr1[i][1] * arr1[i+1][0]) / (arr1[i][0] - arr1[i+1][0]);
    }
 
    for (int i = 0; i < n1; ++i)
 
        if (arr1[i + 2][1] > arr1[i + 2][0] * kb1[i][0] + kb1[i][1])
            kb1[i][2] = -1;
        else
            kb1[i][2] = 1;
 
    float s1 = 0;
    for (int i = 0; i < n1; ++i)
        s1 = (arr1[i][0] + arr1[0][0]) * (arr1[i][1] - arr1[0][1]) + s1;
    if (s1 < 0) s1 = s1 * (-1);
    s1 = s1 * 1/2;
 
 
 
    std::cout<<"Vvedite kolichestvo vershin vtorogo mnogoug\n";
    std::cin>>n2;
 
    kb2 = new float*[n2];
    for (int i = 0; i < n2; ++i)
        kb2[i] = new float[3];
 
    arr2 = new float*[n2 + 2];
    for (int i = 0; i < n2 + 2; ++i)
        arr2[i] = new float[2];
 
 
    std::cout<<"Vvedite koordinaty vtoroy figuri\n";
    for (int i = 0; i < n2; ++i)
        std::cin>>arr2[i][0]>>arr2[i][1];
    arr2[n2][0] = arr2[0][0];
    arr2[n2][1] = arr2[0][1];
    arr2[n2 + 1][0] = arr2[1][0];
    arr2[n2 + 1][1] = arr2[1][1];
 
    for (int i = 0; i < n2; ++i){
        kb2[i][0] = (arr2[i][1] - arr2[i+1][1]) / (arr2[i][0] - arr2[i+1][0]);
        kb2[i][1] = (arr2[i+1][1] * arr2[i][0] - arr2[i][1] * arr2[i+1][0]) / (arr2[i][0] - arr2[i+1][0]);
    }
 
    for (int i = 0; i < n2; ++i)
 
        if (arr2[i + 2][1] > arr2[i + 2][0] * kb2[i][0] + kb2[i][1])
            kb2[i][2] = -1;
        else
            kb2[i][2] = 1;
 
    float s2 = 0;
    for (int i = 0; i < n2; ++i)
        s2 = (arr2[i][0] + arr2[0][0]) * (arr2[i][1] - arr2[0][1]) + s2;
    if (s2 < 0) s2 = s2 * (-1);
    s2 = s2 * 1/2;
 
 
    int check1 = 0;
    for (int j = 0; j < n1; ++j)
        for (size_t i = 0; i < n2; ++i)
            if (kb1[j][2] == -1)
                if (arr2[i][1] > (arr2[i][0] * kb1[j][0] + kb1[j][1])) check1 = check1 + 0;
                    else check1++;
            else
                if (arr2[i][1] < (arr2[i][0] * kb1[j][0] + kb1[j][1])) check1 = check1 + 0;
                    else check1++;
 
    if (check1 == 0 ) check1 = 1;
    else check1 = 0;
 
 
 
    int check2 = 0;
    for (int j = 0; j < n2; ++j)
        for (int i = 0; i < n1; ++i)
            if (kb2[j][2] == -1)
                if (arr1[i][1] > (arr1[i][0] * kb2[j][0] + kb2[j][1])) check2 = check2 + 0;
                    else check2++;
            else
                if (arr1[i][1] < (arr1[i][0] * kb2[j][0] + kb2[j][1])) check2 = check2 + 0;
                    else check2++;
 
    if (check2 == 0 ) check2 = 1;
    else check2 = 0;
 
    std::cout<<"Plosadi pervoi figuri = "<<s1<<"\n";
    std::cout<<"Plosadi vtoroi figuri = "<<s2<<"\n";
 
    if (check1 + check2 == 1)
        std::cout<<("Odna figura vnutri drugoi\n");
    else
        std::cout<<("Odna figura ne vnutri drugoi\n");
 
 
    int otv;
    std::cin>>otv;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2014, 14:54     Ребят что означаеют две звездочки в самом начале когда объявляем массив
Посмотрите здесь:
C++ Что значит две звездочки у char?
C++ Можно ли писать int не в самом начале?
C++ Ребят когда я смогу
C++ Почему, когда записываю в бинарный файл, в самом файле оказываются непонятные символы?
C++ Для чего нужно дописывать "**", две звездочки?
C++ Определить, лежат ли две заданные точки на окружности с центром в начале координат
C++ Что такое string на самом деле?
что же на самом деле делает strcpy? C++
Что такое ссылка на самом деле? C++
Оператор \ выражение - что же это такое на самом деле? C++
C++ Передача массива в функцию - что на самом деле предается?
Ребят! Что полезней изучить VBA или С++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Игорь с++
434 / 457 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
28.01.2014, 15:07     Ребят что означаеют две звездочки в самом начале когда объявляем массив #2
в любой нормальной книге Вы найдёте ответ
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
28.01.2014, 15:11     Ребят что означаеют две звездочки в самом начале когда объявляем массив #3
Перед тем как браться за массивы необходимо изучить указатели.
Читай книги - на форуме тебе расскажут в лучшем случае поверхностно!
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.01.2014, 16:48     Ребят что означаеют две звездочки в самом начале когда объявляем массив #4
Цитата Сообщение от ЕвгенийГусев Посмотреть сообщение
что означаеют две звездочки в самом начале когда объявляем массив
Указатель на указатель.
Yandex
Объявления
28.01.2014, 16:48     Ребят что означаеют две звездочки в самом начале когда объявляем массив
Ответ Создать тему
Опции темы

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