Переписать введенные буквы в алфавитном порядке, а числа в порядке возрастания - Pascal
Формулировка задачи:
Ввести последовательность, состоящая из букв латинского алфавита и целых чисел, меньших 50 Переписать введенные буквы в алфавитном порядке, а числа в порядке возрастания.
Решение задачи: «Переписать введенные буквы в алфавитном порядке, а числа в порядке возрастания»
textual
Листинг программы
{Переписать введенные буквы в алфавитном порядке, а числа в порядке возрастания. }
var
s: string;
x: set of char;
y: set of byte;
i: byte;
ch: char;
value, err: integer;
begin
x := [];
y := [];
for i := 1 to 5 do
begin
readln(s);
val(s, value, err);
if err = 0 then
include(y, value)
else
if s[1] in ['A'..'Z', 'a'..'z'] then
include(x, s[1]);
end;
writeln('Буквы:');
for ch := #32 to #255 do
if ch in x then
write(x:4);
writeln;
writeln('Числа:');
for i := 0 to 255 do
if i in y then
write(y:4);
readln;
end.
Объяснение кода листинга программы
- Создается переменная
sдля хранения введенной строки. - Создаются переменные
xиy- множества символов и байтов соответственно. - Создается переменная
iдля использования в циклах. - Создается переменная
chдля хранения текущего символа в цикле. - Создается переменная
valueдля хранения числового значения. - Создается переменная
errдля хранения кода ошибки в функции val. - Инициализируется пустое множество
x, иy. - Производится ввод 5 строк с клавиатуры и последующая обработка этих строк в цикле.
- Проверяется, является ли введенное значение числом (при помощи функции
val). Если да, добавляется в множествоy. - Если значение не является числом, проверяется, является ли первый символ строки буквой. Если да, добавляется в множество
x. - Выводятся все буквы, отсортированные в алфавитном порядке.
- Выводятся все числа, отсортированные в порядке возрастания.
- Программа ожидает ввода пользователя перед завершением.