Решение задачи №2 из главы 12.2
Primary tabs
Задача №2 из главы 12.2
У вас есть программа, использующая цикл while:
var i: integer; begin i:=1; while i<=100 do begin write(i, ' '); i:=i+5; end; readln(); end.1.Объясните что делает эта программа (что будет выведено на экран и почему)
2. Перепешите её с помощью цикла repeat/until
3. Перепешите её с помощью цикла for
Ответы:
1. Цикл While используется для проверки истинности. Если условие истинно то выполняется очередной виток цикла, до тех пор пока условие не станет ложным. Тогда цикл прерывается! И далее выполняется ниже прописанный код.
Выведется на экран следующее: 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
2.
var i:integer; begin i := 1; repeat // начало тела цикла write(i, ' '); i := i + 5; // увеличиваем счетчик на 1 until ( i >= 100); // выход из цикла только если счетчик станет больше n readln(); end.
3.
var i,a:integer; begin for i:=0 to 100 do begin a := i; a := a + 5; write(a, ' '); end; readln(); end.
- Log in to post comments
- 12857 reads
vedro-compota
Sun, 08/26/2018 - 21:47
Permalink
Что неправильно
-- тут есть неточность. Какая?
Сколько раз выполнится ваша программа? А сколько выполнялась исходная? Вы невнимательно пишите код тут. Результат на экране должен быть один и тот же.
_____________
матфак вгу и остальная классика =)
gani84
Tue, 10/02/2018 - 12:23
Permalink
Ответ
1)
Можно убрать знак = так как следующее значение будет 101. И получается условие он не нарушает.
2) Не совсем понимаю как задать так как for просто пересчитывает все числа.
vedro-compota
Mon, 03/25/2019 - 22:33
Permalink
Можно убрать знак = так как
переформулирую - неточность в том смысле, что вы рассматриваете не весь диапазон. Слово "можно" в ответе не подходит. Переделывайте.
_____________
матфак вгу и остальная классика =)
gani84
Tue, 03/26/2019 - 11:54
Permalink
Решение
В принципе он также перебирает диапазон, даже если не убирать знак = .
Но я переделал
vedro-compota
Mon, 03/25/2019 - 22:34
Permalink
думайте
Сам по себе for перебирает числа подряд, но никто не заставляет вас выводить что-то в каждом витке, можно сделать какую-то проверку. Думайте.
_____________
матфак вгу и остальная классика =)
gani84
Wed, 03/27/2019 - 07:50
Permalink
Вопрос
Как получить результат через for, которые были получены через циклы repeat-until и while:
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
Я заметил что числа заканчиваются на 1 и 6
но никак не могу сообразить как задать условие для for
Думаю задать через if и mod, div
Но как это сделать?
gani84
Tue, 08/18/2020 - 12:24
Permalink
Исправил
vedro-compota
Wed, 08/26/2020 - 19:12
Permalink
for i:=1 to 19 do
это 20 раз или 19?
_____________
матфак вгу и остальная классика =)
gani84
Thu, 08/27/2020 - 07:43
Permalink
Ответ
19 раз
vedro-compota
Sat, 08/29/2020 - 20:31
Permalink
сделайте 20
сделайте 20
_____________
матфак вгу и остальная классика =)
gani84
Sun, 08/30/2020 - 10:24
Permalink
Исправил
vedro-compota
Wed, 09/02/2020 - 19:27
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)