Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ АЛГОРИТМИЗАЦИИ.doc
Скачиваний:
188
Добавлен:
16.03.2015
Размер:
1.82 Mб
Скачать

Лабораторная работа №13 множества

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

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

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

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

  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. Шестиугольник на блок-схеме обозначает процесс

    1. вычислений;

    2. останова программы;

    3. принятия решения;

    4. модификации;

    5. передачи данных;

    6. пуска программы

    7. подпрограмму.

  2. Описательная часть программы Турбо Паскаль включает раздел

    1. констант;

    2. переменных;

    3. функций;

    4. типов;

    5. подключения модуля;

    6. процедур;

    7. меток;

    8. операторов;

    9. заголовок программы;

  3. Заголовок основной программы в среде Турбо Паскаль обозначают служебным словом

    1. var

    2. label

    3. type

    4. procedure

    5. end.

    6. const

    7. end;

    8. function

    9. begin

    10. begin…end

    11. uses

    12. program <имя программы>

  4. Служебным словом fileобозначают тип

    1. целый;

    2. типизированный файл;

    3. одномерный массив;

    4. вещественный;

    5. символьный;

    6. текст;

    7. записи;

    8. строковый;

    9. перечисляемый;

    10. логический;

    11. двумерный массив;

    12. тип-диапазон;

    13. нетипизированный файл;

    14. множество;

  5. Тип данных shortintв среде Турбо Паскаль занимает памяти (в байтах)

    1. 1

    2. 2

    3. 4

    4. 6

    5. 8

  6. Оператор объявления новой константы

    1. const <имя константы> : <значение>;

    2. var <имя переменной> = <тип>;

    3. const <имя константы> : <тип>;

    4. type <имя типа> = <тип>;

    5. var <имя переменной> : <значение>;

    6. type <имя типа> : <тип>;

    7. const <имя константы> = <значение>;

    8. var <имя переменной> = <значение>;

    9. type <имя типа> : <значение>;

  7. Простая форма условного оператора

    1. if <условие> then <оператор>;

    2. if < условие > then begin <оператор >; end else <оператор >;

    3. if < условие > then begin < оператор >; end;

    4. if< условие >then< оператор >else< оператор >;

    5. if < условие > then begin < оператор >; end else begin < оператор >; end;

    6. if< условие >then< оператор >elsebegin< оператор >;end;

  8. К данным типа диапазон применимы функции и операторы

    1. Succ

    2. writeln

    3. Pred

    4. Readln

    5. :=

    6. Ord

  9. Краткая форма объявления типа данных «строка» имеет вид

    1. var <имя пер.> : string;

    2. var <имя пер.> : text;

    3. var<имя пер.> :array<нач_индекс..кон_индекс>of<тип элементов>;

    4. var <имя пер.> : file of <тип>;

    5. var <имя пер.> : record <имя поля> : <тип>; end;

    6. var<имя пер.> :array<нач_индекс1..кон_индекс1, нач_индекс2..кон_индекс2>of<тип элементов>;

    7. var <имя пер.> : file;

  10. Объявление одномерного массива размерностью 10 элементов вещественного типа

    1. Var a : array[1..10] of real;

    2. Var a : array[1..10, 1..2] of integer;

    3. Var a : array[1..10, 2..3] of string;

    4. Var a : array[0..9, 4..6] of real;

    5. Var a : array[3..12] of char;

    6. Var a : array[0..9] of integer;

    7. Var a : array[2..11] of integer;

    8. Var a : array[0..9] of string;

    9. Var a : array[3..12, 0..1] of char;

  11. Оператор вывода значений элементов двумерного массива

    1. For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random;

    2. For i:=1 to 10 do For j:=1 to 10 do readln(a[I, j]);

    3. For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random(11);

    4. For i:=1 to 10 do For j:=1 to 10 do writeln(a[I, j]);

    5. For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random-5;

    6. For i:=1 to 10 do For j:=1 to 10 do read(a[I, j]);

    7. For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random(11)-5;

    8. For i:=1 to 10 do For j:=1 to 10 do write(a[I, j]);

  12. Произведение отрицательных элементов массива

    1. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then inc(k);

    2. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:=k*1;

    3. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then dec(k);

    4. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:= k*a[i];

    5. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:=k+1;

    6. For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:= k+a[i];

  13. Стандартная функция Турбо Паскаля преобразует строковый аргумент в его численное представление

    1. Length();

    2. Upcase();

    3. Copy();

    4. Pos();

    5. Insert();

    6. Delete();

    7. Val();

  14. Оператор Турбо Паскаля после создания текстового файла позволяет ввести в файл дополнительную информацию

    1. Assign();

    2. Reset();

    3. Read();

    4. Close();

    5. Eof();

    6. Append();

    7. Eol();

    8. Rewrite();

    9. Write();

    10. Erase();

  15. Результатом оператора include([3..9],2) является

    1. True

    2. [0,12,3,4,5,6]

    3. [2,3..9]

    4. [2,3,4,5,6,7,8,9]

    5. [3,6]

    6. False

    7. [ ]

    8. [6,7,8,9]

    9. [0,1,2,3,6]

Приложение 2