Задачи урока: Воспитательная. Развитие познавательного интереса, воспитание информационной культуры. Учебная
Вид материала | Урок |
СодержаниеОперации над множествами. |
- Задачи урока: Воспитательная. Развитие познавательного интереса, воспитание информационной, 67.87kb.
- Задачи урока: Воспитательная развитие познавательного интереса, логического мышления., 103.05kb.
- Задачи урока: учебная закрепление теоретических знаний, формирование практических умений, 54.75kb.
- План-конспект урока тема: Виды графики, 196.58kb.
- Задачи урока: Развивающие развитие логического мышления учащихся развитие познавательного, 219.88kb.
- Ровновой Елены Николаевны По теме: Развитие познавательного интереса учащихся на урок, 457.43kb.
- Развитие познавательного интереса учащихся на уроках истории и во внеклассной работе, 883.37kb.
- Аннотированный список ресурсов Интернет по теме: «Развитие познавательного интереса, 60.1kb.
- Задачи: способствование в реализации задач модернизации образования в учебно-воспитательном, 52.57kb.
- Задачи урока: Воспитательная а Воспитание у подростков чувства ответственности за совершаемые, 118.97kb.
Бут Людмила Александровна
учитель информатики лицея №14 г.Жуковский
Множественный тип данных в Паскале.

