HPC.ru lite - Все форумы
Форум: [OFF] Оффтопики не про КПК
Тема: Помогите составить прогу в Паскале!!!
Страницы: [1] 2

[Ответить]
Damer [15.04.2008 17:17] Помогите составить прогу в Паскале!!!:
Люди, выручайте!! Надо сделать так, шоб заполниласи матрица 10х10 по методу спирали из нижнего левого угла вверх!!! Ну очень нада)
Daess [15.04.2008 23:48] :
10 11 12 13 14 15....
9
8
7
6
5
4
3
2
1

Так?
Damer [15.04.2008 23:48] :
да!!!
Daess [16.04.2008 00:05] :
Имеет значение рациональность кода?
Damer [16.04.2008 00:10] :
желательно, шоб использовались массивы, условные операторы... Использование записей не желательно, но не возбраняется, а так, в принципе, лишь бы работало...
Daess [16.04.2008 00:23] :
Код из Delphi 7:

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

const N = 10;

var i,j,r,c,num,l,t,b: integer;
a: array [1..N,1..N] of integer;
begin
num:=1; c:=1; j:=1;
l:=2; r:=10; t:=1; b:=10;
while (num<=100) do begin
for i:=b downto t do begin
a[i,j]:=num;
inc(num);
end;
inc(i);
for j:=l to r do begin
a[i,j]:=num;
inc(num);
end;
dec(j);
for i:=t+1 to b do begin
a[i,j]:=num;
inc(num);
end;
dec(i);
for j:=r-1 downto l do begin
a[i,j]:=num;
inc(num);
end;
inc(j);
inc(l);
inc(t);
dec(r);
dec(b);
end;
for i:=1 to N do begin
for j:=1 to N do
write(a[i,j],' ');
writeln;
end;
readln;
end.


-------------------------------
Может и офигенски нерационально, но на засыпающую голову что смог
Damer [16.04.2008 00:37] :
Спасибо огромное!!! Но есть небольшая проблема: запускаю прогу на кпк, жму сначала альт+ф9, паскаль выдает "не найден файл sysutils". Если вместо него вписать crt, прога работает неправильно... Проблема в дистрибутиве паскаля или в чем-то другом?
Daess [16.04.2008 00:41] :
Это дельфевый код, возможно вообще uses не нужен... Попробуйте вставить так:

program Project1;

const N = 10;

var i,j,r,c,num,l,t,b: integer;
a: array [1..N,1..N] of integer;
begin
num:=1; c:=1; j:=1;
l:=2; r:=10; t:=1; b:=10;
while (num<=100) do begin
for i:=b downto t do begin
a[i,j]:=num;
inc(num);
end;
inc(i);
for j:=l to r do begin
a[i,j]:=num;
inc(num);
end;
dec(j);
for i:=t+1 to b do begin
a[i,j]:=num;
inc(num);
end;
dec(i);
for j:=r-1 downto l do begin
a[i,j]:=num;
inc(num);
end;
inc(j);
inc(l);
inc(t);
dec(r);
dec(b);
end;
for i:=1 to N do begin
for j:=1 to N do
write(a[i,j],' ');
writeln;
end;
readln;
end.

Damer [16.04.2008 00:44] :
Тогда эта штука работает неправильно(((
Daess [16.04.2008 00:46] :
Не то выводит или не работает вообще?
[Ответить]
[Вперед >]