Имитационное моделирование при нахождении алгоритма поиска минимального элемента в массиве чисел
Основная цель обучения – развитие учащегося. Возможности развития учащихся таятся в соответствующем образом отображенном содержании учебного материала и составленных на этой основе познавательных заданий. Однако эти средства являются лишь предпосылкой развития. Для того, чтобы обучение имело развивающий эффект, нужно соблюдать следующее условие – развиваемый субъект должен быть включен в активную деятельность и общение. Содержательной стороной активизации учащихся являются задания на активизацию памяти, процесса логического мышления, на творческую деятельность, на поиск новых знаний. Тема «Поиск в линейной таблице элемента, обладающего заданным свойством» посвящена изучению процесса нахождения данных с определенной идентификацией. Например, в вычислительной задаче нам может понадобиться найти f(x), имея x и таблицу значений f; в лингвистической – может интересовать английский перевод данного русского слова. Существует много различных видов поиска: линейный поиск, бинарный поиск, метод золотого сечения и др. В школьном курсе информатики изучают два метода поиска: линейный и бинарный. Рассмотрим некоторые методические аспекты активации логического мышления, творческой деятельности, «открытия новых знаний» при изучении этой темы в школьном предмете «Информатика и ИКТ».
Задача поиска минимального элемента ставится следующим образом. Имеется линейный массив (таблица) вещественных чисел А[t:n], требуется найти номер k элемента А[k], который имеет в массиве минимальное значение.
A[1] | A[2] | A[3] | A[4] |
Для разъяснения идеи построения алгоритма полезно обратиться к конкретному примеру. Для осознанного получения новых знаний мы предлагаем при составлении алгоритма использовать моделирование памяти компьютера. Пусть имеется линейный массив, состоящий из четырех элементов. Запишем имена элементов массива, их индексы и значения в клетки таблицы. В первой строке таблицы запишем имена элементов массива, во второй строке – индексы элементов массива, в третьей строке – значения соответствующих элементов массива. Выберем две вспомогательные переменные: k – для запоминания номера минимального элемента, min1 – для запоминания значения этого элемента. Имена и значения переменных k и min1 для наглядности также будем записывать в особые клетки.
1 шаг. Предположим, что минимальным элементом массива является его первый элемент. Поместим в клетку k номер первого элемента массива (1), в клетку min1 – значение первого элемента массива (10).
k | min1 | A[1] | A[2] | A[3] | A[4] | |
Далее будем сравнивать все значения элементов массива, начиная со второго, со значением переменной min1, т.е. cо значением, записанным в клетке min1. Если при этом окажется, что сравниваемый с min1, элемент A[i], где i изменяется от 2 до 4, меньше, чем значение min1, то переменной min1 присвоим значение A[i], а переменной k –номер элемента A[i] (i). Если же элемент A[i] окажется больше min1, то значения переменных min1 и k будем оставлять без изменения.
2 шаг. i = 2, сравниваем A[2] с min1. A[2] = 8, min1 = 10. A[2] меньше min1? Да, так как 8 < 10. Следовательно, min1 нужно присвоить значение A[2], а переменной k – значение 2, min1:= A[2], k:=2. В клеточку min1 записываем значение 8, а в клеточку k значение 2.
k | min1 | A[1] | A[2] | A[3] | A[4] | |
i=2
A[2]<min1 (да)
min1 := A[2]
k:=2
3 шаг. i = 3, сравниваем A[3] с min1. A[3] = 14, min1 =8. A[3] меньше min1? Нет, так как 14 > 8, значения min1 и k оставляем без изменения.
k | min1 | A[1] | A[2] | A[3] | A[4] | |
i=3
A[i]<min1 (нет)
(ничего не делаем)
4 шаг. i = 4, сравниваем A[4] с min1. A[4] = 6, min1 = 8. A[4] меньше min1? Да, так как 6 < 8. Следовательно, min1 нужно присвоить значение A[4], а переменной k – значение 4, min1:=A[2], k:=4. В клеточку min1 записываем значение 6, а в клеточку k значение 4.
k | min1 | A[1] | A[2] | A[3] | A[4] | |
i=4
A[i]<min1 (да)
min1 := A[i]
k:=i
Итак, минимальный элемент массива A[1:4] – это четвёртый элемент, его значение 6.
Пример программы поиска минимального элемента
в последовательности целых чисел – элементов массива,
начиная с номера t до номера r.
алг поиск минимального (арг цел n,t,r) начцелтаб a[1:n],цел i, цел k,цел min1 │input(n,a); print(n,a) │|поиск k-индекса минимального │|элемента и min1- значения │|минимального элемента │|в массиве, начиная │|с номера t до номера r │min1:=a[t]; k:=t │нцдля i от t+1 до r ││если min1>a[i] │││то │││ min1:=a[i]; k :=i ││все │кц │|вывод k и min1 │выводнс, "k= ",k," ","min1= ", min1 Кон | алг print (аргцел n,аргцелтаб a[1:n]) начцел i │|вывод элементов массива │выводнс │нцдля i от 1 до n ││вывод a[i]," " │кц кон алг input (аргцел n, резцелтаб a[1:n]) начцел i │|ввод элементов массива │нцдля i от 1 до n ││вывод "a[",i,"]= " ││ввод a[i] │кц кон |
Программа поиска минимального элемента массива на языке Ершол, система Кумир |
Дата добавления: 2015-01-26; просмотров: 1060;