Program Series17;vara,B,N,i:integer;bol:boolean;begini:=0;n:=0;bol:=true;Writeln('Введите...

0 голосов
76 просмотров

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 и как он работает объясните


Информатика (23 баллов) | 76 просмотров
0

почему при запуске программы хоть blue true хоть blue false если Write(' ',blue ); почему всегда получается false

Дано ответов: 2
0 голосов
Правильный ответ

Сложно понять, что нужно было сделать автору программы, но в любом случае сделано криво. Ввод и вывод организованы так, что выводимые значения сливаются с вводимыми, образуя непонятные комбинации.

Программа запрашивает некоторое значение "В", на превышение которого потом она реагирует один раз. Затем запрашивается количество чисел, которые надо ввести. Эти числа вводятся в цикле (почему это цикл while - непонятно, обычно подобные вещи делают в цикле for) и тут же выводится, т.е. программа повторяет введенное число. В случае, когда введенное число первый раз превышает "В", перед этим числом выводится значение "В". Именно для этого использована логическая переменная bol: после возникшего превышения она принимает значение false и отключает дальнейшую проверку на превышение.

(142k баллов)
0 голосов

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.

(574 баллов)