Множества
Цель работы. Получить навыки в задании переменных множественного типа и выполнении простейших операций над ними.
Задание. Работа с множественными типами данных.
Постановка задачи. Ознакомиться с конечным и упорядоченным множеством символов.
Варианты заданий
1. Подсчитать количество цифр в исходной символьной строке и написать все, кроме пробелов, знаков операций и знаков препинания.
2. Подсчитать количество букв в исходной символьной строке и напечатать все, кроме цифр, включая пробелы, знаки операций и препинания.
3. Из множества целых чисел от1 до 30 выделить множество простых чисел.
4. Имеются два множества символьного типа: X=[¢A¢,¢B¢,¢D¢,¢R¢,¢H¢]; Y=[¢R¢,¢A¢,¢H¢,¢D¢]. Сформировать новое множество X(Y*Y)+(Y-Y) и вывести его на печать.
5. Сформировать множество LAT, в которое входят только латинские буквы, встретившиеся во входной строке.
6. Построить и напечатать множество, элементами которого являются встречающиеся в последовательности цифры от ¢0¢ до ¢9¢ и знаки арифметических операций.
7. Задать два произвольных символьных множества и произвести с ними все возможные операции.
8. Дан текст, содержащий N символов. Распечатать, какие из указанных символов (¢L¢, ¢T¢, ¢Z¢) входят в данный текст.
9. Подсчитать количество цифр в исходной символьной строке и напечатать все, кроме пробелов и знаков операций.
10. Напечатать множество, элементами которого являются встречающиеся в последовательности буквы от ¢F¢ до ¢М¢ и знаки арифметических операций.
11. Пусть A есть множество, определенное с базовым типом х. Предположим, что low и high являются соответственно первым и последним значением базового типа х. Определить количество элементов во множестве А.
12. Даны два множества A и В с одним и тем же базовым типом. Определить суммарное количество элементов в A и В.
13. Даны два множества A и В с одним и тем же базовым типом. Определить новое множество, равное пересечению элементов A и В.
14. Даны два множества A и В с одним и тем же базовым типом. Определить разность элементов A и В.
15. Даны два множества A и B с одним и тем же базовым типом. Напишите программу, проверяющую принадлежность A к В.
16. Даны два множества A и B с одним и тем же базовым типом. Напишите программу, проверяющую идентичность элементов A и В.
17. Содержимое всего множества нельзя отпечатать непосредственно предложением writeln. Для заданного множества A и его базового типа x (первый и последний элементы которого есть low и high) напишите процедуру, печатающую элементы множества A.
18. Даны два множества A и В. Постройте из них следующее множество: A*В- A.
19. Даны два множества A и В. Постройте из них следующее множество: A - (A - В).
20. Даны два множества A и В. Постройте из них следующее множество: (A+В) - (A - В) - (В - A).
21. Даны два множества A и В. Постройте из них следующее множество: (A - В)+(B- A)+A*В.
22. Дан текст из цифр и строчных латинских букв, за которыми следует точка. Определить, каких букв - гласных (а, е, i, о, и) или согласных - больше в этом тексте.
23. Написать функцию, подсчитывающую общее количество цифр и знаков «+», «-», «*», входящих в строку s.
24. Дано 100 целых чисел от 1 до 50. Определить, сколько среди них чисел Фибоначчи. Числа Фибоначчи можно определить следующим образом: Первое и второе равны 1; каждое последующее (начиная с третьего) есть сумма двух предшествующих. Вот так выглядит начало такой последовательности: 1,1,2,3,5,8,...
25. Написать функцию, определяющую количество дней в месяце m (не високосного года). В современном (григорианском) календаре каждый год, номер которого делится на 4, является високосным, за исключением тех, которые делятся на 100 и не делятся на 400. Например, 1900 г. - не високосный, 2000 г. - високосный.
26. Даны два множества A и В. Постройте из них следующее множество: A*(A- B).
27. Даны два множества A и В. Постройте из них следующее множество: A + (A + В).
28. Даны два множества A и В. Постройте из них следующее множество: (A+В) * (A - В) + (В - A).
29. Даны два множества A и В. Постройте из них следующее множество: (A - В)*(B- A)-A*В.
30. Дан текст из цифр и строчных латинских букв, за которыми следует точка. Определить, каких букв – заглавных (A, E, F, H, L) или строчных - больше в этом тексте.
Приложение 1
Тестовые вопросы для проверки теоретического
материала по разделу «основы алгоритмизации
и программирования»
1. Шестиугольник на блок-схеме обозначает процесс
a. вычислений;
b. останова программы;
c. принятия решения;
d. модификации;
e. передачи данных;
f. пуска программы
g. подпрограмму.
2. Описательная часть программы Турбо Паскаль включает раздел
a. констант;
b. переменных;
c. функций;
d. типов;
e. подключения модуля;
f. процедур;
g. меток;
h. операторов;
i. заголовок программы;
3. Заголовок основной программы в среде Турбо Паскаль обозначают служебным словом
a. var
b. label
c. type
d. procedure
e. end.
f. const
g. end;
h. function
i. begin
j. begin…end
k. uses
l. program <имя программы>
4. Служебным словом file обозначают тип
a. целый;
b. типизированный файл;
c. одномерный массив;
d. вещественный;
e. символьный;
f. текст;
g. записи;
h. строковый;
i. перечисляемый;
j. логический;
k. двумерный массив;
l. тип-диапазон;
m. нетипизированный файл;
n. множество;
5. Тип данных shortint в среде Турбо Паскаль занимает памяти (в байтах)
a. 1
b. 2
c. 4
d. 6
e. 8
6. Оператор объявления новой константы
a. const <имя константы> : <значение>;
b. var <имя переменной> = <тип>;
c. const <имя константы> : <тип>;
d. type <имя типа> = <тип>;
e. var <имя переменной> : <значение>;
f. type <имя типа> : <тип>;
g. const <имя константы> = <значение>;
h. var <имя переменной> = <значение>;
i. type <имя типа> : <значение>;
7. Простая форма условного оператора
a. if < условие > then <оператор>;
b. if < условие > then begin < оператор >; end else < оператор >;
c. if < условие > then begin < оператор >; end;
d. if < условие > then < оператор > else < оператор >;
e. if < условие > then begin < оператор >; end else begin < оператор >; end;
f. if < условие > then < оператор > else begin < оператор >; end;
8. К данным типа диапазон применимы функции и операторы
a. Succ
b. writeln
c. Pred
d. Readln
e. :=
f. Ord
9. Краткая форма объявления типа данных «строка» имеет вид
a. var <имя пер.> : string;
b. var <имя пер.> : text;
c. var <имя пер.> : array <нач_индекс..кон_индекс> of <тип элементов>;
d. var <имя пер.> : file of <тип>;
e. var <имя пер.> : record <имя поля> : <тип>; end;
f. var <имя пер.> : array <нач_индекс1..кон_индекс1, нач_индекс2..кон_индекс2> of <тип элементов>;
g. var <имя пер.> : file;
10. Объявление одномерного массива размерностью 10 элементов вещественного типа
a. Var a : array[1..10] of real;
b. Var a : array[1..10, 1..2] of integer;
c. Var a : array[1..10, 2..3] of string;
d. Var a : array[0..9, 4..6] of real;
e. Var a : array[3..12] of char;
f. Var a : array[0..9] of integer;
g. Var a : array[2..11] of integer;
h. Var a : array[0..9] of string;
i. Var a : array[3..12, 0..1] of char;
11. Оператор вывода значений элементов двумерного массива
a. For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random;
b. For i:=1 to 10 do For j:=1 to 10 do readln(a[I, j]);
c. For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random(11);
d. For i:=1 to 10 do For j:=1 to 10 do writeln(a[I, j]);
e. For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random-5;
f. For i:=1 to 10 do For j:=1 to 10 do read(a[I, j]);
g. For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random(11)-5;
h. For i:=1 to 10 do For j:=1 to 10 do write(a[I, j]);
12. Произведение отрицательных элементов массива
a. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then inc(k);
b. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:=k*1;
c. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then dec(k);
d. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:= k*a[i];
e. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:=k+1;
f. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:= k+a[i];
13. Стандартная функция Турбо Паскаля преобразует строковый аргумент в его численное представление
a. Length();
b. Upcase();
c. Copy();
d. Pos();
e. Insert();
f. Delete();
g. Val();
14. Оператор Турбо Паскаля после создания текстового файла позволяет ввести в файл дополнительную информацию
a. Assign();
b. Reset();
c. Read();
d. Close();
e. Eof();
f. Append();
g. Eol();
h. Rewrite();
i. Write();
j. Erase();
15. Результатом оператора include([3..9],2) является
a. True
b. [0,12,3,4,5,6]
c. [2,3..9]
d. [2,3,4,5,6,7,8,9]
e. [3,6]
f. False
g. [ ]
h. [6,7,8,9]
i. [0,1,2,3,6]
Приложение 2