Найти номер первого символа слова, содержащего максимальное количество букв «а» - 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.

Объяснение кода листинга программы

  1. Создается тип данных arr, который представляет собой массив строк длиной до 127 символов.
  2. Создаются переменные s, i и j, которые будут использоваться для работы с текстом и массивом.
  3. Создается процедура split, которая принимает в качестве параметров дефис и строку s, а также массив a и счетчик count. Внутри процедуры происходит разбиение строки s на отдельные слова, используя дефис как разделитель. Разбитые слова добавляются в массив a с помощью процедуры additem. Счетчик count увеличивается на единицу после каждого добавленного слова.
  4. Создается процедура additem, которая проверяет каждый символ в текущем слове. Если текущий символ совпадает с дефисом, то он добавляется в массив t. После проверки всех символов, слово добавляется в массив a с помощью функции inc, если оно не пустое.
  5. Создается функция CntLet, которая принимает в качестве параметров символ c и строку s. Функция подсчитывает количество слов в строке s, где каждое слово содержит символ c.
  6. В основной части программы происходит следующее:
    • Читается ввод от пользователя.
    • Вызывается процедура split с дефисом в качестве разделителя и полученной строкой в качестве входных данных.
    • Проверяется, есть ли в массиве a какие-либо слова. Если нет, выводится сообщение об отсутствии слов.
    • Инициализируется переменная j для последующего поиска слова с наибольшим количеством букв a.
    • Для каждого слова в массиве a вызывается функция CntLet с символом a в качестве входных данных. Если функция возвращает 0, значит, слово не содержит букву a, и выводится соответствующее сообщение. В противном случае, выводится номер первого символа этого слова.
    • Если после выполнения всех проверок не было найдено ни одного слова с максимальным количеством букв a, выводится сообщение об отсутствии таких слов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы