Помогите решить задачи с помощью Паскаля:
1. В массиве все отрицательные элементы переместить в начало массива, а остальные в конец с сохранением порядка следования.
2. Дана последовательность целых чисел, среди чисел есть одинаковые, создать массив различных чисел последовательности и полученный массив отсортировать по возрастанию.

1

Ответы и объяснения

  • Участник Знаний
2014-04-08T20:19:37+04:00
1
var
   i,k:integer;
   a,b:array[1..10]of integer;
begin
writeln('Исходный массив:');
for i:=1 to 10 do
  begin
  a[i]:=random(-10,10);
  write(a[i]:3)
  end;
for i:=1 to 10 do
  begin
  if a[i]<0 then
    begin
    k:=k+1;
    b[k]:=a[i]
    end
  end;
for i:=1 to 10 do
  begin
  if a[i]>=0 then
    begin
    k:=k+1;
    b[k]:=a[i]
    end
  end;
writeln;
writeln('Преобразованный массив:');
for i:=1 to 10 do write(b[i]:3)
end.

2.
var i,j,k,n,x,p:integer;
a,b:array of integer;
f:boolean;
begin
write('Сколько будет чисел: ');
readln(n);
SetLength(a, n);
for i:=1 to n do
  begin
  f:=false;
  write('Введите число: ');
  readln(x);
  for j:=0 to n-1 do
     if x=a[j] then f:=true;
     if f=false then
        begin
        a[k]:=x;
        k:=k+1;
        end
  end;
SetLength(b, k);
for i:=0 to k-1 do  b[i]:=a[i];
for i:= 0 to k-1 do
     for j := 0 to k-1 do
        begin
        if b[i] < b[j] then
           begin
           p := b[i];
           b[i] := b[j];
           b[j] := p
         end
    end;
writeln('Отсортированный массив:');
for i:=0 to k-1 do write(b[i]:3)
end.

2.1
var
  i,j,k,n,x,p:integer;
  a:array[1..1000] of integer;
  f:boolean;
begin
write('Сколько будет чисел: ');
readln(n);
k:=1;
for i:=1 to n do
   begin
   f:=false;
   write('Введите число: ');
   readln(x);
   for j:=1 to n do
      if x=a[j] then f:=true;
      if f=false then
         begin
         a[k]:=x;
         k:=k+1;
         end
   end;
for i:=1 to k-1 do
     for j:=1 to k-1 do
     begin
        if a[i] < a[j] then
           begin
           p:= a[i];
           a[i]:= a[j];
           a[j]:= p
           end
     end;
writeln('Отсортированный массив:');
for i:=1 to k-1 do write(a[i]:3)
end.
поэтому я сначала и использовал динамические массивы
спасибо большое, теперь все работает:)
Советую обновить Паскаль. С этим будешь мучатся только))
в школе только с таким решаем. ничего не поделаешь:)спасибо еще раз огромное)
Ну так посоветуй школе заменить версию. Это же все бесплатно. Какие проблемы могут быть?