Var arr : array [1..10] of integer; //Объявляем массив i, min, max : integer; //Индекс, позиция минимального элемента, позиция максимального элемента begin min := 1; max := 1;
for i := 1 to 10 do arr[i] := Random(20) - 10; //Заполняем массив
for i := 2 to 10 do //Находим позицию максимального элемента if arr[i] > arr[max] then max := i;
for i := 2 to 10 do //Находим позицию минимального элемента if arr[i] < arr[min] then min := i;
writeln('Максимальный элемент: ', arr[max], '; его позиция: ', max); writeln('Минимальныйй элемент: ', arr[min], '; его позиция: ', min); end.
Чтобы было удобнее ориентироваться, прикреплю скрин с кодом и буду комментировать каждую строку.
Нумерация - номер строки на скрине.
Значение переменной буду выделять жирным курсивом, комментарии курсивом.
Идем по строкам.
1. Переменной "s1" присваивается значение "0".
s1:=0;
2. Переменной "i" присваивается значение "1".
i:=1;
3. Начинается цикл с постусловием (Repeat-Until). Его особенности:
Выполняется до тех пор, пока условие (until...) ложно.Сначала выполняется цикл и только после этого проверяется условие. То есть даже если условие ложно, то цикл выполнится хотя бы один раз.
Заходим в цикл.
4. Переменной "s1" присваивается выражение:"s1+i*i". Так как нам известны значения всех переменных, подставим их в выражение:
s1:=0+1*1.
Посчитав, получим:
s1:=1.
5. Переменной "i" присваивается значение "i-1". Считаем:
i:=1-1.
i:=0.
6. Дошли до проверки истинности условия.
Для удобства переведем данную конструкцию на алгоритмический язык:
Повторять
...
Пока i <=1.
Понимаем, что цикл "Repeat-Until" будет выполняться, пока условие "i<=1" ложно.
Так как нам известно значение переменной "i", проверим истинность условия:
0<=1.
Так как ноль меньше единицы, то данное условие истинное, следовательно выполнять цикл еще раз не нужно.
7. Переменной "s2" присваивается значение "1".
s2:=1.
8. Переменной "n" присваивается значение "1"
n:=1.
9. Дошли до цикла "For". Данный цикл выполняется до тех пор, пока значение счетчика не достигло заданного максимального значения.
В нашем случае счетчик начинается с двух и цикл должен выполняться до тех пор, пока значение переменной "i" не станет равно значению переменной "n".
Запишем для наглядности на алгоритмическом языке:
Для i = 2 до 1 делать...
Понимаем, что значение переменной "i" уже больше значения переменной "n", поэтому цикл For выполняться не будет.
10. Переменной "s" присваиваем значение выражения "s1+s2". Считаем:
arr : array [1..10] of integer; //Объявляем массив
i, min, max : integer; //Индекс, позиция минимального элемента, позиция максимального элемента
begin
min := 1;
max := 1;
for i := 1 to 10 do
arr[i] := Random(20) - 10; //Заполняем массив
for i := 2 to 10 do //Находим позицию максимального элемента
if arr[i] > arr[max] then
max := i;
for i := 2 to 10 do //Находим позицию минимального элемента
if arr[i] < arr[min] then
min := i;
writeln('Максимальный элемент: ', arr[max], '; его позиция: ', max);
writeln('Минимальныйй элемент: ', arr[min], '; его позиция: ', min);
end.
s = 2.
Объяснение:
Чтобы было удобнее ориентироваться, прикреплю скрин с кодом и буду комментировать каждую строку.
Нумерация - номер строки на скрине.
Значение переменной буду выделять жирным курсивом, комментарии курсивом.
Идем по строкам.
1. Переменной "s1" присваивается значение "0".
s1:=0;
2. Переменной "i" присваивается значение "1".
i:=1;
3. Начинается цикл с постусловием (Repeat-Until). Его особенности:
Выполняется до тех пор, пока условие (until...) ложно.Сначала выполняется цикл и только после этого проверяется условие. То есть даже если условие ложно, то цикл выполнится хотя бы один раз.Заходим в цикл.
4. Переменной "s1" присваивается выражение:"s1+i*i". Так как нам известны значения всех переменных, подставим их в выражение:
s1:=0+1*1.
Посчитав, получим:
s1:=1.
5. Переменной "i" присваивается значение "i-1". Считаем:
i:=1-1.
i:=0.
6. Дошли до проверки истинности условия.
Для удобства переведем данную конструкцию на алгоритмический язык:
Повторять
...
Пока i <=1.
Понимаем, что цикл "Repeat-Until" будет выполняться, пока условие "i<=1" ложно.
Так как нам известно значение переменной "i", проверим истинность условия:
0<=1.
Так как ноль меньше единицы, то данное условие истинное, следовательно выполнять цикл еще раз не нужно.
7. Переменной "s2" присваивается значение "1".
s2:=1.
8. Переменной "n" присваивается значение "1"
n:=1.
9. Дошли до цикла "For". Данный цикл выполняется до тех пор, пока значение счетчика не достигло заданного максимального значения.
В нашем случае счетчик начинается с двух и цикл должен выполняться до тех пор, пока значение переменной "i" не станет равно значению переменной "n".
Запишем для наглядности на алгоритмическом языке:
Для i = 2 до 1 делать...
Понимаем, что значение переменной "i" уже больше значения переменной "n", поэтому цикл For выполняться не будет.
10. Переменной "s" присваиваем значение выражения "s1+s2". Считаем:
s:=1+1.
Итого получаем:
s:=2.
Что и является ответом.