Всё решаемо!

Задача:

Создайте функцию, которая принимает строку и возвращает количество слов, которые начинаются на заданную букву. Pascal.

План:

  • Алгоритм решения
  • Код программы
  • Примеры входных данных и ожидаемых результатов
  • Объяснение кода программы
  • Блок-схема

Алгоритм решения:

  1. Определение функции CountWordsStartingWith, принимающей текст и букву.

  2. Инициализация переменных:

    • count: счетчик слов
    • word: текущее слово
  3. Цикл по каждому символу в тексте:

    • Если символ не пробел, добавить его к текущему слову
    • Если символ пробел:
      • Проверить, начинается ли слово с заданной буквы (без учета регистра)
      • Если да, увеличить счетчик
      • Сбросить текущее слово
  4. После цикла проверить последнее слово:

    • Если оно не пустое и начинается с заданной буквы, увеличить счетчик
  5. Вернуть значение счетчика

  6. В основной программе:

    • Запросить ввод текста
    • Запросить ввод буквы
    • Вызвать функцию CountWordsStartingWith
    • Вывести результат

Код программы на языке Pascal:

Код Pascal
function CountWordsStartingWith(text: string; letter: char): integer;
var
  count, i: integer;
  word: string;
begin
  count := 0;
  word := '';
  
  for i := 1 to Length(text) do
  begin
    if text[i] <> ' ' then
      word := word + text[i]
    else
    begin
      if (Length(word) > 0) and (UpCase(word[1]) = UpCase(letter)) then
        Inc(count);
      word := '';
    end;
  end;
  
  if (Length(word) > 0) and (UpCase(word[1]) = UpCase(letter)) then
    Inc(count);
  
  CountWordsStartingWith := count;
end;

var
  inputText: string;
  startLetter: char;
  result: integer;

begin
  Write('Enter a string: ');
  ReadLn(inputText);
  
  Write('Enter a letter: ');
  ReadLn(startLetter);
  
  result := CountWordsStartingWith(inputText, startLetter);
  
  WriteLn('Number of words starting with ''', startLetter, ''': ', result);
end.

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

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

Примеры входных данных и ожидаемых результатов:

Input:
Enter a string: The quick brown fox jumps over the lazy dog
Enter a letter: t

Output:
Number of words starting with 't': 2

---

Input:
Enter a string: Hello World How Are You
Enter a letter: H

Output:
Number of words starting with 'H': 3

---

Input:
Enter a string: Programming is fun and challenging
Enter a letter: f

Output:
Number of words starting with 'f': 1

---

Input:
Enter a string: Apple Banana Cherry Date Elderberry
Enter a letter: C

Output:
Number of words starting with 'C': 1

---

Input:
Enter a string: ZigZag Zebra Zoo Zeppelin
Enter a letter: z

Output:
Number of words starting with 'z': 4

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

  1. Объявление функции:

    function CountWordsStartingWith(text: string; letter: char): integer;
    Объявляется функция, принимающая строку text и символ letter, возвращающая целое число.

  2. Объявление локальных переменных:

    var
      count, i: integer;
      word: string;
    Объявляются переменные: count для подсчета слов, i для цикла, word для хранения текущего слова.

  3. Инициализация переменных:

    count := 0;
    word := '';
    Счетчик слов и текущее слово обнуляются.

  4. Цикл по символам строки:

    for i := 1 to Length(text) do
    Перебираются все символы входной строки.

  5. Обработка символов:

    if text[i] <> ' ' then
      word := word + text[i]
    else
    begin
      if (Length(word) > 0) and (UpCase(word[1]) = UpCase(letter)) then
        Inc(count);
      word := '';
    end;
    Если символ не пробел, добавляется к текущему слову. Если пробел, проверяется начальная буква слова и увеличивается счетчик при совпадении.

  6. Проверка последнего слова:

    if (Length(word) > 0) and (UpCase(word[1]) = UpCase(letter)) then
      Inc(count);
    Обрабатывается последнее слово, если строка не заканчивается пробелом.

  7. Возврат результата:

    CountWordsStartingWith := count;
    Функция возвращает количество подходящих слов.

  8. Объявление переменных основной программы:

    var
      inputText: string;
      startLetter: char;
      result: integer;
    Объявляются переменные для входных данных и результата.

  9. Ввод данных:

    Write('Enter a string: ');
    ReadLn(inputText);
    
    Write('Enter a letter: ');
    ReadLn(startLetter);
    Пользователь вводит строку и начальную букву.

  10. Вызов функции и вывод результата:

    result := CountWordsStartingWith(inputText, startLetter);
    
    WriteLn('Number of words starting with ''', startLetter, ''': ', result);
    Вызывается функция и выводится результат.

Блок-схема:

Нажмите на изображение, чтобы увеличить

Блок-схема к задаче: Создайте функцию, которая принимает строку и возвращает количество слов, которые начинаются на заданную букву.

Личный кабинет

  1. Приоритетная обработка
    Запросы от пользователей личного кабинета обрабатываются в первую очередь
  2. Бонус за регистрацию
    Стартовый бонус на счёт личного кабинета (~20 запросов), без регистрации - 3 запроса
  3. Все передовые нейросети
    В личном кабинете представлен широкий выбор нейросетей (20+).
  4. Генерация реалистичных изображений
    Midjourney 6.0, Stable Diffusion XL, Dall-E 3, Playground v2.5, Flux.1 Schnell, Flux.1 Dev, Flux.1 Pro, Flux.1.1 Pro, Kolors, Recraft v3, GPT Image 1 (low), GPT Image 1 (medium), GPT Image 1 (high)
  5. Создание музыки
    Нейросеть Suno создает музыку на основе вашего текста
  6. Нет ограничения на количество символов
    Без регистрации вы можете отправить запрос не более 1000 символов
  7. Работа с файлами
    Поддержка всех популярных форматов: pdf, excel, word, powerpoint, odt, c, js, php, py, html, sql, xml, yaml, markdown, txt, json, csv, png, jpeg и другие
Зарегистрироваться
Личный кабинет smartbuddy.ru