1.3. Использование множеств
Наиболее эффективно множество может быть использовано для замены операторов if, например, для проверки наличия некоторого ответа в списке разрешенных.
Приведенная ниже программа ввода строки символов, содержащей латинские буквы, цифры, пробелы с контролем правильности введенных символов, может служить примером использования множеств.
program EX;
var
Str:string;
L:byte;
t: boolean;
begin
writeln ('Введите строку');
readln (Str);
L:=length (Str); {число введенных символов}
t:=L>0: {true, если не пустая строка}
while t and (L>0) do
begin
T: =Str [L] in |'0'.'9' 'A'..'Z' 'a'..'z'];
{проверка допустимости символа}
dec (L) {предыдущий символ}
end;
If t then writeln ('Правильная строка')
else writeln ('Неправильная строка')
end.
1.4. Вопросы и упражнения
1. Сколько различных значений может принимать переменная AS, имеющая описание var AS: set of 0..2?
2. Эквивалентны ли выражения р in [1,2, 5] и (р=2) or (р=2) or (р=5)?
3. С использованием операции in организовать проверку текущего числа цифр в строке s, описанной как
var s: string[62].
4. Вычислить:
a. [1, 4, 7] + [2, 3] + [5, 6];
b. [1, 4, 7] * [3, 5J;
c. [1,4, 7] - [2, 5]:
d. [2..10] - [4, 6]-[2..12] * [8..15].
5. Упростить (А, В - множества):
a. А * В-А;
b. А - (А - В);
c. (А + В) - (А - В) - (В - А ).
6. Определить значения:
a.[2]=[2, 2, 2]:
b. [1, 3]<>[3, 1];
c. [1.2.3]=[1..3]:
d.['a','b'] = ['b'..'a'].
7. Дан текст из строчных латинских букв. Составить программу определения количества гласных букв (а, е, i, о. u), встречающихся в тексте.
1.5. ЛАБОРАТОРНАЯ РАБОТА «ИСПОЛЬЗОВАНИЕ МНОЖЕСТВ»
Задание:
1. Организовать процедуру printset, печатающую элементы множества А с определением их числа.
2. Описать множество В. Ввести значения его элементов с клавиатуры. Распечатать множество В с помощью процедуры printset.
3. Создать программу, в которой предусмотрено заполнение массива, имеющего 50 элементов целого типа, случайными значениями из диапазона от 0 до 200. С использованием множеств организовать проверку числа различных элементов в массиве.
Редактор А.А Литвинова
В печать 17.07.08
Объем 0,6 усл. п. л. Офсет. Формат 60x84/16.
Бумага тип №3. Заказ №382 Тираж 130. Цена 10р.
Издательский центр ДГТУ
Адрес университета и полиграфического предприятия:
344000, г. Ростов-на-Дону, пл. Гагарина 1.