Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
Заблокирован

Не заканчивается цикл

20.08.2023, 21:42. Показов 5442. Ответов 50
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь перестроить циклы - не выходит с цикла.
Если раскомментирую второй из вне цикл, а цикл с параметром закоментирую - всё работает.
Вообще не понимаею в чём дело - всё должно работать.
Кликните здесь для просмотра всего текста
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
    repeat
//      repeat
        for finishYcount:=0 to finishY do
        begin
 
 
 
        asm
                 JMP     logic
        end;
        logic1:
          logic := @logic2;
        goto logic4;
        logic2:
          Edge := @Edge3;
        logic := @logic3;
        logic3:
        TracerY := y - steps1;
        if TracerY < 0 then
        begin
          formula1:= stepFrequent * y + znak *trunc(y / (SummSteps));
          TracerX := RazmerX - formula1;
          if TracerX < 0 then TracerX := 0;
          TracerY := 0;
        end else TracerX := 0;
        logic4:
          steps := stepsBig;
        upperCycle:
        repeat
          if steps = 0 then
          begin
            Biger:=stepRareC;
            BFcalc := x - stepRareC+1;
            steps := SummSteps;
          end
          else
          begin
            Biger:=stepFrequentC;
            BFcalc := x - stepFrequentC+1;
          end;
          if BFcalcP^ < finishP^ then Biger := Biger+(BFcalc-finish);
          for BFCount :=1 to Biger do begin
          //lowerCycle:
          //repeat
            //////////////////////////////////////////////////////////////////////////////////////////////////
            {%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}
 
          end;
 
          asm
                   JMP     Edge
          end;
          Edge1:
            //подсчёт шагов в первой строке - других расчётов для первой строки не требуется и знание этого значения нужно для последней строки
            Inc(steps1);
          goto Edge3;
          Edge2:
            //трассировку начальной ячейки каждого шага последней обрабатываемой строки кроме правого столбца
          if RazmerX > RazmerY then begin
                  Dec(steps1);
          TracerX := x - ( znak*sign(trunc((1+sign(y-trunc(y/(SummSteps))*(SummSteps)-steps)/2))) +  formula1)+1;
                                       if TracerX<1 then begin
                                       TracerY := y - steps1;
                                       TracerX := 0;
                                       if TracerY < 0 then TracerY := 0;
                                       end;
         end else begin
           Dec(steps1);
            TracerY := y - steps1;
            TracerX := 0;
          end;
          p := @p1;
          goto Edge4;
          Edge3:
            p := @p2;
          Edge4:
            Dec(steps);
 
        until x < 0;////////////////////////////////////////////////////////
        Inc(y);
        p := @p1;
        x := xRazmerX;
//      until y > finishY;
        end;
      Edge := @Edge2;
      finishY:=1;
    until y > yRazmerY;

