Вопрос задан 18.04.2021 в 07:24. Предмет Информатика. Спрашивает Оленькова Анастасия.

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

числа.Помогите пожалуйста не знаю как сделать...
0 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<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
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я могу помочь вам написать программу на языке Паскаль, которая выводит новый массив без повторяющегося заданного числа. Вот пример решения:

arduino
program 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.

Для данного примера мы считываем размер массива, элементы массива и число, которое нужно удалить. Затем мы перебираем элементы старого массива и добавляем их в новый, если они не равны заданному числу и еще не были добавлены. Чтобы проверить, было ли число уже добавлено в новый массив, мы перебираем уже добавленные элементы. В конце мы выводим новый массив без заданного числа.

Надеюсь, это поможет вам!

0 0

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

Последние заданные вопросы в категории Информатика

Задать вопрос