Задать вопрос
27 октября, 22:16

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

+2
Ответы (2)
  1. 27 октября, 23:22
    0
    Сложно понять, что нужно было сделать автору программы, но в любом случае сделано криво. Ввод и вывод организованы так, что выводимые значения сливаются с вводимыми, образуя непонятные комбинации.

    Программа запрашивает некоторое значение "В", на превышение которого потом она реагирует один раз. Затем запрашивается количество чисел, которые надо ввести. Эти числа вводятся в цикле (почему это цикл while - непонятно, обычно подобные вещи делают в цикле for) и тут же выводится, т. е. программа повторяет введенное число. В случае, когда введенное число первый раз превышает "В", перед этим числом выводится значение "В". Именно для этого использована логическая переменная bol: после возникшего превышения она принимает значение false и отключает дальнейшую проверку на превышение.
  2. 27 октября, 23:51
    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.
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Program Series17; var a, B, N, i:integer; bol:boolean; begin i:=0; n:=0; bol:=true; Writeln ('Введите число B') ; readln (B) ; Writeln ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
Выберите логическое выражение, принимающее значение True a) (True and True) and (False or False) b) Not (True and Not False) or False c) (True or False) or Not (True and True) d) Not (True or False) and True
Ответы (1)
можете объяснить за что отвечает xsearch? program c4; var n: integer; x, y: integer; xmin, xmax: integer; xsearch: boolean; ymin, ymax: integer; i: integer; s: real; begin xsearch : = true; xmin : = 0; xmax : = 0; ymin:=0; ymax : = 0; readln (n) ;
Ответы (1)
Сделать так чтобы Writeln был заменен другим словом и повторялься не больше двух раз program choise; var N_M:integer; writeln (' введи номер месяца ') ; readln (N_M) ; case N_M of 1:writeln (' январь ') ; 2:writeln (' февраль ') ;
Ответы (1)
Укажите области видимости в программе: Program P; Var x: integer; Procedure P1; Var y: integer; Begin P2; End; Procedure P2; Var z: integer; Begin {Тело процедуры} End; Procedure P3; Var m: integer; Begin P1; End; Begin {Тело основной программы}P3;
Ответы (1)
Объясните строчку (c:=10*c+a mod 10; a : = a div 10;) program pr36; function qwer (var a, b: integer) : integer; var c: integer; begin c:=0; while a > 0 do begin c:=10*c+a mod 10; a : = a div 10; end; qwer: = c; end; var a, b: integer;
Ответы (1)