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

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

Восстановить пароль Регистрация
 
ЕвгенийГусев
1 / 1 / 0
Регистрация: 17.01.2013
Сообщений: 47
28.01.2014, 14:54     Ребят что означаеют две звездочки в самом начале когда объявляем массив #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
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++ Можно ли писать int не в самом начале?
Что такое ссылка на самом деле? C++
что же на самом деле делает strcpy? C++
C++ Ребят когда я смогу
C++ Определить, лежат ли две заданные точки на окружности с центром в начале координат
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
28.01.2014, 15:07     Ребят что означаеют две звездочки в самом начале когда объявляем массив #2
в любой нормальной книге Вы найдёте ответ
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
28.01.2014, 15:11     Ребят что означаеют две звездочки в самом начале когда объявляем массив #3
Перед тем как браться за массивы необходимо изучить указатели.
Читай книги - на форуме тебе расскажут в лучшем случае поверхностно!
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.01.2014, 16:48     Ребят что означаеют две звездочки в самом начале когда объявляем массив #4
Цитата Сообщение от ЕвгенийГусев Посмотреть сообщение
что означаеют две звездочки в самом начале когда объявляем массив
Указатель на указатель.
Yandex
Объявления
28.01.2014, 16:48     Ребят что означаеют две звездочки в самом начале когда объявляем массив
Ответ Создать тему
Опции темы

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