<u>// PascalABC.NET 3.3, сборка 1627 от 27.01.2018</u>
<u>// Внимание! Если программа не работает, обновите версию!</u>
begin
var s:=Arr('первое', 'второе','третье','четвертое','пятое');
var p,r:real;
var c:char;
Write('Введите первое число: '); Readln(r);
for var i:=0 to 3 do begin
Write('Выберите ',s[i], ' действие (a) сложить, b) вычесть,');
Write('c) умножить, d) разделить): '); Readln(c);
Write('Введите ',s[i+1],' число: '); Readln(p);
case c of
'a':r+=p;
'b':r-=p;
'c':r*=p;
'd':r/=p;
end;
Writeln('Результат: ',r)
end
end.
Под локальным максимумом, скорее всего, имеется в виду число, большее
чем оба его соседа, за исключением случая, когда соседом справа является
0. В таком случае достаточно однократно пройтись по всем числам, запоминая минимальное из расстояний между новым и предыдущим обнаруженными максимумами.
Программа (язык Pascal ABC.Net)
var i1,i2,i3:integer;
i:integer;
curr,minr,lastmax:integer;
begin
readln(i1,i2);
i:=2;
minr:=1000000;
repeat
readln(i3);
if (i2>i1) and (i2>i3) and (i3<>0) then begin
curr:=i-lastmax;
if curr<minr then minr:=curr;
lastmax:=i;
end;
i1:=i2;
i2:=i3;
i+=1;
until i2=0;
if minr=1000000 then writeln(0) else writeln(minr); {стоило бы добавить булевую переменную в качестве флага - был ли хоть один max, но вряд ли расстояние между ними превысит миллион :-}
end.
Если у тебя Паскаль, то
if(a div b=0), to a*a
<span>writeln(a);
</span>Но если что это вводный цикл