в двумерном массиве (nxm) натуральных случайных чисел от 0 до 199. найти и вывести на экран все двухзначные числа, у которых сумма цифр кратная 2, найти количество таких чисел
var mas: array[1..n,1..m] of integer; i,j: integer; qty: integer; a,b: integer;
begin
randomize;
{Заполнение массива числами} for i:=1 to n do begin for j:=1 to m do begin mas[i,j]:=random(200); if mas[i,j]=200 then mas[i,j]:=199; write(mas[i,j],' '); end; writeln; end;
writeln('******************');
{Поиск двузначных чисел, сумма цифр которых кратна 2} qty:=0; for i:=1 to n do for j:=1 to m do if (mas[i,j]<100) and (mas[i,j]>9) then begin a:=mas[i,j] div 10; b:=mas[i,j]-a*10; if (a+b) mod 2=0 then begin Inc(qty); write(mas[i,j],' '); end; end;
writeln(''); writeln('количество чисел удовлетворяющих условию ',qty);
end.
kategar
15.03.2022
// PascalABC.NET 3.2, сборка 1488 от 21.06.2017 // Внимание! Если программа не работает, обновите версию!
begin var (n,m):=ReadInteger2('Количество строк и столбцов в массиве:'); Writeln('*** Исходный массив [',n,',',m,'] ***'); var a:=MatrRandom(n,m,0,199); a.Println(4); Writeln(4*a.ColCount*'-'); Write('Искомые числа: '); var s:=a.Rows.SelectMany(x->x).Where(x->x.Between(10,99)) .Where(x->(x div 10+x mod 10).IsEven); s.Println; Writeln('Количество чисел равно ',s.Count) end.
var a, b: array[1..n] of integer; i, j, step, t: integer; flag: boolean;
begin Randomize; Writeln('Исходные элементы массива'); for i := 1 to n do begin a[i] := Random(10) - 5; Write(a[i]:4) end; { Сортируем массив (метод Шелла) } step := n div 2; while step > 0 do begin for j := n - step downto 1 do begin i := j; while i <= n - step do begin if a[i] > a[i + step] then begin t := a[i]; a[i] := a[i + step]; a[i + step] := t end; i := i + step end end; step := step div 2 end; { проходим по массиву и если элемент встречается более одного раза подряд, переносим его в другой массив } j := 0; t := a[1]; flag := false; for i := 2 to n do begin if (a[i] = t) and (not flag) then begin j := j + 1; b[j] := t; flag := true end else begin flag := false; t := a[i] end end; Writeln; Writeln('Отобранные элементы массива'); for i := 1 to j do Write(b[i]:4); Writeln end.
в двумерном массиве (nxm) натуральных случайных чисел от 0 до 199. найти и вывести на экран все двухзначные числа, у которых сумма цифр кратная 2, найти количество таких чисел
n=8; m=8;
var
mas: array[1..n,1..m] of integer;
i,j: integer; qty: integer;
a,b: integer;
begin
randomize;
{Заполнение массива числами}
for i:=1 to n do begin
for j:=1 to m do begin
mas[i,j]:=random(200);
if mas[i,j]=200 then mas[i,j]:=199;
write(mas[i,j],' ');
end;
writeln;
end;
writeln('******************');
{Поиск двузначных чисел, сумма цифр которых кратна 2}
qty:=0;
for i:=1 to n do
for j:=1 to m do
if (mas[i,j]<100) and (mas[i,j]>9) then begin
a:=mas[i,j] div 10;
b:=mas[i,j]-a*10;
if (a+b) mod 2=0 then
begin
Inc(qty);
write(mas[i,j],' ');
end;
end;
writeln('');
writeln('количество чисел удовлетворяющих условию ',qty);
end.