Паскаль! Дан массив составить программу которая выводит новый массив без повторяющегося...

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

Паскаль!
Дан массив составить программу которая выводит новый массив без повторяющегося заданного числа.Помогите пожалуйста не знаю как сделать...


Информатика (20 баллов) | 33 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  var k:=ReadInteger('От повторов какого числа избавляемся?');
  var id:=a.FindIndex(t->t=k);
  var b:=Copy(a);
  if id>-1 then begin
    var i:=0;
    while a[i]<>k do begin // до первого появляния нужного числа
      b[i]:=a[i];
      i+=1
      end;
    b[i]:=a[i]; i+=1; // само число
    var j:=i; // остальные такие числа будеи пропускать
    while i      if a[i]<>k then begin b[j]:=a[i]; j+=1 end;
      i+=1
      end;
    SetLength(b,j)
  end;
  b.Println 
end.

Пример
n= 20
-43 -39 -9 -50 3 26 -43 9 -19 35 -13 -38 2 -32 -7 36 0 -43 11 -40
Укажите число-дубликат: -43
-43 -39 -9 -50 3 26 9 -19 35 -13 -38 2 -32 -7 36 0 11 -40
(150k баллов)