Program series17; var a,b,n,i: integer; bol: boolean; begin i: =0; n: =0; bol: =true; writeln('введите число b'); readln(b); writeln('введите число n'); readln(n); writeln('введите ',n,' целых чисел.'); while i < n do begin read(a); if (a> b)and(bol) then begin write(' ',b); bol: =false; end; write(' ',a); inc(i); end; end. причем здесь bol и как он работает объясните
Программа запрашивает некоторое значение "В", на превышение которого потом она реагирует один раз. Затем запрашивается количество чисел, которые надо ввести. Эти числа вводятся в цикле (почему это цикл while - непонятно, обычно подобные вещи делают в цикле for) и тут же выводится, т.е. программа повторяет введенное число. В случае, когда введенное число первый раз превышает "В", перед этим числом выводится значение "В". Именно для этого использована логическая переменная bol: после возникшего превышения она принимает значение false и отключает дальнейшую проверку на превышение.
a,b,n,i:integer;
bol:boolean;
begin
//Инициализируем переменные
i:=0;
n:=0;
bol:=true;
//Осуществляется ввод
Writeln('Введите число B: '); readln(b);
Writeln('Введите число N: '); Readln(n);
Writeln('Введите ', n,' целых чисел.');
//цикл (с пред условием) будет повоторятся n раз
While i < n do
begin
//Осуществляется ввод с клавиатуры
Read(a);
//Проверяем является (A больше B) и (bol = true)
if (a>b)and(bol) then
//Если является
begin
//выводит значение B через пробел
Write(' ',b);
//и присваивает bol = ложь
bol:=false;
end;
//выводит значение А через пробел
Write(' ',a);
//инкрементирует i, тоесть i:=i+1
inc(i);
end;
end.