Форум программистов, компьютерный форум, киберфорум
Hrethgir
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Переход на новую организацию циклов прошёл успешно.

Запись от Hrethgir размещена 19.11.2023 в 14:46
Показов 1584 Комментарии 2

Осталось продублировать фрагменты для генерации последней строки кода.

Вот это работает.
[PASCAL] count1:=yRazmerY;////кроме последней строки
if Not (count1 = 0) Then begin //2
marking1:
Inc(y);
p := @p1;
x := xRazmerX;
BremainderstepsFrequentCicles:=remainderstepsFrequentCicles;//3
BstepsSetapInLine:=stepsSetapInLine;
Balternation:=alternation;
BstepsFrequentCicles:=stepsBig;
BstepFrequent:=stepFrequent;///3
count2:=remainderCicles;//4
TracerY := y - steps1;
formula1:= stepFrequent * y + znak *trunc(y / (SummSteps));
if TracerY < 0 then
begin
TracerX := RazmerX - formula1;
if TracerX < 0 then TracerX := 0;
TracerY := 0;
end else TracerX := 0;
if Not (count2 = 0) Then begin
marking2:

count3:=BremainderstepsFrequentCicles;//5
if Not (count3 = 0) Then begin
marking3:

count4:=BstepsSetapInLine;//6
if Not (count4 = 0) Then begin
marking4:
Bstep:=BstepFrequent;//7///7
count5:=Balternation;//8
if Not (count5 = 0) Then begin
marking5:
count6:=BstepsFrequentCicles;//9
if Not (count6 = 0) Then
begin
marking6:

count7:=Bstep;//10
//count7
if Not (count7 = 0) Then begin
marking7:
{%REGION 'Engine'}
asm
JMP p
end;
p1:
StringGrid1.Cells[px^, py^] := IntToStr(pTracerX^) + ',' + IntToStr(pTracerY^) + ',' + '1';
//запись правого столбца
p := @p3;
goto p4;
p2:
y1:=y+1;
//автоматическое забивание координат в местах скоса трассы
p := @p3;
goto p5;
p3:
y1:=y;
p5:
x1:=x-xInc;
StringGrid1.Cells[px^, py^] := IntToStr(px1^) + ',' + IntToStr(py1^) + ',' + '0';
//автоматическое забивание координат трассы на прямых участках
p4:
x:=x+xInc;
{%ENDREGION}
dec(count7);
if Not (count7 = 0) then goto marking7;
end;///10
p := @p2; /////count7

dec(count6);
if Not (count6 = 0) then goto marking6;
end;//11
Bstep:=stepRare;//12
BstepsFrequentCicles:=1;
dec(count5);
if Not (count5 = 0) then goto marking5;
end;//13
BstepFrequent:=stepFrequent;//14
BstepsFrequentCicles:=stepsBig;
dec(count4);
if Not (count4 = 0) then goto marking4;
end;//15
BremainderstepsFrequentCicles:=1;//16
BstepsSetapInLine:=1;
Balternation:=1;
BstepsFrequentCicles:=remainderstepsFrequent;///16
dec(count3);
if Not (count3 = 0) then goto marking3;
end;//17
if BremainderstepsFrequentCicles = 0 then begin
BstepsSetapInLine:=1;
Balternation:=1;
end;
BstepFrequent:=remainder;//18
BremainderstepsFrequentCicles:=1;
BstepsFrequentCicles:=1;

dec(count2);
if Not (count2 = 0) then goto marking2;
end;//19


dec(count1);
if Not (count1 = 0) then goto marking1;
end; //20 [/PASCAL]
В комментариях номера блоков, схема конечно не полна, но какое-как напоминает нодовую систему.

И что я могу сказать- это работает хорошо, и увеличение скорости выполнения есть - наблюдается если угол равен нулю, остальные варианты угла остаются по скорости выполнения прежними, но это потому что видимо происходит подгрузка кода из-за меток и переходов, а сам код очень даже не объёмный. Так как это часть кода, то можно было бы и дать пользователю возможность использования кэша процессора. Имей например я такую возможность - увеличил бы бысьтродействие программы ещё, помимо того что не стал использовать алгоритм Брезенхема.
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot from 2023-11-09 22-24-57.png
Просмотров: 223
Размер:	82.5 Кб
ID:	8370  
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 2
Комментарии
  1. Старый комментарий
    Аватар для AlexProgramm
    Как все серьезно
    Запись от AlexProgramm размещена 19.11.2023 в 16:10 AlexProgramm вне форума
  2. Старый комментарий
    [QUOTE=AlexProgramm;bt33709]Как все серьезно :scratch:[/QUOTE]
    просто забыл после исправления недочёта изменить название темы. На самом деле я эту аномалию серьёзно не воспринял, просто ошибка была вообще не оттуда, поэтому ошарашила. Ошибка по аномально быстрому исполнению прилетела короче вообще не из области алгоритма даже...долго объяснять.
    В общем сегодня после работы вечер у меня отдыха, завтра снова приступлю. Надо публикацию доделать. Хотя она почти сделана, но всё равно.
    Запись от Hrethgir размещена 20.11.2023 в 20:33 Hrethgir вне форума
 
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru