program Project1; const //Множество разделителей слов. D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13]; var S, StrW, StrWMax : String; i, Pos1, Len, LenW, LenWMax, Cnt : Integer; begin repeat Writeln('Задайте текст:'); Readln(S); //Обработка текста. Len := Length(S); LenWMax := 0; StrWMax := ''; Cnt := 0; Pos1 := 0; for i := 1 to Len do begin //Пропускаем разделители. if S[i] in D then Continue; //Отслеживаем начало слова. if (i = 1) or (S[i - 1] in D) then Pos1 := i; //Отслеживаем конец слова. if (i = Len) or (S[i + 1] in D) then begin //Вычисляем длину слова. LenW := i - Pos1 + 1; //Выделяем слово. StrW := Copy(S, Pos1, LenW); //Если слово совпадает с текущим наибольшим по длине, //тогда увеличиваем счётчик. if StrW = StrWMax then begin Cnt := Cnt + 1; end else if LenW > LenWMax then begin //Если это очередное слово длиннее всех ранее найденных слов, то //запоминаем его и его длину и сбрасываем счётчик. StrWMax := StrW; LenWMax := LenW; Cnt := 1; end; end; end; //Показываем результат. if StrWMax <> '' then begin Writeln('Первое из самых длинных слов: "', StrWMax, '".'); Writeln('Это слово встречается в тексе ', Cnt, ' раз.'); end else begin Writeln('В строке нет слов.'); end; Writeln('Повторить - Enter, выход - любой символ + Enter.'); Readln(S); until S <> ''; end.
Var a: array[1..10] of integer; b: array[1..10] of real; i,n: integer; s: real; begin s:=0; n:=0; write('массив a: '); for i:=1 to 10 do begin read(a[i]); if a[i]<0 then begin s:=s+a[i]; n:=n+1; end; write(a[i],' '); end; s:=s/n; writeln; writeln('среднее арифметическое отрицательных: ',s); writeln('количество отрицательных: ',n); write('массив b: '); for i:=1 to 10 do begin if a[i]<0 then b[i]:=s else b[i]:=a[i]; write(b[i]:7:3); end; end.
Находит саммое длинное слово
b: array[1..10] of real;
i,n: integer;
s: real;
begin
s:=0; n:=0;
write('массив a: ');
for i:=1 to 10 do
begin
read(a[i]);
if a[i]<0 then
begin
s:=s+a[i];
n:=n+1;
end;
write(a[i],' ');
end;
s:=s/n;
writeln;
writeln('среднее арифметическое отрицательных: ',s);
writeln('количество отрицательных: ',n);
write('массив b: ');
for i:=1 to 10 do
begin
if a[i]<0 then b[i]:=s
else b[i]:=a[i];
write(b[i]:7:3);
end;
end.
массив a: 2 2 -3 1 -5 -6 -5 9 -7 5
среднее арифметическое отрицательных: -5.2
количество отрицательных: 5
массив b: 2.000 2.000 -5.200 1.000 -5.200 -5.200 -5.200 9.000 -5.200 5.000