вообще не пониаю.
Мне кажется я выбрал простейший путь переделки циклов, и даже тут какие-то непонятные совсем трудности. И приложу рабочий проект, если надо.
Вложения
Тип файла: zip generator_0-135_deg6.zip (108.9 Кб, 5 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.08.2023, 21:42
Ответы с готовыми решениями:

Почему не заканчивается цикл?
ребята что-то сделал не так помогите понять что именно procedure TForm1.Button1Click(Sender: TObject); var k,n,j,i:byte; ...

Цикл не заканчивается
Здраствуйте! Сейчас создаю цикл который считает по 144 байта + 10 байт заголовок для всего файла: header_size = 10 data_size = 144 ...

Цикл не заканчивается
Есть цикл: string l = File.ReadAllLines(path); for(int i = stat; i &lt; l.Length; i++) { try { //тут код ...

50
Заблокирован
27.08.2023, 08:59  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от northener Посмотреть сообщение
Если вы знаете что такое транзистор и как он работает, я возможно попробую описать работу этого флага.
Дайте ссылку, я читать умею, если что.
0
3131 / 1727 / 273
Регистрация: 19.02.2010
Сообщений: 4,519
27.08.2023, 09:13
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Если очень хочется, ZF можно изменить и вручную, для этого в ассемблере предусмотрены соответствующие команды.
Для х86/х64-архитектуры - неверно-неточно.
Там нет команд CLx/STx именно для ZF.
А POPF/SAHF влияют и на остальные флаги тоже. Т.е. лишние зависимости / лишний геморрой при кодинге. ТС не потянет

Вот в PDP-11 (и СССРовских процессорах этой архитектуры, навроде 1801ххх, 1806ххх) действительно были-есть команды CLZ/SEZ, действующие именно и только на ZF. Но там нет Лазаруса.
0
Заблокирован
27.08.2023, 17:16  [ТС]
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
ТС не потянет
может ссылку на описание сможете скинуть как осуществляется установка флагов аппаратно, чтобы ТС' не тянуть? Судя по вашему офтопу - "ТС" у вас не топик стартер, а не техническое средство.

Добавлено через 22 минуты
Впрочем из следующего
https://ru.wikipedia.org/wiki/... 9C80%D0%90
и
https://neerc.ifmo.ru/wiki/ind... E%D0%B4%20.
сделал вывод сам
Осуществление установки флага Zero
.
0
Модератор
10476 / 5771 / 3412
Регистрация: 17.08.2012
Сообщений: 17,529
27.08.2023, 23:22
Hretgir...

Насчёт StringGrid - OK, если так. А то визуальные компоненты из-за своей "визуальности" жутко тормозные, и их разумно применять только для отображения, а не для хранения.

Программные флаги располагаются в памяти, создаются и изменяются программистом.

Аппаратные флаги входят в состав процессора, и устанавливаются (в большинстве своём) аппаратно. Аппаратное изменение флагов происходит во время выполнения команды, и, естественно, никакие дополнительные такты на это изменение не тратятся. В интеловских процессорах флаги объединены в отдельный регистр FLAGS / EFLAGS / RFLAGS, который ещё называется словом состояния процессора (ССП). Аппаратные флаги подразделяются на флаги состояния, системные флаги и управляющие флаги. Описание: Википедия - Регистр флагов.

И ещё. Пожалуйста, не оспаривайте / не выражайте своё мнение безапелляционно относительно того, что Вам неизвестно, или относительно того, о чём Вы имеете смутное представление. Это выглядит очень нехорошо, создаёт о Вас превратное мнение и является, по сути, троллингом. Не надо уминать людей ниже плинтуса за то, что Вы что-либо не знаете. Если Вам некогда что-либо узнать - это Ваши проблемы, и обвинять всех в незнании по каким-то Вашим косвенным признакам - это глупо и грубо.
3
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,614
28.08.2023, 01:49
Цитата Сообщение от Hretgir Посмотреть сообщение
Дайте ссылку, я читать умею, если что.
Вы не умеете и не хотите читать то, что действительно нужно читать. Ибо слишком это слишком много, долго и нудно для вас. Вы умеете читать сообщения со всемирной помойки. Да и то выборочно.

Добавлено через 29 минут

Не по теме:

Цитата Сообщение от Massaraksh7 Посмотреть сообщение
Не просто транзистор, а MOSFET-транзистор.
А какая разница по сути?

0
Айлурофил
 Аватар для Massaraksh7
518 / 451 / 112
Регистрация: 27.05.2017
Сообщений: 2,749
Записей в блоге: 7
28.08.2023, 02:31

Не по теме:

Цитата Сообщение от northener Посмотреть сообщение
А какая разница по сути?
Разница в том, что биполярные транзисторы давно не используются в процессорах.



Добавлено через 15 минут

Не по теме:

А, да, предваряя вопрос: в моё время, под словом "транзистор", подразумевался "биполярный транзистор", уж не знаю, как сейчас, но и я так привык.

0
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
28.08.2023, 10:50

Не по теме:

Цитата Сообщение от Massaraksh7 Посмотреть сообщение
Разница в том, что биполярные транзисторы давно не используются в процессорах.
Не написано, что имеется в виду именно биполярный транзистор. А словом "транзистор" называют и те и другие, так что, написано было корректно.



Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Massaraksh7 Посмотреть сообщение
в моё время, под словом "транзистор", подразумевался "биполярный транзистор"
Тогда понятно. Сейчас любой. Если это принципиально, то для определённости могут сказать "полевик" или "биполярник".

0
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
28.08.2023, 10:51
Это всё хорошо, но... не кажется ли вам (всем), что мы отклонились от исходной темы?
0
29.08.2023, 01:49

Не по теме:

Цитата Сообщение от AzAtom Посмотреть сообщение
Тогда понятно. Сейчас любой.
Транзистор всегда был транзистором.
Да мы отвлеклись от темы. Но как ещё объяснить ТСу установку флагов в микропроцессорах. Если не использовать транзисторную или хотя бы диодную логику?

0
29.08.2023, 04:14

Не по теме:

Цитата Сообщение от northener Посмотреть сообщение
Но как ещё объяснить ТСу...
Да никак! А надо? Он смотрит на общепринятые понятия через призму своего восприятия, пользуется иной, отличной от нашей, логикой... Ну и пусть себе, смысл копья ломать над неизвестно чем...

0
29.08.2023, 20:17  [ТС]

Не по теме:

Уже давно всё понятно, что поддержка флагов - аппаратная. По теме да - немного задержался, объявил нужные переменные, рассчитал их, осталось переписать циклы. Часть переменных опять станет не нужной, а ассемблерная вставка останется одна, в той части кода которую я ранее называл движком. Очень не просто писать код после работы и в ожидаемые сроки не получается никогда практически, всегда идёт задержка в силу тех или иных обстоятельств.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.08.2023, 20:17

Цикл не заканчивается
Цикл не заканчивается,хотя должен быть конечным.Кол-во циклов должно быть до 25,н это не точно. Цикл должен заканчиваться ,когда одна из...

Почему не заканчивается цикл?
При вводе нужного предложения и символа ставлю чтобы i=49, так как считаю, что при следующем заходе работа цикла прекратится. Пробовал...

Почему цикл не заканчивается ?
Это участок моего кода, первый цикл с условием b!=&quot;0&quot; не срабатывает, почему это так работает и как можно исправить? Заранее спасибо;) ...

Цикл почему-то не заканчивается.
Значит идея такая пока не сгенерируется число =2 цикл будет повторяться. Но когда число =2 цикл все равно не заканчивается. Подскажите...

Почему цикл не заканчивается?
Здравствуйте! Не могу понять, почему программа не выходит из цикла. В чем здесь ошибка и как ее исправить? // УСЛОВИЕ: y = 1.3 *...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
51
Ответ Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru