
- •Задания II уровня
- •Задания I уровня
- •Задания II уровня
- •Задания I уровня
- •Задания II уровня
- •Задания I уровня
- •Задания II уровня
- •Задания I уровня
- •Задания II уровня
- •Лабораторная работа
- •Лабораторная работа
- •Задания
- •Лабораторная работа
- •Описание процедур начинается со строки:
- •Задания I уровень
- •Задания II уровень:
- •Задания
- •Лабораторная работа
- •Задания
- •II уровень
- •Задания I уровень
- •Задания II уровень
- •Петров л.Л 9 9 9 Барановичи
- •Лабораторная работа
- •Задания I уровень
- •II уровень
- •Самостоятельная работа
- •Литература
Лабораторная работа
ТЕМА: ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ МНОЖЕСТВ.(1 вариант)
ЦЕЛЬ: Изучить правила объявления и использования переменных типа множество на языке программирования Паскаль. Получить практические навыки работы с операциями и процедурами при работе с множествами.
ПО: Turbo Pascal-7.0.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ:
Под множеством понимают неупорядоченный набор различных логически связанных между собой объектов одного типа. Количество элементов множества может меняться от 0 до 256. Элементами множеств могут быть величины любого порядкового типа, кроме Integer, Longint, Word. Значения элементов целочисленного типа должны принадлежать множеству 0..255, перечисляемый тип может содержать не более 256 элементов.
Постоянные множества в Паскале задаются перечислением их элементов, например:
[1, 2, 3, 4, 5]; [] (пустое множество); [1..100].
В квадратных скобках могут находиться не только константы, но и любые выражения, имеющие тип элементов данного множества.
Переменные множества должны быть описаны предложением
VAR <имя>: SET OF <базовый тип>
Примеры: VAR S: SET OF 2 .. 100; D: SET OF ‘A’ .. ‘Z’
Для множеств определены три операции: « + », « * », « - », которые обозначают соответственно объединение, пересечение и разность множеств. С их помощью можно строить различные выражения множественного типа. Объединением двух множеств называется множество элементов, принадлежащих обоим множествам. Пересечением двух множеств называется множество тех элементов, которые принадлежат одновременно двум множествам. Разностью двух множеств называется множество, содержащее те элементы первого множества, которые не являются элементами второго.
В Паскале определены следующие отношения для множеств:
принадлежность элемента х множеству А (x in A);
равенство (эквивалентность) двух множеств А и В (А = В);
включение множества А во множество В (А < B);
нестрогое включение множества А в множество В (А <= B);
отношения <, <=, >, >=, <>.
Процедура INCLUDE включает новый элемент I во множество S: INCLUDE(S,I); Процедура EXCLUDE исключает элемент I из множества S: EXCLUDE(S,I).
В отличие от массива, к элементам множества нет прямого доступа. Поэтому ввод и вывод элементов осуществляется с использованием операции «+» при вводе и операции «in» при выводе.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:
Изучить необходимые сведения, указанные выше.
Пункты 1 и 2 задания можно объединить (по согласованию с преподавателем).
Войти в режим редактирования и набрать текст программы
Выполнить программу.
Проверить работоспособность программы на других исходных данных.
Составить программы для других пунктов задания.
Оформить отчет по лабораторной работе. Отчет по лабораторной работе должен содержать постановку задачи, краткое описание идеи либо алгоритм, а также программу.
Задания
I УРОВЕНЬ
1. Получить множества [1..13] и [5..20].
Var i:byte;
c: set of 1..13;
D: set of 5..20;
{V: set of 1..20;} {* для последующих задач}
Begin c:=[];d:=[]; {v:=[];}
For i:=1 to 13 do include(c,i);
For i:=5 to 20 do include(d,i); write('c=');
For i:=1 to 13 do
If i in c then write(i:4);
writeln;write('d=');
For i:=5 to 20 do
If i in d then write(i:4);writeln;
end.
Найти пересечение множеств d и c. Ответом должно быть множество [5..13]
Найти отрицание множеств d и c. Ответом должно быть множество …
Найти отрицание множеств c и d. Ответом должно быть множество … (Ответы в 3 и 4 пунктах не совпали?)
5. Найти объединение этих множеств. Ответом должно быть множество …
I I УРОВЕНЬ
Сформировать с помощью функции RANDOM() множество, содержащее 5 целых чисел из диапазона 1..10 и вывести это множество на экран.
Дана строка. Содержит ли она только латинские символы?
Дана строка. Содержит ли она и строчные символы?
Дана строка. Содержит ли она только русские символы?
Дана строка. Содержит ли она и прописные символы?
Дана строка. Содержит ли она только арабские цифры?
Даны 2 строки. Входят ли все символы одной строки в другую?
Дана строка. Содержит ли она символы “№ ! » ; , . % : ? @ # $ ^ & * ( )” ?
Разработать программу, какому алфавиту (русскому или латинскому), принадлежит введенный с клавиатуры символ.
Даны два множества, состоящие из 10 целых чисел из диапазона 1..100. Из них выделить одно подмножество, делящееся на 2 без остатка, и другое, делящееся на 3 без остатка.
САМОСТОЯТЕЛЬНАЯ РАБОТА
Разработать игровую программу для тренировки памяти. В ее основу положить следующее правило игры. Необходимо ввести как можно больше чисел при соблюдении следующих условий: числа должны быть из диапазона 0..255: запрещается последовательно вводить два числа, абсолютная разность между которыми меньше 7 (например, 5 и 6, 7 и 11).Программа должна заканчивать свою работу после обнаружения первой ошибки игрока. На печать выводить количество правильно введенных чисел.
КОНТРОЛЬНЫЕ ВОПРОСЫ:
Как описываются переменные типа множество?
Какова максимально допустимая мощность множества?
Как осуществляется ввод значений переменных типа множество?
Как осуществляется вывод значений переменных типа множество?
Какие операции допустимы над переменными типа множество?
Что такое разность двух множеств?
Как понимать объединение двух множеств ?
Даны множества [1,5,9..13] и [5..10]. Пересечением этих множеств является множество...?
Оценка «10» ставится, если выполнены все пункты I уровня, выполнено по пункту из заданий II, (самостоятельная работа оценивается отдельно) и есть ответы на теоретические вопросы
ЛАБОРАТОРНАЯ РАБОТА
ТЕМА: ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ МНОЖЕСТВ.
ЦЕЛЬ: Получить практические навыки работы с операциями для работы с множествами.
ПО: Turbo Pascal-7.0.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ:
Работа с множествами позволяют иногда сократить программу и сделать ее более наглядной и эффективной за счет уменьшения проверок.
Под множеством в Турбо-Паскале понимается ограниченный неупорядоченный набор элементов одинакового типа. Множественный тип данных задается: SET of <базовый тип>. Базовый тип определяет конечную мощность значений множества. Оно определяется перечислением через запятую элементов базового множества и заключается в квадратные скобки (явное задание). Под мощностью множества подразумевается общее число его элементов. Множество, не содержащее элементов, называется пустым и обозначается []
Примеры задания множеств:
type d=set of 0..1; Var p: SET of d; |
Var p: SET of CHAR; |
Var S: set of 0..9; |
Над множествами определены бинарные операции:
«+»- объединение (новому множеству принадлежат элементы обоих множеств): s1:=[1,2]; s2:=[3,2,4]; s:=s1+s2; {s=[1,2,3,4]}. Математическое обозначение операции: s1s2.
«*»– пересечение (новому множеству принадлежат общие элементы обоих множеств), s1:= [1,2]; s2:=[3,2,4]; s:=s1+s2; {s=[2]}. Математическое обозначение операции: s1s2.
«-» –разность (новое множество содержит те элементы первого множества, которые не являются элементами второго): s1:= [1,2]; s2:=[3,2,4]; s:=s1-s2; {s=[1]}. Математическое обозначение операции: s1\s2. Следует учесть, что s1-s2<>s2-s1.
Множества можно сравнивать (=,<>,<=,>=,>,<).
Операция определения принадлежности элемента некоторому множеству– «IN»: X in S (тип элемента Х тот же, что и у элементов множества S).
В отличие от массива, к элементам множества нет прямого доступа. Поэтому ввод и вывод элементов осуществляется с использованием операции «+» при вводе и операции «in» при выводе.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:
Пункты 1, 2, 3, 4 задания можно объединить (по согласованию с преподавателем).
Войти в режим редактирования и набрать текст программы
Выполнить программу. (Добавлять переменные в окно Watch можно, нажав одновременно <Ctrl>+<F7> и далее указав нужные переменные. Окна переключать можно с помощью клавиши <F6>.)
Проверить работоспособность программы на других исходных данных.
Составить программы для других пунктов задания.
Оформить отчет по лабораторной работе, защитить и сдать его преподавателю.
ЗАДАНИЯ I УРОВНЯ
1. Дана программа. Что она делает? Как называется данная операция?
var s,s1,s2:set of 0..9;
i: integer;
begin
s1:=[1,2];
s2:=[3,2,4];
s:=s1+s2; {s=[1,2,3,4]}
writeln;
for i:=0 to 9 do
if i in s then begin k:=k+1; write (i,' ') end;
end.
2. Составить аналогичную программу для операции пересечения множеств и записать полученный результат.
3. Составить программу для операции разности двух множеств s1-s2. Записать полученный результат.
4. Изменится ли результат, если новое множество будет равно s2-s1? Записать полученный результат.
5. Даны 3 множества Х1, Х2, Х3, содержащие целые числа из диапазона 1..100. Мощность каждого множества равна 10. Сформировать новое множество Y=(X1X2) (X1\X2), а также проверить выполнение условия: X3<=Y.