Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

pascal. Циклы For и while-> Насколько они взаимозаменяемые.

ıIıIİıİIıımusic Гуру (4383), закрыт 9 лет назад
Нужно для защиты лабы. сказал что такое "For" и что такое "While", что они взаимозаменяемы, если известно количество шагов заранее, то лучше "For". А препод говорит: "замени For на While".
Я написал что то вроде:
for i:=1 to n do
While i<= (меньше равно) n do
вообщем не правильно, говорит готовься, завтра приходи. Что скажете, мб как то по другому на вопрос ответить?
ps изучаем поверхностно, сам сильно не разбираюсь. не говорите ничего сложного и углубленного с сложными примерами.
Лучший ответ
Ivan Salauyou Гуру (2556) 9 лет назад
как-то так:

for i:=1 to n do
тело цикла
=>
i:=1;
while (i<=n) do
begin
тело цикла
inc(i);
end;

или

for i:=n downto 1 do
тело цикла
=>
i:=n;
while (i>=1) do
begin
тело цикла
dec(i);
end;

в Вашем ответе преподавателю не указано начальное значение для i и его изменение
по сути у Вас получился бесконечный цикл while

оператор while более универсален, так как можно организовать цикл с шагом, отличным от порядкового типа

любой for можно заменить на while,
но не любой while заменится на for
Остальные ответы
www www Искусственный Интеллект (136226) 9 лет назад
Забыл в свой while добавить inc(i), значек меньше явно лишний...
Еще помни про то что с фор можно не только to но и downto
Алекс Куха Высший разум (471484) 9 лет назад
Может он и придирается, но смысл в том, что в форе уже подразумевается оптимизация использования параметра цикла, а while - общий цикл, подходящий для любых условий его выполнения. Хотя, может препод синтаксис хочет проверить
The Cat Искусственный Интеллект (116172) 9 лет назад
В языке Це конструкция for универсальна:

for ( начальные_значения_переменных_цикла ; условие_продолжения ; изменение_переменных_цикла ) тело_цикла;

В Паскале синтаксис более ограниченный по сравнению с Це.
Похожие вопросы