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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2010, 20:42   #1
ilnar21
Пользователь
 
Регистрация: 14.06.2010
Сообщений: 25
По умолчанию нужно исправить программу)

Произвести обход матрицы
вот так
21 22 23 24 25
20 07 08 09 10
19 06 01 02 11
18 05 04 03 12
17 16 15 14 13


Код:
uses crt;
const nmax=20;{???????????? ??????}
var a:array[1..nmax,1..nmax]of integer;{???????}
    n:integer; {?????? ???????}
    i,j,l:integer;{???????? ??? ????????? ?? ???????}
    x,y:integer;  {?????????? ??????}
    num:integer; {????? ? ?????? (??? n=4 ?? 1?? 16)}
    add:integer;  {????? ??????? ?? ???????? ?? ????????}
    dir:integer;  {??? =+1 ??? ???????? ?????? ? ????,
                  =-1 ??? ???????? ????? ? ?????}
begin
clrscr;
repeat
write('n=');readln(n);
until (n>1)and(n<=nmax);{????????? ???????????? }
x:=3;
y:=3;
num:=1;
Add:=n;
dir:=round(1/2)+1;     dir:=(round(l/2)+1)*(-1)
a[3,3]:=num;      l:=1;
while (add<>0) do
begin

  i:=0;
  while (i<(round(l/2)+1)) do {??????}
    begin

    y:=y+dir;
    num:=num+1;
    a[y,x]:=num;
    i:=i+1;
    end;
  i:=0;
  add:=add-1;
  l:=l+1;
  while (i<(round(l/2))) do {?????}
    begin
    x:=x+dir;
    num:=num+1;
    a[y,x]:=num;

    i:=i+1;
    end;

  dir:=dir*(-1); {?????? ???? ? ???? ????? ????? ? ?????}
  l:=l+1;
end;
for i:=1 to n do
   begin
     for j:=1 to n do
     write(a[j, i]:4);
     writeln;
   end;
readln
end.

Последний раз редактировалось ilnar21; 24.10.2010 в 20:44. Причина: #
ilnar21 вне форума Ответить с цитированием
Старый 30.10.2010, 22:42   #2
ilnar21
Пользователь
 
Регистрация: 14.06.2010
Сообщений: 25
По умолчанию )

Вот доделал, но помогите пожалуйста остановить счёт. Попробуйте запустить и посмотреть.

Код:
uses crt;
const nmax=20;{???????????? ??????}
var a:array[1..nmax,1..nmax]of integer;{???????}
    n:integer; {?????? ???????}
    i,j,l,p:integer;{???????? ??? ????????? ?? ???????}
    x,y:integer;  {?????????? ??????}
    num:integer; {????? ? ?????? (??? n=4 ?? 1?? 16)}
    add:integer;  {????? ??????? ?? ???????? ?? ????????}
    dir:integer;  {??? =+1 ??? ???????? ?????? ? ????,
                  =-1 ??? ???????? ????? ? ?????}
begin
clrscr;
repeat
write('n=');readln(n);
until (n>1)and(n<=nmax);{????????? ???????????? }
x:=3;
y:=3;
num:=1;
Add:=n;
dir:=round(1/2)+1;   {  dir:=(round(l/2)+1)*(-1)}
a[3,3]:=num;      l:=1;
while (l<10) do
begin

  i:=0;
  p:=(trunc(l/2)+1);
  while (i<p) do {??????}
    begin

    y:=y+dir;
    num:=num+1;
    a[y,x]:=num;
    i:=i+1;
    end;
  i:=0;
  add:=add-1;
  l:=l+1;
  while (i<(round(l/2))) do {?????}
    begin
    x:=x+dir;
    num:=num+1;
    a[y,x]:=num;

    i:=i+1;
    end;

  dir:=dir*(-1); {?????? ???? ? ???? ????? ????? ? ?????}
  l:=l+1;
end;
for i:=1 to n do
   begin
     for j:=1 to n+1 do
     write(a[j, i]:4);
     writeln;
   end;
readln
end.
ilnar21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно исправить ошибки( basav1k Помощь студентам 3 17.05.2010 22:46
Очень нужно исправить программу в Delphi !!! Grifon_666 Помощь студентам 0 12.05.2010 21:42
нужно исправить ошибку TheVenny Помощь студентам 17 06.11.2008 16:26
Помогите исправить программу нужно очень срочно! Алена Помощь студентам 3 04.11.2007 18:28