Как узнать позицию символов в слове не используя 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 (уровень) и выполняет следующие действия:
- Считывает символ из ввода пользователя с помощью функции readkey и сохраняет его в переменной ch.
- Выводит символ на экран с помощью функции write.
- Если символ равен символу новой строки (#13), то выводит на экран сообщение
Буква:
и переходит к следующему символу. - Если символ не равен символу новой строки, то проверяет значение переменной letter.
- Если переменная letter равна false, то выводит на экран сообщение
Буква:
, переходит на следующий уровень рекурсии и считывает следующий символ. - Если переменная letter равна true, то сохраняет текущий символ в переменной key и переходит к следующему символу.
- Если символ равен символу новой строки, то выводит на экран сообщение
Позиции буквы
и значение переменной key, затем выводит на экран сообщение:
и позицию текущего символа в слове. - Если символ не равен символу новой строки, то вызывает функцию p для следующего символа.
- Если значение переменной key не равно текущему символу, то выводит на экран сообщение с номером уровня.
- Вызывает функцию p для следующего символа.
- Выводит слово, для которого выполняется поиск позиции буквы. Используется также функция readln для считывания всего ввода пользователя в одну строку.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д