Образовательная:
- Научить учащихся применять современное программное обеспечение в решении нестандартных задач;
- Сформировать представление учащихся о возможностях использования данных множественного типа при решении задач.
Развивающая:
- Продолжить развивать умения учащихся применять компьютер для решения конкретных задач из конкретной предметной области;
- Развитие у школьников теоретического, творческого мышления, а также формирование операционного мышления, направленного на выбор оптимальных решений.
Задачи урока:
- Воспитательная. Развитие познавательного интереса, воспитание информационной культуры.
- Учебная. Изучить и закрепить основные навыки работы при решении ребусов.
- Развивающая. Развитие логического мышления, расширение кругозора.
Тип урока: Комбинированный - урок формирования и закрепления умений и навыков программирования на языке Паскаль.
План урока.
- Организационная часть.
- Повторение.
- Объяснение нового материала.
- Самостоятельная работа.
- Подведение итогов.
- Домашнее задание.
Ход урока.
Вопросы для повторения:
- Что определяет тип данных в Паскале?
- Какие структурированные типы данных нами изучены?
- Как записываются сложные условия?
Определение. Под множеством в Паскале понимается конечная совокупность элементов, принадлежащих некоторому базовому типу.
В качестве базовых типов могут использоваться: перечислимые типы данных, символьный и байтовый типы или диапазонные типы на их основе.
Число элементов исходного множества не может быть больше 256, а порядковые номера элементов (т.е. значение функции Ord) должны находиться в пределах от 0 до 255.
Для задания типа-множества следует использовать зарезервированные слова set of , а затем указать элементы этого множества, как правило, в виде перечисления или диапазона.
Type
< имя типа > = set of < имя базового типа >;
Var
< идентификатор,... >:< имя типа >;
Примеры:
Type
Mn1 = set of byte;
Mn2 = set of 1900 ... 2050;
Mn3 = set of char; {множество символов};
Mn4 = set of 0..9. {множество цифр};
Обычно значение задается с помощью конструктора множества. Конструктор задает множество элементов с помощью перечисления в квадратных скобках выражений, значения которых дают элементы этого множества. Допустимо использовать диапазоны элементов.
Примеры:
S1:=[] {пустое множество};
S2:=[0,2,4,,6,8] {множество четных цифр};
S3:-[2..5] {множество оценок};
Операции над множествами.
- Объединение. Знак операции - +.
Объединением 2-х множеств называется третье множество, которое содержит элементы, которые принадлежат хотя бы одному из множеств операндов, при этом каждый элемент входит в множество только один раз.
- Пересечение. Знак операции - *.
Пересечением множеств называется множество, содержащее элементы одновременно входящие в оба множества операндов.
- Вычитание. Знак операции - -.
Разностью 2-х множеств является третье множество, которое содержит элементы 1-го множества, не входящие во 2-е множество.
- Определение принадлежности элемента множеству. Знак операции – in.
Логическая операция проверки принадлежности элемента множеству записывается через оператор in, возвращает true, если элемент принадлежит множеству и false в противном случае.
- Операции сравнения. Знаки операций - =, <>, <=, <, >=, >.
Множества считаются равными, если все элементы, содержащиеся в одном множестве присутствуют в другом, и наоборот.
Одно множество считается входящим в другое, если все его элементы содержатся во втором, при этом обратное в общем случае может быть несправедливо.
Результатом операции объединения, разности или пересечения является соответствующее множество, остальные операции дают результат логического типа.
Вывод множеств осуществляется только поэлементно.
Пример. «Решето Эратосфена».
Программа поиска простых чисел в промежутке [1..n].
Вспомним, что простым числом называется число, не имеющее делителей, кроме единицы и самого себя.
Идея метода "решета Эратосфена" заключается в следующем: сформируем множество М, в которое поместим все числа заданного промежутка. Затем последовательно будем удалять из него элементы, кратные 2, 3, 4, и так далее до целой части числа [N/2], кроме самих этих чисел. После такого "просеивания" в множестве М останутся только простые числа.
program resheto;
Var m: Set of Byte;
i, k, n: Integer;
Begin
Writeln (‘Введите размер промежутка(до 255)’);
Readln(n);
m:=[2..n]; {начальное значение}
For k:=2 To n Div 2 Do {перебор делителей}
For i:= 2 To n Do
{удаление чисел кратных делителю, кроме него самого}
If (i Mod k=0) And (i<>k) Then m:=m-[i];
For i:= 2 To n Do
{печать оставшихся элементов}
If i in m Then Write(i:4);
Readln;
End.
Пример. Решить ребус
МУХА
+ МУХА
----------
СЛОН
Разным буквам соответствуют разные цифры. Необходимо заменить буквы цифрами так, чтобы получилось верное равенство.
Для решения этой задачи используется алгоритм перебора с возвратом.
Заметим, что значение буквы М в слове МУХА может иметь значения от 1 до 4, а буква А в этом же слове не может быть равна 0.
Program rebus;
type mn= set of 0..9;
var m,y,x,a: 0..9; {цифры числа МУХА}
n1,n2:integer; { числа МУХА и СЛОН}
a1,a2,a3,a4: 0..9; { цифры числа СЛОН}
s1,s2:mn; {множества для хранения цифр каждого из чисел}
begin
s1:=[ ];s2:=[ ];
for m:=1 to 4 do
begin
s1:=s1+[m];
for y:=0 to 9 do
if not(y in s1) then
begin s1:=s1+[y];
for x:=0 to 9 do
if not(x in s1) then
begin s1:=s1+[x];
for a:=1 to 9 do
if not(a in s1) then
begin s1:=s1+[a]; n1:=1000*m+100*y+10*x+a; {число для слова МУХА}
n2:=2*n1; { число для слова СЛОН}
a1:=n2 div 1000; a2:=n2 div 100 mod 10; {выделение цифр}
a3:= n2 div 10 mod 10; a4:= n2 mod 10;
s2:=[a1,a2,a3,a4]; {множество цифр числа СЛОН}
if (s1*s2=[ ]) and {все цифры в словах разные} ([a1]*[a2,a3,a4]+[a2]*[a3,a4]+[a3]*[a4]=[ ])
then write(n1:5, n2:5);
s1:=s1-[a]; {удаление занесенной цифры}
end;
s1:=s1-[x];
end;
s1:=s1-[y];
end;
s1:=s1-[m];
end;
readln;
end.
Задания для самостоятельной работы: Найти все возможные варианты решения ребусов: | |||||||
| | | | | | ||
1 | USSR+ USA PEACE | 2 | SNEG + KRUG SPORT | 3 | SIX * TWO TWELWE | 4 | VOLVO + FIAT MOTOR |
5 | ЛОБ + ТРИ САМ | 6 | ИКС + ИСК КСИ | 7 | ДВА + ТРИ ПЯТЬ | 8 | ТОЧКА + КРУГ КОНУС |
| | | | | | | |
9 | ЛЕТО + ЛЕТО ПОЛЕТ | 10 | НИТКА + НИТКА ТКАНЬ | 11 | ВАГОН +ВАГОН СОСТАВ | 12 | ВЕТКА +ВЕТКА ДЕРЕВО |
13 | КРОНА + КРОНА КРОНА ФРАНК | 14 | КНИГА + КНИГА КНИГА НАУКА | 15 | ДЕДКА + БАБКА РЕПКА СКАЗКА | 16 | АТАКА + УДАР УДАР НОКАУТ |
17 | КОРОВА + ТРАВА ДОЯРКА МОЛОКО | 18 | СИНУС + СИНУС КОСИНУС ТАНГЕНС | 19 | ЕЛКА + ЕЛКА ЕЛКА ЛЕСОК | 20 | МАГНИЙ +ТАНТАЛ МЕТАЛЛЫ |
| | | | | | | |
21 | ОДИН ОДИН + ОДИН ОДИН ОДИН ПЯТЬ | 22 | СОРОК СОРОК + СОРОК СОРОК СОРОК ДВЕСТИ | 23 | АИСТ АИСТ + АИСТ АИСТ СТАЯ | 24 | ШЕПНУЛ ШЕПНУЛ + ШЕПНУЛ ШЕПНУЛ ШЕПНУЛ КРИКНУЛ |
| | | | | | | |
25 | ОДИН + ОДИН МНОГО | 26 | ЛАДЬЯ + ЛАДЬЯ ФЕРЗЬ | 27 | РАЙОН +РАЙОН ГОРОД | 28 | ТАМТАМ + МРАК КОШМАР |
| | | | | | | |
29 | АХИНЕЯ + АХИНЕЯ ЧЕПУХА | 30 | НАТАША + ТОНЯ СЕСТРЫ | 31 | ПЛОМБА * 5 АПЛОМБ | 32 | ПЧЕЛКА * 7 ЖЖЖЖЖЖЖ |
| | | | ||||
33 | (М+О+С+К+В+А)4=МОСКВА | 34 | (К+У+Б)3= КУБ |
Примечание:
Если число не входит в тип integer(>32767), то используйте тип longint и цифры числа определяйте с помощью поразрядного сложения.