
Помогите пожалуйста срочно!!! Определите значение переменных s и i после выполнения следующих
операторов:s:=0;i:=3; repeat s:=s+i; i:=i+2; until i>10;writeln('s= ', s);writeln('i= ', i);

Ответы на вопрос

бро, я в 5 классе... но раз ты так хочешь..
Теория
div - это целочисленное деление. Это значит что при деление на числа, остаток отбрасывается.
Пример (10 div 3):
1. Если мы просто разделим 10 на 3, то мы получим 3.3333. При деление целочисленным делением (div-ом), дробная часть отбрасывается. И ответ будет просто 3.
Вот еще примеры:
2 div 2 = 1 | (2 / 2 = 0)
2 div 3 = 0 | (2 / 3 = 0.66)
5 div 3 = 1 | (5 / 3 = 2)
13 div 6 = 2 | (13 / 6 = 2.16)
Решение
Изначально s = 0, а i = 3
Цикл repeat-until означает что цикл будет совершаться, пока условие в until не будет выполнено.
Мы попадаем в цикл. Сначала выполняется s + 5, что будет равно 5, а после выполняется div с i: 5 div 3. Мы получаем ответ 1 и это же значение заносится в переменную s. От переменной i отнимается 1 и оно становится 2.
После итерации цикла, происходит проверка условия until. Так как 2 не меньше 1, цикл вновь запускается
Вторая итерация. s уже равна 1, значит: 1 + 5 div 2 -> 6 div 2 -> 3. s = 3. От i опят отнимается единица.
Опять завершаем цикл и проверяем условие 1 не меньше 1 (они равны), значит будет еще одна итерация.
Третья итерация. s = 3, значит 3 + 5 div 1 -> 8 div 1 -> 8. В s заносится 8. От i отнимаем 1 и i = 0
Так как 0 < 1, условие выполняется и мы выходим из цикла. Программа завершена. В s находится цифра 8, в i лежит 0



Давайте разберём, что происходит в этом коде:
s := 0;
- Инициализация переменнойs
значением 0.i := 3;
- Инициализация переменнойi
значением 3.repeat
- Начало цикла repeat-until.s := s + i;
- К текущему значениюs
добавляется значениеi
.i := i + 2;
- К текущему значениюi
добавляется 2.until i > 10;
- Проверка, завершается ли цикл. Цикл завершится, когдаi
будет больше 10.- Если
i
меньше или равно 10, то выполнение цикла повторяется с шага 4. - Как только
i
становится больше 10, цикл завершается. writeln('s= ', s);
- Вывод значенияs
.writeln('i= ', i);
- Вывод значенияi
.
Теперь давайте выполним операции:
- Изначально
s
равно 0, аi
равно 3. - Внутри цикла
s
увеличивается наi
, то есть 3, и становится 3. - Затем
i
увеличивается на 2 и становится равным 5. - Цикл повторяется снова, и
s
становится равным 8, аi
равно 7. - Цикл повторяется снова, и
s
становится равным 15, аi
равно 9. - Последний шаг цикла увеличивает
i
на 2, иi
становится равным 11. - Теперь условие
i > 10
истинно, и цикл завершается.
После завершения цикла:
s
будет равно 15.i
будет равно 11.
Итак, вывод на экран будет следующим:
makefiles= 15 i= 11


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili