Урок по теме "Одномерные массивы"

Разделы: Информатика, Конкурс «Презентация к уроку»


Презентация к уроку

Загрузить презентацию (581 кБ)


Цель: «Дать понятие одномерного массива, объяснить ввод массива, научиться заполнять массив данными различными способами; формирование навыков решения задач в среде программирования Паскаль».

Задачи:

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

  1. Формировать у детей представления об одномерном массиве.
  2. Организовать деятельность учащихся по восприятию и осмыслению понятий: «массива», «одномерного массива»; по осуществлению ввода и вывода одномерного массива;

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

  1. Воспитывать интерес к информатике, как к учебному предмету.
  2. Воспитание аккуратности, точности.

3. Развивающие

  1. Развитие представлений детей о программировании на языке Паскаль.
  2. Развитие психических процессов у детей, таких как внимание, мышление, память (произвольное запоминание, слуховая, зрительная память) с помощью различных методических приёмов на уроке.
  3. Формирование приемов логического и алгоритмического мышления, развитие познавательного интереса к предмету, развитие умения планировать свою деятельность;

Материалы и оборудование:

  1. Презентация «Одномерные массивы», мультимедийный проектор, интегрированная инструментальная оболочка программы Turbo Pascal 7.0.
  2. Карточки с заданиями, блок-схемы задач, шаблоны.
  3. Наглядные материалы: ввод и вывод одномерного массива на языке программирования и в виде блок-схемы.

План урока:

  1. Организационный момент
  2. Проверка домашнего задания.
  3. Изучение нового материала. Просмотр презентации с объяснением учителя.
    1. Понятие одномерного массива.
    2. Описание массива.
    3. Заполнение одномерного массива.
    4. Вывод значений элементов массива.
    5. Виды задач
    6. Поиск максимального элемента массива.
    7. Пример задачи (ЕГЭ) демо 2009 год.
  4. Закрепление изученного.
  5. Самостоятельное решение задач (Приложение 1).
  6. Подведение итогов.
  7. Домашнее задание.
  8. Тест (Приложение 2).

Ход урока

I. Организационный момент.

II. Проверка домашнего задания.

III. Изучение нового материала.

1. Понятие одномерного массива. (слайд 1)

Тема нашего урока «одномерные массивы». Программирование на Паскале. На сегодняшнем уроке мы рассмотрим следующие вопросы:

  • Понятие одномерного массива.
  • Описание массива.
  • Заполнение одномерного массива.
  • Вывод значений элементов массива.
  • Виды задач.
  • Поиск максимального элемента массива.
  • Пример задачи (ЕГЭ) демо 2009 год.

Рассказ учителя.

В жизни мы постоянно сталкиваемся с множеством объектов, объединенных по определенным признакам.

Например:

  • Семейство бабочек…
  • Поле цветов…
  • Таблица температур за неделю.

Такую таблицу называют линейной. В программировании линейная таблица называется одномерным массивом. Массив- это пронумерованная конечная последовательность однотипных величин. Массив характеризуется: типом, то есть все элементы массива имеют один и тот же тип; именем, массив имеет имя – одно для всех элементов; размером, Размер массива – это количество его элементов. Для обращения к конкретному элементу массива необходимо указать имя массива и в квадратных скобках индекс элемента: A[I].

Пример: Рассмотрим массив А.

Массив состоит из пяти целых чисел: 5, 10, 15, 20, 25.

Элементы массива пронумерованы. Порядковый номер элемента называется его индексом.

Например, 3 – номер элемента массива, по другому индекс. 15 – значение элемента массива.

Обозначаются элементы массива в квадратных скобках, А[2], А[3], А[4], А[5].

Например, А [2]=10.

2 – номер элемента массива. 10 – значение элемента массива.

2. Описание массива. (слайд 8)

Рассмотрим описание массива на Паскале. Слово array буквально переводится как массив.

Где А имя массива. 1 – начальный индекс. 5 – конечный индекс. integer – тип элементов – целый. Границы индекса могут быть любыми целыми числами. Важно, чтобы нижняя граница была меньше верхней границы. И рассмотрим описание – размер через константу:

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

3. Заполнение одномерного массива.

Рассмотрим заполнение массива. Существует несколько способов заполнения массива.

Мы рассмотрим три способа:

  • с клавиатуры;
  • с помощью датчика случайных чисел;
  • с помощью формулы.

1. Заполнение массива с клавиатуры.

Рассмотрим пример заполнения массива А пятью целыми числами с клавиатуры.

Для того чтобы организовать ввод исходных данных в массив, нужно использовать цикл.

Begin – начало цикла ввода элементов массива.

Вводим элемент с индексом один.

Обращаемся к первому элементу массива А.

Запоминаем число 13.

End – конец цикла ввода элементов массива.

Аналогично запоминаем остальные 4 числа.

2. Заполнение массива случайными числами .

Рассмотрим задание значений элементов массива как случайных чисел. Функция получения случайных чисел из заданного интервала [0, М-1] выдает целые числа из этого интервала: random (М). Можно использовать функцию получения случайных чисел без указания аргумента. Она выдает случайное вещественное число от нуля до одного: random

Функция получения случайных чисел из интервала [А, В] имеет вид random (b-a+1)+a

Заполним массив например десятью целыми числами из интервала [1,100] запишем фрагмент программы:

for i:=1 to 10 do
  begin
    a[i]:=random(101); {числа от 1 до 100}

3. Заполнение массива с помощью формулы

Заполнить одномерный массив из 10 чисел по формуле b[i]:=i*3

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

4. Вывод значений элементов массива

