Помогите составить прогу в Паскале!!!

Обсуждаем вопросы, не касающиеся КПК. Только для постоянных участников форумов.
Аватара пользователя
Damer
Академик (6 lvl)
Сообщения: 1038
Зарегистрирован: Сб окт 13, 2007 21:40

Помогите составить прогу в Паскале!!!

Сообщение Damer » Вт апр 15, 2008 17:17

Люди, выручайте!! Надо сделать так, шоб заполниласи матрица 10х10 по методу спирали из нижнего левого угла вверх!!! Ну очень нада)
Не нае...ь - не проживешь...

Аватара пользователя
Daess
Нобелевский лауреат (7 lvl)
Сообщения: 4281
Зарегистрирован: Пт сен 02, 2005 19:51

Сообщение Daess » Вт апр 15, 2008 23:48

10 11 12 13 14 15....
9
8
7
6
5
4
3
2
1

Так?
MacBook Pro 13" + new iPad 32Gb/4G + iPhone 5s + Klipsch Image x10i

Аватара пользователя
Damer
Академик (6 lvl)
Сообщения: 1038
Зарегистрирован: Сб окт 13, 2007 21:40

Сообщение Damer » Вт апр 15, 2008 23:48

да!!!
Не нае...ь - не проживешь...

Аватара пользователя
Daess
Нобелевский лауреат (7 lvl)
Сообщения: 4281
Зарегистрирован: Пт сен 02, 2005 19:51

Сообщение Daess » Ср апр 16, 2008 00:05

Имеет значение рациональность кода?
MacBook Pro 13" + new iPad 32Gb/4G + iPhone 5s + Klipsch Image x10i

Аватара пользователя
Damer
Академик (6 lvl)
Сообщения: 1038
Зарегистрирован: Сб окт 13, 2007 21:40

Сообщение Damer » Ср апр 16, 2008 00:10

желательно, шоб использовались массивы, условные операторы... Использование записей не желательно, но не возбраняется, а так, в принципе, лишь бы работало...
Не нае...ь - не проживешь...

Аватара пользователя
Daess
Нобелевский лауреат (7 lvl)
Сообщения: 4281
Зарегистрирован: Пт сен 02, 2005 19:51

Сообщение Daess » Ср апр 16, 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.



-------------------------------
Может и офигенски нерационально, но на засыпающую голову что смог:)
MacBook Pro 13" + new iPad 32Gb/4G + iPhone 5s + Klipsch Image x10i

Аватара пользователя
Damer
Академик (6 lvl)
Сообщения: 1038
Зарегистрирован: Сб окт 13, 2007 21:40

Сообщение Damer » Ср апр 16, 2008 00:37

Спасибо огромное!!! Но есть небольшая проблема: запускаю прогу на кпк, жму сначала альт+ф9, паскаль выдает "не найден файл sysutils". Если вместо него вписать crt, прога работает неправильно... Проблема в дистрибутиве паскаля или в чем-то другом?
Не нае...ь - не проживешь...

Аватара пользователя
Daess
Нобелевский лауреат (7 lvl)
Сообщения: 4281
Зарегистрирован: Пт сен 02, 2005 19:51

Сообщение Daess » Ср апр 16, 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.
MacBook Pro 13" + new iPad 32Gb/4G + iPhone 5s + Klipsch Image x10i

Аватара пользователя
Damer
Академик (6 lvl)
Сообщения: 1038
Зарегистрирован: Сб окт 13, 2007 21:40

Сообщение Damer » Ср апр 16, 2008 00:44

Тогда эта штука работает неправильно(((
Не нае...ь - не проживешь...

Аватара пользователя
Daess
Нобелевский лауреат (7 lvl)
Сообщения: 4281
Зарегистрирован: Пт сен 02, 2005 19:51

Сообщение Daess » Ср апр 16, 2008 00:46

Не то выводит или не работает вообще?
MacBook Pro 13" + new iPad 32Gb/4G + iPhone 5s + Klipsch Image x10i

Аватара пользователя
Damer
Академик (6 lvl)
Сообщения: 1038
Зарегистрирован: Сб окт 13, 2007 21:40

Сообщение Damer » Ср апр 16, 2008 00:48

Выводит первый столбец правильно, потом вторую строку до 17, первая - нули, потом еще какие-то строки по возрастанию.... Присутствуют также еще нулевые строки
Не нае...ь - не проживешь...

Аватара пользователя
Daess
Нобелевский лауреат (7 lvl)
Сообщения: 4281
Зарегистрирован: Пт сен 02, 2005 19:51

Сообщение Daess » Ср апр 16, 2008 00:50

Разобрался, это из-за оптимизации компилятора Delphi. Такой вариант должен работать:

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;
for j:=l to r do begin
a[i,j]:=num;
inc(num);
end;
for i:=t+1 to b do begin
a[i,j]:=num;
inc(num);
end;
for j:=r-1 downto l do begin
a[i,j]:=num;
inc(num);
end;
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.
MacBook Pro 13" + new iPad 32Gb/4G + iPhone 5s + Klipsch Image x10i

Аватара пользователя
Damer
Академик (6 lvl)
Сообщения: 1038
Зарегистрирован: Сб окт 13, 2007 21:40

Сообщение Damer » Ср апр 16, 2008 00:55

Все, работает!! Спасибо еще раз огромное)))
Не нае...ь - не проживешь...

Аватара пользователя
Daess
Нобелевский лауреат (7 lvl)
Сообщения: 4281
Зарегистрирован: Пт сен 02, 2005 19:51

Сообщение Daess » Ср апр 16, 2008 09:06

maxzdv, да я такой:)
MacBook Pro 13" + new iPad 32Gb/4G + iPhone 5s + Klipsch Image x10i

Аватара пользователя
Darkcat
Темная личность
Сообщения: 22508
Зарегистрирован: Чт янв 13, 2005 12:38

Сообщение Darkcat » Ср апр 16, 2008 20:24

Если помудрить с типами данных можно сократить код в 2 раза. А если сильно помудрить с векторами - то в 3-4 раза...
Нет, только не кошки. Не верь им. Их глаза. Их глаза. Они знают слишком много.
Нешто спи обратно.

Закрыто

Вернуться в «[OFF] Оффтопики не про КПК»