Задача:
Напишите программу, которая принимает строку и определяет, содержит ли она все буквы алфавита. Pascal ABC.
План:
- Алгоритм решения
- Код программы
- Примеры входных данных и ожидаемых результатов
- Объяснение кода программы
- Блок-схема
Алгоритм решения:
-
Инициализация:
- Объявление переменных:
input
(строка),alphabet
(множество символов),i
(счетчик),result
(булево значение). - Запрос ввода строки от пользователя.
- Инициализация множества
alphabet
всеми буквами нижнего регистра от 'a' до 'z'. - Установка начального значения
result
вtrue
.
- Объявление переменных:
-
Обработка строки:
- Цикл по каждому символу введенной строки:
- Если символ - строчная буква, удалить её из множества
alphabet
. - Если символ - заглавная буква, преобразовать в строчную и удалить из
alphabet
.
- Если символ - строчная буква, удалить её из множества
- Цикл по каждому символу введенной строки:
-
Проверка результата:
- Если множество
alphabet
не пусто, установитьresult
вfalse
.
- Если множество
-
Вывод результата:
- Если
result
равноtrue
, вывести сообщение о наличии всех букв алфавита. - Иначе вывести сообщение об отсутствии всех букв алфавита.
- Если
Код программы на языке Pascal ABC:
Код Pascal ABC
program AlphabetChecker;
var
input: string;
alphabet: set of char;
i: integer;
result: boolean;
begin
Write('Enter a string: ');
ReadLn(input);
alphabet := ['a'..'z'];
result := true;
for i := 1 to Length(input) do
begin
if (input[i] >= 'a') and (input[i] <= 'z') then
Exclude(alphabet, input[i])
else if (input[i] >= 'A') and (input[i] <= 'Z') then
Exclude(alphabet, Chr(Ord(input[i]) + 32));
end;
if alphabet <> [] then
result := false;
if result then
WriteLn('The string contains all letters of the alphabet.')
else
WriteLn('The string does not contain all letters of the alphabet.');
end.
Примеры входных данных и ожидаемых результатов:
Input: "The quick brown fox jumps over the lazy dog"
Output: The string contains all letters of the alphabet.
Input: "The quick brown fox jumps over the lazy cat"
Output: The string does not contain all letters of the alphabet.
Input: "abcdefghijklmnopqrstuvwxyz"
Output: The string contains all letters of the alphabet.
Input: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Output: The string contains all letters of the alphabet.
Input: "This is a test sentence"
Output: The string does not contain all letters of the alphabet.
Input: "Pack my box with five dozen liquor jugs"
Output: The string contains all letters of the alphabet.
Input: "Hello, World!"
Output: The string does not contain all letters of the alphabet.
Input: "The five boxing wizards jump quickly"
Output: The string contains all letters of the alphabet.
Объяснение кода программы:
-
Объявление переменных:
Объявляются переменные:var input: string; alphabet: set of char; i: integer; result: boolean;
input
для хранения введенной строки,alphabet
для хранения множества букв алфавита,i
для использования в цикле иresult
для хранения результата проверки. -
Ввод строки:
Программа выводит приглашение и считывает введенную пользователем строку в переменнуюWrite('Enter a string: '); ReadLn(input);
input
. -
Инициализация переменных:
Множествоalphabet := ['a'..'z']; result := true;
alphabet
инициализируется всеми строчными буквами английского алфавита. Переменнаяresult
изначально устанавливается вtrue
. -
Обработка введенной строки:
Цикл проходит по каждому символу введенной строки. Если символ - строчная буква, она удаляется из множестваfor i := 1 to Length(input) do begin if (input[i] >= 'a') and (input[i] <= 'z') then Exclude(alphabet, input[i]) else if (input[i] >= 'A') and (input[i] <= 'Z') then Exclude(alphabet, Chr(Ord(input[i]) + 32)); end;
alphabet
. Если символ - заглавная буква, она преобразуется в строчную и удаляется изalphabet
. -
Проверка наличия всех букв:
Если после обработки строки множествоif alphabet <> [] then result := false;
alphabet
не пусто, значит не все буквы алфавита были найдены, иresult
устанавливается вfalse
. -
Вывод результата:
В зависимости от значенияif result then WriteLn('The string contains all letters of the alphabet.') else WriteLn('The string does not contain all letters of the alphabet.');
result
, выводится соответствующее сообщение о наличии или отсутствии всех букв алфавита в строке.