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 бо...

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 и отключает дальнейшую проверку на превышение.
Гость
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,' целых чисел.');     //цикл (с пред условием) будет повоторятся 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.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы