Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 14.03.2011, 22:18   #1
poison777
Пользователь
 
Регистрация: 18.09.2010
Сообщений: 17
Сообщение В квадратной матрице необходимо определить количество строк состоящих из равных элементов

В квадратной матрице необходимо определить количество строк состоящих из равных элементов. вот что написала:
Код:
program Project1;

   {$APPTYPE CONSOLE}

    uses
  SysUtils;

const n=5;
type TVector=array[1..n] of integer;
     GVector=array[1..n] of TVector;

     var a:GVector; G, j, i:integer;
     Function Kolich(a:GVector):integer;
     var i,j,n, L:integer;
       begin
       L:=n; {количество строк сост из разных элементов}
       for i:=1 to n do j:=2;
         begin
         while j<>n do
          if a[i,j-1]<>a[i,j] then begin
            j:=n;
            L:=L-1
            else j:=j+1 end;

         end;
         Kolich:=L;
       end;


begin
  { TODO -oUser -cConsole Main : Insert code here }
  for i:=1 to n do
   begin;
    for j:=1 to n do
    Writeln('vvedite',i,'yi',j,'yi','symvol');
    read(a[i,j]);
   end;
   G:= Kolich(a);
   Writeln('kolichestvo strok=',G);
   readln;
   readln;
end.
ошибка в самой функции, помогите пожалуйста, туплю

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 15.03.2011 в 00:27.
poison777 вне форума Ответить с цитированием
Старый 15.03.2011, 01:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

1)
Цитата:
количество строк состоящих из равных элементов
Цитата:
Код:
 L:=n; {количество строк сост из разных элементов}
Вам не кажется, что это немного разные понятия?!

2) в цикле у Вас выполняется ТОЛЬКО один оператор:
Цитата:
Код:
     for i:=1 to n do j:=2;
         begin
остальное уже НЕ В ЦИКЛЕ.

и последнее.
попробуйте такой вариант:
Код:
    Function Kolich(a:GVector):integer;
    var i,j,n, L:integer;
    begin
      L:=n; {количество строк сост из разных элементов}
      for i:=1 to n do 
        begin
          j:=2;
          while (j<=n) do 
          begin
            if a[i,1]<>a[i,j] then begin
              j:=n+1; {это чтобы прервать цикл}
              L:=L-1
            end;
            j:=j+1 
          end;
        end;
      Kolich:=L;
    end;
писал прямо тут и не проверял.

Последний раз редактировалось Serge_Bliznykov; 15.03.2011 в 01:23.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.03.2011, 08:29   #3
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

вроде код правильно написал Serge,
только вот интересно зачем тип было объявлять так:

TVector=array[1..n] of integer;
GVector=array[1..n] of TVector;

не проще ли просто

GVector=array[1..n,1..n] of integer; ?

и вот тут ошибочка

Код:
for i:=1 to n do
   begin;
    for j:=1 to n do
    Writeln('vvedite',i,'yi',j,'yi','symvol');
    read(a[i,j]);
   end;
надо так

Код:
for i:=1 to n do
    for j:=1 to n do
      begin
    Writeln('vvedite',i,'yi',j,'yi','symvol');
    read(a[i,j]);
   end;
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 15.03.2011, 18:41   #4
poison777
Пользователь
 
Регистрация: 18.09.2010
Сообщений: 17
По умолчанию

Спасибо огромное=) а массив объявлять нас так прост учат
poison777 вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме от 7000 рублей в месяц



Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчитать в матрице количество элементов в строке, больше заданной величины (Турбо Паскаль) Дмитрий1992 Паскаль, Turbo Pascal, PascalABC.NET 4 21.12.2010 15:37
посчитать количество строк в матрице M*N Таняпервокурсница Помощь студентам 4 03.06.2010 17:30
поиск элементов в матрице, не равных нулю ciaonataha Общие вопросы C/C++ 37 29.03.2009 20:29
Дан массив из N элементов (чисел),определить количество элементов кратных 3. Woha Общие вопросы C/C++ 2 08.12.2008 13:12


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Скидки на курсы GeekBrains 40%, выбирайте программу для себя