В информационных системах (базах данных) для представления информации используют только прописные (большие) буквы. Делается это для того чтобы избежать путаницы. Например, с точки зрения здравого смысла строки Петров и ПЕТРОВ – это записанная по-разному фамилия одного и того же человека. Однако с точки зрения программы -это две разные строки и, следовательно, это фамилии двух разных людей. Вводимая в информационную систему исходная информация может содержать как строчные, так и прописные буквы. Поэтому возникает задача преобразования строчных букв в прописные.
Преобразование строчных букв в прописные основано на том, что код строчной буквы больше кода прописной. Для всех букв латинского алфавита код происной буквы больше кода строчной на 32. Для букв русского алфавита дело обстоит иначе. Код прописных букв от «а» до «п» больше кода соответствующих строчных букв на 32, а для букв от «р» до «я» -на 80 (см. таблицу кодов ASCII в приложении). Таким образом, чтобы преобразовать прописную букву в строчную, надо код буквы уменьшить на 32 или 80.
Стандартная функция UpCase возвращает строчный символ, соответствующий прописному, полученному в качестве параметра. Однако UpCase работает только с буквами латинского алфавита . Если в качестве параметра функция получает символ, который не является буквой латинского алфавита, то она просто возвращает полученный символ, т.е. преобразование не выполняет.
На листинге 4 приведен текст программы, которая преобразует строчные буквы введенной строчные буквы введенной строки в прописные.
Листинг 4 Преобразование строчных букв в прописные (toupper.pas)