Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизPascal Найти похожие ветки
← →
Defunct © (2004-11-17 04:22) [40]> Тоже самое, но чтобы
> if First > max then First := 0
или еще тупее:
First := First * byte( First <= Max );
← →
Defunct © (2004-11-17 04:33) [41]> First:=First+1;
> if First>max then
> First:=1
First := 1+(First * byte(First < Max));
← →
Pat © (2004-11-18 12:06) [42]Defunct © (17.11.04 0:30) [36]
Это уже олимпиадная задачка. Больше интересуют задачи на формат данных, хранение в памяти (например то, что в памяти вначале записываются младшие байты для word, integer) и т.д.
>jack128 © (17.11.04 1:53) [37]
Напиши как.. :)
← →
_Lucky_ (2004-11-18 23:35) [43]Pas
First := (byte (Not ((First + 1) > Max))) * (First + 1) + (byte (((First + 1) > Max)));
- хрен разберешь, предидущие решения куда приятнее :-)
C++nFirst = (((nFirst+1) > nMax) ? (1) : (nFirst+1));
← →
Defunct © (2004-11-19 01:16) [44]_Lucky_
А [40] видели.
First := First * byte( First <= Max );
Pas все таки лучше.
← →
Кто---то © (2004-11-19 03:09) [45]
> Тестировщица © (12.11.04 21:26) [13]
> Verg © (12.11.04 21:07) [6] Может, лучше так:
> First:=(First mod max)+1;
Между прочим на ассемблере это шесть команд, а вариант со сложением и условием только пять. Кроме того понятность и читаемость кода с условием и прибавлением единицы куда выше, чем этой формулы.
← →
SergP © (2004-11-19 05:13) [46]
> [32] Pat © (16.11.04 23:20)
> >SergP © (16.11.04 22:21) [31]
> Строки одинаковой длины? :-)
Допустим имеются две нуль-терминальных строки (pchar) одинаковой длины.
Дополнительных переменных не использовать совсем.
← →
Pat © (2004-11-20 00:32) [47]Извините за долгое отсутствие - жена, работа.. :)
>SergP © (19.11.04 5:13) [46]var p1,p2:PChar;
begin
p1:="В лесу родилась елочка";
p2:="В лесу она росла";
showmessage(p1+#13+p2);
p1:=pointer(integer(p1) xor integer(p2));
p2:=pointer(integer(p1) xor integer(p2));
p1:=pointer(integer(p1) xor integer(p2));
showmessage(p1+#13+p2);
end;
← →
default © (2004-11-20 00:50) [48]First := Byte(First + 1 <= max) * First + 1
← →
Defunct © (2004-11-20 01:28) [49]default © (20.11.04 00:50) [48]
[41]
на одно сложение меньше
← →
default © (2004-11-20 01:36) [50]Defunct © (20.11.04 01:28) [49]
да, не принципиально
но вряд-ли в книге такой изврат имелся ввиду скорее просто if
← →
Кто---то © (2004-11-21 02:39) [51]А такое задание.
Можно ли одной формулой сделать следующее :if v > 77 then v := 77
else if v < -77 then v := -77;
← →
GuAV © (2004-11-21 02:44) [52]Кто---то © (21.11.04 2:39) [51]
:)
v := v * ord(abs(V) < 77) + ord(abs(v) >= 77) * 77 * sign(v);
← →
Кто---то © (2004-11-21 03:17) [53]
> GuAV © (21.11.04 02:44) [52]
> Кто---то © (21.11.04 2:39) [51]
> :)
> v := v * ord(abs(V) < 77) + ord(abs(v) >= 77) * 77 * sign(v);
С логическими операторами и дурак сделает.
← →
KilkennyCat © (2004-11-21 03:26) [54]
> Кто---то © (21.11.04 03:17) [53]
> С логическими операторами и дурак сделает.
то есть, если я не смогу, я - вообще даун?
нафига спрашивали, если такой умный.
← →
Кто---то © (2004-11-21 04:19) [55]Ну, чего никто не может ?
А используя всякие and or xor и т п ?
← →
jack128 © (2004-11-21 12:36) [56]Pat © (18.11.04 12:06) [42]
вот примерно так:
Pat © (20.11.04 0:32) [47]
;-)
Страницы: 1 2 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.037 c