Var max1,max2,min1,min2,i:integer; ar:array[1..n] of integer; begin max1:=integer.MinValue; max2:=integer.MinValue; min1:=integer.MaxValue; min2:=integer.MaxValue; for i:=1 to n do begin readln(ar[i]); if (ar[i]<max1) and (ar[i]>max2) then max2:=ar[i] else if ar[i]>max1 then begin max2:=max1; max1:=ar[i]; end; if (ar[i]>min1) and (ar[i]<min2) then min2:=ar[i] else if ar[i]<min1 then begin max2:=max1; min1:=ar[i]; end; end; writeln('Сумма максимумов:',max1+max2); writeln('Cумма минимумов:',min1+min2); end.
Пример ввода: 1 2 3 4 5 Пример вывода: Сумма максимумов:9 Cумма минимумов:3
Первая строка присваивает букве а значение, равное двум. Вторая строка задаёт цикл, который мы должны выполнять относительно буквы i. В этой строке мы видим, что для буквы i нам дают значения от 0 до 3 включительно. Эти значения мы и будем поочерёдно в следующую строку. Третья строка даёт формулу для обновления значения буквы а. Из условия нам известно, что а=2, значит, в первый раз в формулу мы подставляем именно эту цифру. а=а + i. В букву i подставляем 0, так как это первое её значение. Что получаем: а=а+i=2+0=2 а так и остаётся равным 2
Далее в эту же формулу ставим следующее значение i, то есть единицу: а=а+i=2+1=3
Теперь надо запомнить, что а в следующий раз будет равно не 2, а уже 3
Считаем дальше, подставляя в i число, идущее после 1, то есть 2: а=а+i=3+2=5
Теперь а равна 5
Сразу после считаем эту же формулу, учитывая, что i=3: а=а+i=5+3=8
ответ:8
Объясню суть: вторая строка данной задачи говорит нам о том, что нам необходимо выполнить цикл, то есть в данную формулу мы будем вносить i равное нулю, потом единице, затем двум, а напоследок и равное трём. Самое главное не забывать, что значение а каждый раз меняется, а ответом на задачку будет последнее, найденное нами, значение буквы а.
:= -эти символы означают "присвоить", они используются в программировании, но если по простому, то это тоже самое, что и равно.
Const
n=5;
Var
max1,max2,min1,min2,i:integer;
ar:array[1..n] of integer;
begin
max1:=integer.MinValue;
max2:=integer.MinValue;
min1:=integer.MaxValue;
min2:=integer.MaxValue;
for i:=1 to n do
begin
readln(ar[i]);
if (ar[i]<max1) and (ar[i]>max2) then max2:=ar[i] else
if ar[i]>max1 then
begin
max2:=max1;
max1:=ar[i];
end;
if (ar[i]>min1) and (ar[i]<min2) then min2:=ar[i] else
if ar[i]<min1 then
begin
max2:=max1;
min1:=ar[i];
end;
end;
writeln('Сумма максимумов:',max1+max2);
writeln('Cумма минимумов:',min1+min2);
end.
Пример ввода:
1
2
3
4
5
Пример вывода:
Сумма максимумов:9
Cумма минимумов:3
Вторая строка задаёт цикл, который мы должны выполнять относительно буквы i.
В этой строке мы видим, что для буквы i нам дают значения от 0 до 3 включительно. Эти значения мы и будем поочерёдно в следующую строку. Третья строка даёт формулу для обновления значения буквы а. Из условия нам известно, что а=2, значит, в первый раз в формулу мы подставляем именно эту цифру. а=а + i.
В букву i подставляем 0, так как это первое её значение.
Что получаем:
а=а+i=2+0=2
а так и остаётся равным 2
Далее в эту же формулу ставим следующее значение i, то есть единицу:
а=а+i=2+1=3
Теперь надо запомнить, что а в следующий раз будет равно не 2, а уже 3
Считаем дальше, подставляя в i число, идущее после 1, то есть 2:
а=а+i=3+2=5
Теперь а равна 5
Сразу после считаем эту же формулу, учитывая, что i=3:
а=а+i=5+3=8
ответ:8
Объясню суть: вторая строка данной задачи говорит нам о том, что нам необходимо выполнить цикл, то есть в данную формулу мы будем вносить i равное нулю, потом единице, затем двум, а напоследок и равное трём. Самое главное не забывать, что значение а каждый раз меняется, а ответом на задачку будет последнее, найденное нами, значение буквы а.
:= -эти символы означают "присвоить", они используются в программировании, но если по простому, то это тоже самое, что и равно.
Надеюсь, я внятно объяснил))