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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2008, 09:07   #1
Vital_k
 
Регистрация: 08.02.2008
Сообщений: 4
По умолчанию Поиск

Здрасьте. У меня тут последняя проблемка, одну из таких мне здесь помогли разрешить, надеюсь и эту помогут. Так вот дан массив линейный нужно подсчитать количество одинаковых элементов. Сначала по каждому элементу, если есть одинаковые, а затем вывести общее количество этих элементов.
Заранее лабогадарю
Vital_k вне форума Ответить с цитированием
Старый 20.02.2008, 10:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну сортируй массив, потом подсчитаешь по повторам.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.02.2008, 11:02   #3
Vital_k
 
Регистрация: 08.02.2008
Сообщений: 4
По умолчанию

Если можно код, плиз.
Vital_k вне форума Ответить с цитированием
Старый 22.02.2008, 06:57   #4
Vital_k
 
Регистрация: 08.02.2008
Сообщений: 4
По умолчанию

Блин, все можущие решить мою задачку, выручайте - сегодня после обеда здавать курсовую нада. Загвоздка только в ней.
Vital_k вне форума Ответить с цитированием
Старый 22.02.2008, 13:01   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Если еще не поздно, то посмотри это решение, не очень удачное, но другого нет.
Код:
program Ravnye;
uses Crt;
var
   a:array[1..50] of integer;
   n,i,j,st,x,k:integer;
begin
ClrScr;
write('n=');readln(n);
randomize;
  for i:=1 to n do
    begin
      a[i]:=random(10);
      write(a[i],' ');
    end;
  readln;
  //сортируем по возрастанию
  for i:=1 to n-1 do
  for j:=1 to n-1 do
  if a[j]>a[j+1] then
     begin
       x:=a[j];a[j]:=a[j+1];a[j+1]:=x;
     end;
  for i:=1 to n do  //выводим для проверки на экран
      write(a[i],' ');
      readln;
  st:=-1; //начало интервала одинаковых чисел
  k:=0;  //обнуляем общее количество одинаковых
  for i:=2 to n+1 do
    begin
      if a[i]=a[i-1] then
       begin
         if st<0 then st:=i-1;  //сдвигаем интервал влево на количество одинаковых
       end
      else
         if st>0 then
          begin
            writeln('el ',a[i-1],' vstr ',i-st,' raz');//выводим сколько одинаковых в интервале
            k:=k+i-st; {obshee kol}  //считаем сколько всего одинаковых
            st:=-1;  //начинаем новый интервал
          end;
    end;
  writeln('k=',k);
  readln
end.
puporev вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в бд KAKTYC SQL, базы данных 3 25.07.2008 13:21
поиск Азамат Microsoft Office Excel 7 18.06.2008 13:44
ПОИСК В БД HOMER БД в Delphi 2 20.12.2007 21:41
Поиск по FTP Averss PHP 4 04.09.2007 20:37
Поиск Andr Microsoft Office Excel 2 18.07.2007 11:49