Одномерные массивы

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

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

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

Иконка файла материала Л2-00080.docx

Одномерные массивы.


Тип урока: объяснение нового материала и практическая отработка умений.

Цели урока:

Образовательные:

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

Развивающие:

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

Воспитательные:

  • воспитание самостоятельности, и ответственности за выполненную работу;
  • формировать у учащихся объективную самооценку;
  • пробудить интерес к обучению.

Необходимое оборудование и материалы: компьютер, проектор, Microsoft Office PowerPoint, среда программирования QBasic.

План урока:

  1. Актуализация знаний.
  2. Объяснение нового материала
  3. Практическая работа – решение задач по новой теме.
  4. Итоги урока.
  5. Домашнее задание.

Ход урока

I. Актуализация знаний.

(Приложение)

ЗАДАЧА. Составьте алгоритм и программу нахождения суммы 10 произвольных чисел.

Ответьте на вопросы:

  • Есть ли в решении этой задачи действия, которые необходимо выполнить несколько раз?
  • Сколько раз надо их выполнить?
  • С помощью какой команды мы организуем решение нашей задачи?

Решение.

https://urok.1sept.ru/articles/595205/1.gif

В цикле программы по запросу INPUT вводится число, которое помещается в область памяти с именем X и прибавляет его к текущему значению суммы S. Цикл повторяется 10 раз. Но программа не сохраняет все заданные значения X! Если в программе необходимо сохранить эти значения, то понадобится использовать столько переменных, сколько вводится значений. Это не очень удобно:

CLS
INPUT X1
INPUT X2

INPUT X10
S=X1 +X2+…+X10
PRINT “S=“; S
END

В подобной ситуации можно воспользоваться переменными с индексами. Такие переменные имеют одно и тоже имя, но разные индексы: X(1), X(2), X(3) …

II. Новый материал:

Наглядно такие переменные можно представить в виде таблицы:

Пример 1.

  1  

  2  

  3  

  4  

  5  

  6  

  7  

  8  

15

-2

16

19

0

3

-7

10

Это линейная таблица, где заданы значения переменных и каждой переменной поставлен в соответствие его порядковый номер (индекс).

Пример 2. На метеостанции измеряли температуру воздуха каждый час в течении суток:

  0  

  1  

  2  

  3  

 22 

 23 

17

16

15,5

14

18

17,5

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

МАССИВ – это упорядоченная совокупность однотипных данных, каждому из которых соответствует свой порядковый номер (индекс).

Массив характеризуется именем, размерностью и размером.

  1. (из примера 1) B – имя массива, размерность – линейный массив (одномерный), его размер (или длина) равен 8.
  2. (из примера 2) temp – имя, размерность – линейный, длина – 24.

Итак, имя массиву даете вы!

Для описания массива языке QBasic существует оператор

DIM имя (верхняя граница)

Например,

DIM B(7) или DIM B(8)
DIM temp(23)

В памяти компьютера:

  0  

  1  

  2  

  3  

  4  

  5  

  6  

  7  

0

0

0

0

0

0

0

0

Оператор DIM пишется в начале программы!

Если в задаче используются несколько массивов, то их можно описать в одном операторе DIM через запятую.

Наша задача – сумма 10 чисел будет решаться так:

https://urok.1sept.ru/articles/595205/2.gif

CLS
DIM A(10)
S=0
FOR i=1 TO 10
INPUT A(i)
S=S+A(i)
NEXT i
PRINT “S=“; S
END

III. Закрепление темы.

Дана задача (составляем блок-схемы вместе с детьми на уроке и решаем ее на компьютерах):

Дан массив В(20). Найти произведение отрицательных элементов массива, если таковых не было, то напечатать сообщение об этом.

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

  1. Найти количество элементов массива А(N), больших 5.
  2. Найти сумму элементов массива B(n) с четными номерами (2 способа).

V. Итог урока:

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

Оценки за урок.

 

 

 

Типовые задачи обработки массивов

Заполнение массива

Значения массива могут задаваться вводом с клавиатуры, чтением из файла или вычислением в программе. В некоторых задачах статистического характера требуется заполнять массивы случайными числами.

Пример 1. Заполнить массив равномерно распределенными целыми случайными числами в диапазоне от 0 до 100.

https://tepka.ru/informatika_10/176.jpg

