Тема урока: Сортировка массива. Инструктаж по ТБ (Инструкция №2.11). Практическая работа №9 «Написание программ, реализующих алгоритмы сортировки в массиве»
Тип урока: урок изучения нового материала.
Цели урока:
-
обучающая: организовать деятельность обучающихся по ознакомлению с алгоритмом сортировки выбором; создать условия для формирования у обучающихся умения использовать изученные ранее синтаксические конструкции языка программирования при написании программ;
-
развивающая: способствовать повышению интереса к предмету; содействовать развитию алгоритмического мышления у обучающихся; способствовать развитию логического мышления, познавательного интереса, памяти обучающихся;
-
воспитывающая: способствовать формированию самостоятельности при решении задач; способствовать сплочению коллектива, формированию уважительного отношения друг к другу.
Формируемые универсальные учебные действия (УУД):
-
Личностные УУД:
-
фантазия и воображение при выполнении учебных действий;
-
желание выполнять учебные действия.
-
-
Познавательные УУД:
-
логические действия и операции;
-
создание и преобразование моделей и схем для решения задач;
-
выбор наиболее эффективных способов решения задач в зависимости от конкретных условий.
-
-
Коммуникативные УУД:
-
формулирование собственного мнения и позиции.
-
-
Регулятивные УУД:
-
планирование своих действий в соответствии с поставленной задачей и условиями ее реализации.
-
Оборудование: персональный компьютер (ПК), мультимедийный проектор, экран.
Программные средства: презентация «Сортировка массива».
Ход урока
Деятельность учителя | Деятельность учащихся | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Организационный момент Приветствие, проверка подготовленности к учебному занятию, организация внимания детей. |
Включаются в деловой ритм урока. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. Актуализация знаний Здравствуйте, ребята! Сегодня мы продолжим изучение темы «Одномерные массивы», но, прежде чем перейти к новой теме, запишите сегодняшнюю дату и оставьте место для названия сегодняшнего урока. Теперь ответьте на следующие вопросы: • что такое массив; • как определить одномерный массив из 5 элементов, являющихся вещественными числами; • что выполняют следующие фрагменты кода:
| (Отвечают на вопросы) Массив - поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элемента в массиве. var arr: array [1..5] of real 1) находит максимальный элемент массива; 2) меняет местами элементы массива с индексами k1 и k2. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3. Изучение нового материала Теперь рассмотрим с вами следующую задачу, знакомую вам из курса алгебры 7 класса (запишите её условие): пусть имеется неупорядоченный ряд чисел с нечетным количеством элементов (8, 9, 4, 7, 2). Необходимо найти медиану этого ряда. Кто может сказать, что такое медиана ряда чисел? (Если затруднения, то вывожу подсказку с упорядоченными рядами и их медианами.) Так что же необходимо сделать, прежде чем найти медиану неупорядоченного ряда? Да, именно так. Задача упорядочивания элементов внутри какой-либо структуры в определенном порядке является довольно часто встречающейся на практике. Обычно такую задачу называют задачей сортировки. Сегодня мы с вами рассмотрим задачу сортировки одномерных массивов. Запишите название сегодняшнего урока: «Сортировка одномерных массивов». Рассмотрим с вами один из алгоритмов сортировки одномерных массивов – алгоритм сортировки выбором. Сортировать массив в данном случае будем по убыванию. Шаг 1. Обозначаем imax как максимальный элемент и присваиваем ему значение i: imax:=i; Шаг 2. Запускаем цикл от i+1 элемента, в котором проверяем условие a[j] a[imax] и если оно выполняется, то imax присваиваем значение j: for j:=i+1 to 10 do if a[j]a[imax] then imax:=j; Шаг 3. Присваиваем значение a[i] для x: x:=a[i]; Шаг 4. Присваиваем значение a[imax] для a[i]: a[i]:=a[imax]; Шаг 5. Присваиваем значение x для a[imax]: a[imax]:=x;
Запишите этот алгоритм в своих тетрадях. А теперь применим этот алгоритм к нашей задаче. Пока я буду набирать задачу в редакторе, записывайте её решение у себя в тетради. [Совместно с обучающимися решается задача на компьютере в IDE, попутно решение проецируется на экран]. Выполним трассировку программы для i = 1 и i = 2. | Записывают условие задачи. Медиана упорядоченного ряда чисел – это число, которое находится в середине этого ряда (для ряда с нечетным количеством элементов), или число, которое равняется среднему арифметическому двух чисел ряда, стоящих в середине (для ряда с четным количеством элементов). Ряд нужно упорядочить. Записывают тему урока. (Записывают алгоритм в тетрадях) Алгоритм сортировки выбором: Шаг 1. Обозначаем imax как максимальный элемент и присваиваем ему значение i: imax:=i; Шаг 2. Запускаем цикл от i+1 элемента, в котором проверяем условие a[j] a[imax] и если оно выполняется, то imax присваиваем значение j: for j:=i+1 to 10 do if a[j]a[imax] then imax:=j; Шаг 3. Присваиваем значение a[i] для x: x:=a[i]; Шаг 4. Присваиваем значение a[imax] для a[i]: a[i]:=a[imax]; Шаг 5. Присваиваем значение x для a[imax]: a[imax]:=x. Участвуют в обсуждении задачи, записывают решение в тетради. program sort1; var a: array [1..5] of integer; i, j, min, imin: integer; begin for i:=1 to 5 do read(a[i]); for i:=1 to 5 do write(a[i]:4); writeln; for i:= 1 to 4 do begin min:=a[i]; imin:=i; for j:= i+1 to 5 do if a[j] min then begin min:=a[j]; imin:=j; end; a[imin]:=a[i]; a[i]:=min; end; for i:=1 to 5 do write(a[i]:4); writeln; writeln('Медиана = : ',a[3]); end. К доске для составления трассировочной таблицы выходит один из учеников, остальные заполняют трассировочную таблицу в своих тетрадях.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4. Закрепление изученного Рассмотрим следующий фрагмент кода: for i:=1 to n-1 do if a[i] 0 then begin imin:=i; for j:=i to n do if (a[j] 0) and (a[j] imin:=j; if imin i then begin tmp:=a[i]; a[i]:=a[imin]; a[imin]:=tmp; end; end; Что он выполняет? Теперь пересаживайтесь за компьютеры и самостоятельно выполните следующее задание: необходимо создать массив из 10 элементов, заполненных случайными целыми числами от 1 до 30, и вывести его на экран, отводя на каждое число 5 экранных позиций. Выполнить сортировку только четных элементов массива по возрастанию (нечетные при этом остаются на своих местах). Вывести преобразованный массив на экран. | Данный фрагмент кода производит сортировку положительных элементов массива в порядке возрастания. Выполняют самостоятельное задание. program sort2; var a: array [1..10] of integer; i, j, min, imin: integer; begin randomize; for i:=1 to 10 do a[i]:=random(30)+1; for i:=1 to 10 do write(a[i]:5); writeln; for i:= 1 to 9 do if a[i] mod 2 = 0 then begin min:=a[i]; imin:=i; for j:= i+1 to 10 do if (a[j] mod 2 = 0) and (a[j] min:=a[j]; imin:=j; end; a[imin]:=a[i]; a[i]:=min; end; for i:=1 to 10 do write(a[i]:5); end. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5. Подведение итогов Итак, чему вы научились в течение сегодняшнего занятия? Перечислите шаги алгоритма сортировки выбором. | Осуществлять сортировку одномерного массива, используя алгоритм сортировки выбором. Шаг 1. Обозначаем imax как максимальный элемент и присваиваем ему значение i: imax:=i; Шаг 2. Запускаем цикл от i+1 элемента, в котором проверяем условие a[j]a[imax] и если оно выполняется, то imax присваиваем значение j: for j:=i+1 to 10 do if a[j]a[imax] then imax:=j; Шаг 3. Присваиваем значение a[i] для x: x:=a[i]; Шаг 4. Присваиваем значение a[imax] для a[i]: a[i]:=a[imax]; Шаг 5. Присваиваем значение x для a[imax]: a[imax]:=x. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§2.2.6, выучить | Записывают в дневниках д/з. |
2