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

Составление массива из чисел, повторяющихся в предыдущем массиве

13.10.2012, 14:27. Показов 1175. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требуется помощь в написании следующей программы:
Пусть даны целые числа а1...аn, среди которых могут быть повторяющиеся. Составьте новый массив из чисел, взятых по одному из каждой группы равных членов последовательности.
Я попытался написать эту программу следующим образом:
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
Program NewArray;
const N=20;
var x:array[0..N] of integer;
    a:array[0..N] of integer;
    i,i2,t: integer;
begin
  writeln('Введите элементы последовательности A');
  for i:=1 to N do begin
    readln(a[i]);
  end;
  t:=1;
  for i:=N downto 1 do begin
    if a[N-t]=a[i-1] then begin
      t:=t+1;
      x[i]:=a[i-1];
    end //else
    else if a[N-t]=a[i] then begin
      t:=t+1;
      x[i]:=a[i];
    end //else
    else if a[N-t]=a[i+1] then begin
      t:=t+1;
      x[i]:=a[i+1]
    end; //else
  end; //for
  
  writeln('Полученный массив из равных элементов последовательности А:');
  for i:=1 to N do write(x[i], ' ');
end.
Естественно, программа не работает так, как надо. Возникает проблема со сравниванием всех элементов в массиве а (я попытался это сделать с помощью if/else if в строках 13-24). Как можно это осуществить правильно?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.10.2012, 14:27
Ответы с готовыми решениями:

Удаление повторяющихся чисел в массиве
удалить в массиве все числа которые повторяются более двух раз

Найти количество повторяющихся чисел в массиве
Решите пж задачку :-) В заданном одномерном массиве из n элементов найти количество повторяющихся чисел. На языке Си

Количество различных(не повторяющихся) чисел, в массиве.
Найдите номера строк целочисленной матрицы в которой: а) на всех нечет позициях стоят нули б) на нечет позициях встречаются нули ...

4
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
13.10.2012, 14:50
Задача намного упростится, если предварительно отсортировать исходную последовательность
0
 Аватар для NurlashKO
168 / 90 / 80
Регистрация: 07.10.2012
Сообщений: 145
14.10.2012, 20:26
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
var
    n, i, j, t, c :longint;
    a, x :array[1 .. 1000] of longint;
begin
    read(n);
    for i := 1 to n do
        read(a[i]);
    
    for i := 1 to n do
        for j := 1 to n - 1 do
            if (a[j] > a[j + 1]) then begin
                c := a[j];
                a[j] := a[j + 1];
                a[j + 1] := c;
            end;
 
    t := 1;
    x[1] := a[1];
 
    for i := 2 to n do
        if (a[i] <> a[i - 1]) then begin
            t := t + 1;
            x[t] := a[i];
        end;
 
    for i := 1 to t do
        write(x[i], ' ');
end.
1
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 3
15.10.2012, 07:08  [ТС]
NurlashKO, всё бы хорошо, но только вот ваша программа лишь помещает упорядоченные элементы первого массива во второй. Когда нужно выбрать из первого только повторяющиеся числа.
Но всё равно спасибо за помощь.
0
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
15.10.2012, 16:47
Ну, если не хочется сортировать, то
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
Program NewArray;
const N=20;
var x:array[0..N] of integer;
    a:array[0..N] of integer;
    i, i2, T: integer;
    NewExist : Boolean;
begin
  writeln('Введите элементы последовательности A');
  for i:=1 to N do  readln(a[i]);
  T:=1; x[1]:=a[1];
  For i:=2 to N do 
    Begin
       NewExist:=true;
       For i2:=1 to T do
         If a[i]=x[i2] then
           Begin
              NewExist:=false; Break;          
           end; 
       If NewExist then
         Begin
            Inc(T); x[T]:=a[i];         
         end; 
    end;
  
  writeln('Повторяющиеся элементы последовательности А:');
  for i:=1 to T do write(x[i], ' ');
end.
Добавлено через 4 часа 23 минуты
Ошибся. Исправляюсь.
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
Program NewArray;
const N=20;
var x:array[0..N] of integer;
    a:array[0..N] of integer;
    i, j, k, T: integer;
    Exist : Boolean;
begin
  writeln('Введите элементы последовательности A');
  for i:=1 to N do  readln(a[i]);
  T:=0;
  For k:=1 to N do
    For i:=k+1 to N do
      If a[k]=a[i] then
        Begin
          Exist:=false;
          For j:=1 to T do
            If x[j]=a[k] then
              Begin
                Exist:=True; {данный повторяющийся элемент уже был учтен}
                Break;
              end;
          If not Exist then
            Begin
              Inc(T); x[T]:=a[k]; {это повторяющийся элемент}
            end;
        end;
 writeln('Повторяющиеся элементы последовательности А:');
   for i:=1 to T do write(x[i], ' ');
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.10.2012, 16:47
Помогаю со студенческими работами здесь

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

Способы нахождения повторяющихся чисел в массиве?
Одна из задач, составить программу, которая позволяет одинаковые числа в массиве. По моей логике - должна работать, но не работает. ...

Сделать вывод в консоль повторяющихся чисел в массиве
Нужно сделать цикл который будет проверять каждый массив с каждым массивом. Задача вроде бы простая, но решить не могу. Без применения...

Посчитать количество не повторяющихся чисел в случайном массиве
Помогите пожалуйста понять как посчитать количество не повторяющихся чисел в случайном массиве. Начал изучать С# совсем недавно. Много...

Найти среднее арифметическое не повторяющихся чисел в массиве
Найти среднее арифметическое не повторяющихся чисел в массиве, состоящем из N элементов.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru