Решить задачу с массивами Паскаль Составить программу, Строящую массив,в котором все...

0 голосов
27 просмотров

Решить задачу с массивами
Паскаль

Составить программу, Строящую массив,в котором все отрицательные элементы предшествует всем не отрицательным в линейном массиве


image

Информатика (92 баллов) | 27 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1573 от 04.11.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  a:=(a.Where(t->t<0)+a.Where(t->t>=0)).ToArray; a.Println
end.

Пример
n= 13
-32 46 4 17 -45 1 -4 -24 32 -7 43 27 36
-32 -45 -4 -24 -7 46 4 17 1 32 43 27 36

А вот так примерно учат писать эту же программу в большинстве школ:

const
  nn=100;

type
  V=array[1..nn] of integer;
 
var
  a,b:V;
  i,n,j:byte;

begin
  Randomize;
  Write('n= '); Read(n);
  for i:=1 to n do begin
    a[i]:=Random(101)-50;
    Write(a[i],' ')
    end;
  Writeln;
  j:=0;
  for i:=1 to n do
    if a[i]<0 then begin<br>      j:=j+1; b[j]:=a[i]
      end;
  for i:=1 to n do
    if a[i]>0 then begin
      j:=j+1; b[j]:=a[i]
      end;
  for i:=1 to n do
    Write(b[i],' ');
  Writeln
end.
(150k баллов)