• Предмет: Информатика
  • Автор: uliannaumasheva
  • Вопрос задан 6 лет назад

помогите пожалуйста с информатикой, дам 100 баллов

3 Вариант

Распишите подробно

Приложения:

Mineman801: В первой задаче не понял откуда взялась переменная s... Но в результате работы программы будет 43, если я правильно посчитал

Во второй задаче, если я правильно помню паскаль, то ответом будет 72...

А вообще установи себе на пк паскаль и перепиши прогу туда

Ответы

Ответ дал: Mineman801
1

Ответ:

Я не понял в первом задании что за переменная 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)

Постарался максимально подробно... Но если планируешь сдавать ОГЭ по инфе, то лучше самому такие задачи решать, для начала скачав себе на ПК паскаль, переписывая туда код и потом думать почему ответ такой и как так вышло...

Удачи

Вас заинтересует