ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

05.04.2010, 21:29
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
Сообщение от GhostOnline
А как можно организовать бесконечное?
PHP код:
While (1=1) do // или while true do
begin
.... // прервать команда Break;
end;
Последний раз редактировалось JnK; 05.04.2010 в 22:19..
Причина: Спасибо wolmer, поправил
|
|
|

05.04.2010, 21:32
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
Сообщение от JnK
Код:
While (1<>1) do
begin
....
end;
Точнее так:
Код:
While (1=1) do
begin
....
end;
|
|
|

05.04.2010, 21:35
|
|
Новичок
Регистрация: 05.04.2010
Сообщений: 7
Провел на форуме: 17240
Репутация:
0
|
|
спасибо большое (:
|
|
|

05.04.2010, 21:37
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме: 604635
Репутация:
15
|
|
Я вообще не понимаю смысла кода от JnK, выше код который даёт бесконечное число комбинации(точнее максимальное от Cardinal / 26) 
|
|
|

05.04.2010, 22:02
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме: 828081
Репутация:
84
|
|
Сообщение от JnK
PHP код:
While (1<>1) do // или while true do
begin
.... // прервать команда Break;
end;
Дурак?
while true do
begin
end;
где здесь организация?
|
|
|

05.04.2010, 22:16
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
интересно, что будет занимать больше времени?
либо
??
Мне кажется что 1е, т.к. в цикле мы дополнительно сравниваем действительно ли 1=1...или я ошибаюсь?
UPD: при 4х различных тестах пришел к выводу, что как бы ни было парадоксально, на 1 выполнение цикла
уходит меньше времени чем на
Последний раз редактировалось AlexTheC0d3r; 05.04.2010 в 22:41..
|
|
|

05.04.2010, 22:17
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
Jingo Bo, У тебя пропускается вывод на aa .. az сразу с b
P.s. Прогонял в цикле 1000.
Насчет кода я показывал метод реализации, и ниже дописал, что лучше сделать 1 циклом, насчет "бесконечного цикла" то ниже приведен код. Т.к. пароли имеют чувствительность к регистру и используются цифры, сделал на основе константы.
PHP код:
const
base='0987654321ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba';
var
s,str:string;
i:integer;
begin
i:=1;
while true do
begin
s:=str+base[i];
memo1.Lines.add(s);
if i>=length(base) then
begin
i:=1;
str:=s;
end;
inc(i);
end;
|
|
|

05.04.2010, 22:29
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
Сообщение от AlexTheC0d3r
интересно, что будет занимать больше времени?
либо
??
Мне кажется что 1е, т.к. в цикле мы дополнительно сравниваем действительно ли 1=1...или я ошибаюсь?
В обоих циклах идет сравние:
1. 1=1
2. true=true; (т.е. -1=-1)
2 GhostOnline, обзываться не стоит, перепутал условие.
P.s. Сорри за оффтоп.
|
|
|

05.04.2010, 22:47
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме: 604635
Репутация:
15
|
|
Jingo Bo, У тебя пропускается вывод на aa .. az сразу с b
Это да, но это не сложно исправить, писалось та на скорую руку.
В обоих циклах идет сравние:
1. 1=1
2. true=true; (т.е. -1=-1)
Взорвал мозг))) Во-первых while 1=1 do уже удивляет и доставляет своей нелепостью(пс, первый раз такое вижу)  Во-вторых при 1=1 будет 2 проверки, а с true - одна(не веришь - гоу в отладчик)  В третьих действительно часто при проверки пишут такие обсурдные вещи как 1<>1 и т.д. для того что delphi со включённым(по дефолту) ключём {$OPTIMIZATION ON} не отбрасывала код в условии if false then (подобное используют что имитировать вложенную процедуру через метки(для оптимизации и уменьшения кода). Но всё равно это только от не знания деректив.
|
|
|

05.04.2010, 22:51
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
Сообщение от JnK
В обоих циклах идет сравние:
1. 1=1
2. true=true; (т.е. -1=-1)
2 GhostOnline, обзываться не стоит, перепутал условие.
P.s. Сорри за оффтоп.
Проверьте код:
PHP код:
program TestCycleDuration;
{$APPTYPE CONSOLE}
uses
SysUtils, DateUtils;
var
i: integer;
timeStart, timeEnd: TDateTime;
begin
Writeln('................................');
Writeln('................................');
Writeln('................................');
Writeln('................................');
Writeln('First test, cycle "while true do"');
Writeln('Testing...');
i := 0;
timeStart := now;
while true do
begin
i := i + 1;
if i = 2000000000 then
Break;
end;
timeEnd := Now;
Writeln('Test duration: ' + inttostr(MilliSecondsBetween(timeEnd, timeStart)) +
'ms');
Writeln('................................');
Writeln('................................');
Writeln('................................');
Writeln('................................');
Writeln('Second test, cycle "while 1=1 do"');
Writeln('Testing...');
i := 0;
timeStart := now;
while 1 = 1 do
begin
i := i + 1;
if i = 2000000000 then
Break;
end;
timeEnd := Now;
Writeln('Test duration: ' + inttostr(MilliSecondsBetween(timeEnd, timeStart)) +
'ms');
Readln;
end.
UPD2: подправил
Рекомендуется тестировать при как можно меньшем кол-ве запущенных приложений!
тест общий занимает около 2х секунд... интересны результаты... Абсолютно не претендую на адекватность теста, тем более скорее всего он не особо адекватен..
UPD3: Прогнав пару-тройку раз, заметил что результаты примерно одинаковые, на моей машине значения либо 671ms ибо 687ms
Последний раз редактировалось AlexTheC0d3r; 05.04.2010 в 23:04..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|