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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2013, 15:56   #1
Марина-1
Новичок
Джуниор
 
Регистрация: 08.12.2013
Сообщений: 2
По умолчанию Дана целочисленная прямоугольная матрица.Упорядочить строки по увеличению количества одинаковых элементов (Паскаль)

Подскажите, пожалуйста. Пишу программу в паскале.Условие такое:
Дана целочисленная прямоугольная матрица.Упорядочить строки заданной матрицы по увеличению количества одинаковых элементов в каждой строке.
Вот код.
Код:
Program First;
const
    m=6;
    n=5;
type 
    TVector=array[1..m] of integer;
    TMatr=array[1..n] of TVector;
var
   A:TMatr;
   B:TVector;
   i,j,temp,temp1,count,sum_count,k:integer;
begin
 writeln ('Write matrix');
 for i:=1 to n do
  for j:=1 to m do                                                       
   begin
    write('A[',i,']','[',j,']=');
    readln(A[i][j]);
   end;
 for i:=1 to n do
  begin
   count:=0;
   sum_count:=0;
   for j:=1 to m-1 do
    begin
      k:=j+1;
      if A[i][j]<>A[i][k] then
       begin
        inc(count);
        inc(k);
       end
      else 
       inc(k);
      sum_count:=m-count;
      B[i]:=sum_count;
    end;
  end;
 for i:=1 to n-1 do
  if B[i]<B[i+1] then
    begin
     temp:=B[i];
     B[i]:=B[i+1];
     B[i+1]:=temp;
     for j:=1 to m do
      begin
       temp1:=A[i][j];
       A[i][j]:=A[i+1][j];
       A[i+1][j]:=temp1;
      end;
    end;
for i:=1 to n do
 begin
  for j:=1 to m do
   write (A[i][j]:6);
   writeln();
 end;
for i:=1 to n do
 write (B[i]:5);
readln;
end.

Последний раз редактировалось Stilet; 08.12.2013 в 16:22.
Марина-1 вне форума Ответить с цитированием
Старый 08.12.2013, 16:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
по увеличению количества одинаковых элементов
А если этих количеств несколько? Т.е. одинаковых элементов несколько разновидностей, например 1 1 2 3 1 3 3. Как тогда?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.12.2013, 16:42   #3
Марина-1
Новичок
Джуниор
 
Регистрация: 08.12.2013
Сообщений: 2
По умолчанию

Программа считает те элементы которые не повторяются ни разу и потом от количества всех элементов отнимается количество неповторяющихся.И остаток это те числа которые повторяются.К примеру если строка 5556633 то число должно быть 7
Марина-1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана целочисленная прямоугольная матрица. Nastasia_NST Помощь студентам 1 10.05.2012 21:23
Дана целочисленная прямоугольная матрица. Lollipo Общие вопросы C/C++ 1 12.10.2010 10:52
дана целочисленная прямоугольная матрица Jet-Tea Общие вопросы C/C++ 9 02.06.2010 16:41
Дана целочисленная прямоугольная матрица... gregorio Помощь студентам 1 22.04.2009 20:27