Строка - Pascal (97731)
Формулировка задачи:
Написать программу находящую среднюю длину слов в предложении и вывести те слова, которые больше или равны этому значению.(Слова разделены любым количеством пробелов)
Решение задачи: «Строка»
textual
Листинг программы
var tempword,s:string; kol,srd,countword,i:integer; begin writeln('ÈñõîäГ*Г*Гї ñòðîêГ*:'); readln(s); countword:=0; kol:=0; for i:=1 to length(s) do begin if s[i]<>' ' then inc(kol); if ((s[i]=' ') and (s[i-1]<>' ') and (i>1)) or ((i=length(s)) and (s[i]<>' ')) then inc(countword) end; srd:=kol div countword; writeln('ÑðåäГ*ГҐГҐ êîëè÷åñòâî ñèìâîëîâ Гў ñëîâå = ',srd); writeln('ÑëîâГ* áîëüøå ëèáî Г°Г*ГўГ*ûå ýòîìó Г§Г*Г*Г·ГҐГ*ГЁГѕ:'); for i:=1 to length(s) do if s[i]<>' ' then begin tempword:=tempword+s[i]; if (length(tempword)>=srd) and (i=length(s)) then write(tempword,' '); end else if length(tempword)>=srd then begin write(tempword,' '); tempword:='' end; writeln end.
Объяснение кода листинга программы
- Объявлены переменные: tempword, s, kol, srd, countword, i (строки, целые числа)
- Выводится сообщение и считывается строка s
- Инициализируются счетчики kol, countword и i
- Происходит проход по каждому символу строки s
- Если символ не пробел, то увеличивается счетчик kol
- Если текущий символ - пробел, то проверяется предыдущий символ. Если он не пробел и текущий символ не последний в строке, то увеличивается счетчик countword
- Считается количество слов в строке, деленное на количество слов в каждом выделенном фрагменте (srd)
- Выводится значение srd
- Происходит проход по каждому символу строки s
- Если символ не пробел, то добавляется к переменной tempword
- Если длина tempword равна или больше srd и текущий символ - последний в строке, то выводится значение tempword, затем пробел
- Если длина tempword равна или больше srd, то выводится значение tempword, затем пробел, а tempword обнуляется
- Выводится пустая строка
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д