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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2011, 19:21   #1
Accroach
Новичок
Джуниор
 
Регистрация: 14.05.2011
Сообщений: 2
По умолчанию Максимальное количество квадратов=)

Задача: Найти максимальное количество цветных квадратов одного цвета стоящих рядом, но не по диагонали. Количество квадратов вводится с клавиатуры. Но задача не в этом, нужно подогнать размер окна под размер экрана, так чтобы квадраты были максимально большого размера.
Пробовал, но как то некорректно отображается, с линиями получается, а вот со цветом нет.
Код:
uses GraphABC,Crt;
var  q,i,j,number,k,m,l: integer;
     a,tmp: array[1..102,1..102] of integer;
function Color(i,j,l: integer): integer;
           var n:integer;
           begin
                n:=0;
                if a[i,j+1]=l then
                   begin
                        a[i,j+1]:=0;
                        n:=n+1+color(i,j+1,l);
                   end;
                   
                if a[i,j-1]=l then
                   begin
                        a[i,j-1]:=0;
                        n:=n+1+color(i,j-1,l);
                   end;

                if a[i+1,j]=l then
                   begin
                        a[i+1,j]:=0;
                        n:=n+1+color(i+1,j,l);
                   end;
                   
                if a[i-1,j]=l then
                   begin
                        a[i-1,j]:=0;
                        n:=n+1+color(i-1,j,l);
                   end;
                Result:=n;

            end;

begin
     setwindowwidth(500);
     setwindowheight(700);

     repeat
     writeln('Введите сторону квадрата');
     readln(q);
     if q<=0 then writeln('число должно быть больше нуля')
     until q>0;
     
     for i:=2 to q+1 do
         for j:=2 to q+1 do a[i,j]:= random(10)+1;
               //readln(a[i,j]);
     {for i:=1 to q+2 do
         begin
              for j:=1 to q+2 do write(a[i,j],' ');
              writeln();
         end;}
     for i:=2 to q+1 do
         for j:=2 to q+1 do
         begin
              tmp[i,j]:=RGB(100*a[i,j],50*a[i,j],80*a[i,j]);
              SetBrushColor(tmp[i,j]);
              FillRect(round((i-2)*500/q),(round((j-2)*500/q)+200),round((i-1)*500/q),(round((j-1)*500/q)+200));
         end;
         
     number:=1;
     k:=0;
     
     for i:=2 to q+1 do
         for j:=2 to q+1 do
             begin
                  if a[i,j]<>0 then
                     begin
                          l:=a[i,j];
                          a[i,j]:=0;
                          m:=color(i,j,l)+1;
                          if m=k then number:=number+1;
                          if m>k then
                             begin
                                  if number>1 then number:=1;
                                  k:=m;
                             end;
                     end;
             end;
             
     writeln('Максимальное количество квадратов:',k);
     writeln('Повторяется ', number);
     
end.
Заранее спасибо.


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

Последний раз редактировалось Serge_Bliznykov; 14.05.2011 в 21:26.
Accroach вне форума Ответить с цитированием
Старый 15.05.2011, 20:19   #2
Accroach
Новичок
Джуниор
 
Регистрация: 14.05.2011
Сообщений: 2
По умолчанию

Есть хоть какие-нибудь идеи по проблеме?
Accroach вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти максимальное количество корней для ур. вида ax3+bx2+cx+d cherry097 Паскаль, Turbo Pascal, PascalABC.NET 1 03.10.2010 23:08
число, встречающееся в матрице максимальное количество раз boing Паскаль, Turbo Pascal, PascalABC.NET 5 28.05.2010 10:25
Максимальное количество удаляемых символов в delete? Или все-таки в кащенку? Alex Cones Общие вопросы Delphi 5 26.05.2010 10:55
Дана матрица символов. Определить строку, в которой максимальное количество букв. SilentM Помощь студентам 9 23.05.2009 14:30