Найти номер первого символа слова, содержащего максимальное количество букв «а» - Pascal
Формулировка задачи:
Составить программу для решения предложенной задачи. Дан текст. Слова текста разделены одним или несколькими пробелами. Найти номер первого символа слова, содержащего максимальное количество букв «а».
Решение задачи: «Найти номер первого символа слова, содержащего максимальное количество букв «а»»
textual
Листинг программы
type arr=array[0..127] of string; var s:string; i,j:integer; a:arr; procedure split(delimeter:string;s:string;var sr:arr;var count:integer); var i:integer; t:string; procedure additem; begin if (t<>'') then begin inc(count); sr[count-1]:=t; end; t:=''; end; begin count:=0;t:=''; for i:=1 to length(s) do if pos(s[i],delimeter)=0 then t:=t+s[i] else additem; additem; end; function CntLet(c:char;s:string):integer; var k,l:integer; begin l:=0; for k:=1 to length(s) do if s[k]=c then l:=l+1; CntLet:=l; end; begin write('введите текст:');readln(s); split(' ',s,a,i); if i=0 then writeln('Нет слов') else begin j:=0; for i:=1 to i-1 do if CntLet('a',a[i])>CntLet('a',a[j]) then j:=i; if CntLet('a',a[j])=0 then writeln('Нет слов, содержащих букву "a"') else writeln('номер первого символа слова, содержащего максимальное количество букв "a":',pos(a[j],s)); end; end.
Объяснение кода листинга программы
- Создается тип данных
arr
, который представляет собой массив строк длиной до 127 символов. - Создаются переменные
s
,i
иj
, которые будут использоваться для работы с текстом и массивом. - Создается процедура
split
, которая принимает в качестве параметров дефис и строкуs
, а также массивa
и счетчикcount
. Внутри процедуры происходит разбиение строкиs
на отдельные слова, используя дефис как разделитель. Разбитые слова добавляются в массивa
с помощью процедурыadditem
. Счетчикcount
увеличивается на единицу после каждого добавленного слова. - Создается процедура
additem
, которая проверяет каждый символ в текущем слове. Если текущий символ совпадает с дефисом, то он добавляется в массивt
. После проверки всех символов, слово добавляется в массивa
с помощью функцииinc
, если оно не пустое. - Создается функция
CntLet
, которая принимает в качестве параметров символc
и строкуs
. Функция подсчитывает количество слов в строкеs
, где каждое слово содержит символc
. - В основной части программы происходит следующее:
- Читается ввод от пользователя.
- Вызывается процедура
split
с дефисом в качестве разделителя и полученной строкой в качестве входных данных. - Проверяется, есть ли в массиве
a
какие-либо слова. Если нет, выводится сообщение об отсутствии слов. - Инициализируется переменная
j
для последующего поиска слова с наибольшим количеством буквa
. - Для каждого слова в массиве
a
вызывается функцияCntLet
с символомa
в качестве входных данных. Если функция возвращает 0, значит, слово не содержит буквуa
, и выводится соответствующее сообщение. В противном случае, выводится номер первого символа этого слова. - Если после выполнения всех проверок не было найдено ни одного слова с максимальным количеством букв
a
, выводится сообщение об отсутствии таких слов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д