Множества

Цель работы. Получить навыки в задании переменных множественного типа и выполнении простейших операций над ними.

Задание. Работа с множественными типами данных.

Постановка задачи. Ознакомиться с конечным и упорядоченным множеством символов.

Варианты заданий

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