
Вопрос задан 18.04.2021 в 07:24.
Предмет Информатика.
Спрашивает Оленькова Анастасия.
Паскаль! Дан массив составить программу которая выводит новый массив без повторяющегося заданного
числа.Помогите пожалуйста не знаю как сделать...

Ответы на вопрос

Отвечает Шамина Валерия.
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



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, я могу помочь вам написать программу на языке Паскаль, которая выводит новый массив без повторяющегося заданного числа. Вот пример решения:
arduinoprogram remove_duplicates;
const
MAX_SIZE = 100;
type
IntArray = array[1..MAX_SIZE] of integer;
var
arr, new_arr: IntArray;
n, i, j, num: integer;
found: boolean;
begin
{ читаем размер массива }
writeln('Введите размер массива: ');
readln(n);
{ читаем элементы массива }
writeln('Введите элементы массива:');
for i := 1 to n do
readln(arr[i]);
{ читаем число, которое нужно удалить }
writeln('Введите число, которое нужно удалить:');
readln(num);
{ инициализируем новый массив }
j := 0;
{ перебираем элементы старого массива и добавляем их в новый,
если они не равны заданному числу и еще не были добавлены }
for i := 1 to n do
begin
found := false;
if (arr[i] <> num) then
begin
{ проверяем, было ли число уже добавлено в новый массив }
for j := 1 to i - 1 do
begin
if (arr[i] = new_arr[j]) then
begin
found := true;
break;
end;
end;
if (not found) then
begin
j := j + 1;
new_arr[j] := arr[i];
end;
end;
end;
{ выводим новый массив }
writeln('Новый массив без числа ', num, ':');
for i := 1 to j do
write(new_arr[i], ' ');
writeln();
end.
Для данного примера мы считываем размер массива, элементы массива и число, которое нужно удалить. Затем мы перебираем элементы старого массива и добавляем их в новый, если они не равны заданному числу и еще не были добавлены. Чтобы проверить, было ли число уже добавлено в новый массив, мы перебираем уже добавленные элементы. В конце мы выводим новый массив без заданного числа.
Надеюсь, это поможет вам!


Топ вопросов за вчера в категории Информатика

Информатика 557

Информатика 33

Информатика 74

Информатика 12

Информатика 10

Информатика 33

Информатика 27
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili