Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для by_frost
5 / 5 / 2
Регистрация: 25.04.2011
Сообщений: 12

В чем ошибка

26.04.2011, 22:38. Показов 704. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа компилируется, но не находит четырехугольники и выдает ошибку. Где я ошибся найти не могу.
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <string.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 *Form1;
int prov(AnsiString n);
bool onOneLine (int a[], int b[], int c[]);
bool treug (int a[], int b[], int c[], int d[]);
bool prov2 (int a[], int b[], int c[], int d[]);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{Memo1->Clear();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int kol;
kol=CSpinEdit1->Value;
StringGrid1->ColCount = kol+1;
StringGrid1->RowCount = 3;
StringGrid1->Cells[0][1] = "X";
StringGrid1->Cells[0][2] = "Y";
for(int i=1; i < StringGrid1->ColCount; i++)
  StringGrid1->Cells[i][0] = i;
for(int i = 1; i < StringGrid1->ColCount; i++)
  for(int j = 1; j < StringGrid1->RowCount; j++)
    StringGrid1->Cells[i][j] = " ";
StringGrid1->Enabled=true;
Button2->Enabled=true;
Button3->Enabled=true;
Button1->Enabled=false;
CSpinEdit1->Enabled=false;        
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
for(int i = 0; i < StringGrid1->ColCount; i++)
  for(int j = 0; j < StringGrid1->RowCount; j++)
    StringGrid1->Cells[i][j] = " ";
CSpinEdit1->Value=4;
StringGrid1->Enabled=false;
Button2->Enabled=false;
Button3->Enabled=false;
Button1->Enabled=true;
CSpinEdit1->Enabled=true;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{int i, j, nh=0, kol, count=0;
 int a[2], b[2], c[2], d[2];
 kol=CSpinEdit1->Value;
for(int i=1;i<kol+1;i++)
  {for(int j=1;j<3;j++)
    {AnsiString gn=StringGrid1->Cells[j][i];
     int b=prov(gn);
     if(b==1)
     nh=1;
    }
  }
if (nh==1)
  {for(int i = 0; i < StringGrid1->ColCount; i++)
     for(int j = 0; j < StringGrid1->RowCount; j++)
       StringGrid1->Cells[i][j] = " ";
     CSpinEdit1->Value=4;
     ShowMessage("введены недопустимые символы");
  }
else
  {int** mas=new int*[kol];
     for(i=0; i<=kol; i++)
       mas[i]=new int[2];
   for (i=0; i<kol+1; i++)
     for (j=0; j<3; j++)
       mas[i][j]=StrToInt(StringGrid1->Cells[j+1][i+1]);
   for (int a1=0; a1<kol-3; a1++)
     for (int b1=a1+1; b1<kol-2; b1++)
       for (int c1=b1+1; c1<kol-1; c1++)
         for (int d1=c1+1; d1<kol; d1++)
           {for (int r=0; r<2; r++)
             {a[r]=mas[a1][r];
              b[r]=mas[b1][r];
              c[r]=mas[c1][r];
              d[r]=mas[d1][r];
             }
            if (prov2(a,b,c,d))
              if (onOneLine(a,b,c) && onOneLine(a,c,d) && onOneLine(a,b,d)
                  && onOneLine(b,c,d))
                if (treug(a,b,c,d))
                  Memo1->Text=Memo1->Text+a1+"-"+b1+"-"+c1+"-"+d1+" ,";
           }
   AnsiString sim=Memo1->Text;
   if (sim.Length()==0)
     Memo1->Text="нет выпуклых четырехугольников";
   delete []mas;
  }
}
//---------------------------------------------------------------------------
//проверка на допустимые символы
int prov(AnsiString n)
{int k=0;
 for(int i=1;i<n.Length()+1;i++)
  {if (n[i]=='+'|| n[i]=='1'||n[i]=='2'||n[i]=='3'||n[i]=='4'||n[i]=='5'
   ||n[i]=='6'||n[i]=='7'||n[i]=='9'||n[i]=='8'||n[i]=='0'||n[i]=='-')
    {
    }
   else
    k=1;
  }
return k;
}
//---------------------------------------------------------------------------
//проверка на принадлежность одной линии
bool onOneLine (int a[], int b[], int c[])
{double d1,d2,d3;
 d1=pow(pow((a[1]-b[1]),2)+pow((a[2]-b[2]),2),1.0/2.0);
 d2=pow(pow((a[1]-c[1]),2)+pow((a[2]-c[2]),2),1.0/2.0);
 d3=pow(pow((c[1]-b[1]),2)+pow((c[2]-b[2]),2),1.0/2.0);
 if (d1+d2==d3 || d1+d3==d2 || d2+d3==d1) return(false);
 else return(true);
}
//---------------------------------------------------------------------------
//проверка на выпуклость
bool treug (int a[], int b[], int c[], int d[])
{double s1,s2,s3,s4,s;
 s1=0.5*abs((b[1]-a[1])*(c[2]-a[2])-(c[1]-a[1])*(b[2]-a[2]));  //abc
 s2=0.5*abs((b[1]-a[1])*(d[2]-a[2])-(d[1]-a[1])*(b[2]-a[2]));  //abd
 s3=0.5*abs((c[1]-a[1])*(d[2]-a[2])-(d[1]-a[1])*(c[2]-a[2]));  //acd
 s4=0.5*abs((c[1]-b[1])*(d[2]-b[2])-(d[1]-b[1])*(c[2]-b[2]));  //bcd
 if (s2+s4==s1+s3) return (true);
 else return (false);
}
//---------------------------------------------------------------------------
//проверка на одинаковые точки
bool prov2 (int a[], int b[], int c[], int d[])
{for (int i =0; i<2; i++)
   if (a[i]==b[i] || b[i]==c[i] || c[i]==d[i] || a[i]==d[i])
     return false;
   else
     return true;
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
 Close();
}
//---------------------------------------------------------------------------
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.04.2011, 22:38
Ответы с готовыми решениями:

Ошибка method range of object global failed в чем ошибка
Sub ПроверкаВвода() Dim A As Range Dim B As Range Dim i As...

Ошибка "Stack around the variable 'text' was corrupted"
Выскакивает ошибка Stack around the voriable 'text' was corrupted. Подскажите пожалуйста в чём ошибка. #include &lt;iostream&gt; ...

Ошибка при передаче параметров в функцию. Объясните, ребят, пожалуйста, в чем ошибка
Есть функция, которую необходимо отобразить в виде линий уровня. Далее с помощью простого симплекс-метода нужно найти минимальное значение...

5
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
27.04.2011, 01:19
Жуткий код :-)

