Как узнать позицию символов в слове не используя string и массивы? - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Как узнать позицию символов в слове не используя string и массивы? Например, вводим слово:

welcome

Потом вводим букву которую нужно найти:

e

После чего, программа выдаст результат:

Позиция буквы e: 2; 7;

Как это можно сделать? Помогите пожалуйста, буду очень благодарен. Со string всё просто, но без него - не получается.

Решение задачи: «Как узнать позицию символов в слове не используя string и массивы?»

textual
Листинг программы
var
  letter : boolean = false;
  key : char = #0;
 
procedure p(lvl : integer = 1);
var ch : char;
begin
  ch := readkey;
  write(ch);
 
  if ch = #13 then
  begin
    if not letter then
    begin
      writeln;
      writeln('Буква:');
      letter := true;
      p(lvl + 1);
    end
  end
  else
  begin
    if letter then
    begin
      key := ch;
      ch := #0;
      readln;
      write('Позиции буквы "', key, '" : ')
    end
    else p(lvl + 1)
  end;
 
  if (key <> #0) and (key = ch) then write(lvl:3);
end;
 
begin
  writeln('Слово: ');
  p();
end.

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

В данном коде используется рекурсивная функция p, которая принимает целочисленный параметр lvl (уровень) и выполняет следующие действия:

  1. Считывает символ из ввода пользователя с помощью функции readkey и сохраняет его в переменной ch.
  2. Выводит символ на экран с помощью функции write.
  3. Если символ равен символу новой строки (#13), то выводит на экран сообщение Буква: и переходит к следующему символу.
  4. Если символ не равен символу новой строки, то проверяет значение переменной letter.
  5. Если переменная letter равна false, то выводит на экран сообщение Буква:, переходит на следующий уровень рекурсии и считывает следующий символ.
  6. Если переменная letter равна true, то сохраняет текущий символ в переменной key и переходит к следующему символу.
  7. Если символ равен символу новой строки, то выводит на экран сообщение Позиции буквы и значение переменной key, затем выводит на экран сообщение : и позицию текущего символа в слове.
  8. Если символ не равен символу новой строки, то вызывает функцию p для следующего символа.
  9. Если значение переменной key не равно текущему символу, то выводит на экран сообщение с номером уровня.
  10. Вызывает функцию p для следующего символа.
  11. Выводит слово, для которого выполняется поиск позиции буквы. Используется также функция readln для считывания всего ввода пользователя в одну строку.

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


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

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

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