Написать программу, которая читает с клавиатуры произвольную строку символов, преобразует ее и выводит результ - Pascal
Формулировка задачи:
- Написать программу, которая читает с клавиатуры произвольную строку символов, преобразует ее и выводит результат на дисплей в виде строки.
- Длина строки заранее не вводится, а определяется после окончания ввода с клавиатуры.
- В строке группы символов разделяются одним или несколькими пробелами. Пробелы могут находиться в начале и в конце строки. Группа символов - последовательность букв, цифр или знаков, отделенная пробелами от других групп или находящаяся в начале/конце строки.
- Все буквы считать вводимыми только в нижнем регистре, Заглавные буквы не рассматривать.
- В заголовок окна программы записать свои данные: имя, фамилию и номер варианта.
Примеры возможных строк: ‘ 12.3 tryi yu ()?*‘, ‘ 6е-1 swty +12_3‘
Напечатать:
Группы символов, состоящие только из латинских букв, если в них есть повторяющиеся буквы.
Решение задачи: «Написать программу, которая читает с клавиатуры произвольную строку символов, преобразует ее и выводит результ»
textual
Листинг программы
var
s,t,r:string;
i,j:integer;
b,k:boolean;
a:set of char;
begin
write('Enter text:');
readln(s);
s:=s+' ';
t:='';
r:='';
b:=true;
for i:=1 to length(s) do
if s[i]<>' ' then begin
if s[i] in ['a'..'z'] then t:=t+s[i] else b:=false;
end else begin
a:=[];k:=false;
for j:=1 to length(t) do if t[j] in a then k:=true else include(a,t[j]);
if k and b then r:=r+t+' ';
t:='';b:=true;
end;
writeln('Result:',r);
readln;
end.
Объяснение кода листинга программы
- Объявление переменных:
s,t,r: строки, используются для хранения вводимой строки, временной строки и результата соответственноi,j: целочисленные переменные для использования в циклахb,k: логические переменные для проверки условийa: множество символов (set of char)
- Ввод строки:
- Выводится приглашение
Enter text: - Вводится строка с клавиатуры и сохраняется в переменную
s
- Выводится приглашение
- Инициализация переменных:
- Переменные
tиrинициализируются пустыми строками - Переменная
bустанавливается вtrue
- Переменные
- Цикл обработки строки:
- Проход по символам введенной строки
sс помощью циклаfor - Если текущий символ не является пробелом, то:
- Если символ принадлежит диапазону ['a'..'z'], он добавляется в строку
t - Иначе переменная
bустанавливается вfalse
- Если символ принадлежит диапазону ['a'..'z'], он добавляется в строку
- Если текущий символ является пробелом, то:
- Создается пустое множество
aи устанавливается логическая переменнаяkвfalse - Проход по символам строки
tи проверка, принадлежат ли они множествуa. Если да, тоkустанавливается вtrue, иначе символ добавляется в множествоa - Если
kиbравныtrue, то строкаtдобавляется к строкеrс пробелом - Сброс переменных
tиbв исходное состояние
- Создается пустое множество
- Проход по символам введенной строки
- Вывод результата:
- Вывод строки
Result:с результатом обработкиr - Ожидание ввода для завершения программы с помощью
readln
- Вывод строки