Я не понял в первом задании что за переменная s написана в условии, вероятно там опечатка и должно быть написано переменной k, но да ладно...
Объяснение:
Задание 1
Алгоритм начинается с того, что переменной k присваивается значение 4
затем из строчки
for i := 1 to 3 do
мы понимаем, что переменная i последовательно принимает значение от 1 до 3 с шагом 1(то есть 1, 2 и 3), при каждом срабатывании алгоритма
При i равной 1 наш цикл запускается в первый раз и строчка
k := i + 2*k
ни что иное как
k := 1 + 2*4
то есть переменной k присваивается значение 9, затем цикл начинается заново, но переменная i уже имеет значение 2, а переменная k с прошлого раза заимела значение 9, тогда
k := 2 + 2*9
Теперь переменная k имеет значение 20, начинается 3й и последний цикл, где переменная i принимает значение 3, тогда
k := 3 + 2*20
И как итог переменная k примет значение 43, что программа и выведет на экран, согласно строчке
writeln(k)
Задание 2
Программа начинается с того, что переменным Dat[1...10] определённые значение, они указаны в самой программе и целесообразность их переписывания ещё раз стремится к 0
Затем переменной m присваивается значение 0 в строчке
m := 0
Затем начинается цикл for для переменной k, которая является просто номером переменной Dat[]
В этом цикле сравнивается значение переменной Dat[k] с переменной m и, в случае если значение переменной Dat[k] оказывается больше значения переменной m, то переменной m присваивается значение переменной Dat[k]
В первый раз мы сравниваем Dat[1] (ранее мы Dat[1] присвоили значение 56) с m (изначально значение 0)
А так как 56 > 0, то переменной m присваивается значение 56
Это видно из следующих строчек кода:
if Dat[k] > m then
begin
m := Dat[k];
end;
Во второй раз мы работаем уже с переменной Dat[2] (Её значение равно 70)
А так как 70 > 56, то переменной m присваивается значение 70
Далее программа последовательно сравнивает все остальные переменные Dat[3...10], с переменной m, которая имеет значение 70, но так как ни одно из оставшихся значений переменной Dat[k] не превосходит 70, то переменная m больше не меняется, а значит на выходе программа выведет на экран число 70, которое соответствует значению переменной m, что можно увидеть в строчке
writeln(m)
Постарался максимально подробно... Но если планируешь сдавать ОГЭ по инфе, то лучше самому такие задачи решать, для начала скачав себе на ПК паскаль, переписывая туда код и потом думать почему ответ такой и как так вышло...
Answers & Comments
Ответ:
Я не понял в первом задании что за переменная s написана в условии, вероятно там опечатка и должно быть написано переменной k, но да ладно...
Объяснение:
Задание 1
Алгоритм начинается с того, что переменной k присваивается значение 4
затем из строчки
for i := 1 to 3 do
мы понимаем, что переменная i последовательно принимает значение от 1 до 3 с шагом 1(то есть 1, 2 и 3), при каждом срабатывании алгоритма
При i равной 1 наш цикл запускается в первый раз и строчка
k := i + 2*k
ни что иное как
k := 1 + 2*4
то есть переменной k присваивается значение 9, затем цикл начинается заново, но переменная i уже имеет значение 2, а переменная k с прошлого раза заимела значение 9, тогда
k := 2 + 2*9
Теперь переменная k имеет значение 20, начинается 3й и последний цикл, где переменная i принимает значение 3, тогда
k := 3 + 2*20
И как итог переменная k примет значение 43, что программа и выведет на экран, согласно строчке
writeln(k)
Задание 2
Программа начинается с того, что переменным Dat[1...10] определённые значение, они указаны в самой программе и целесообразность их переписывания ещё раз стремится к 0
Затем переменной m присваивается значение 0 в строчке
m := 0
Затем начинается цикл for для переменной k, которая является просто номером переменной Dat[]
В этом цикле сравнивается значение переменной Dat[k] с переменной m и, в случае если значение переменной Dat[k] оказывается больше значения переменной m, то переменной m присваивается значение переменной Dat[k]
В первый раз мы сравниваем Dat[1] (ранее мы Dat[1] присвоили значение 56) с m (изначально значение 0)
А так как 56 > 0, то переменной m присваивается значение 56
Это видно из следующих строчек кода:
if Dat[k] > m then
begin
m := Dat[k];
end;
Во второй раз мы работаем уже с переменной Dat[2] (Её значение равно 70)
А так как 70 > 56, то переменной m присваивается значение 70
Далее программа последовательно сравнивает все остальные переменные Dat[3...10], с переменной m, которая имеет значение 70, но так как ни одно из оставшихся значений переменной Dat[k] не превосходит 70, то переменная m больше не меняется, а значит на выходе программа выведет на экран число 70, которое соответствует значению переменной m, что можно увидеть в строчке
writeln(m)
Постарался максимально подробно... Но если планируешь сдавать ОГЭ по инфе, то лучше самому такие задачи решать, для начала скачав себе на ПК паскаль, переписывая туда код и потом думать почему ответ такой и как так вышло...
Удачи