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

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

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

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

28.01.2014, 14:54. Просмотров 888. Ответов 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 main(int argc, char** argv)

Можно ли писать int не в самом начале? - C++
а можно ли писать &quot;int &quot; не в начале программы, а где захочешь? посмотрите где у меня может быть ошибка?? #include &lt;stdio.h&gt; ...

Ребят когда я смогу - C++
Ребят , изучаю C++ совсем недавно месяц где-то . Прошел классы . указатели , и &quot;понисходящему&quot; Вопрос в том я пока все что делаю делаю в...

Почему, когда записываю в бинарный файл, в самом файле оказываются непонятные символы? - C++
почему, когда записываю в бинарный файл, в самом файле непонятные символы? Или так должно быть? ofstream file; file.open(&quot;binary.bin&quot;,...

При открытии файла каретка расположена в самом начале 1 строки, а не в начале 3 - C (СИ)
Доброго времени суток! Интересует вопрос, почему при открытии файла каретка расположена в самом начале 1 строки, а не в начале 3, как...

Верно ли, что в самом многочисленном классе учится на 10 учеников больше, чем в самом малочисленном - C#
Известна численность каждого из 40 классов школы. Верно ли, что в самом многочисленном классе учится на 10 учеников больше, чем в самом...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Игорь с++
434 / 457 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
28.01.2014, 15:07 #2
в любой нормальной книге Вы найдёте ответ
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
28.01.2014, 15:11 #3
Перед тем как браться за массивы необходимо изучить указатели.
Читай книги - на форуме тебе расскажут в лучшем случае поверхностно!
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.01.2014, 16:48 #4
Цитата Сообщение от ЕвгенийГусев Посмотреть сообщение
что означаеют две звездочки в самом начале когда объявляем массив
Указатель на указатель.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2014, 16:48
Привет! Вот еще темы с ответами:

Курсовая. Застрял в самом начале - Delphi БД
Нужно создать форму с таблицей состоящую из 2-х столбцов. Первый столбец должен быть уже заполнен названиями показателей а второй пустой в...

Зависание в самом начале загрузки - Компьютерное железо
Доброго времени! Ситуация такова, включаю комп, загружается до момента когда должна идти загрузка с выставленного носителя. Т.е. неважно...

Зависает в самом начале установки - Windows 8, 8.1
Всем доброй ночи, нужен ваш хелп, гуру! Купил второй системник, по работе необходимо. Собрал я его (имею опыт), вот начинка: ...

Зависает на лого установки в самом начале - Windows 10
День добрый. Столкнулся с такой проблемой что при попытке установки с флешки Win8/8.1/10, ноут зависает на лого загрузки инсталятора. Как...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.01.2014, 16:48
Ответ Создать тему
Опции темы

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