// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 procedure MatPrint(a:array[,] of integer); begin var maxcol:=Length(a,1)-1; for var i:=0 to Length(a,0)-1 do begin for var j:=0 to maxcol do Print(a[i,j]); Writeln end end;
begin var m:=ReadInteger('Кол-во строк:'); var n:=ReadInteger('Кол-во столбцов:'); var t:=MatrixRandom(m,n,10,99); // инициализация матрицы MatPrint(t); var a:=new real[n]; // массив для средних по столбцам for var j:=0 to n-1 do begin var s:=0; for var i:=0 to m-1 do s+=t[i,j]; a[j]:=s/m end; // cортированная последовательность индексов столбцов var ai:=a.Select((x,i)->Rec(x,i)).SortedDescending .Select(x->x.Item2).ToArray; // cоздаем промежуточный массив var u:array[,] of integer; SetLength(u,m,n); for var j:=0 to n-1 do for var i:=0 to m-1 do u[i,j]:=t[i,ai[j]]; t:=Copy(u); // вернем назад данные в исходный массив Writeln; MatPrint(t); end.
//Весьма слабое решение, но после перерыва мне простительно, хех. //Pascal ABC.NET v3.1 сборка 1219
Var ar,arOdd,arNotOdd:array of integer; n,i,j,k1,k2:integer; begin readln(n); setlength(ar,n+1); k1:=1; k2:=1; for i:=1 to n do begin readln(ar[i]); if odd(i) then begin setlength(arOdd,k1); arOdd[k1-1]:=ar[i]; inc(k1); end else begin setlength(arNotOdd,k2); arNotOdd[k2-1]:=ar[i]; inc(k2); end; end; sort(arOdd); sort(arNotOdd); reverse(arNotOdd); k1:=0; k2:=0; i:=0; while i<>n do begin inc(i); if odd(i) then begin ar[i]:=arOdd[k1]; inc(k1); end else begin ar[i]:=arNotOdd[k2]; inc(k2); end; write(ar[i],' '); end; end.
Пример ввода: 5 1 2 3 4 5 Пример вывода: 1 4 3 2 5
Var A:integer;
Begin
Write('Введите число: ');ReadLn(A);
WriteLn((0<=A)and(A<=5));
End.
Более полный вариант:
Var
A:integer;
Begin
Write('Введите число: ');ReadLn(A);
if (0<=A)and(A<=5) then Write('Принадлежит')
else Write('Не принадлежит')
End.