Последовательность символов строится по следующему правилу: Последовательно выводятся начальные отрезки латинского алфавита, состоящие из 1 символа, из 2 символов и так далее, до тех пор, пока не будет выведен весь алфавит. Количество таких отрезков равно количеству букв в алфавите. Так как символьный тип данных является порядковым типом, то можно использовать цикл с параметром символьного типа:
Program Example_59;
Var i, j: Char;
Begin
For i:='a' To 'z' Do
{количество начальных отрезков алфавита}
For j:='а' То i Do
{количество символов в данном
начальном отрезке}
Write(j);
Readln;
End.
Пример 2
Написать программу, которая подсчитывает количество цифр, входящих в исходный текст. Текст − это последовательность символов, ввод которой заканчивается нажатием клавиши [Enter].
Решение
Так как признаком конца ввода последовательности символов служит нажатие клавиши [Enter] (ей соответствует символ с кодом 13), то будем вводить символы до тех пор, пока значение очередного символа не совпадет со значением #13. Анализируя каждый символ, будем увеличивать счетчик, если символ является цифрой:
Program Example_60;
Var ch: Char;
k: Integer;
Begin
k:=0;
While ch<>#13 Do
{пока не нажата клавиша <Enter>}
Begin
If (ch>='0') and (ch<='9') Then Inc(k);
Read(ch);
End;
Writeln(^G,' Количество цифр равно ',k);
End.
Переменные символьного типа удобны для организации простейшего диалога с пользователем во время выполнения программы. Приведем пример такого диалога:
Repeat
Writeln('Хотите продолжить работу
(у/n)?');
Readln(ch);
Until Upcase (ch)='N';
Функция Upcase(ch) преобразует букву ch в прописную (эта функция работает только с буквами английского алфавита, все другие символы не изменяются).
§23. Ограниченный тип данных
Ограниченный тип данных представляет собой интервал значений порядкового типа, называемого базовым типом. Описание типа задает наименьшее и наибольшее значения, входящие в этот интервал. Например,
Var a: 1..25; ch: 'a'..'z';
Здесь переменные а и ch могут принимать значения только из указанного интервала; базовым типом для переменной а является целый тип, а для переменной ch − символьный.
Переменная ограниченного типа сохраняет все свойства переменных базового типа.
Для чего применяется ограниченный тип данных? Использование ограниченного типа делает программу более наглядной и понятной. Например, если в программе переменная b может принимать только значения 3,4, 5, 6, 7, 8, то лучше описать ее следующим образом:
Var b:3..8; а не просто Vаг b:Integer;
тогда в случае выхода значения b за диапазон 3..8 при использовании первого описания будет выдано диагностическое сообщение, которое поможет найти ошибку.
Пример
Напишите программу, в результате выполнения которой переменной t присваивается значение true, если первая дата предшествует (в рамках одного года) второй дате, и значение false в противном случае.