Помощь - Поиск - Пользователи - Календарь
Полная версия: Голова отказываетса понимать алгоритм for? помогите пожалуйсто
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Katucha
wacko.gif тихо схожу сума, после завтра на олимпиаду, мне пытаюста впихнуть очередной алгоритм, но голова загружена по некуда..что-то поняла, но вот что сам алгоритм делает нет..
Client
что не понятно?
это цикл, который проходит от начального значения до конечного с шагом +1 или -1
Katucha
Цитата(Client @ 8.12.2010 20:20) *

что не понятно?
это цикл, который проходит от начального значения до конечного с шагом +1 или -1

Да это и не понятно, я его напрочь не понимаю, при каких случаях он используетса
Client
полагаю, что книги все таки читала?
цикл for... используется, если заранее известно количество итераций. Например, надо посчитать сумму от 1 до 10
for i := 1 to 10 do S := S + i;
. Здесь каждый раз проверяется условие, если i меньше чем конечное значение то тело цикла выполнится. можно сделать это и через while/repeat...
Katucha
Цитата(Client @ 8.12.2010 20:35) *

полагаю, что книги все таки читала?
цикл for... используется, если заранее известно количество итераций. Например, надо посчитать сумму от 1 до 10
for i := 1 to 10 do S := S + i;
. Здесь каждый раз проверяется условие, если i меньше чем конечное значение то тело цикла выполнится. можно сделать это и через while/repeat...

книжки только нетовские, посчитать суму от одного до 10 как понимать?
Freedom
Цитата(Katucha @ 8.12.2010 20:49) *

книжки только нетовские, посчитать суму от одного до 10 как понимать?

1+2+3+4+5+6+7+8+9+10
Katucha
Цитата(Freedom @ 8.12.2010 20:55) *

1+2+3+4+5+6+7+8+9+10

Так уже лутше хоть что-то понимаю, огромное спасибо! rolleyes.gif
Freedom
Цитата(Katucha @ 8.12.2010 20:56) *

Так уже лутше хоть что-то понимаю, огромное спасибо! rolleyes.gif

Википедия цикл
может это как нибудь поможет. А лучший способ это запустить паскаль и пытаться узнать что же делает этот цикл.
Katucha
Цитата(Freedom @ 8.12.2010 21:05) *

Википедия цикл
может это как нибудь поможет. А лучший способ это запустить паскаль и пытаться узнать что же делает этот цикл.

методом научного тыка?Мне обьясняли, я что-то вроде как начала понимать, но потом запуталась, и поэтому не стала рисковать так делать что бы себя ещо больше не загрузить.
Freedom
Цитата(Katucha @ 8.12.2010 21:09) *

методом научного тыка?Мне обьясняли, я что-то вроде как начала понимать, но потом запуталась, и поэтому не стала рисковать так делать что бы себя ещо больше не загрузить.

вот допустим вам нужно вывести на экран надпись 'Привет'.
так вот чтотбы не писать
writeln('Привет');
writeln('Привет');
......
writeln('Привет');
writeln('Привет');

Это можно сделать намного проще, тоесть цикл повторяет одно и то же действие.
For i:=1 to 10 do writeln('Привет');

Или тот же пример с суммой чисел от 1 до 10
1)a:=1+2+3+4+5+6+7+8+9+10;
переменной i во время цикла присваивается значение с начала 1, потом 2, потом 3 и т.д
2)For i:=1 to 10 do summa:=summa+i;
в первом примере для того чтобы считало сумму чисел от 1 до 10 нужно к переменной a прибавлять 11+12..,
а в цикле достаточно заменить 10 на 20
Katucha
Цитата(Freedom @ 8.12.2010 21:18) *

вот допустим вам нужно вывести на экран надпись 'Привет'.
так вот чтотбы не писать
writeln('Привет');
writeln('Привет');
......
writeln('Привет');
writeln('Привет');

Это можно сделать намного проще, тоесть цикл повторяет одно и то же действие.
For i:=1 to 10 do writeln('Привет');

Или тот же пример с суммой чисел от 1 до 10
1)a:=1+2+3+4+5+6+7+8+9+10;
переменной i во время цикла присваивается значение с начала 1, потом 2, потом 3 и т.д
2)For i:=1 to 10 do summa:=summa+i;
в первом примере для того чтобы считало сумму чисел от 1 до 10 нужно к переменной a прибавлять 11+12..,
а в цикле достаточно заменить 10 на 20

окей, а если у нас допустим i:=2; то это будет
2+2=4;
4+2=6;
6+2=8 и тд и тп, да? или я тормоз?
TarasBer
А если написать For i:=2 to 10 do summa:=summa+i;

это будет
2+3+4+5+6+7+8+9+10

то есть воспринимай заголовок цикла так:

(for i := ) (2 to 10) do что-то там

Первая часть (for i :=) просто говорит, как будет называться счётчик цикла, вторая (2 to 10) говорит, в каких пределах будет этот счётчик изменяться.

А такое, чтобы вычислить 2+4+6..., уже делается по-другому:
for i := 1 to 5 do summa := summa + i*2;
Katucha
Цитата(TarasBer @ 9.12.2010 11:28) *

А если написать For i:=2 to 10 do summa:=summa+i;

это будет
2+3+4+5+6+7+8+9+10

то есть воспринимай заголовок цикла так:

(for i := ) (2 to 10) do что-то там

Первая часть (for i :=) просто говорит, как будет называться счётчик цикла, вторая (2 to 10) говорит, в каких пределах будет этот счётчик изменяться.

А такое, чтобы вычислить 2+4+6..., уже делается по-другому:
for i := 1 to 5 do summa := summa + i*2;

Мм.. спасибо, я уже поняла мне обьяснили, огромное спсибо
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.