Я не понял в первом задании что за переменная 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)
Постарался максимально подробно... Но если планируешь сдавать ОГЭ по инфе, то лучше самому такие задачи решать, для начала скачав себе на ПК паскаль, переписывая туда код и потом думать почему ответ такой и как так вышло...
Удачи
var a, b, l: real;
begin
write('Введите a, b>> ');
read(a, b);
l:=(a+b)/2;
writeln(l);
end.
2)
var a, b: integer;
begin
write('Введите 2 числа>> ');
read(a, b);
if a<b then writeln(a) else writeln(b);
end.
3)
var a1, d, n, sr: real;
begin
write('Введите a1, d>> ');
read(a1, d);
n:=15;
sr:=a1+d*(n-1);
writeln(sr);
end.
4)
var
a, d, p: real;
i: byte;
begin
write('Введите первую сторону>> ');
read(a);
for i:=1 to 8 do
begin
p:=p+a;
a:=a+2;
end;
writeln('P = ', p);
end.