Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.11.2012, 23:09
koroleva25 koroleva25 вне форума
Прохожий
 
Регистрация: 17.03.2012
Сообщения: 32
Репутация: 10
По умолчанию Ошибка в компиляции

Подскажите кто-нибудь, как исправить такую ошибку в коде?
[DCC Error] Unit1.pas(464): E2029 ')' expected but 'THEN' found
Вложения
Тип файла: rar Проект.rar (309.5 Кбайт, 1 просмотров)
Ответить с цитированием
  #2  
Старый 19.11.2012, 23:13
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

А кусочек кода выложить прямо тут никак? Качать архивы и, возможно, переводить проект на другую версию делфы как-то не очень хочется.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
koroleva25 (20.11.2012)
  #3  
Старый 19.11.2012, 23:15
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Скобку забыл.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
koroleva25 (20.11.2012)
  #4  
Старый 19.11.2012, 23:36
koroleva25 koroleva25 вне форума
Прохожий
 
Регистрация: 17.03.2012
Сообщения: 32
Репутация: 10
По умолчанию

Да, конечно.
Код:
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  
Старый 19.11.2012, 23:56
Аватар для ~TB~
~TB~ ~TB~ вне форума
Начинающий
 
Регистрация: 17.02.2006
Адрес: Казахстан
Сообщения: 172
Версия Delphi: XE
Репутация: 1500
По умолчанию

Код:
if (abs(v1[1]) + abs(v1[2]) > (abs(v1[1]) + abs(v1[3])!!!ТУТ!!! then
__________________
00110001 00101100 00110110 00110001 00111000 00110000 00110011 00110011 00111001 00111000 00111000 00110111 00110100 00111001 00111000 00111001 00110100 00111000 00110100 00111000 00110010 00110000 00110100 00110101 00111000 00110110 00111000 00110011 00110100 00110011 00110110 00110101 00110110
Ответить с цитированием
Этот пользователь сказал Спасибо ~TB~ за это полезное сообщение:
koroleva25 (20.11.2012)
  #6  
Старый 20.11.2012, 00:03
koroleva25 koroleva25 вне форума
Прохожий
 
Регистрация: 17.03.2012
Сообщения: 32
Репутация: 10
По умолчанию

!!!ТУТ!!!
Ответить с цитированием
  #7  
Старый 20.11.2012, 02:42
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Указанно место, где забыта скобка. Я бы вообще в целях безопасности переписал бы так:
Код:
if ( (abs(v1[1]) + abs(v1[2])) > (abs(v1[1]) + abs(v1[3])) ) then
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
koroleva25 (20.11.2012)
  #8  
Старый 20.11.2012, 14:14
koroleva25 koroleva25 вне форума
Прохожий
 
Регистрация: 17.03.2012
Сообщения: 32
Репутация: 10
По умолчанию

Цитата:
Я бы вообще в целях безопасности переписал бы так:
Дело в том, что я и так тоже пробовала - не помогает! Та же ошибка!
Не верите, можете проверить.
Ответить с цитированием
  #9  
Старый 20.11.2012, 14:19
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от koroleva25
Дело в том, что я и так тоже пробовала - не помогает! Та же ошибка!
Не верите, можете проверить.
Проверил:

И так работает:
Код:
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  
Старый 20.11.2012, 14:41
koroleva25 koroleva25 вне форума
Прохожий
 
Регистрация: 17.03.2012
Сообщения: 32
Репутация: 10
По умолчанию

Извините, пожалуйста, такую глупую ошибку не заметила - третью скобку в конце не поставила. Теперь можно сказать, что вопрос закрыт.
Всем огромное спасибо!!!!!!!!!!!!!!!!!!
Ответить с цитированием
  #11  
Старый 21.11.2012, 07:53
Gakuro Gakuro вне форума
Прохожий
 
Регистрация: 18.01.2012
Адрес: о. Сахалин
Сообщения: 34
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

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  
Старый 22.11.2012, 17:18
koroleva25 koroleva25 вне форума
Прохожий
 
Регистрация: 17.03.2012
Сообщения: 32
Репутация: 10
По умолчанию

Цитата:
Выражение сравнения первично по отношению к сложению
Спасибо! У меня как раз маленький багаж знаний по приоритетам. Буду подкапливать!
Ответить с цитированием
  #13  
Старый 22.11.2012, 18:06
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Цитата:
Сообщение от Gakuro
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 не в порядке.. Это так, на будущее..
Да нет же Просто операнд сравнения возвращает булевское значение (true/false), а сложение/вычитание - числовое. А в сообщении об ошибке сразу же и пишет:
Цитата:
')' expected
- "скобка" ожидается... Причем сразу и видно, что закрывающая
Ответить с цитированием
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение:
koroleva25 (23.11.2012)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025