powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Требуется субботний ликбез
4 сообщений из 29, страница 2 из 2
Требуется субботний ликбез
    #39522526
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonЯ говорю про общий случай.Ну вот, общий случай. Массив, в котором данные только вначале (в конце только незаполненные элементы). В этом случае есть 2 варианта:
1) идти сначала и проверять, если не заполненный - то break;
2) идти с конца, проверяя на заполненность.
Как лучше и быстрее? Очевидно. И элементы не зависят друг от друга.

Опять по фифо. Есть очередь по такой схеме. Поток спит и ждет добавления элементов, при добавлении просыпается и обрабатывает все добавленные (их может добавиться много во время обработки первого).
И как это сделать без цикла? Впрочем мне все равно, я делаю это циклом while count <> 0.
...
Рейтинг: 0 / 0
Требуется субботний ликбез
    #39522596
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обсуждение сферического коня в вакууме. Для "как удобнее/правильнее" - всегда нужно исходить из задачи.
...
Рейтинг: 0 / 0
Требуется субботний ликбез
    #39522622
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикЛюбезный Count в обоих этих выражениях вычисляется однократно.

=_= Ещё один. От куда вы все такие ??? От куда такая уверенность что однократно???

Вы вводе людей в заблуждения. Так как цикл развёртывается в

Код: pascal
1.
2.
if i = X.Count - 1 then
 break;



Следовательно, не один раз.

Открой уже View|Debug Windows|CPU и посмотри сам, сколько раз вычисляется.
...
Рейтинг: 0 / 0
Требуется субботний ликбез
    #39522828
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик=_= Ещё один. От куда вы все такие ??? От куда такая уверенность что однократно???
Для тех, кто на бронепоезде
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
{$APPTYPE CONSOLE}
program Test;

uses
  System.Classes;

type
  TMyList = class(TStringList)
  protected
    function GetCount: Integer; override;
  end;
  
{ TMyList }

function TMyList.GetCount: Integer;
begin
  Result := inherited GetCount;
  Writeln('Call GetCount. Result: ', Result);
end;

var
  LList: TStrings;
  Li: Integer;
begin
  LList := TMyList.Create;
  try
    for Li := 0 to 4 do
      LList.Add('AAA');
    Writeln('Forward loop');
    for Li := 0 to LList.Count - 1 do begin
      Writeln(Li);
      LList.Delete(0);
    end;
    Writeln('End loop');
    Writeln('After loop count: ', LList.Count);
    Writeln;

    for Li := 0 to 4 do
      LList.Add('AAA');
    Writeln('Backward loop');
    for Li := LList.Count - 1 downto 0 do begin
      Writeln(Li);
      LList.Delete(Li);
    end;
    Writeln('End loop');
    Writeln('After loop count: ', LList.Count);
  finally
    LList.Free;
  end;
end.

выхлопForward loop
Call GetCount. Result: 5
0
1
2
3
4
End loop
Call GetCount. Result: 0
After loop count: 0

Backward loop
Call GetCount. Result: 5
4
3
2
1
0
End loop
Call GetCount. Result: 0
After loop count: 0
...
Рейтинг: 0 / 0
4 сообщений из 29, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Требуется субботний ликбез
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]