Со стандартной функцией Random (x) вы уже знакомы. Напомним, что она возвращает псевдослучайное целое число в диапазоне от 0 до х - 1.

Если требуется изменить диапазон случайных чисел, то это всегда можно сделать путем сдвига. Например, если нужно получить числа в диапазоне от -50 до 50, то в программе пишется оператор присваивания:

https://tepka.ru/informatika_10/176-2.jpg

Для получения вещественных случайных чисел используется функция Random без аргумента. Она возвращает случайные дробные значения в диапазоне [О,1). С помощью сдвига и множителя эти значения можно привести к любому диапазону. Например, следующее выражение будет вычислять случайное вещественное число в диапазоне значений от —5 до 5: 10*Random-5.

Пример 2. Заполнить верхнетреугольную матрицу указанного вида и вывести ее на экран.

https://tepka.ru/informatika_10/177.jpg

Пояснение: для элементов M[i, j] матрицы M, расположенных в верхнем треугольнике (включая диагональ), выполняется следующее соотношение между индексами: j ≤ i.

Пример 3. Выбор максимального элемента. В одномерном массиве X из примера 1 требуется определить наибольшее значение среди значений элементов и его порядковый номер (индекс).

Идея алгоритма решения этой задачи следующая: чтобы в переменной Хтах получить максимальное значение массива X, сначала в нее заносится первое значение массива Х[1]. Затем значение Хmах поочередно сравнивается с остальными элементами массива, и каждое значение, большее Хmах, присваивается этой переменной. Для получения номера максимального элемента массива в целочисленной переменной imax следует записывать в нее номер элемента массива X одновременно с занесением значения в Хmах. На Алгоритмическом языке это запишется так:

https://tepka.ru/informatika_10/178-1.jpg

Заметим, что если в массиве X несколько значений, равных максимальному, то в imax будет получен первый номер из этих элементов. Чтобы получить номер последнего элемента, равного максимальному, нужно в ветвлении если заменить знак отношения > на >=. Для нахождение минимального элемента массива достаточно заменить знак отношения «больше» на «меньше».

Оформим в виде процедуры на Паскале подпрограмму поиска максимального элемента в одномерном массиве. Заполним одномерный массив случайными числами (как в примере 1). С помощью процедуры найдем в нем максимальное значение и индекс его первого вхождения в массив.

https://tepka.ru/informatika_10/178-2.jpg

Процедура MaxArray имеет три параметра: исходный массив А, МахА — переменную для найденного максимального значения, k — переменную для индекса максимального значения. При обращении к процедуре им соответствуют фактические параметры: X, Хmax, imax. Размер массива определяется глобальной константой n, значение которой используется как в основной программе, так и в процедуре.

Пример 4Сортировка массива. В одномерном массиве X из N элементов требуется произвести перестановку значений так, чтобы они расположились по возрастанию, т. е. X1 ≤ Х2 ≤ ... ≤ XN.

Существует целый класс алгоритмов сортировки. Ниже описан алгоритм, который называется методом пузырька.

Идея алгоритма: производится последовательное упорядочивание смежных пар элементов массива: Х1 и Х2, Х2 и Х3, . . ., ХN-1 и XN. В итоге максимальное значение переместится в XN. Затем ту же процедуру повторяют до ХN-1 и т. д., вплоть до цепочки из двух элементов Х1 и Х2. Такой алгоритм будет иметь структуру двух вложенных циклов, причем внутренний цикл переменной (сокращающейся) длины.

https://tepka.ru/informatika_10/179.jpg

Для сортировки массива по убыванию значений достаточно заменить знак отношения «больше» на «меньше».

Запрограммируем на Паскале процедуру сортировки массива по возрастанию методом пузырька.

https://tepka.ru/informatika_10/179-2.jpg
https://tepka.ru/informatika_10/180.jpg

Пример 5.

В § 24 было рассмотрено описание двумерного массива, содержащего среднемесячные температуры за 10 лет, с 2001 по 2010 год. Определить, в каком году за этот период было самое теплое лето, т. е. в каком году была наибольшая средняя температура летних месяцев.

Идея решения: в одномерном массиве S получить средние температуры летних месяцев за каждый год из 10 лет. Затем найти номер наибольшего элемента в этом массиве, это и будет искомый год.


 

Скачано с www.znanio.ru