Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Упростить выражение


Страницы:   1 2

Гость ©   (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?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо