- •Кафедра моделювання та програмного забезпечення
- •(Прізвище, ім'я та по-батькові, вчена ступінь, вчене звання розробника)
- •Во время лабораторных работ студенты :
- •К работе в компьютерном классе допускаются студенты, прошедшие инструктаж по технике безопасности.
- •Подготовка к работе
- •Порядок выполнения работы:
К работе в компьютерном классе допускаются студенты, прошедшие инструктаж по технике безопасности.
Потенциальные опасности при работе с вычислительной техникой обусловлены:
наличием электрического тока: при работе на ПК возможно поражение электрическим током в случае неисправности электрооборудования; наличием источников электромагнитных излучений: при работе на ПК используется дисплей с электронно-лучевой трубкой; ожогами и отравлениями в случае пожара.
По опасности поражения электрическим током помещение компьютерного класса относится к категории без повышенной опасности, так как характеризуется отсутствием условий, создающих повышенную или особую опасность. Тем не менее, при работе в компьютерном классе необходимо соблюдать следующие основные требования Правила электробезопасности при выполнении работ:
недопустимо оголение токоведущих частей, приборов, особое внимание обращать на исправность розеток и разъемов; приборы и оборудование должны быть в исправном состоянии и иметь защитное заземление; работы по монтажу и ремонту оборудования производятся при отключенном напряжении с использованием инструмента с изолированными рукоятками.
Пожаробезопасность. При выполнении работ в компьютерном зале на предупреждение пожара направлены следующие мероприятия:
наличие исправных средств пожаротушения в помещении; наличие средств охранной пожарной сигнализации; работа осуществляется только с помощью исправных приборов с соблюдением порядка эксплуатации.
|
Порядок выполнения и защиты лабораторных работ |
Подготовка к работе
Согласно общим правилам проведения лабораторной работы, студенты должны приходить на занятия подготовленными по соответствующей теме. Предполагается, что теоретические разделы дисциплины, прямо относящиеся к теме лабораторного занятия, студенты осваивают самостоятельно, работая с конспектом лекций и рекомендованной литературой. Поэтому, при выполнении лабораторных работа в компьютерном классе, время, специально отводимое для дополнительного изучения теоретического материала, не предусматривается, а сведения, включенные в настоящее пособие, служат лишь указаниями и кратким справочным материалом при выполнении собственно работы.
Порядок выполнения работы:
1) Уяснение цели, задач и способа выполнения работы;
2) при необходимости, выполнение примера (примеров) и заданий по теме работы, оценка полученных результатов и их анализ;
3) самостоятельное выполнение задания по теме работы и подготовка данных для отчета, согласно настоящим Методическим указаниям.
4) подготовка отчета и его защита.
На выполнение пунктов 2-3 отводится, в зависимости от сложности, 60 – 80% всего времени аудиторного занятия, предусмотренного по данной теме.
Так как лабораторные занятия связаны между собой тематически и методически, т.е. каждое следующее основано на использование навыка, полученного на предыдущем занятии, то каждая работа должна быть выполнена и защищена до перехода к следующей.
"Сдать" лабораторную работу — значит защитить полученный результат и методику решения.
Студенты заочной формы обучения из-за ее специфичности, защищают свои отчеты непосредственно на сессии.
Окончательный отчет 1 о лабораторной работе оформляется исключительно в электронном виде, как при выполнении работы, так и во время, отведенное для самостоятельной работы, в виде именованной папки и содержит: исполняемый файл (*.exe) с программной реализацией решения задания по теме работы; файл отчета (*.doc), включающий
реквизиты,
тема, номер работы, цель, задание,
содержание данной выполненной работы,
алгоритм (или CASE-модель),
листинг (только фрагменты кода, непосредственно реализующие изучаемый алгоритм, с подробными комментариями, позволяющими студенту успешно защитить работу и т.к. могут играть роль своеобразной "шпаргалки"),
скриншот исполнения программы (.bmp или .jpg).
Защита работы включает краткий доклад студента (2-3 минуты) и ответы на вопросы по соответствующей теме (1-2 вопроса).
Оценка отчета и работы в целом ставится в соответствии с п. 4. "Критерии оценивания лабораторных работ" настоящего руководства в соответствие с принятой кредитно-модульной системой.
|
УКАЗАНИЯ К СОДЕРЖАТЕЛЬНОЙ ЧАСТИ ЛАБОРАТОРНЫХ РАБОТ |
Лабораторная работа 1
Программирование множеств (2 ч)
Цель
научиться создавать множества заданных параметров
Задание
Составить программу, возвращающую множество, заданное:
1) некоторой последовательностью произвольных чисел натурального ряда, вводимых с клавиатуры. Например:
А1 = { 1 , 3, 17, 9, 8, ...}
2) общим свойством псевдослучайных элементов множества. Например:
А2 = { 8, 10, 4, 16, 2, ... }
3) порождающей процедурой. Например
А3 = {1, 3, 6, 10, 15, 21, ...}
Указания
В лабораторных работах 1-2 категорически запрещается использовать стандартные функции для работы с множествами;
в большинстве примеров комментарии сознательно опущены, дабы не препятствовать студентам проявить собственные знания основ программирования. В отчетах — наличие комментариев ОБЯЗАТЕЛЬНО. Их отсутствие делает, как правило, невозможной успешную защиту лабораторной работы;
мощность множества вводить в диалоговом режиме;
предусмотреть проверку добавляемых элементов на уникальность (unique);
для решения задачи 2 использовать генератор псевдослучайных чисел добавляя к проверке уникальности проверку элементов на выполнение какого -либо условия или — проверяя на выполнение условия все множество в целом;
задача 3 самая очевидная, поэтому главным при оценивании является содержание используемой процедуры, которое безусловно должно быть индивидуальным;
основное требование к примерам — наглядность, поэтому любое улучшение или минимизация кода приветствуется!
Отчет о лабораторной работе (настоящей и последующих) подается в электронной форме, на диске, в виде именованной папки, содержащей:
скомпилированный исполняемый файл (.exe).
Если exe-файл "не запускается" на другом компьютере (без инсталлированной IDE), работа считается невыполненной;
файл отчета (.doc): реквизиты, задание, содержание работы, алгоритм (или CASE-модель), программный код только фрагменты кода непосредственно реализующие алгоритм с подробными комментариями (позволяющими студенту успешно защитить работу);
скриншот исполнения программы (.bmp или .jpg).
Если отчет подается с опозданием, по сравнению с плановым сроком (следующее занятие после отчетного) он должен быть дополнен твердой копией файла отчета
Теоретические сведения и примеры
Задать множество, значит перечислить его элементы:
1) непосредственно указывая эти элементы:
или
.
2) указывая общее свойство элементов (характеристическим предикатом):
–
запись означает, что в множество
входят только те объекты а, которые
имеют свойство
.
Например:
3) указывая порождающую множество процедуру:
– запись означает, что множество А
составляют такие элементы у,
которые обладают свойством
и для которых существует такой х,
что у=f(x).
Бесконечные множества задаются только предикатами или процедурами.
Пример 1. Множество, заданное его элементами
int main (){
int k;
cout << "Input size SET m\n";
cin >> k; //вводим мощность множества
int *m = new int[k];
cout << "Input m[0]\n";
cin >> m[0];//вводим элементы множества...
for (int i = 1; i <= k-1; i++){
//...проверяем на уникальность
cout <<"Input m [" << i << "]\n";
cin >> m[i];
int j = 0;
while (j < i){
if (m[i] == m[j]) {
cout << "m[" << i << "] = "<< m[i];
cout << "\tNot unique! Input again\n";
cin >> m[i];
j = -1;
}
j++;
}
};
//Далее выводим на экран...
int *pb = m;//begin m
int *pe = m+k;//end m
while (pb != pe){
cout << *pb << '\t';
pb++;
};
_getwch();
return 0;
}
Скриншот:
Пример 2. Множество со случайными
элементами
int main ()
{
srand(time(NULL));
// Без использования функции srand(time(NULL)) значения не будут
// обновляться при пересчете. Необходимо так же подключить
// #include <time.h>
int k,r = 0;
cout << "Input size SET m\n";
cin >> k;
cout << "Input max value m\n";
while (r<=k){
cin >> r;
if (r<=k)
cout << "Input again! Max value m > size SET\n";
}
int *m = new int[k];
m[0] = rand()%r+1 ;
for (int i = 1; i <= k-1; i++){
m[i]=rand()%r+1;
int j = 0;
while (j < i){
if (m[i] == m[j]) {
m[i]= rand()%r+1;
j = -1;
}
j++;
}
};
cout << "Random SET\n";
int *pb = m;//begin
int *pe = m+k;//end
while (pb != pe){
cout << *pb << "\t";
pb++;
};
cout <<"\n";
delete m;
_getwch();//#include <conio.h>
return 0;
}
Скриншот:
Контрольные вопросы
Каким свойством обладает А2 ?
Какой процедурой задано А3 ?
Что общего у задачи 2 и 3 ?
Лабораторная работа 2
Программная реализация основных действий с множествами и их элементами (4 ч)
Цель
Практически освоить основные действия с множествами
Задание
1) создать, используя программный код лабораторной работы 1, множества A, B, C — псевдослучайных чисел из натурального ряда;
2) выполнить упорядочивание множеств;
3) поэлементно сравнивая множества:
установить, является ли одно множество подмножеством другого?
В А ?.. С А?.. В A ?..
найти пересечение множеств
СА; ВС; АВС …
найти объединение множеств
СА; ВС; АВС ...
найти множества являющиеся дополнением
А\В ; В\А; ...
считая U (универсумом) = АВС, составить множество не-А:
= U\А
написать программу для расчета симметрической разности (XOR) между любыми двумя множествами А, В, С;
А Δ В , В Δ С , С Δ А , ...;
4) сохранить исходные и искомые множества в файл.
5) подготовить отчет и защитить работу
Указания
суммарная мощность множеств A, B, C — 1000 элементов;
программный код и результаты будут использованы в дальнейшем, поэтому необходимо предусмотреть возможность считывания из файла и запись — с сохранением первоначальных исходных данных
как исходные множества так и результаты, при выводе на экран должны быть форматированы.
Теоретические сведения и примеры
1. Равенство А = В. Если множество В – есть подмножество множества А и в то же время множество А – есть подмножество множества В, то эти множества равны: например,
{1,2,3,4}={1,2,3,4}
Иначе: если множества являются взаимно подмножествами друг друга, то они равны. Это означает равенство всех элементов.
2. Объединением множеств А и В называется такое множество, которое состоит из элементов, принадлежащих хотя бы одному из множеств А и В.
,
например,
{1,2,3,4}{3,4,5,6} = { 1,2,3,4,5,6 }
3. Пересечением множеств А и В называется множество, которое состоит из элементов, общих для А и В
,
например
{1,2,3,4}{3,4,5,6} = {3,4}
4.
Дополнением множества В до множества
А (или — разностью В и А) является
А\В =
т.е.
a) дополнение А\В состоит из элементов А не принадлежащих В. Удобнее читать — "элементы множества А не принадлежащие В" — {1,2,3,4}\{3,4,5,6} = { 1, 2}
b) дополнение В\А состоит из элементов В не принадлежащих А. Удобнее читать "элементы множества В не принадлежащие А" — {3,4,5,6}\ {1,2,3,4}= { 5, 6}
5. НЕ-А
("отрицание" А). Если А – это
подмножество некоторого универсального
множества U (обычно –
фиксированного), то дополнение А до U
обозначают
,
т.е. U\А=
и определяют как
<в
с ё, что НЕ "А">
6. Симметрическая разность А и В , это множество тех и только тех элементов, которые, либо принадлежат А и не принадлежат В, либо принадлежат В и не принадлежат А (аналог исключающего ИЛИ, т.е. XOR):
А Δ В =
Другая запись
А Δ В=
{1,2,3,4}Δ {3,4,5,6} = { 1,2,5,6 }
то же что
{1,2,3,4,5,6 }\{3,4}={ 1,2,5,6 }
Контрольные вопросы
1. Укажите порядок выполнения операций над множествами (привести пример).
2. Сформулируйте (кванторами) и иллюстрируйте примером закон поглощения.
3. Сформулируйте (описанием и кванторами) свойства нуля и единицы (объединение и пересечение с универсумом).
Учебная и справочная литература
1. Андерсон Дж. А. Дискретная математика и комбинаторика. М.: Изд.дом "Вильямс", 2004- 960 с.
2. Белоусов А.И., Ткачев С.Б. Дискретная математика: учеб. для вузов.— М.: Изд-во МГТУ им. Н.Э.Баумана, 2004.—744 с.
3. Бондаренко М.Ф., Білоус Н.В., Руткас А.Г. Комп'ютерна дискретна математика. — Харків: "Компанія СМІТ", 2004. — 480с
4. Новиков Ф.А. Дискретная математика для программистов. — СПб.: Питер, 2000. — 304 с.
5. Асанов М.О., Баранский В.А., Расин В.В. Дискретная математика: графы, матроиды, алгоритмы. — Ижевск: НИЦ "Регулярная и хаотическая динамика", 2001. — 288 с
6. Ерусалимский Я.М. Дискретная математика: теория, задачи, приложения. — М.: Вузовская книга, 2000. — 280 с
7. Кук Д., Бейз Г. Компьютерная математика. М.: Наука, 1990. - 384 с.
8. Хаггарти Р. Дискретная математика для программистов. М.:Техносфера, 2004 — 320 с.
9. Нестеренко Ю. В. Теория чисел : учебник для студ. высш. учеб. заведений / Ю. В. Нестеренко. — М.: Издательский центр «Академия», 2008. - 272 с.
10. Эвнин А.Ю. Задачник по дискретной матема-тике. — Челябинск: Изд. ЮУрГУ, 2002. — 164 с.
11. Оре О. Приглашение в теорию чисел: Пер. с англ. -- М.: Наука Главная редакция физико-математической литературы, 1980. -- 128 с.
Приложение
Собственные обозначения некоторых множеств
—
пустое множество (которое не имеет
элементов);
N—{1, 2, 3,...} множество натуральных чисел;
Z—{0,±1,±2,±3,...} множество целых чисел;
Q—{
}
множество рациональных чисел;
R—{все не комплексные} множество вещественных чисел и др.
Булеан — множество всех подмножеств множества М .
Обозначается
2М := {A:A
M}
или готической В.
Таблица умножения 16-ричных чисел
Определение XOR при программировании
XOR (x,y) →(x&&!y)||(y&&!x) исключающее ИЛИ
XOR (1,1) → 0; XOR (0,0) → 0; XOR (1,0) → 1;XOR (0,1) → 1
1 После защиты копируется на CD (один для всех работ).
