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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2011, 17:44   #1
Nikolai17
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 20
По умолчанию вывести графически матрицу квадратную спиралью (график в pascal)

есть готовая прога заполняющая матрицу квадратную по спирали

надо вывести графически.....я вот вывожу а она у меня как то повернута..и при нечетных числах фигня получается
Код:

uses crt,graph;
var
Gd, Gm: Integer;
  a:array[1..10,1..10] of integer;
  i,j:integer;
  p,k:integer;

sum:integer;

b:integer;
   by,l:integer;
k1:integer;

procedure m(n,t:integer);
var i,j:integer;
begin

j:=t;
For i:= n-t+1 downto t do begin
k:=k+1;
a[i,j]:=k;
end;
For i:= t+1 to n-t+1 do begin
k:=k+1;
a[j,i]:=k;
end;
j:=n-t+1;
for i:=t+1 to n-t+1 do begin
k:=k+1;
a[i,j]:=k;
end;
for i:=n-t downto t+1 do begin
k:=k+1;
a[j,i]:=k;
end;
if p mod 2 = 1 then a[p div 2 +1,p div 2 +1] :=k+1;
end;

procedure m2(n,t:integer);
var i,j,x,y:integer;
begin

j:=t;
For i:= n-t+1 downto t do begin
lineto(i*10,j*10);
end;
For i:= t+1 to n-t+1 do begin
k:=k+1;
lineto(j*10,i*10);
end;

j:=n-t+1;
for i:=t+1 to n-t+1 do begin
k:=k+1;
lineto(i*10,j*10);
end;
for i:=n-t downto t+1 do begin
k:=k+1;
lineto(j*10,i*10);
end;
if p mod 2 = 1 then lineto((p div 2 +1)*10,(p div 2 +1)*10) ;
end;



begin

Gd := Detect;
InitGraph(Gd, Gm, '');

RestoreCrtMode;


textcolor(black);
textbackground(white);
clrscr;




writeln(' Enter razmernostb matricbI ne > 10 ');
readln(p);

for i:=1 to p div 2 do begin
m(p,i);
end;

sum:=0;
for i:=1 to p do  begin

 for j:=1 to p do sum:=sum+a[i,j];
end;

writeln('sum= ',sum);


for i:=1 to p do  begin

 for j:=1 to p do write(a[i,j]:6);
   writeln;
 end;


writeln(' pereiti k grafiky enter');
readln;

SetGraphMode(Gm);




for i:=1 to p div 2 do begin
m2(p,i);
end;



readln;

end.






:confused:
Nikolai17 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задано квадратную матрицу /*Oleh*/ Общие вопросы C/C++ 11 08.03.2011 01:18
Задано квадратную матрицу /*Oleh*/ Помощь студентам 5 07.03.2011 18:56
Заполнить квадратную матрицу ac1d_buRn Помощь студентам 3 22.12.2010 19:40