Рассмотрим вывод массива из трех целых чисел. Здесь параметр 4 означает количество позиций, отводимых под значение а [i], то есть значение переменной а[i] выводится как целое число в четыре символьные позиции на экране. Результатом вывода массива будет:

Массив А: 4 5 7

5. Виды задач

Решение задач по обработке массива связано, как правило, с перебором элементов массива. Такой перебор происходит в цикле, в котором изменяются значения индексов от начальной до конечной величины. В практике работы по обработке массивов могут встречаться различные задачи, которые могут быть сведе­ны в несколько наиболее характерных групп:

  • нахождение суммы (или произведения) элементов.
  • нахождение максимального (минимального) элемента;
  • нахождение номеров элементов, обладающих заданным свойством.
  • нахождение количества элементов, обладающих заданным свойством.
  • замена элементов массива.
  • удаление элементов из одномерного массива.
  • вставка элементов.
  • изменение значений некоторых элементов.
  • создание массивов.

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

6. Поиск максимального элемента массива.

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

Например, нужно найти самый большой элемент.

Считаем первый элемент максимальным.

Начинаем со второго элемента сравнивать с первым. Если второй больше первого максимального, то запоминаем новый максимальный элемент. Продолжаем сравнивать до последнего

{считаем, что первый элемент – максимальный}
for i:=2 to N do
  if a[i] > {максимального} then 
   {запомнить новый максимальный элемент a[i]}

Номер максимального элемента

Рассмотрим дополнение к задаче нахождения максимума – поиск номера максимального элемента. Считаем, что первый элемент и есть максимальный. Индекс первого элемента один.

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

max := a[1]; {считаем, что первый – максимальный}
iMax := 1;
for i:=2 to N do {проверяем все остальные}
  if a[i] > max then {нашли новый максимальный}
    begin
      max := a[i]; {запомнить a[i]}
      iMax := i; {запомнить i}
    end;

По номеру элемента i_максимум всегда можно найти его значение А[i_максимум]. Поэтому везде меняем максимум на А[ i_максимум] и убираем переменную максимум.

iMax := 1;
for i:=2 to N do {проверяем все остальные}
  if a[i] > a[iMax] then {нашли новый максимальный}
    begin
      iMax := i; {запомнить i}
    end;

Программа

Описываем массив А из пяти целых чисел, переменную i, хранящую индекс элемента массива, к которому идет обращение и индекс максимального элемента.

Заполняем массив с помощью случайных чисел из интервала [50, 150).

Считаем, что первый элемент – максимальный. Проверяем все остальные со второго элемента.

Находим новый максимальный элемент. Запоминаем индекс. Находим по индексу значение максимального элемента.

const N = 5;
  var a: array [1..N]  of integer;
      i, iMax: integer;
  begin
    writeln('Исходный массив:');
    for i:=1 to N do  begin
      a[i] := random(100) +  50;
      write(a[i]:4);
    end;
    iMax := 1; {считаем, что первый – максимальный}
    for i:=2 to N do {проверяем все остальные}
      if a[i] > a[iMax] then  {новый максимальный}
        iMax := i; {запомнить i}
    writeln; {перейти на новую строку}
    writeln('Максимальный элемент a[', iMax, ']=', a[iMax]);
  end.

7. Пример задачи (ЕГЭ) демо 2009 год.

Опишите на языке программирования Pascal алгоритм получения из заданного целочисленного массива размером 30 элементов другого массива, который будет содержать модули значений элементов первого массива.

Причем задачу нужно решить не используя специальной функции, вычисляющей модуль числа.

Алгоритм:

Заводим новый целочисленный массив А для наглядности из пяти целых чисел: 5, -10, -5, 20, -25. В цикле от первого элемента до последнего сравниваем элементы исходного массива с нулем и отрицательным элементам меняем знак.

Записываем значения в элементы второго массива В с тем же номером. 5, 10, 5, 20, 25.

Программа (слайд 22, 23)

Описываем два массива размером 30 чисел. Вводим 30 чисел с клавиатуры. Заменяем отрицательные элементы на положительные и записываем значения в элементы второго массива В с тем же номером. Выводим массив В в строчку через пробел. На каждый элемент массива выделяется по 4 позиции строки, чтобы они не склеивались друг с другом.

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

var a, b: array [1..30]  of integer; 
    i:integer;
   begin
     for i:=1  to 30 do begin
       write('a[',i,']=');  read(a[i]);
     end;
     for i:=1  to 30 do
       if  a[i]<0 then b[i]:=-a[i] else b[i]:=a[i];
     readln;
     for i:=1  to 30 do write(b[i]:4);
       Writeln; readln;
   end.

IV. Закрепление изученного.

(слайд 24)

Одномерные массивы (общий вид)

Итак, общий вид одномерного массива.

Сначала описываем массив.

Затем вводим элементы массива любым способом.

Выполняем поэлементные операции в цикле.

Выводим элементы массива на экран.

Описание:

const N =  5; 
var a:  array[1..N] of integer;
    i: integer;

Ввод с клавиатуры:

for i:=1  to N do begin
  write('a[',  i, ']='); read ( a[i] );
end;

Поэлементные операции:

for i:=1 to N do a[i]:=a[i]*2; 

Вывод на экран:

writeln('Массив A:');
for i:=1 to N do write(a[i]:4);

V. Самостоятельное решение задач

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

VI. Подведение итогов.

VII. Домашнее задание.

Выучить ввод и вывод одномерного массива.

Решить задачу.

Сформировать массив В из 16 чисел и вывести его в строчку.

VIII. Тест.

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

Используемая литература (Приложение 3).