Дан список целых чисел. Упорядочьте по возрастанию только: а) положительные числа; б) элементы с четными порядковыми номерами в списке с с полным объяснением
// PascalABC.NET 3.2, сборка 1382 от 06.02.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк (столбцов) в массиве:'); Writeln('*** Исходный массив [',n,',',n,'] ***'); var a:=MatrRandom(n,n,-10,10); a.Println(4); Writeln(5*a.ColCount*'-'); var k,l:integer; Write('Введите L,K: '); Read(l,k); var lim:=a[l-1,k-1]; var s:=a.Rows.SelectMany(x->x).Where(x->x<lim).Sum; Writeln('Искомая сумма равна ',s) end.
Var mas:array[1..1000, 1..1000] of integer; N,M,i,j,k:integer;
Begin Writeln('Введите размер матрицы N*M'); Write('N = '); readln(N); Write('M = '); readln(M);
if (M>1000) or (N>1000) or (M<1) or (N<1) then Writeln('Ошибка, указанные значения выходят за пределы матрицы') else Begin Writeln('Введите элементы матрицы');
k:=0; for i:=1 to N do for j:=1 to M do Begin readln(mas[i,j]); if (mas[i,j] mod 2 = 0) then k:=k+1; end;
Writeln(); Writeln('Исходная матрица');
for i:=1 to N do Begin for j:=1 to M do Begin Write(mas[i,j], ' ') end; Writeln(); end;
Writeln(); Writeln('Количество четных элементов = ',k); end;
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк (столбцов) в массиве:');
Writeln('*** Исходный массив [',n,',',n,'] ***');
var a:=MatrRandom(n,n,-10,10);
a.Println(4); Writeln(5*a.ColCount*'-');
var k,l:integer;
Write('Введите L,K: '); Read(l,k);
var lim:=a[l-1,k-1];
var s:=a.Rows.SelectMany(x->x).Where(x->x<lim).Sum;
Writeln('Искомая сумма равна ',s)
end.
Пример
Количество строк (столбцов) в массиве: 6
*** Исходный массив [6,6] ***
-4 -8 -7 -3 -6 -4
2 -9 1 9 -6 6
-9 -2 -8 -3 -1 -4
-1 -9 -3 -7 3 -3
5 9 -6 8 -1 -10
-1 -1 -5 -8 -9 4
Введите L,K: 2 3
Искомая сумма равна -138
uses crt;
Var mas:array[1..1000, 1..1000] of integer;
N,M,i,j,k:integer;
Begin
Writeln('Введите размер матрицы N*M');
Write('N = ');
readln(N);
Write('M = ');
readln(M);
if (M>1000) or (N>1000) or (M<1) or (N<1)
then
Writeln('Ошибка, указанные значения выходят за пределы матрицы') else
Begin
Writeln('Введите элементы матрицы');
k:=0;
for i:=1 to N do
for j:=1 to M do
Begin
readln(mas[i,j]);
if (mas[i,j] mod 2 = 0) then k:=k+1;
end;
Writeln();
Writeln('Исходная матрица');
for i:=1 to N do
Begin
for j:=1 to M do
Begin
Write(mas[i,j], ' ')
end;
Writeln();
end;
Writeln();
Writeln('Количество четных элементов = ',k);
end;
readln;
end.