program fofgogjoj; const nmax=100; var m:array[1..nmax] of integer; n,i,j,k:byte; a,b,x:integer; begin randomize; repeat Write('Размер массива до ',nmax div 3,' n='); readln(n); until n in [1..nmax div 3]; Writeln('Исходный массив:'); for i:=1 to n do begin m[i]:=random(50); Write(m[i],' '); end; Writeln; Writeln; Write('Введите число для вставки перед a='); Readln(a); i:=1; k:=0; while i<=n do begin if m[i]>a then begin n:=n+1; k:=1; for j:=n downto i+1 do m[j]:=m[j-1]; m[i]:=a; i:=i+2; end else i:=i+1; end; if k=0 then Writeln('Элементов больше ',a,' нет') else begin Writeln('Массив после вставки числа ',a,' перед большими ',a); for i:=1 to n do Write(m[i],' '); Writeln; Writeln; Write('Введите число для вставки после b='); Readln(b); i:=1;k:=0; while i<=n do if m[i]<b then begin n:=n+1; k:=1; for j:=n downto i+2 do m[j]:=m[j-1]; m[i+1]:=b; i:=i+2; end else i:=i+1; if k=0 then Writeln('Элементов меньше ',b,' нет') else begin Writeln('Массив после вставки числа ',b,' после меньших ',b); for i:=1 to n do Write(m[i],' '); end; end; readln end.
Смотрим на предназначение переменных L и M: L - счетчик того, сколько раз выполняется условие цикла (while x > 0). Т.к. в конце программы L становится равным 2, значит условие цикла (while x > 0) выполняется 2 раза. M, судя по условию (if M < x mod 10) - максимальная цифра числа x, т.к. x mod 10 - это остаток от деления числа x на десять. В конце цикла while x приравнивается x div 10; кроме того, после 2 проходов цикла, x стало равным 0. Это дает нам право считать, что начальное число x было двузначным. Т.к. в конце программы M становится равным 8, значит максимальная цифра в числе x - это 8. Значит изначально число x могло быть равно: 18 28 38 48 58 68 78 80 81 82 83 84 85 86 87 88 Т.к. требуется наибольшее, то выбираем 88.
Если это в рабочей тетради забей в г д з