
Что будет выведено на экран в результате выполнения фрагмента программы: s:=0; For k:=0 to 10 do
begin x:=-10+3*k; if x>0 then s:=s+x; write(x:4); end; writeln(s); Как просчитать S? S должно быть 2077, но я не могу его рассчитать

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

s = 0
k = 0: x = -10+3*0 = -10; x>0 - нет
k = 1: x = -10+3*1 = -7; x>0 - нет
k = 2: x = -10+3*2 = -4; x>0 - нет
k = 3: x = -10+3*3 = -1; x>0 - нет
k = 4: x = -10+3*4 = 2; x>0 - да; s = 0+2 = 2
k = 5: x = -10+3*5 = 5; x>0 - да; s = 2+5 = 7
k = 6: x = -10+3*6 = 8; x>0 - да; s = 7+8 = 15
k = 7: x = -10+3*7 = 11; x>0 - да; s = 15+11 = 26
k = 8: x = -10+3*8 = 14; x>0 - да; s = 26+14 = 40
k = 9: x = -10+3*9 = 17; x>0 - да; s = 40+17 = 57
k = 10: x = -10+3*10 = 20; x>0 - да; s = 57+20 = 77
На экран будут выводиться значения: -10 -7 -4 -1 2 5 8 11 14 17 20
После 20 выведется значение s = 77. Т.е подряд, без пробелов, будут выведены числа 20 и 77.
Значение s = 77.



Давайте разберемся, что происходит в этом фрагменте программы.
Переменная s
инициализируется значением 0, и затем запускается цикл for
, который будет выполняться с k
от 0 до 10 включительно. Внутри цикла выполняются следующие действия:
x
вычисляется как-10 + 3 * k
. Это означает, чтоx
будет принимать следующие значения: -10, -7, -4, -1, 2, 5, 8, 11, 14, 17, 20, по мере увеличенияk
от 0 до 10.Затем проверяется условие
if x > 0
, и еслиx
больше 0, то значениеx
добавляется кs
. В противном случае, ничего не происходит.Затем значение
x
выводится на экран с отступом в 4 символа, что делает вывод более аккуратным.
Теперь давайте посчитаем s
, учитывая вычисленные значения x
:
- -10 не удовлетворяет условию
x > 0
, поэтомуs
остается равным 0. - -7 также не удовлетворяет условию.
- -4 также не удовлетворяет условию.
- -1 также не удовлетворяет условию.
- 2 удовлетворяет условию, поэтому добавляется к
s
, иs
становится равным 2. - 5 удовлетворяет условию и добавляется к
s
, иs
становится равным 7. - 8 удовлетворяет условию и добавляется к
s
, иs
становится равным 15. - 11 удовлетворяет условию и добавляется к
s
, иs
становится равным 26. - 14 удовлетворяет условию и добавляется к
s
, иs
становится равным 40. - 17 удовлетворяет условию и добавляется к
s
, иs
становится равным 57. - 20 удовлетворяет условию и добавляется к
s
, иs
становится равным 77.
Итак, значение s
после завершения цикла равно 77. Оно не равно 2077, как вы утверждаете. Пожалуйста, пересчитайте результаты ваших вычислений, возможно, в коде есть ошибка, которую вы не заметили.


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