Консультация № 137892
26.05.2008, 20:51
0.00 руб.
0 1 1
здаравствуйте! помогите пожалуйста решить задачу! задача на тему обратотка символьной информации! задача звучит так: оперделить количестово шипящих букв в каждом слове и определить слово в котором етих букв больше!

Обсуждение

Неизвестный
27.05.2008, 15:56
общий
это ответ
Здравствуйте, Коваль Максим Владимирович!

В приложении вариан решения задачи с пояснениями.
Задача работает с русскими буквами, разделитель между словами пробел.

Надеюсь помог.
Удачи.

Приложение:
program ship;uses Crt;{Множество шипящих букв}const cChar: set of char = [‘С‘, ‘с‘, ‘Ш‘, ‘ш‘, ‘Щ‘, ‘щ‘ ];var s,sl,slmax: string; k,kmax,i: integer; begin ClrScr; Writeln(‘Vvedite stroku: ‘); Readln(s); kmax:=0; if s[1]=‘ ‘ then Delete(s,1,1); {Первый символ пробел} if s[Length(s)]=‘ ‘ then Delete(s,Length(s),1); {последний символ пробел} Writeln; While s<>‘‘ do {проверяем, что строка не пусая} begin if Pos(‘ ‘,s)>0 then {копируем подстроку до первого пробела} begin {в sl и удаляем её из основной строки} sl:=Copy(s, 1, Pos(‘ ‘, s)-1); Delete(s, 1, Pos(‘ ‘, s)); end else {если пробелов нет} begin sl:=s; s:=‘‘; end; {нашли очередное слово - sl} Write(sl); k:=0; for i:=1 to Length(sl) do {считаем кол-во шипящих букв} if sl[i] in cChar then Inc(k); Writeln(‘ = ‘,k); {выводим кол-во шипящих букв} if k>kmax then {ищем строку с макс. кол-ом шипящих букв} begin kmax:=k; slmax:=sl; end; end; Writeln; Writeln(‘max: ‘,slmax); Readln;end.
Форма ответа