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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2009, 19:41   #1
Deep-Minimal
Пользователь
 
Регистрация: 29.06.2009
Сообщений: 20
По умолчанию Массивы

Прошу помочь с заданием:

Задан двумерный массив NxM в котором элемент A[i] [j]=1, если клетка [i] [j] принадлежит какому либо прямоугольнику, и А [i] [j]=0 в противном случае (не принадлежит). НАписать программу, подсчитывающую кол-во прямоугольников.
Deep-Minimal вне форума Ответить с цитированием
Старый 29.06.2009, 20:08   #2
ai\ekcah^p
Форумчанин
 
Аватар для ai\ekcah^p
 
Регистрация: 03.05.2009
Сообщений: 112
По умолчанию

Код:
Var
  A: Array[1..100,1..100] Of Byte;
  m,i,j,sum:Byte;
Begin
  Write('Задайте размерность матрицы: ');
  ReadLn(m);
  WriteLn('Укажите элементы массива (0 или 1)');
  For i:=1 To m Do
   For j:=1 To m Do
   Begin
    Write('A[', i, ',', j,']:=');
    ReadLn(A[i,j]);
   End;
  WriteLn('Исходный массив:');
  For i:=1 To m Do
   Begin
     For j:=1 To m Do
       Write(A[i,j]:2);
     WriteLn;
   End;
  sum:=0; {Начальное количество прямоугольников.}
  For i:=1 To m-1 Do 
   For j:=1 To m-1 Do
      If A[i,j]=1 Then {В этой клетке есть единица.}
        If i=1 Then  {Эта единица в первой строке.}
          Begin  {И дополнительно в первом столбце.}
           If j=1 Then sum:=sum+1 {Это левый верхний угол.}
           Else {Проверим клетку левее, и если она пуста,}
             If A[i,j-1]=0 Then sum:=sum+1; {то это левый верхний угол.}
          End
        Else {Единица не в первой строке.}
          Begin
           If j=1 Then {Если она в первом столбце}
             Begin {и если клетка выше пустая, то}
              If A[i-1,j]=0 Then sum:=sum+1 {это левый верхний угол.}
             End
           Else {Единица не в первом столбце и не в первой строке.}
                {Проверяем клетки выше и левее текущей.}
             If (A[i,j-1]=0) And (A[i-1,j]=0) Then sum:=sum+1;
          End;
  WriteLn('Количество прямоугольников = ',sum);
End.
ai\ekcah^p вне форума Ответить с цитированием
Старый 29.06.2009, 20:36   #3
Deep-Minimal
Пользователь
 
Регистрация: 29.06.2009
Сообщений: 20
По умолчанию

СПАСИБО ОГРОМНЕЙШЕЕ!!!!!
Очень помогли!!!
Deep-Minimal вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Массивы Ximer Паскаль, Turbo Pascal, PascalABC.NET 7 14.04.2009 15:02
массивы -ushёl- Помощь студентам 14 07.03.2009 21:35
Массивы stim-12 Помощь студентам 4 11.01.2009 00:18