Форум «Всё о Паскале» _ Теоретические вопросы _ Голова отказываетса понимать алгоритм for? помогите пожалуйсто
Автор: Katucha 8.12.2010 23:50
тихо схожу сума, после завтра на олимпиаду, мне пытаюста впихнуть очередной алгоритм, но голова загружена по некуда..что-то поняла, но вот что сам алгоритм делает нет..
Автор: Client 9.12.2010 0:20
что не понятно? это цикл, который проходит от начального значения до конечного с шагом +1 или -1
Автор: Katucha 9.12.2010 0:23
Цитата(Client @ 8.12.2010 20:20)
что не понятно? это цикл, который проходит от начального значения до конечного с шагом +1 или -1
Да это и не понятно, я его напрочь не понимаю, при каких случаях он используетса
Автор: Client 9.12.2010 0:35
полагаю, что книги все таки читала? цикл for... используется, если заранее известно количество итераций. Например, надо посчитать сумму от 1 до 10
for i := 1 to 10 do S := S + i;
. Здесь каждый раз проверяется условие, если i меньше чем конечное значение то тело цикла выполнится. можно сделать это и через while/repeat...
Автор: Katucha 9.12.2010 0:49
Цитата(Client @ 8.12.2010 20:35)
полагаю, что книги все таки читала? цикл for... используется, если заранее известно количество итераций. Например, надо посчитать сумму от 1 до 10
for i := 1 to 10 do S := S + i;
. Здесь каждый раз проверяется условие, если i меньше чем конечное значение то тело цикла выполнится. можно сделать это и через while/repeat...
книжки только нетовские, посчитать суму от одного до 10 как понимать?
Автор: Freedom 9.12.2010 0:55
Цитата(Katucha @ 8.12.2010 20:49)
книжки только нетовские, посчитать суму от одного до 10 как понимать?
1+2+3+4+5+6+7+8+9+10
Автор: Katucha 9.12.2010 0:56
Цитата(Freedom @ 8.12.2010 20:55)
1+2+3+4+5+6+7+8+9+10
Так уже лутше хоть что-то понимаю, огромное спасибо!
Автор: Freedom 9.12.2010 1:05
Цитата(Katucha @ 8.12.2010 20:56)
Так уже лутше хоть что-то понимаю, огромное спасибо!
http://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5) может это как нибудь поможет. А лучший способ это запустить паскаль и пытаться узнать что же делает этот цикл.
Автор: Katucha 9.12.2010 1:09
Цитата(Freedom @ 8.12.2010 21:05)
http://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5) может это как нибудь поможет. А лучший способ это запустить паскаль и пытаться узнать что же делает этот цикл.
методом научного тыка?Мне обьясняли, я что-то вроде как начала понимать, но потом запуталась, и поэтому не стала рисковать так делать что бы себя ещо больше не загрузить.
Автор: Freedom 9.12.2010 1:18
Цитата(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 9.12.2010 2:34
Цитата(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 9.12.2010 14: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;
Автор: Katucha 9.12.2010 17:26
Цитата(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;
Мм.. спасибо, я уже поняла мне обьяснили, огромное спсибо