Урок информатики по теме "Сортировка одномерного массива с помощью программы-процедуры"

Разделы: Информатика


Цель урока:

  • закрепить навыки использования подпрограммы при решении  задач на массивы;
  • повторение основных видов сортировок.

Задачи урока:

  • Образовательные:
    • применение подпрограмм при работе с массивами;
    • отработка умений записи вызова подпрограммы.
  • Развивающие:
    • развивать  умение  применять полученные знания для решения задач.
  • Воспитательные:
    • развивать интерес к предмету.

Тип урока: комбинированный

Обеспечение урока: ПК, 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. Домашнее задание

Написать программу (см. практическое задание ) с использованием подпрограммы-функции.