Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.06;
Скачать: CL | DM;

Вниз

как реализовать цикл   Найти похожие ветки 

 
прохожий   (2002-12-24 11:33) [0]

Как сделать так, чтобы цикл шел так:

-1
1
-2
2
-3
3
-4
4 и т.д.

т.е. есть точка, если она равна нулю, то двигаемся сначала на шаг влево, затем на шаг вправо. Если не равна нулю то становимся в эту точку.

вот это не работает:

while massiv[e+h] <> 0 do begin
if massiv[e+h] <> 0 then h:=h-1;
if massiv[e-h] <> 0 then h:=h+1;
end;

спасибо!


 
Smithson ©   (2002-12-24 11:39) [1]


var I, J: Integer;

for I := 1 to n do begin
J := I;
// тело цикла первый раз (или вызов процедуры)
J := -I;
// тело цикла второй раз (или вызов процедуры)
end;


А зачем?


 
прохожий   (2002-12-24 11:51) [2]

чтобы отследить номера элементов, содержащих единицу в массиве, ссответственно эти элементы могут идти не подряд лесенкой, а через элемент... массив массивов например такой

1: 000001
2: 000010
3: 001000
4: 010000
5: 100000

нужно сделать так, чтобы можно было бы бегать по этой диагонали из единичек интервалом такой длины, чтобы справа и слева от единички было по одному нолику. Проблема в том, чтобы когда я в первой строчке нахожусь то 4-й элемент массива единица, а когда я в цикле перехожу на следующую строчку, то там уже третий элемент единица...

Соответственно если написать такой код, то оно будет рисовать только три эллипса-точки(а хотелось бы чтобы все пять):

for i:=0 to 10 do begin
for r:=e-1 to e+1 do begin
if (massiv[i,r]=1) then begin
Ellipse(r,i,r+2,i+2);
end;
if (massiv[i,r]=0) then begin
for I := 1 to n do begin
J := I;
if j<0 then h:=h+1;
// тело цикла первый раз (или вызов процедуры)
J := -I;
if j>0 then h:=h-1;
// тело цикла второй раз (или вызов процедуры)
end;
end;
end;
end;

на самом деле вся проблема в том, что единичек, расположенных по диагонали вовсе не 5, а 300-350 и идут они как хочешь...

т.е. такая вот хреновая проблема...


 
myor ©   (2002-12-24 13:02) [3]

а по математике не встречал такую конструкцию:

(-1)^k?

for i:=1 to n do
for j:=1 downto 0 do
x:=i*(-1)^j



 
прохожий   (2002-12-24 14:06) [4]

угу, спасибо myor, конструкцию встречал, но лыжы не едут вообще... :( когда оно надо.



Страницы: 1 вся ветка

Текущий архив: 2003.01.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
7-15344
Rem
2002-10-26 16:52
2003.01.06
Установка своей графической оболочки (вместо explorer.exe)


1-15099
vJet
2002-12-22 21:50
2003.01.06
FileSize


1-14986
Anton Tsvilikh
2002-12-23 21:41
2003.01.06
Вид кнопки вверху окна


3-14931
atmamont
2002-12-12 00:47
2003.01.06
Посоветуйте что использовать для отчетов


6-15190
wmz
2002-11-07 13:02
2003.01.06
Проверка proxy-серверов