Error: Incompatible types: got "Boolean" expected "Int 64"
, Вот такую ошибку выдает
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.37] |
|
|
Error: Incompatible types: got "Boolean" expected "Int 64"
, Вот такую ошибку выдает
|
Сообщ.
#1
,
|
|
|
|
Кусок функции, которая реализуется в программе
![]() ![]() Function Pristavka(q : Real) : string; Var znak : string; begin .... if (q>=1000000000) and (1000000000000) then if (q>=1000000000) and (q<10000000000) then begin Str((q/1000000000):3:2,znak); Pristavka:=znak+TextRus(' ѓЋ¬'); end else if (q>=10000000000) and (q<100000000000) then begin Str((q/1000000000):4:2,znak); Pristavka:=znak+TextRus(' ѓЋ¬'); end else if (q>=100000000000) and (q<1000000000000) then begin Str((q/1000000000):5:2,znak); Pristavka:=znak+TextRus(' ѓЋ¬'); end; end; Место ошибки указано на месте открывающейся скобки после if. В чем причина? Откуда взялся тип Boolean? Компилятор FPC 2.2.2 |
|
Сообщ.
#2
,
|
|
|
|
Цитата Polinom2686 @ Что должно означать это условие? В первой скобке - Boolean (после сравнения - либо True, либо False), а во второй что? Компилятор прав, If не может работать с другими типами, только Boolean... ![]() ![]() if (q>=1000000000) and (1000000000000) |
|
Сообщ.
#3
,
|
|
|
|
volvo877, ты меня спас. Это моя невнимательность.
Вот так должно выглядеть. ![]() ![]() if (q>=1000000000) and (q<1000000000000) СПАСИБО !!! Разумеется теперь все работает. |
|
Сообщ.
#4
,
|
|
|
|
Polinom2686, а ты в ноликах не путаешься? Я бы, пока не поздно, написал бы по-другому:
![]() ![]() Function Pristavka(q : Real) : string; const Mlrd = 1000000000; Var znak : string; begin if (q>=Mlrd) and (q < 1000 * Mlrd) then begin Str((q/Mlrd):3:2,znak); if (q>=Mlrd) and (q<10*Mlrd) then begin Pristavka:=znak+TextRus(' кракозябры№1 '); end else if (q>=10*Mlrd) and (q<100*Mlrd) then begin Pristavka:=znak+TextRus(' кракозябры№2 '); end else if (q>=100*Mlrd) and (q<1000*Mlrd) then begin Pristavka:=znak+TextRus(' кракозябры№3 '); end; end; end; |
|
Сообщ.
#5
,
|
|
|
|
Нет, не путаюсь. Спасибо за идею, но мне кажется в данном случае она мне не пригодится. Работоспособность и правильность работы функции уже проверена, а изменять эту функцию мне не нужно.
Плюс, выполнять лишние действия (умножение внутри скобок) мне ни к чему, эта функция будет довольно часто использоваться. А так, еще раз спасибо. |
|
Сообщ.
#6
,
|
|
|
|
Цитата Polinom2686 @ Умножение выполнится еще на этапе компиляции, ты за кого вообще FPC держишь? Mlrd описан как Const все-таки... Плюс, выполнять лишние действия (умножение внутри скобок) мне ни к чему, эта функция будет довольно часто использоваться. |
|
Сообщ.
#7
,
|
|
|
|
Цитата volvo877 @ Цитата (Polinom2686 @ Сегодня, 12:35) Плюс, выполнять лишние действия (умножение внутри скобок) мне ни к чему, эта функция будет довольно часто использоваться. Умножение выполнится еще на этапе компиляции, ты за кого вообще FPC держишь? Mlrd описан как Const все-таки... Я же любитель, а не профессионал. Много чего могу и не знать. Добавлено Не серчай на меня. (Don't worry, be happy ) |
|
Сообщ.
#8
,
|
|
|
|
Цитата Polinom2686 @ Нет, не путаюсь. Спасибо за идею, но мне кажется в данном случае она мне не пригодится. Работоспособность и правильность работы функции уже проверена, а изменять эту функцию мне не нужно. а представь, что кто-то потом будет читать твой код(только не говори, что этот код никто кроме тебя читать не будет, даже если и так, то нужно приучивать красиво писать код)? у меня, например, в глазах рябит от этих нулей. Вообще все это дело называется "магические числа" |
|
Сообщ.
#9
,
|
|
|
|
Цитата miksayer @ Цитата (Polinom2686 @ Вчера, 12:35) Нет, не путаюсь. Спасибо за идею, но мне кажется в данном случае она мне не пригодится. Работоспособность и правильность работы функции уже проверена, а изменять эту функцию мне не нужно. а представь, что кто-то потом будет читать твой код(только не говори, что этот код никто кроме тебя читать не будет, даже если и так, то нужно приучивать красиво писать код)? у меня, например, в глазах рябит от этих нулей. Вообще все это дело называется "магические числа" Вот как раз этот код никто кроме меня читать не будет . Тот для кого программа предназначена, программированием не интересуется. Эта программа из разряда "сделать и забыть". Цитата miksayer @ у меня, например, в глазах рябит от этих нулей. Это уже ваши проблемы, я нули нормально воспринимаю, не даром на инженера связиста учусь . Добавлено Причем здесь вообще магические числа? |
|
Сообщ.
#10
,
|
|
|
|
Цитата Polinom2686 @ Но остальные же не учатся на связистов, что, они должны ломать глаза? Ладно было бы как в некоторых языках: 10_000_000_000 - никаких проблем с восприятием. Но просто нули, подряд... не даром на инженера связиста учусь Цитата Polinom2686 @ Эта программа из разряда "сделать и забыть" В следующий раз предупреждай, что тебе "просто заставить программу работать, а там - хоть трава не расти", я к таким программам (и "программистам" тоже) отношусь по-другому, для них есть специальный раздел. |
|
Сообщ.
#11
,
|
|
|
|
Я очень рад, что я не "программист".
|
|
Сообщ.
#12
,
|
|
|
|
Цитата volvo877 @ Но остальные же не учатся на связистов, что, они должны ломать глаза? Ладно было бы как в некоторых языках: 10_000_000_000 - никаких проблем с восприятием. Но просто нули, подряд... Я просто привык нули считать, поэтому у меня вопросов такие записи не вызывают. Цитата volvo877 @ Цитата (Polinom2686 @ Сегодня, 09:33) Эта программа из разряда "сделать и забыть" В следующий раз предупреждай, что тебе "просто заставить программу работать, а там - хоть трава не расти", я к таким программам (и "программистам" тоже) отношусь по-другому, для них есть специальный раздел. Что за раздел? А "сделать и забыть" из-за того что программа нужна в одном экземпляре (в крайнем случае не более 3-х). |