Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Увеличение шага цикла For

Автор: Наська 20.04.2007 19:32

помогите:
вопрос вот в чем - можно ли увеличить шаг for'а с одного до 2?
что бы получилась такая строчка 2*4*6*8*... или 1*3*5*7*9*...

Автор: Malice 20.04.2007 19:53

Цитата(Наська @ 20.04.2007 16:32) *

помогите:
вопрос вот в чем - можно ли увеличить шаг for'а с одного до 2?
что бы получилась такая строчка 2*4*6*8*... или 1*3*5*7*9*...

for i:=1 to n do
j:=i*2;
{или}
j:=i*2-1;


J и используй дальше.

Автор: klem4 20.04.2007 23:11

Или как вариант использовать другие виды циклов (while, repeat)

Автор: Наська 21.04.2007 0:02

а вобщем в чем тема -
дано i, если оно четное, то высчитать такой ряд 2*4*..*i, если оно нечетное, то считать 1*3*5*..*i.
уместно ли здесь использовать for. если да, то как?

Автор: volvo 21.04.2007 0:07

Цитата
уместно ли здесь использовать for
Не совсем ... Repeat/Until будет здесь логичнее... Причем, начинать считать надо не с 1, и не с 2. А с самого i - уменьшая его на 2, пока оно не будет меньше единицы.

Автор: Наська 21.04.2007 18:47

вот какую вещ йа делала -
2i? ?- если i-четное, то 2*4*..*i
если не четное, то 1*3*5*..i

//Проверка на четность
if n mod 2 = 0 then
begin
if n = 2 then d := 2
else
begin
d := 1;
repeat
d := d * n;
n := n - 2;
until n = 0;
end;
end;
//Проверка на нечетность
if n mod 2 <> 0 then
begin
if n = 1 then d := 1
else
begin
d := 1;
repeat
d := d * n;
n := n - 2;
until n = 1;
d := d*2
end;
end;

 ! 
Теги надо ставить....
мисс_граффити


Автор: Malice 21.04.2007 20:16

Не понял sad.gif Не тоже самое ?


d := 1;
repeat
d := d * n;
n := n - 2;
until n <= 0;