Разбираюсь с чужим исходным кодом на Паскале и зашел в тупик.
Имеется цикл repeat until, который теоретически должен завершиться, когда переменная примет определенное значение, но я не могу найти место в цикле, где эта переменная изменяется.
Я не пишу на Паскале, а переписываю Паскалевскую программу на C++, поэтому глубоких знаний Паскаля нет.
Код приведу ниже.
Речь идет о переменной N, она может принимать значения больше 1. Если она не изменяется в цикле, то цикл будет вечным, либо пока не нажмут клавишу Ескейп.
В собранной программе цикл завершается без Ескейпа. Хотя, я пользуюсь не своей сборкой, руки еще не дошли, до самостоятельной сборки.
procedure s180t90(pause1,pause2,point,count:real);
var
i, N, T, M, K, itmp:integer;
b1: byte;
data: word;
p: float;
begin
N:= trunc(point);
T:= trunc(count);
if N<1 then N:= 1;
{if T>N then T:= 1;}
K:= 9;
M:= K*(N+1);
i:=1;
repeat
NewTrackBar(msgSent);
for i:= T to N do begin
itmp:= i*K;
TrackBar(itmp+1,M,msgSent);
rod0;
SendCommandb(commandX, itmp+2, M, msgSent);{X}
p:=i*Pause1;
if p<0 then p:=1;
SetPausesuni1(p, pause2,CommandR, CommandF, CommandN, itmp+3, M, msgSent);
ComShowOSC(trunc(pause2));{show osc-picture}
{***BEGIN*ABORT******************}
if ESC then begin
AbortMeasure;
Exit;
end;
{****END**ABORT******************}
end;
DeleteTrackBar;
until N=1;
rod1;{Now u can see osc-picture}
end;