Program Series17;vara,B,N,i:integer;bol:boolean;begini:=0;n:=0;bol:=true;Writeln(Введите число B);readln(B);Writeln(Введите число N);Readln(N);Writeln(Введите ,N, целых чисел.);While i < n dobeginRead(a);if (a>b)and(bol) then begin Write( ,b); bol:=false; end;Write( ,a);inc(i);end;end.причем здесь bol и как он работает объясните
Сложно понять, что нужно было сделать автору программы, но в любом случае сделано криво. Ввод и вывод организованы так, что выводимые значения сливаются с вводимыми, образуя непонятные комбинации.
Программа запрашивает некоторое значение "В", на превышение которого потом она реагирует один раз. Затем запрашивается количество чисел, которые надо ввести. Эти числа вводятся в цикле (почему это цикл while - непонятно, обычно подобные вещи делают в цикле for) и тут же выводится, т.е. программа повторяет введенное число. В случае, когда введенное число первый раз превышает "В", перед этим числом выводится значение "В". Именно для этого использована логическая переменная bol: после возникшего превышения она принимает значение false и отключает дальнейшую проверку на превышение.
