![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Подскажите кто-нибудь, как исправить такую ошибку в коде?
[DCC Error] Unit1.pas(464): E2029 ')' expected but 'THEN' found |
|
#2
|
||||
|
||||
|
А кусочек кода выложить прямо тут никак? Качать архивы и, возможно, переводить проект на другую версию делфы как-то не очень хочется.
|
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
koroleva25 (20.11.2012)
| ||
|
#3
|
||||
|
||||
|
Скобку забыл.
|
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
koroleva25 (20.11.2012)
| ||
|
#4
|
|||
|
|||
|
Да, конечно.
Код:
procedure TForm1.Button4Click(Sender: TObject); //Проводим экспертизу
var
s:string;
begin
s:= Edit13.text + Edit14.text + Edit15.text + Edit16.text + Edit17.text + Edit18.text;
if s = '111111' then Edit21.text:= 'объект не опознан!';
if s = '000000' then Edit21.text:= 'объект не опознан!';
if s = Edit22.Text then Edit21.text:= Edit10.Text else
if s = Edit23.Text then Edit21.text:= Edit11.Text else
if s = Edit24.Text then Edit21.text:= Edit12.Text else
begin
if max1 = v1[1] then Edit21.text:= Edit10.Text else
begin
//Тут надо брать числа по модулю !!!!!!!!!!!!!!!!!!!!!!!!!!
if (abs(v1[1]) + abs(v1[2]) > (abs(v1[1]) + abs(v1[3]) then
Edit21.text:= Edit12.Text else
if ((v1[1] + v1[2])) < ((v1[1] + v1[3])) then
Edit21.text:= Edit11.Text
end;
if max1 = v1[2] then Edit21.text:= Edit11.Text else
if max1 = v1[3] then Edit21.text:= Edit12.Text else
end; |
|
#5
|
||||
|
||||
|
Код:
if (abs(v1[1]) + abs(v1[2]) > (abs(v1[1]) + abs(v1[3])!!!ТУТ!!! then |
| Этот пользователь сказал Спасибо ~TB~ за это полезное сообщение: | ||
koroleva25 (20.11.2012)
| ||
|
#6
|
|||
|
|||
|
!!!ТУТ!!!
![]() |
|
#7
|
|||
|
|||
|
Указанно место, где забыта скобка. Я бы вообще в целях безопасности переписал бы так:
Код:
if ( (abs(v1[1]) + abs(v1[2])) > (abs(v1[1]) + abs(v1[3])) ) then |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
koroleva25 (20.11.2012)
| ||
|
#8
|
|||
|
|||
|
Цитата:
Не верите, можете проверить. |
|
#9
|
||||
|
||||
|
Цитата:
И так работает: Код:
if (abs(v1[1]) + abs(v1[2])) > (abs(v1[1]) + abs(v1[3])) then Код:
if ( (abs(v1[1]) + abs(v1[2])) > (abs(v1[1]) + abs(v1[3])) ) then |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
koroleva25 (20.11.2012)
| ||
|
#10
|
|||
|
|||
|
Извините, пожалуйста, такую глупую ошибку не заметила - третью скобку в конце не поставила. Теперь можно сказать, что вопрос закрыт.
Всем огромное спасибо!!!!!!!!!!!!!!!!!! |
|
#11
|
|||
|
|||
|
if (abs(v1[1]) + abs(v1[2]) > (abs(v1[1]) + abs(v1[3]) then
Выражение сравнения первично по отношению к сложению (или вычитанию)! Будь повнимательней: if (x1+x2)>(x3+x4) then а у тебя получилось: if (x1+x2>(x3+x4) then !!! А вообще тебе-же компилятор написал: Then, значит что-то с then не в порядке.. Это так, на будущее.. |
| Этот пользователь сказал Спасибо Gakuro за это полезное сообщение: | ||
koroleva25 (22.11.2012)
| ||
|
#12
|
|||
|
|||
|
Цитата:
|
|
#13
|
||||
|
||||
|
Цитата:
Просто операнд сравнения возвращает булевское значение (true/false), а сложение/вычитание - числовое. А в сообщении об ошибке сразу же и пишет: Цитата:
![]() |
| Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
koroleva25 (23.11.2012)
| ||