Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белова. Экзамен.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
262.51 Кб
Скачать

26. Методика изучения алгоритма Евклида.

Данная тема может рассматриваться как одно из направлений реализации межпредметных связей математики и информатики. Рассмотрим методы решения задач на примере нахождения наибольшего общего делителя и наименьшего общего кратного двух чисел. НОД(А, В) и НОК (А,В)

1 способ (школьный курс математики)

Алгоритм 1. Задать А И В. 2. Разложить А на простые множители (отдельная задача) 3. Разложить В на простые множители 4. Выбрать общие простые множители (отдельная задача) 5. Найти произведение выбранных множителей. 6. Выделить результат

Реализация алгоритма в виде программы требует решить предварительно ряд задач:

Является ли число простым, Разложить число ан простые множители (работа с массивами). Выбрать общие множители в двух разложениях (работа с массивами)

Поэтому метод решения данной задачи, доступный ученику 5 класса достаточно трудно программировать.

2 способ (машинный ±1)

Рассмотрим нахождение НОД и НОК «методом перебора» всех возможных значений.

1. Задать А и В 2. Если А<B, то Min=A, иначе Мin =В 3. Пока А:Min и В:Min ложно Min=Min – 1 4. НОД (А,В) = Мin

Для нахождения Нок можно воспользоваться формулой, указанной ранее, а можно так же воспользоваться «методом перебора»

1. Задать А и В 2. Если А>B, то Mах=A, иначе Мах =В 3. Пока А:Mах и В:Mах ложно Мах = Мах + 1 4. НОК (А,В) = Мах

3 способ. Алгоритм Евклида

Рассмотрим различные способы программной реализации алгоритма Евклида.

1) Нахождение частного и остатка..

Пусть А=32, В=12. Рассмотрим последовательное деление делителя на остаток.

Последний не равный нулю остаток и есть НОД

Процесс нахождения НОД заключается в последовательном делении А на В. На место А на следующем шаге ставится делитель – В, на место В – остаток О. НОД найден, если остаток В=0. НОД = А.

2) Разностный способ.

Будем последовательно вычитать из большего числа меньшее. Плюсы: короткий алгоритм и в записи и в количестве шагов исполнения.

Пока А<>В Нц Если A>B, то А:=А-В, иначе В:=A-В Кц Вывод НОД=А

В этом способе деление заменяется вычитанием.

27. Методика обучения обработке массивов.

Массив — это последовательность однотипных элементов, число которых фиксировано, и которым присвоено одно имя.

Описание массива в языке паскаль возможно следующими способами:

1 способ - в разделе переменных

{линейный массив из n элементов целого типа}

Var A: array [1..n] of integer;

{двумерный массив 3х4 целого типа}

Var A: array [1..3,1..4] of integer;

2 способ – через описание типов

{тип - линейный массив из n элементов целого типа}

Type Myarray= array [1..n] of integer;

Var A: Myarray;{переменная А типа Myarray }

Заполнять массив можно либо считывая значение каждого элемента, либо присваивая элементам некоторые значения.

Одной из распространенных операций с массивами является операция нахождения суммы значений элементов массива.

S := 0; {переменная для накопления результата}

for i := 1 to N do

S := S + a[i];

Write(S);

Циклический сдвиг массива. Под циклическим сдвигом элементов массива подразумевается, что все элементы массива сдвигаются на один элемент влево или вправо, а первый (последний) элемент становится последним (первым).

с := a[N]; {запоминаем последний элемент во вспомогательной переменной}

for i := N downto 2 do

a[i] := a[i - 1];

a[1] := c;

Поиск в массиве.

Сотрировка массива. “Пузырьковая” сортировка . Это наиболее простая сортировка. Суть ее: Будем просматривать слева направо все пары соседних элементов: a1 и a2, a2 и a3, …, an-1 и an. Если при этом ai > ai+1, то элементы меняем местами. В результате такого просмотра массива максимальный элемент окажется на крайнем справа (своем) месте.

for j := 1 to n — 1 do

{цикл по просмотрам}

for i := 1 to n — j do

{просмотр массива}

if a[i] > a[i + 1] then

begin

x := a[i];

a[i] := a[i + 1];

a[i + 1] := x

end;

Сортировка “прямым выбором” .Рассмотрим алгоритм сортировки, основанный на принципиально иной идее. Найдем минимальный элемент в массиве и поменяем его с первым элементом массива. В результате он окажется на своем месте. Затем найдем минимальный элемент среди оставшихся и поменяем его со вторым элементом. На N–1-м шаге мы закончим упорядочивание нашего массива. Такой алгоритм называется сортировкой прямым выбором. Приведем фрагмент программы, реализующий описанный алгоритм:

for i := 1 to n - 1 do

begin

mini := i;

for j := i + 1 to n do

{ищем минимальный элемент}

if a[j] < a[mini] then mini := j

{меняем минимальный элемент с i-м}

x := a[i];

a[i] := a[mini];

a[mini] := x

end;