![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Упростить выражение
Гость © (2010-03-03 10:26:00)Добрый день. подскажите, пожалуйста, как можно сократить вот такую запись, при этом неувеличив размер программы:
type
TBlok = array[1..32] of byte;
var
B: TBlok;
begin
{Что-то делаем..}
if (B[16] or B[17] or B[18] or B[19] or B[20] or
B[21] or B[22] or B[23] or B[24] or B[25] or
B[26] or B[27] or B[28] or B[29] or B[30] or
B[31] or B[32] or B[15]) = 0 then {Что-то делаем..}
end
Плохиш (2010-03-03 13:05:00) [21]
> Agrh (03.03.10 13:00) [10]
>
> Palladin, почему неверное?
Потому что проверяешь только последний элемент массива.
Agrh (2010-03-03 13:00:00) [22]Palladin, почему неверное?
Ega23 (2010-03-03 12:40:00) [23]
> 8 нужно )
Н-да, чё-то я на двоечку ошибся....
> Agrh (03.03.10 12:21) [7]
Как минимум Break не поставил.
Palladin (2010-03-03 12:28:00) [24]неверные решения просьба не выкладывать
Agrh (2010-03-03 12:21:00) [25]
type
TBlok = array[1..32] of byte;
var Block: TBlok;
i: byte;
B: Boolean;
begin
Block[31] := 2;
for i := 15 to 32 do
B := Block[i] = 0;
if B then ShowMessage('Agrh Blok is zero');
end
А, кстати, можно наверное через указатели как-то сделать?
Palladin (2010-03-03 11:48:00) [26]8 нужно )
type
TBlok = array[1..32] of byte;
TAlexandr = array [0..3] of int64;
var
B: TBlok;
A: TAlexandr absolute B;
if (a[0] or a[1] or a[2] or a[3]) = 0 then
ShowMessage('Alexandr Blok is zero');
12 (2010-03-03 11:11:00) [27]
> of byte
аа..сори
Ega23 (2010-03-03 11:01:00) [28]
> Longword() = 0
Не хватит два нужно
12 (2010-03-03 10:44:00) [29]Longword() = 0
И. Павел (2010-03-03 10:43:00) [30]При этом делать второй сравниваемый массив глобальным - тогда сам нулями заполнится.
И. Павел (2010-03-03 10:42:00) [31]CompareMem?