Переменная a до выполнения условного оператора имеет значение 20. Чтобы из 20 получить 15, нужно вычесть 5, т.е. должен выполниться оператор присваивания, указанный после then, что возможно при истинности логического выражения if (a<1) ... (a>b). Отношение a<1 при a=20 ложно, отношение a>b при a=20 и b=5 истинно. Логическая операция, результатом которой является "истинно" в случае, когда один операнд имеет значение "ложно", а второй "истинно" - это операция дизъюнкции ("логическое ИЛИ"). В языке Паскаль она записывается как "or" ответ: or
1. В приведенном коде ошибка. Не хватает ";" в третьей строке снизу. 2. Немного изменим ваш код и получим искомое значение x Искомое число х = 16293
var x, y, a, b, k: integer;
begin k:=10000; repeat x:=k; a := 0; b := 0; y := 1; while x > 0 do begin if (x mod 10) mod 2 = 0 then a := a * 10 + x mod 10 else begin y := y * 10; b := b * 10 + x mod 10 end; x := x div 10 end; a := a * y + b; k := k + 1; until a = 26391; writeln(a:8, k-1:8); end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку