Предмет: Информатика,
автор: Andrew174
Паскаль!
Дан массив составить программу которая выводит новый массив без повторяющегося заданного числа.Помогите пожалуйста не знаю как сделать...
Ответы
Автор ответа:
2
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<a.Length do begin
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
Внимание! Если программа не работает, обновите версию!
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<a.Length do begin
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
Похожие вопросы
Предмет: Русский язык,
автор: Love19461976
Предмет: Биология,
автор: stazkinapolina8
Предмет: Русский язык,
автор: ladavakhrushina00
Предмет: Математика,
автор: Alexa2905
Предмет: Математика,
автор: KristinaCristalnaya