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

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

Войти
Регистрация
Восстановить пароль
 
Adrian
0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 23
#1

немогу никак понять в чем ошибка=(помогите плиз! - C++

09.01.2009, 18:48. Просмотров 731. Ответов 9
Метки нет (Все метки)

есть вот такой вот код :

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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
#include <iostream.h>
#include <math.h>
void main(void)
{
    int a[100][100],b[200][100],i,m,k,y=0,u=0,p,j,t=0,s,h=0,nb=-1,z[100],n=0,kol=0,pr=0;
    double g,d,r,l,e=0;
    cout<<"Vvedite chislo strok"<<endl;
    cin>>m;
    cout<<"Vvedite dannie v massiv:"<<endl;
    for (i=0; i<m; i++)
    {
        cout<<"Vvedite element a x"<<"["<<i<<"]"<<endl;
        cin>>a[i][0];
        cout<<"Vvedite element a y"<<"["<<i<<"]"<<endl;
        cin>>a[i][1];
    }
            cout<<endl;
        i=0;
        for  (i=0;i<m;i++)
        {
            cout<<a[i][0]<<" "<<a[i][1];
            cout<<endl;
        }
        
for(i=0;i<m-3;i++)
for(k=i+1;k<m-2;k++)
for(j=k+1;j<m-1;j++)
        for(s=j+1;s<m;s++)
b[y][0]=i,b[y][1]=k,b[y][2]=j,b[y][3]=s,y++;
 
        
 
for  (i=0;i<y;i++)
{
 cout<<b[i][0]<<" "<<b[i][1]<<" "<<b[i][2]<<" "<<b[i][3];
cout<<endl;
 
}
//pervaia toshka
i=0;    
e=0;
kol=0;
t=0;
pr=0;   
cout<<endl;
 
//toshka 1 ugol 1____________________________________________________________
d=pow((a[b[i][0]][0]-a[b[i][1]][0]),2)+pow((a[b[i][0]][1]-a[b[i][1]][1]),2);
l=pow((a[b[i][0]][0]-a[b[i][2]][0]),2)+pow((a[b[i][0]][1]-a[b[i][2]][1]),2);
r=pow((a[b[i][1]][0]-a[b[i][2]][0]),2)+pow((a[b[i][1]][1]-a[b[i][2]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==-1) e++;
if (g<0)
{t++;} 
cout<<t<<" t-1 u-1 "<<e<<endl;
cout<<endl;
//toshka 1 ugol 2 __________________________________________________________
d=pow((a[b[i][0]][0]-a[b[i][1]][0]),2)+pow((a[b[i][0]][1]-a[b[i][1]][1]),2);
l=pow((a[b[i][0]][0]-a[b[i][3]][0]),2)+pow((a[b[i][0]][1]-a[b[i][3]][1]),2);
r=pow((a[b[i][1]][0]-a[b[i][3]][0]),2)+pow((a[b[i][1]][1]-a[b[i][3]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==1) e++;
if (g<0) 
{t++;} 
cout<<t<<" t-1 u-2 "<<endl;
cout<<endl;
//toshka 1 ugol 3 __________________________________________________________
d=pow((a[b[i][0]][0]-a[b[i][2]][0]),2)+pow((a[b[i][0]][1]-a[b[i][2]][1]),2);
l=pow((a[b[i][0]][0]-a[b[i][3]][0]),2)+pow((a[b[i][0]][1]-a[b[i][3]][1]),2);
r=pow((a[b[i][2]][0]-a[b[i][3]][0]),2)+pow((a[b[i][2]][1]-a[b[i][3]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==1) e++;
if (g<0)
{ t++;} 
cout<<t<<" t-1 u-3 "<<endl;
cout<<endl;
 
if (t==3) 
e++;
else n=n+t,kol++;
cout<<z[0]<<"-indeks  kopilka- "<<n<<endl;
 
//vtoraia toska
    
    
cout<<endl;
 
//toshka 2 ugol 1____________________________________________________________
d=pow((a[b[i][1]][0]-a[b[i][2]][0]),2)+pow((a[b[i][1]][1]-a[b[i][2]][1]),2);
l=pow((a[b[i][1]][0]-a[b[i][3]][0]),2)+pow((a[b[i][1]][1]-a[b[i][3]][1]),2);
r=pow((a[b[i][3]][0]-a[b[i][2]][0]),2)+pow((a[b[i][3]][1]-a[b[i][2]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==1) e++;
if (g<0)
{t++;} 
 
cout<<t<<" t-2 u-1 "<<endl;
cout<<endl;
//toshka 2 ugol 2 __________________________________________________________
d=pow((a[b[i][0]][0]-a[b[i][1]][0]),2)+pow((a[b[i][0]][1]-a[b[i][1]][1]),2);
l=pow((a[b[i][1]][0]-a[b[i][3]][0]),2)+pow((a[b[i][1]][1]-a[b[i][3]][1]),2);
r=pow((a[b[i][0]][0]-a[b[i][3]][0]),2)+pow((a[b[i][0]][1]-a[b[i][3]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==1) e++;
if (g<0) 
{t++;} 
cout<<t<<" t-2 u-2 "<<endl;
cout<<endl;
//toshka 2 ugol 3 __________________________________________________________
d=pow((a[b[i][1]][0]-a[b[i][2]][0]),2)+pow((a[b[i][1]][1]-a[b[i][2]][1]),2);
l=pow((a[b[i][1]][0]-a[b[i][0]][0]),2)+pow((a[b[i][1]][1]-a[b[i][0]][1]),2);
r=pow((a[b[i][2]][0]-a[b[i][0]][0]),2)+pow((a[b[i][2]][1]-a[b[i][0]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==1) e++;
if (g<0)
{ t++;} 
cout<<t<<" t-2 u-2 "<<endl;
cout<<endl;
 
if (t==3) 
e++;
else n=n+t,kol++;
cout<<"-indeks  kopilka-  "<<n<<endl;
 
//tretia toska
    
    
cout<<endl;
 
//toshka 3 ugol 1____________________________________________________________
d=pow((a[b[i][1]][0]-a[b[i][2]][0]),2)+pow((a[b[i][1]][1]-a[b[i][2]][1]),2);
l=pow((a[b[i][2]][0]-a[b[i][0]][0]),2)+pow((a[b[i][2]][1]-a[b[i][0]][1]),2);
r=pow((a[b[i][1]][0]-a[b[i][0]][0]),2)+pow((a[b[i][1]][1]-a[b[i][0]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==1) e++;
if (g<0)
{t++;} 
cout<<t<<" t-3 u-1 "<<endl;
cout<<endl;
//toshka 3 ugol 2 __________________________________________________________
d=pow((a[b[i][2]][0]-a[b[i][0]][0]),2)+pow((a[b[i][2]][1]-a[b[i][0]][1]),2);
l=pow((a[b[i][2]][0]-a[b[i][3]][0]),2)+pow((a[b[i][2]][1]-a[b[i][3]][1]),2);
r=pow((a[b[i][0]][0]-a[b[i][3]][0]),2)+pow((a[b[i][0]][1]-a[b[i][3]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g<0) 
if (g*g==1) e++;
{t++;} 
cout<<t<<" t-3 u-2 "<<endl;
cout<<endl;
//toshka 3 ugol 3 __________________________________________________________
d=pow((a[b[i][1]][0]-a[b[i][2]][0]),2)+pow((a[b[i][1]][1]-a[b[i][2]][1]),2);
l=pow((a[b[i][2]][0]-a[b[i][3]][0]),2)+pow((a[b[i][2]][1]-a[b[i][3]][1]),2);
r=pow((a[b[i][1]][0]-a[b[i][3]][0]),2)+pow((a[b[i][1]][1]-a[b[i][3]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==1) e++;
if (g<0)
{ t++;} 
cout<<t<<" t-3 u-2 "<<endl;
cout<<endl;
 
if (t==3) 
e++;
else n=n+t,kol++;
cout<<"-indeks  kopilka-  "<<n<<endl;
 
//4etvertaia toska
i=0;    
    
cout<<endl;
 
//toshka 4 ugol 1____________________________________________________________
d=pow((a[b[i][2]][0]-a[b[i][3]][0]),2)+pow((a[b[i][2]][1]-a[b[i][3]][1]),2);
l=pow((a[b[i][3]][0]-a[b[i][0]][0]),2)+pow((a[b[i][3]][1]-a[b[i][0]][1]),2);
r=pow((a[b[i][2]][0]-a[b[i][0]][0]),2)+pow((a[b[i][2]][1]-a[b[i][0]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==1) e++;
if (g<0)
{t++;} 
cout<<t<<" t-4 u-1 "<<endl;
cout<<endl;
//toshka 4 ugol 2 __________________________________________________________
d=pow((a[b[i][2]][0]-a[b[i][3]][0]),2)+pow((a[b[i][2]][1]-a[b[i][3]][1]),2);
l=pow((a[b[i][1]][0]-a[b[i][3]][0]),2)+pow((a[b[i][1]][1]-a[b[i][3]][1]),2);
r=pow((a[b[i][1]][0]-a[b[i][2]][0]),2)+pow((a[b[i][1]][1]-a[b[i][2]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==1) e++;
if (g<0) 
{t++;} 
cout<<t<<" t-4 u-2 "<<endl;
cout<<endl;
//toshka 4 ugol 3 __________________________________________________________
d=pow((a[b[i][1]][0]-a[b[i][3]][0]),2)+pow((a[b[i][1]][1]-a[b[i][3]][1]),2);
l=pow((a[b[i][0]][0]-a[b[i][3]][0]),2)+pow((a[b[i][0]][1]-a[b[i][3]][1]),2);
r=pow((a[b[i][1]][0]-a[b[i][0]][0]),2)+pow((a[b[i][1]][1]-a[b[i][0]][1]),2);
g=(d+l-r)/(2*sqrt(d)*sqrt(l));
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;
cout<<endl;
if (g*g==1) e++;
if (g<0)
{ t++;} 
 
cout<<t<<" t-4 u-2 "<<endl;
cout<<endl;
 
if (t==3) e++ ;
else n=n+t,kol++;
cout<<e<<" e "<<endl;
 
//uslovia vipuklosti
 
if (e==0)
{
 if (n==2||kol==1) e=0; 
 else z[++nb]=i;
}
 
cout<<z[0]<<"-indeks kone4niy  kopilka-  "<<n<<endl;
}

значения задаются следующие :

5
0
0
-1
-1
1
1
0
-4
2
4

при них значение "g" в некоторых случаях равно -1 (в частности для 1 точки 1 угла. в том что оно равно -1 можно убедиться так как значение выводиться на экран). но далее следует следующее :

C++
1
2
3
4
5
6
cout<<g<<" "<<d<<" "<<l<<" "<<r<<endl;    //вывод на экран g и прочих переменных
cout<<endl;
if (g*g==-1) e++;
if (g<0)
{t++;} 
cout<<t<<" t-1 u-1 "<<e<<endl;
то есть на воводе должны получить "1 t-1 u-1 " 1", но выводит "1 t-1 u-1 " 0 "
почему не работает не знаю=(пожалуйста скажите что не так=(

з.ы пробовал писать програмку чисто на проверку данных условий :

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
#include <math.h>
void main(void)
{
    int e=0,t=0;
    double g=-1;
 
if (g*g==1) e=1;
if (g<0)
{t++;} 
cout<<t<<" t-1 u-1 "<<e<<endl;
}
все работает нормально и на выводе положенное "1 t-1 u-1 " 1"

Заранее благодарен всем откликнувшимся=)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2009, 18:48     немогу никак понять в чем ошибка=(помогите плиз!
Посмотрите здесь:

Немогу понять в чем ошибка. - C++
// lab5OOP.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot; #include &lt;math.h&gt; #include...

Немогу понять в чем ошибка ( - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; int main() { float x, f1, f2,...

Немогу понять в чем ошибка. - C++
Часть кода(проект в WinAPI): #include &quot;stdafx.h&quot; #include &quot;List.h&quot; #include &quot;Theatr.h&quot; #include &quot;Actor.h&quot; void inputTheatrs(...

Никак не могу понять в чем ошибка - C++
все прокомментировал. При компиляции выдает, что в 9 строчке невозможно преобразовать &quot;const wchar_t &quot; в &quot;LPCSTR&quot;. HELP:cry: подскажите где...

Помогите написать формулу ,никак немогу написать (2k)! в ней - C++
Помогите написать формулу ,никак немогу написать (2k)! в ней

Немогу понять почему в программе выкидует ошибка - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; # include &lt;clocale&gt; #include &lt;conio.h&gt; using namespace std; void main...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.01.2009, 22:02     немогу никак понять в чем ошибка=(помогите плиз! #2
Код
if (g*g==-1)
Adrian
0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 23
09.01.2009, 23:41  [ТС]     немогу никак понять в чем ошибка=(помогите плиз! #3
нет=(ошибка не в этом =(там только в первом случае -1 стояло а дальше нормально...а е копиться до самого конца...в конце оно тоже ноль выдает...причем там на е два условия и если забивать примеры на проверку второго условия то е тоже не копиться...

Добавлено через 1 час 23 минуты 41 секунду
сейчас еще установил, что если в условии поменять 1 на 0 то есть получить следующее:
if (g*g==0)
и дать значения при которых g=0, то все работает...я в недоумении...
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.01.2009, 23:55     немогу никак понять в чем ошибка=(помогите плиз! #4
Код
if ((int) (g*g) == 1)
Adrian
0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 23
10.01.2009, 09:44  [ТС]     немогу никак понять в чем ошибка=(помогите плиз! #5
спасибо большое=)работает=)
Adrian
0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 23
11.01.2009, 22:49  [ТС]     немогу никак понять в чем ошибка=(помогите плиз! #6
блин оказывается у мну счетчик теперь постоянно растет=(а условие так и не выполняется=( int (g*g) при g=1 или -1 равен нулю=( что делать хз=( g*g при g=-1 как и пологается равно 1 но условие if ((g*g) == 1) не работает =( условие if ((int) (g*g) == 1) тоже не работает=( не знаю что делать =(помогите!!!
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.01.2009, 00:24     немогу никак понять в чем ошибка=(помогите плиз! #7
ясно короче проверяй главную формулу где у тебя корни потому что (int) (g*g) при ненулевом g может быть только в том случае, когда у тебя нет целой части (дробь на дробь типа 0.1 * 0.1 получится 0.01, т.е. целой части как не было так и нет)
ещё g*g == -1, никогда не будет истинно, приведи число квадрат которого равен отрицательному числу ?
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.01.2009, 02:51     немогу никак понять в чем ошибка=(помогите плиз! #8
C++
1
2
3
4
5
6
7
8
9
10
11
 
#include <stdio.h>
 
main()
{
    double g = -1.3;
    
    if ((int) (g*g) == 1)
        printf("%lf\n", g*g);
    return 0;
}
вывод

Код
[guest@localhost tmp]$ ./test
1.690000
[guest@localhost tmp]$
если поставить -1.5, будет 2.25, то есть целая часть не равна еденице и вывода не будет
Adrian
0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 23
13.01.2009, 07:30  [ТС]     немогу никак понять в чем ошибка=(помогите плиз! #9
не стал больше париться))у мну там считается косинус угла =) у него область значений [-1,1] чтобы вошла единица написал g*g>0.99999 и все работает=)ошибка не столь большая будет=)в принципе даже не заметная)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2009, 09:27     немогу никак понять в чем ошибка=(помогите плиз!
Еще ссылки по теме:

Подскажите, в чем здесь ошибка? И как ее исправить...плиз! - C++
//Ошибка здесь!!!! void power (ulong m, ulong &amp;s, ulong &amp;t) { for (t=0, s=m; s%2==0; t++) s/=2; } ...

понять в чем ошибка - C++
при компиляции vs 2015 выдает ошибку 1&gt;c:\users\admin\desktop\projectc++\laba11\laba11\source.cpp(14): error C3867:...

не могу понять в чем ошибка - C++
помогите найти ошибку

Не могу понять в чем ошибка - C++
написать программу в CodeBlocks, никак не могу понять в чем ошибка. Найти периметр эллипса по двум радиусам. #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.01.2009, 09:27     немогу никак понять в чем ошибка=(помогите плиз! #10
а g*g <= 1 не пробовал ? может в этом то и прикол что у тебя оно никогда ровно еденице не равнялось, тебе надо диапазон если поставить, чтобы срабатывало только когда g*g в допустимых пределах значений косинуса, тогда

Код
    if (g*g >= -1 && g*g <= 1)
        ;
но так как у тебя квадрат одного числа а -1 даст только квадрат мнимой еденицы i, то можно просто

Код
    if (g*g <= 1)
        ;
без всяких дробей делать (хотя g будет дробное конечно, из-за того что в операции где оно вычисляется всё приводится к дробным неявно потому что там sqrt используется)
Yandex
Объявления
13.01.2009, 09:27     немогу никак понять в чем ошибка=(помогите плиз!
Ответ Создать тему
Опции темы

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