Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб_КДМ_1_2_2012.doc
Скачиваний:
2
Добавлен:
08.08.2019
Размер:
438.27 Кб
Скачать

К работе в компьютерном классе допускаются студен­ты, прошедшие инструктаж по технике безопасности.

Потенциальные опасности при работе с вычислительной техникой обусловлены:

  • наличием электрического тока: при работе на ПК возможно поражение электрическим током в случае неисправности электрооборудования; наличием источников электромагнитных излучений: при работе на ПК используется дисплей с электронно-лучевой трубкой; ожогами и отравлениями в случае пожара.

По опасности поражения электрическим током помещение компьютерного класса относится к категории без повышенной опасности, так как характеризуется отсутствием условий, создающих повышенную или особую опасность. Тем не менее, при работе в компьютерном классе необходимо соблюдать следующие основные требования Правила электробезопасности при выполнении работ:

  • недопустимо оголение токоведущих частей, приборов, особое внимание обращать на исправность розеток и разъемов; приборы и оборудование должны быть в исправном состоянии и иметь защитное заземление; работы по монтажу и ремонту оборудования производятся при отключенном напряжении с использованием инструмента с изолированными рукоятками.

Пожаробезопасность. При выполнении работ в компьютерном зале на предупреждение пожара направлены следующие мероприятия:

  • наличие исправных средств пожаротушения в помещении; наличие средств охранной пожарной сигнализации; работа осуществляется только с помощью исправных приборов с соблюдением порядка эксплуатации.

Frame2

Порядок выполнения

и защиты лабораторных работ

Подготовка к работе

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

Порядок выполнения работы:

1) Уяснение цели, задач и способа выполнения работы;

2) при необходимости, выполнение примера (примеров) и заданий по теме работы, оценка полученных результатов и их анализ;

3) самостоятельное выполнение задания по теме работы и подготовка данных для отчета, согласно настоящим Методическим указаниям.

4) подготовка отчета и его защита.

На выполнение пунктов 2-3 отводится, в зависимости от сложности, 60 – 80% всего времени аудиторного занятия, предусмотренного по данной теме.

Так как лабораторные занятия связаны между собой тематически и методически, т.е. каждое следующее основано на использование навыка, полученного на предыдущем занятии, то каждая работа должна быть выполнена и защищена до перехода к следующей.

"Сдать" лабораторную работу — значит защитить полученный результат и методику решения.

Студенты заочной формы обучения из-за ее специфичности, защищают свои отчеты непосредственно на сессии.

Окончательный отчет 1 о лабораторной работе оформляется исключительно в электронном виде, как при выполнении работы, так и во время, отведенное для самостоятельной работы, в виде именованной папки и содержит: исполняемый файл (*.exe) с программной реализацией решения задания по теме работы; файл отчета (*.doc), включающий

  1. реквизиты,

  2. тема, номер работы, цель, задание,

  3. содержание данной выполненной работы,

  4. алгоритм (или CASE-модель),

  5. листинг (только фрагменты кода, непосредственно реализующие изучаемый алгоритм, с подробными комментариями, позволяющими студенту успешно защитить работу и т.к. могут играть роль своеобразной "шпаргалки"),

  6. скриншот исполнения программы (.bmp или .jpg).

Защита работы включает краткий доклад студента (2-3 минуты) и ответы на вопросы по соответствующей теме (1-2 вопроса).

Оценка отчета и работы в целом ставится в соответствии с п. 4. "Критерии оценивания лабораторных работ" настоящего руковод­ства в соответствие с принятой кредитно-модульной системой.

Frame3

УКАЗАНИЯ К СОДЕРЖАТЕЛЬНОЙ ЧАСТИ ЛАБОРАТОРНЫХ РАБОТ

Лабораторная работа 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 самая очевидная, поэтому главным при оценивании является содержание используемой процедуры, которое безусловно должно быть индивидуальным;

  • основное требование к примерам — наглядность, поэтому любое улучшение или минимизация кода приветствуется!

Отчет о лабораторной работе (настоящей и последующих) подается в электронной форме, на диске, в виде именованной папки, содержащей:

  1. скомпилированный исполняемый файл (.exe).

  2. Если exe-файл "не запускается" на другом компьютере (без инсталлированной IDE), работа считается невыполненной;

  3. файл отчета (.doc): реквизиты, задание, содержание работы, алгоритм (или CASE-модель), программный код только фрагменты кода непосредственно реализующие алгоритм с подробными комментариями (позволяющими студенту успешно защитить работу);

  4. скриншот исполнения программы (.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 (один для всех работ).

3