Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal (Паскаль)

Войти
Регистрация
Восстановить пароль
 
nkSuefa
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 21
#1

Удалить из массива все одинаковые элементы, оставив их последние вхождения - Pascal

18.01.2018, 10:39. Просмотров 61. Ответов 2
Метки нет (Все метки)

Дано целочисленный массив размера N. Удалить из массива все одинаковые
элементы, оставив их последние вхождения.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2018, 10:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удалить из массива все одинаковые элементы, оставив их последние вхождения (Pascal):

Удалить из массива все одинаковые элементы оставив их последние вхождения - Pascal
Дали ещё 4 задачи с массивами((( а с массивами у меня вообще завал полный:help: язык Паскаль Помогите кто чем может! 1 Выяснить...

Удалить из массива все одинаковые элементы, оставив их первые вхождения - Pascal
Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения. Программа работает но криво:...

Удалить из массива все соседние одинаковые элементы, оставив их первые вхождения - Pascal
Дан массив случайных чисел из N элементов. Удалить из массива все соседние одинаковые элементы, оставив их первые вхождения. Вывести новый...

Из массива исключить все элементы, у которых есть равные, оставив при этом последние вхождения элементов - Pascal
Из массива B исключить все элементы, у которых есть равные, оставив при этом последние вхождения элементов.! как можно проще, не...

Кольцевой двунаправленный список: удалить все элементы, у которых одинаковые соседи - Pascal
Дан кольцевой двунаправленный список. Из списка L удалить все элементы у которых одинаковые соседи (первый и последний элемент считать...

Все одинаковые элементы переместить в конец массива - Pascal
Program elem; uses crt; const n=12;m=10;p=120; type tvector=array of integer; var a:array of integer; ...

2
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3746 / 2443 / 1302
Регистрация: 22.11.2013
Сообщений: 6,771
18.01.2018, 21:47 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
ZX Spectrum-128,
не очень эффективно.
Задача удалить какие-то элементы из массива проще решается путем оставления противоположных.

В данном случае это позволит переместить хвост массива только один раз, а не при каждом обнаружении повтора.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const nn=30;
var
  a: array [0..nn-1] of Integer;
  i, j, k, n: Integer;
begin
  Randomize;
  n:=nn;                               { актуальное количество элементов }
  for i:=0 to n-1 do a[i]:=Random(n div 2);      { повторы гарантированы }
  Write('A ='); for i:=0 to n-1 do Write(' ',a[i]); WriteLn;  { вывод массива }
  k:=n-1;                              { последний уже уникальный }
  for i:=n-2 downto 0 do begin         { уплотним правый хвост }
    j:=n-1; while a[i]<>a[j] do Dec(j); { проверим на повтор справа }
    if j=i then begin                   { уникальный ... }
      Dec(k); a[k]:=a[i];               { ... сохраним его справа }
    end;
  end;
  if k>0 then begin                    { были повторы }
    Dec(n,k);                           { вычтем повторы }
    for i:=0 to n-1 do a[i]:=a[i+k];    { перенесем хвост в начало }
  end;
  Write('A''='); for i:=0 to n-1 do Write(' ',a[i]); WriteLn;  { вывод массива }
  Write('Нажмите Enter...'); ReadLn;
end.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2018, 21:47
Привет! Вот еще темы с ответами:

Упорядочить по убыванию только положительные элементы массива, оставив другие элементы в прежних ячейках - Pascal
Упорядочить по убыванию только положительные элементы массива, оставив другие элементы в прежних ячейках Пожалуйста помогите , надо...

Удалить из одномерного массива все элементы расположенные между максимальным и минимальным элементами массива - Pascal
Удалить из одномерного массива все элементы расположенные между максимальным и минимальным элементами массива

Удалить все четные элементы массива - Pascal
Удалить все четные элементы массива стоящие, на нечетных местах?

Удалить все отрицательные элементы массива - Pascal
Люди добрые помогите решить задачки. Очень вас прошу... Буду очень благодарен! 1.Удалить первый элемент массива. 2.Удалить все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru