Var
s : String;
i : Integer;
begin
Writeln('Введите строку:');
Readln(s);
<span> i:= 0;
</span><span>
while pos(')', s) <> 0 do
</span> begin
<span> i := i + pos(')', s) - pos('(', s) + 1;
</span><span> delete(s, pos('(', s), pos(')', s) - pos('(', s) + 1);
</span> end;
<span>
Writeln(s);
</span> Writeln(i);<span>
Readln;
</span><span>end.
2)
var
s : String;
</span> <span>i, e : Integer;
</span> <span>flag : Boolean;
begin
Writeln('Введите строку:');
Readln(s);
<span>
</span></span> <span>e := 0;
</span> <span>flag := False;
for i := 1 to Length(s) do
</span> <span>begin
</span> <span>if (s[i] = UpCase(s[i])) and ((s[i - 1] = ' ') or ( i = 1 )) then flag := True;
</span> <span>if flag then Write(s[i]);
</span> <span>if (( s[i] = ' ' ) or ( i = Length(s))) and flag then
</span> <span>begin
</span> <span>flag := False;
</span> <span>inc(e);
</span> <span> Writeln;
</span> <span>end;<span>
</span></span> <span>end;
<span> Writeln(e);
</span><span> Readln;
</span>end.</span>
Трагтостроеник не хочу тебя увидеть и я
30048=3•10000 0•1000 0•100 4•10 8•1
97510=9•10000 7•1000 5•100 1•10 0•1
Под локальным максимумом, скорее всего, имеется в виду число, большее
чем оба его соседа, за исключением случая, когда соседом справа является
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.