Цель урока:
- закрепить навыки использования подпрограммы при решении задач на массивы;
- повторение основных видов сортировок.
Задачи урока:
- Образовательные:
- применение подпрограмм при работе с массивами;
- отработка умений записи вызова подпрограммы.
- Развивающие:
- развивать умение применять полученные знания для решения задач.
- Воспитательные:
- развивать интерес к предмету.
Тип урока: комбинированный
Обеспечение урока: ПК, Pascal
ХОД УРОКА
1. Оргмомент: приветствие, объявление цели урока
2. Актуализация ЗУН учащихся (опрос учащихся)
– Что такое сортировка? (Сортировкой называется распределение элементов множества по группам в соответствии с определенными правилами)
– Назовите методы сортировок, которые вы знаете
1) сортировка с помощью прямого выбора (простая)
Алгоритм:
– выбор элемента с наименьшим ключом (минимальный элемент)
– обмен местами (минимального и 1 элемента)
– процесс продолжается с оставшимися n–1 элементами, n–2 элементами и т.д. до тех пор, пока не останется один, самый большой элемент.
2) с помощью прямого включения (рассматриваются 1 и 2 элементы и расставляются по порядку, т.е. левый конец массива отсортирован, добавляется еще один элемент и т.д.)
3) пузырек (в процессе исполнения алгоритма более легкие элементы постепенно «всплывают», особенностью данного метода является сравнение не каждого элемента со всеми , а сравнение в парах соседних элементов)
– запишите общий вид подпрограммы-процедуры
procedure < имя> (формальные параметры);
const …;
type …;
var …;
begin
<операторы>
end;
описания меток, констант, типов и т.д. действительны только в пределах данной процедуры. В теле процедуры можно использовать любые глобальные константы и переменные.
– какие параметры называются формальными, фактическими (параметром называется переменная, которой присваивается некоторое значение в рамках указанного применения. Различают формальные параметры – параметры, определяемые в заголовке подпрограммы, и фактические параметры – выражения, задающие конкретные значения при обращении к подпрограмме. При обращении к подпрограмме формальные параметры замещаются фактическими, переданными из главной программы. Процедура не может выполняться сама, ее необходимо вызвать по имени и указать фактические параметры того же типа, что и формальные. Количество и тип формальных параметров равны количеству и типу фактических параметров)
3. Практическое задание на компьютере
Написать программу сортировки одномерного массива по возрастанию.
Требования к программе: наличие меню пользователя для выбора метода сортировки, последовательность для сортировки создается в основной программе.
const n=10;
type mas=array[1..n] of integer;
var a:mas;
i:integer;
c:char;
{сортировка методом пузырька}
procedure s2(var a:mas);
var d,i,j:integer;
begin
for j:=2 to n do
for i:=n downto j do
if a[i]<a[i–1] then begin
d:=a[i]; a[i]:=a[i–1]; a[i–1]:=d;
end;
end;
{сортировка с помощью прямого выбора}
procedure s1(var a:mas);
var min,d,i,j:integer;
begin
for i:=1 to n do
begin
min:=a[i];d:=i;
for j:=i to n do
if a[j]<min then begin
min:=a[j];
d:=j;
end;
a[d]:=a[i];
a[i]:=min;
end;
end;
{сортировка с помощью прямого включения}
procedure s3(var a:mas);
var m,d,i,j:integer;
begin
for j:=2 to n do
for i:=j downto 2 do
if a[i]<a[i–1] then begin
d:=a[i–1];
a[i–1]:=a[i];
a[i]:=d;
end;
end;
begin
{основная программа}
for i:=1 to n do
begin
a[i]:=random(200)–100;
write(a[i],' ');
end;
writeln(' Для сортировки массива укажите номер сортировки’);
writeln('1. сортировка с помощью прямого выбора');
writeln('2. сортировка методом пузырька ');
writeln('3. сортировка с помощью прямого включения ');
readln(c);
case c of
'1':s1(a);
'2':s2(a);
'3':s3(a);
end;
writeln('массив, отсортированный методом ',c);
for i:=1 to n do
write(a[i],' ');
end.
4. Подведение итогов урока (метод контроля, коррекции, обобщения)
1. Подведение теоретических итогов урока (Какой вид подпрограммы мы сегодня рассмотрели, при решении какого типа задач можно применять подпрограммы-процедуры)
2. Объявление оценок
5. Домашнее задание
Написать программу (см. практическое задание ) с использованием подпрограммы-функции.