Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 10.09.2009
Сообщений: 7

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

11.09.2009, 15:25. Показов 2139. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дали ещё 4 задачи с массивами((( а с массивами у меня вообще завал полный язык Паскаль

Помогите кто чем может!

1 Выяснить является ли массив перестановкой, т.е. содержит все числа от 1 до N в любом порядке ( N- кол-во элементов массива). Если это так то вывести 0; в противном случае вывести номер первого недопустимого элемента.

2. В заданном массиве переставить в обратном порядке элементы массива, расположенные между k-ым и j-ым элементами, не включая эти элементы ( k и j ).

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

4. Ненулевые элементы расположить в порядке убывания модулей, оставив остальные элементы на своих местах.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.09.2009, 15:25
Ответы с готовыми решениями:

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

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

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

2
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.09.2009, 18:14
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

№1.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
uses crt;
var a:array[1..100] of integer;{объявляем массив}
    n,i,j,k,m:integer;
begin
clrscr;
write('Размер массива n=');
readln(n);
writeln('Введите ',n,' элементов массива:');
for i:=1 to n do
 begin
  write('a[',i,']=');{вводим элементы массива}
  readln(a[i]);
 end;
clrscr;
writeln('Массив:');
for i:=1 to n do
write(a[i],' ');{выводим его на экран}
writeln;
m:=0;{количество элементов массива, которые встречаются 1 раз}
for j:=1 to n do
 begin
  k:=0;{количество вхождений каждого числа от 1 до n}
  for i:=1 to n do
  if a[i]=j then k:=k+1;{считаем вхождения}
  if k=1 then m:=m+1;{если 1, то считаем такие числа}
 end;
if m=n then write('Массив является перестановкой!'){если все по 1 разу}
else write('Массив не является перестановкой!');
readln
end.
Добавлено через 1 час 34 минуты
№2.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
uses crt;
var a:array[1..100] of integer;
    n,i,j,k,x:integer;
begin
clrscr;
repeat
write('Размер массива не менее 3 n=');
readln(n);
until n>=3;
writeln('Введите ',n,' элементов массива:');
for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
clrscr;
writeln('Исходный массив:');
for i:=1 to n do
write(a[i],' ');
writeln;
repeat
write('Начало интервала перестановки k=');
readln(k);
until(k>=1)and(k<n);
repeat
write('Конец интервала перестановки j>k j=');
readln(j);
until(j>k)and(j<=n);
if j-k<3 then
 begin
   write('Интервал не позволяет делать перестановки.');
   readln;
   exit;
  end;
for i:=k+1 to (k+j)div 2 do{от начала интервала до его середины}
 begin
  x:=a[i];{меняем симметрично середины элементы}
  a[i]:=a[j-i+k];
  a[j-i+k]:=x;
 end;
writeln('Результат:');
for i:=1 to n do
write(a[i],' ');
readln
end.
Добавлено через 52 минуты
№3.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
uses crt;
var a:array[1..100] of integer;
    n,i,j,k,l:integer;
begin
clrscr;
randomize;
write('Размер массива n=');
readln(n);
writeln('Введите ',n,' элементов массива:');
for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
clrscr;
writeln('Исходный массив:');
for i:=1 to n do
write(a[i],' ');
writeln;
i:=n;k:=1;{начинаем с конца первый элемент имеет индекс=1}
while i>=k do{пока не придем к началу массива}
 begin
  j:=i-1;{становимся на 1 назад}
  while j>=k do{просматриваем массив к началу}
   begin
    if a[j]=a[i] then{если повтор}
     begin
      for l:=j downto k+1 do{сдвигаем к этому элементу начало массива на 1 вправо, элемент исчезает}
      a[l]:=a[l-1];
      k:=k+1;{индекс первого элемента увеличился на 1}
     end
    else j:=j-1;{если не повтор идем дальше назад}
   end;
  i:=i-1;{проверяем следующий с конца}
 end;
writeln('Результат:');
for i:=k to n do{выводим остаток массива от нового индекса первого элемента}
write(a[i],' ');
readln
end.
Добавлено через 7 минут
№4.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
uses crt;
var a:array[1..100] of integer;
    n,i,j,x:integer;
begin
clrscr;
randomize;
write('Размер массива n=');
readln(n);
writeln('Введите ',n,' элементов массива:');
for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
clrscr;
writeln('Исходный массив:');
for i:=1 to n do
write(a[i],' ');
writeln;
for i:=1 to n-1 do
for j:=i+1 to n do
{если модуль первого меньше модуля второго и они оба не ноли}
if (abs(a[i])<abs(a[j]))and(a[i]<>0)and(a[j]<>0)then
 begin
  x:=a[i];{меняем их местами}
  a[i]:=a[j];
  a[j]:=x;
 end;
writeln('Результат:');
for i:=1 to n do
write(a[i],' ');
readln
end.
1
0 / 0 / 0
Регистрация: 10.09.2009
Сообщений: 7
11.09.2009, 18:34  [ТС]
Блин спасибо тебе огромное! не знаю что бы я без тебя делал!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.09.2009, 18:34
Помогаю со студенческими работами здесь

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

Удалить из символьной матрицы одинаковые элементы, оставив первые вхождения
Здравствуйте, нужен хелп. Нужно Удалить одинаковые элементы, оставив первые вхождения в двумерном символьном массиве. Допустим есть...

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

Удалить все повторяющиеся элементы массива, оставив их первые вхождения
Вот условие:Удалить все повторяющиеся элементы,оставив их первые вхождения,то есть в массиве должны остаться только различные...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru