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.
//Задание №1 //PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) const m = 31; var a:array[1..m] of integer; i,s,n:integer;
begin for i:=1 to m do begin a[i]:=random(-20,20); if a[i]>0 then begin s:=s+a[i];n:=n+1; end; end; println('Температуры за месяц :'); a.println; writeln('Средняя в оттепель :',s/n:0:3); end.
Тестовое решение: Температуры за месяц : 16 7 19 -7 -18 6 12 -18 -5 -10 8 -4 10 4 10 5 -3 14 -7 -8 2 7 4 -7 18 4 -12 -5 -9 7 -5 Средняя в оттепель :9.000
//Задание №2 //PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) const m = 10; var a:array[1..m] of integer; i,s,n:integer;
begin for i:=1 to m do begin a[i]:=random(-20,20); if i mod 2<>0 then s:=s+a[i]; end; writeln('Исходный массив :'); a.println; for i:=1 to m do if i mod 2=0 then a[i]:=s; writeln('Сумма на нечетных местах = ',s); writeln('Изиененный массив :'); a.println; end.
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.