Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2015, 19:53   #1
_Ася_
 
Регистрация: 09.11.2015
Сообщений: 8
По умолчанию Паскаль. Массивы.

Вычислить количество повторений каждого элемента вектора. Сообщения о повторяющихся элементах должны выводиться только один раз
_Ася_ вне форума Ответить с цитированием
Старый 19.11.2015, 21:43   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Алгоритм не сложен. Нужно создать ассоциативный контейнер, позволяющий устанавливать связь между значением и количеством раз, которое оно встречается во входном массиве - иными словами контейнер пар (int, int). Далее бежим по входному массиву и каждый элемент массива ищем в ассоциативном контейнере. Если он найден, то увечиливаем на один его значение, если не найден, то добавляем в ассоциативный контейрен со значением 1. В конце просто пробегаемся по ассоциативному контейнеру и выписываем элементы и их количества.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 19.11.2015, 22:36   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
количество повторений каждого элемента вектора.
Э-э-э... Это типа такого?:
Код:
program project1;
const
  n=10;
type
  TVector=Array[1..n] of integer;
var
  a,Counts:TVector;
  i,j:integer;
begin
  write('Исходный массив: ');
  for i:=1 to n do begin
    a[i]:=random(9); write(a[i]:3);
    for j:=1 to i do if a[j]=a[i] then begin inc(Counts[j]); break; end;
	end; writeln;
  writeln('Повторяшки: ');
  for i:=1 to n do
   if Counts[i]<>0 then writeln(a[i],' повторяется ',Counts[i],' раза');
  readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы паскаль Ann2807 Помощь студентам 0 25.12.2012 18:44
Массивы.Паскаль Ashley12 Помощь студентам 6 30.11.2010 11:34
паскаль. массивы Scliffer Помощь студентам 1 22.04.2010 18:43
Паскаль. Массивы. xCarnaGe Помощь студентам 2 12.12.2009 08:21
Паскаль.Массивы. Mariya0202 Помощь студентам 5 14.11.2009 10:51