Добавлено через 24 минуты
Допустим,

вот это

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//проверка на допустимые символы
int prov(AnsiString n)
{int k=0;
 for(int i=1;i<n.Length()+1;i++)
  {if (n[i]=='+'|| n[i]=='1'||n[i]=='2'||n[i]=='3'||n[i]=='4'||n[i]=='5'
   ||n[i]=='6'||n[i]=='7'||n[i]=='9'||n[i]=='8'||n[i]=='0'||n[i]=='-')
    {
    }
   else
    k=1;
  }
return k;
}
Меняется на
C++
1
bool __fastcall TryStrToInt(const System::UnicodeString S, /* out */ int &Value);
Вот это
C++
1
2
3
for(int i = 1; i < StringGrid1->ColCount; i++)
  for(int j = 1; j < StringGrid1->RowCount; j++)
    StringGrid1->Cells[i][j] = " ";
просто выкидывается.

В общем, всё надо переписывать.

Добавлено через 6 минут
Вот здесь явно не правильно!
У тебя на первом же проходе выход из функции в любом случае
C++
1
2
3
4
5
for (int i =0; i<2; i++)
   if (a[i]==b[i] || b[i]==c[i] || c[i]==d[i] || a[i]==d[i])
     return false;
   else
     return true;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//проверка на одинаковые точки
bool prov2 (int a[], int b[], int c[], int d[])
{
   bool bRes = true;
   for (int i =0; i<2; i++)
   {
      if (a[i]==b[i] || b[i]==c[i] || c[i]==d[i] || a[i]==d[i])
      {
            bRes = false;
            break;
      }
   }   
   return bRes; 
}
1
 Аватар для by_frost
5 / 5 / 2
Регистрация: 25.04.2011
Сообщений: 12
27.04.2011, 01:19  [ТС]
За поправки спасибо. А насчет кода - ты прав это ужас))) Это четвертая семестровая и я уже плохо чего соображаю
0
 Аватар для by_frost
5 / 5 / 2
Регистрация: 25.04.2011
Сообщений: 12
27.04.2011, 11:15  [ТС]
C++
1
bool __fastcall TryStrToInt(const System::UnicodeString S, /* out */ int &Value);
если можно - объясните что она значит. А то до самаго не доходит.
0
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
27.04.2011, 12:40
Цитата Сообщение от by_frost Посмотреть сообщение
если можно - объясните что она значит.
Преобразует строку в целое число. При неудаче возвращает false.
1
 Аватар для by_frost
5 / 5 / 2
Регистрация: 25.04.2011
Сообщений: 12
27.04.2011, 18:43  [ТС]
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.04.2011, 18:43
Помогаю со студенческими работами здесь

Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

В чем ошибка?По одной строке нормально в базу заходят,а две сразу вылетает ошибка?
INSERT INTO `jos_menu` (`id`, `menutype`, `name`, `alias`, `link`, `type`, `published`, `parent`, `componentid`, `sublevel`, `ordering`,...

Реализовать через тип данных структура. При сборке и отладки возникает ошибка. В чем ошибка?
С++ в таблице из 5 строк хранятся данные о товарах: наименование, цена, количество. Определить и вывести наименование товара, цена которого...

Ошибка 2 error LNK2019, не пойму в чем ошибка
Выдает такую ошибку: Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ &quot;int __cdecl game(void)&quot; (?game@@YAHXZ) в...

В чем ошибка? При запуске программы открывается консоль и сразу ошибка о завершении программы
К тому же выдает warning: deprecated conversion from string constant to 'char*' . #include &lt;iostream&gt; #include &lt;string.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru