q1 - указатель. В начале программы указывает на второй элемент последовательности
Программа говорит, что если указатель q1 указывает на единицу, то надо ее исправить на единицу и сместиться вправо... т.е. указатель будет двигаться вправо до тех пор, пока не встретит ноль.
Таким образом в конце выполнения первого правила указатель q1 сместится в конец последовательности (до нуля)
Далее, если указатель q1 показывает на ноль, то меняем ноль на единицу, меняем указатель q1 на q2 и сдвигаемся влево.
После выполнения второго правила получаем последовательность 0111111 и указатель q2 на предпоследнюю единицу.
Третьим правилом q2 - сдвигается влево до достижения нуля
После его выполнения получаем последовательность 0111111 и указатель q2 на первый ноль
Четвертое правило заменяет указатель q2 на q0 и сдвигается вправо
Таким образом получаем в конце программы последовательность 0111111 и указатель q0 на первую единицу.
Объяснение:
free Pascal
Объяснение:
var
a, b, c : integer;
s, p : double;
begin
writeln('Input a, b, c :');
readln(a, b, c);
p := (a+b+c)/2;
s := sqrt(p*(p-a)*(p-b)*(p-c));
writeln();
writeln('S=',s:2:2);
end.