Тема «Сортировка, обращение массива»

  • doc
  • 06.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 9. Тема «Сортировка, обращение массива».doc

Тема «Сортировка, обращение массива».

Цели: воспитывать личность:

Знаущую: сортировка и обращение  в линейном массиве.

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

Тип урока: комбенированный (Урок изучения и первичного закрепления новых знаний)

Класс: 9

Ход урока:

1.      Организационный момент. (1 минута)

Проверка готовности учащихся к уроку, на уроке присутствует 9 учеников из 10 человек

2. Проверка домашнего задания.  (10 минут)

На прошлом уроке вы познакомились с понятием поиск в линейном массиве.

Вопросы:

o     Написать блок описания линейного массива?

o     Написать блок ввода линейного массива?

o     Написать блок вывода линейного массива?

o     Как обратиться к заданному элементу массива?

o     Перечислить названия всех блоков по теме «Поиск в линейном массиве»

o     Написать блок замены.

Блок замены ( все элементы равные 7 заменить 0 ):

  for i := 1 to n do

 if a[i] = 7 then a[i] := 0;

Задача №8. В данном линейном массиве все положительные элементы заменить на максимальный элемент.

Ввод:

10   -5   20   -1   30   -7   40   -8

Вывод:

40   -5  420   -1  40   -7   40   -8

План решения:

  1. Описать массив и все переменные.
  2. Ввести массив (блок ввода).
  3. Решить задачу а) найти максимальный элемент б) заменить все положительные на макс.
  4. Вывести массив на экран (блок вывода).

Решение:

            program pr1;

              var  a: array[1..100] of  integer;

                       n, i , max : integer;

            begin

            readln (n);    

for i : =1 to n do

   read (a[ i ]);

            max: = a[ 1 ];

 for i : =1 to 10 do

                 if  a[ i ] > max then max: = a[ i ];

for i : =1 to n do

      if  a[ i ] > 0  then  a[ i ]:= max;

for i : =1 to n do

    write (a[ i ], ‘ ‘);end.

3. Изучение нового материала. Сначала вспомним план работы с линейным массивом.

План работы с линейным массивом:

1.      Описать массив.

2.      Ввести массив.

3.      Обработать массив (решить задачу или вписать блок решения).

4.      Вывести массив или искомую переменную.

А) Сортировка – это смещение всех или определенного промежутка элементов массива по возрастанию или по убыванию. Самый распространенный способ сортировки – пузырьковая.

Первый проход. Найти минимальный элемент и поставить на первое место (поменять местами с А(1)). Для поиска минимального элемента требуется  (n-1) сравнений. Элементов в массиве 5, следовательно количество итераций сравнения – 4.

Линейная сортировка

Второй проход.  Из оставшихся найти минимальный элемент и поставить на второе место (поменять местами с А(2)), и т. д. Количество итераций сравнения – 3.

Линейная сортировка

Третий проход.  Количество итераций сравнения – 2.

Линейная сортировка

Четвертый проход.  Количество итераций сравнения – 1.

Линейная сортировка

Для данного массива линейная сортировка осуществляется за 10 итераций.

Б) Обращение  массива.

Задача № 2: Заполнить линейный массив и обратить его.

 Пример, исходный массив:

             4   -5   3  10  -4  -6  8  -10  1  0

Результат:

              0   1 -10  8  -6  -4  10  3  -5  4

Словесный разбор задачи:

1)      Для обращения массива нужно поменять первый и  последний элемент местами

Для этого запоминаем первый элемент С:= A[1]; тем временем в первый элемент заносим последний элемент A[1]:= A[N], а затем  A[N]:=.C;

Далее нужно выполнить тоже самое со вторым и предпоследним и т.д.

Если быть внимательным то можно увидеть что количество перестановок будет равно половине элементов массива.

2)      Поэтому цикл, в котором будет осуществляться перестановка будет = N/2.

for i:=1 to N div 2 do begin

 c:= A[i];

A[i]:=A[n-i+1];

A[n-i+1]:= c;

end;

 
 


Блок

обращения

линейного

массива:

var A: array[1..10] of integer;

    i, c: integer;

begin

  { заполнить массив }

 for i:=1 to N div2 do

 begin

c:= A[i];

A[i]:=A[n-i+1];

A[n-i+1]:= c;

 end;

  { вывести полученный массив }

end.

 
 


Программа:

 

 

 

 

 

 

4. Домашнее задание:

Решить одну задачу из предложенных  по вариантам (В-1, только нечетные; В-2, только четные), повторить блоки

Задачи для домашнего задания:

1.      Вводится линейный массив отсортировать массив до максимального значения.

2.      Вводится линейный массив отсортировать массив после максимального значения.

3.      Вводится линейный массив отсортировать массив между максимальным и минимальными значениями.

4.      Вводится линейный массив отсортировать массив между введенными позициями.

 

5.Первичное закрепление знаний.

1)Вопросы для повторения:

  1. Что такое сортировка?
  2. Какова особенность  алгоритма обращения массива?
  3. Как измениться программа №1, если нужно отсортировать массив до введенного числа?
  4. Как измениться программа №2, если нужно обратить  массив после введенного числа?

2) Самостоятельная работа.

Задачи для самостоятельного решения по теме сортировка и обращение линейного массива:

Вариант-1 

1.Вводится линейный массив отсортировать его первую половину.

2.Заполнить линейный массив и обратить его перед введенным числом.

    Пример:

 Исходный массив:

       4   -5   3  10  -4  -6  8  -10  1  0

Число:

-4

Результат:

10    3 -5  4 -4  -6  8  -10  1  0

Вариант-2

1.Вводится линейный массив отсортировать его вторую половину.

2.  Заполнить линейный массив и обратить его после максимального элемента.

    Пример:

 Исходный массив:

       4   -5   3  10  -4  -6  8  -10  1  0

Результат:

4          -5   3  10  0  1  -10  8 -6  8  -6  -4

6. Подведение итогов. Выставление оценок. Рефлексия.

Самооценка и взаимооценка. 

Что нового вы сегодня узнали на уроке?

Как ты оцениваешь свою работу на уроке, работу одноклассников?

Какие возникали затруднения в процессе урока?

Анализ цели урока, ключевого вопроса. Учащиеся заполняют оценочные листы. Обратная связь с помощью сигнала «Светофор».