УРОК:

Организационный этап урока:

  • Приветствие

Учитель:

Сегодня мы рассматриваем "Одномерные массивы". По предыдущим урокам, мы с вами помним, что существует множество типов данных(чисел), которые используются в программировании. Назовите их.

Ученик:

Такие типы данных, как Целые и Вещественные .

Целые:

  • byte -128 до 127;
  • short -32 768 до 32 767;

Учитель:

Массив

Описание массива:

Var <имя_массива>: array [<минимальное_значение_индекса>. <максимальное_значение_индекса>] of <тип данных>;

Пример: var a: array of integer;

а

const a: array of Integer = (1, 4, 7, 14, 25);

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

Заполнять массив можно несколькими способами. Рассмотрим их.

for i:=1 to 10 do read (a[i]);

for i:=1 to 10 do a[i]:=i;

randomize

for i:=1 to 10 do a[i]:= random(100);

Вывод элементов из массива:

Pascal ;

randomize.

for i:=1 to 10 do write (a[i], " ");

for i:=1 to 10 do writeln ("a[", i, ", a[i]);

Рассмотрим пример:

var a : array of integer ;

randomize

for i:=1 to 10 do

a [i]:=random

write (a [i]," ");

Итоги:

Учитель:

Ученик:

Просмотр содержимого документа
«Одномерные массивы целых чисел »

Тема: «Одномерные массивы целых чисел»

Тип урока: Изучения нового материала

Цель урока: Изучить основные возможности массива, а также научится программировать массив.

Задачи:

    Ознакомится с понятием "МАССИВ";

    Описание массива, как объекта программирования;

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

Оборудование:

    В классе имеется Проектор с Экраном для отображения экрана учителя;

    Доска, для выноски главных этапов урока;

    14 компьютеров, для практического закрепления учениками пройденного материала.

УРОК:

Организационный этап урока:

    Приветствие

    Проверка посещаемости учеников

Учитель:

Ребята, сегодня мы начинаем изучение нового этапа программирования на языке Pascal.

Сегодня мы рассматриваем "Одномерные массивы". По предыдущим урокам, мы с вами помним, что существует множество типов данных(чисел), которые используются в программировании. Назовите их...

Ученик:

Такие типы данных, как Целые и Вещественные .

Целые:

    byte -128 до 127;

    short -32 768 до 32 767;

    int -2 147 483 648 до 2 147 483 647;

Вещественные(числа с плавающей запятой):

    real от 4,9*10-324 до 1,7*10308;

Учитель:

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

Описание массива:

Перед использованием любого объекта в программе, его следует объявить в перечне переменных. Таким образом, массив тоже должен быть объявлен.

Для определения массива, следует указать: ИМЯ МАССИВА + КОЛИЧЕСТВО ЭЛЕМЕНТОВ МАССИВА + ТИП ДАННЫХ использующихся в массиве.

Var: array [ .. ] of ;

Пример: var a: array of integer;

Здесь описан одномерный массив целых чисел с именем а . Минимальное и максимальное число индексов от 1 до 15. Массив также может быть описан в разделе описания констант, соответственно элементы массива нельзя будет изменить в процессе выполнения программы.

const a: array of Integer = (1, 4, 7, 14, 25);

В этом случае, при создании массива, мы сразу же вносим в него элементы.

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

Заполнять массив можно несколькими способами. Рассмотрим их...

1) Для ввода с клавиатуры значений элементов, используется цикл:

for i:=1 to 10 do read (a[i]);

2) Задавать значение элементов массива можно с помощью оператора присваивания:

for i:=1 to 10 do a[i]:=i;

3) Заполнение массива с помощью процедуры randomize . Она позволяет производить генерацию случайных чисел, в нашем случае это числа от 0 до 99 (включительно) и заполнит наш массив этими числами.

for i:=1 to 10 do a[i]:= random(100);

Вывод элементов из массива:

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

Мы можем как и знать числа, которые мы задали при написании программы, так и не знать, так как числа могли быть сгенерированы случайно с помощью процедуры randomize.

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

1) Разделив числа пробелами и вывести с помощью обычной команды Write:

for i:=1 to 10 do write (a[i], " ");

2) Написав комментарий в котором будет указать: НОМЕР ИНДЕКСА и напротив будет указано ЧИСЛО, которое соответствует этому индексу. Все элементы будут выведены на консоль с помощью команды Writeln, LN в конце слова, указывает на то, что каждый новый элемент массива будет выведен с новой строки в консоле.

for i:=1 to 10 do writeln ("a[", i, ", a[i]);

Рассмотрим пример:

var a : array of integer ;

randomize {процедура, которая служит для инициализации (или как ещё называют раскачки) генератора случайных чисел}

for i:=1 to 10 do

a [i]:=random (19); {функция, генерирующая случайное число от нуля до 18: random(n+1)}

write (a [i]," ");

Итоги:

Учитель:

На сегоднешнем уроке мы изучили?

Ученик:

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

























Назад Вперёд

Внимание! Предварительный просмотр слайдов используется исключительно в ознакомительных целях и может не давать представления о всех возможностях презентации. Если вас заинтересовала данная работа, пожалуйста, загрузите полную версию.

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

Задачи:

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. Самостоятельное решение задач (Приложение 1 ).
  6. Подведение итогов.
  7. Домашнее задание.

Ход урока

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

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

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

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

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

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

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

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

Например:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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; {считаем, что первый – максимальный} 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_максимум] и убираем переменную максимум.

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

Программа

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

Заполняем массив с помощью случайных чисел из интервала 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 then {новый максимальный} iMax:= i; {запомнить i} writeln; {перейти на новую строку} writeln("Максимальный элемент a[", iMax, "]=", a); 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 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. Закрепление изученного.

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

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

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

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

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

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

Описание:

Const N = 5; var a: array 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 чисел и вывести его в строчку.

Массив Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элемента в массиве. Решение разнообразных задач, связанных с обработкой массивов, базируется на решении таких типовых задач, как: - суммирование элементов массива; - поиск элемента с заданными свойствами; - сортировка массива. Одномерный массив Значение элемента массива Индекс элемента массива


Описание массива Общий вид описания массива: vararray var: array [.. of ] of ; var aarrayof var a: array of integer; const barrayof const b: array of integer = (4, 2, 3, 5, 7); Тип элементов массива Имя массива Максимальное значение индекса Минимальное значение индекса Значение 1-го элемента массива Массив b с постоянными значениями описан в разделе описания констант.


Способы заполнения массива 1 способ. Ввод каждого значения с клавиатуры: forto doread for i:=1 to 10 do read (a[i]); 2 способ. С помощью оператора присваивания (по формуле): forto do for i:=1 to 10 do a[i]:=i; 3 способ. С помощью оператора присваивания (случайными числами): randomize randomize; forto do for i:=1 to 10 do a[i]:=random(100);


Вывод массива 1 способ. Элементы массива можно вывести в строку, разделив их пробелом: fortodo for i:=1 to 10 do write (a[i], " "); 2 способ. Вывод с комментариями: fortodo for i:=1 to 10 do writeln ("a[", i, "]=", a[i]); a=4a=1a=6a=3a=8a=5a=9a=4a=8a=7


Объявление массива Заполнение массива Вывод массива program n_1 ; var i: integer; a: arrav of integer; Заполнения массива A (10) случайными числами и вывод элементов массива begin for i:=1 to 10 do a[i]:=random(50); for i:=1 to 10 do write (a[i],` `); end.


Вычисление суммы элементов массива Суммирование элементов массива осуществляется за счёт поочерёдного добавления слагаемых: s Определяется ячейка памяти (переменная s), в которой будет последовательно накапливаться результат суммирования Присваивается переменной s начальное значение 0 - число, не влияющее на результат сложения s Для каждого элемента массива из переменной s считывается её текущее значение и складывается со значением элемента массива; s полученный результат присваивается переменной s.


Вычисление суммы элементов массива s = 0 Основной фрагмент программы: s:=0; s:=0; for i:=1 to n do s:=s+a[i]; for i:=1 to n do s:=s+a[i]; s = s + a s = 0+ a s = s + a s = 0+ a+ a s = s + a s = 0+ a+ a+ a …… s = s + a s = 0+a+a+a +a


Вычисление суммы элементов массива program n_2; var s, i: integer; a: arrav of integer; begin s:=0; s:=0; for i:=1 to 10 do a[i]:=random(50); for i:=1 to 10 do write (a[i],` `); for i:=1 to 10 do s:=s+a[i]; for i:=1 to 10 do s:=s+a[i]; writeln ("s=", s); end.




1) Взять верхнюю карточку, записать на доске (запомнить) число как наибольшее. 2) Взять следующую карточку, сравнить числа. Если на карточке число больше, то записать это число. Нахождение наибольшего элемента в стопке карточек с записанными числами: Повторить действия, описанные в пункте 2 для всех оставшихся карточек При организации поиска наибольшего элемента массива правильнее искать его индекс. !


Программа поиска наибольшего элемента в массиве program n_3; imax var s, i, imax: integer; a:arrav of integer; begin s:=0; s:=0; for i:=1 to 10 do a[i]:=random(50); for i:=1 to 10 do write (a[i],` `); imax:=1 imax:=1 i:=2 10 for i:=2 to 10 do a[i]>a imax:=i; if a[i]>a then imax:=i; write (" Наибольший элемент a[",imax,"]=", a) write (" Наибольший элемент a[",imax,"]=", a) end. a imax:=i; if a[i]>a then imax:=i; write (" Наибольший элемент a[",imax,"]=", a) write (" Наибольший элемент a[",imax,"]=", a) end.">


Нахождение элемента массива с заданными свойствами Результатом поиска элемента, значение которого равно заданному, может быть: n - a[n]= xх -n - индекс элемента массива такой, что a[n]= x, где х - заданное число; сообщение о том, что искомого элемента в массиве не обнаружено Здесь: трём равен 4-й элемент; десяти равны 1-й и 9-й элементы; нет элемента, равного 12.


Поиск элемента, равного 50 В программе найден последний из элементов, удовлетворяющих условию program n_4; var n, i: integer; a:arrav of integer; begin for i:=1 to 10 do a[i]:=random(60); for i:=1 to 10 do write (a[i],` `); n:=0; n:=0; for i:=1 to 10 do for i:=1 to 10 do if a[i]=50 then n:=i; if a[i]=50 then n:=i; if n=0 then write(" Нет ") else write (i) if n=0 then write(" Нет ") else write (i) end.


Поиск элемента, равного 50 program n_5; var n, i: integer; a:arrav of integer; begin for i:=1 to 10 do a[i]:=random(60); for i:=1 to 10 do write (a[i],` `); i:=0; i:=0; repeat i:=i+1; i:=i+1; until (a[i]=50) or (i=10); until (a[i]=50) or (i=10); if a[i]=50 then write(i) if a[i]=50 then write(i) else write(" Нет ") end. В программе найден первый из элементов, удовлетворяющих условию


Подсчет количества элементов Для подсчета вводится переменная, значение которой увеличивается на единицу каждый раз, когда найден нужный элемент. program n_6; var k, i: integer; a:arrav of integer; begin for i:=1 to 10 do a[i]:=random(60); for i:=1 to 10 do write (a[i],` `); k:=0; k:=0; i:=1 10 for i:=1 to 10 do if a[i]>50 k:=k+1; if a[i]>50 then k:=k+1; ("k=", k) write("k=", k) end 50 k:=k+1; if a[i]>50 then k:=k+1; ("k=", k) write("k=", k) end.">


Сумма значений элементов, удовлетворяющих условию program n_7; var s, i: integer; a:arrav of integer; begin for i:=1 to 10 do a[i]:=random(60); for i:=1 to 10 do write (a[i],` `); s:=0; s:=0; i:=1 10 for i:=1 to 10 do a[i]>10 (a[i] 10 and (a[i] 1"> 10 (a[i] 10 and (a[i]"> 1" title="Сумма значений элементов, удовлетворяющих условию 105013 1421501021 program n_7; var s, i: integer; a:arrav of integer; begin for i:=1 to 10 do a[i]:=random(60); for i:=1 to 10 do write (a[i],` `); s:=0; s:=0; i:=1 10 for i:=1 to 10 do a[i]>1"> title="Сумма значений элементов, удовлетворяющих условию 105013 1421501021 program n_7; var s, i: integer; a:arrav of integer; begin for i:=1 to 10 do a[i]:=random(60); for i:=1 to 10 do write (a[i],` `); s:=0; s:=0; i:=1 10 for i:=1 to 10 do a[i]>1">


Сортировка массива 1. В массиве выбирается максимальный элемент 2. Максимальный и первый элемент меняются местами (первый элемент считается отсортированным) 3. В неотсортированной части массива снова выбирается максимальный элемент; он меняется местами с первым неотсортированным элементом массива Действия пункта 3 повторяются с неотсортированными элементами массива, пока не останется один неотсортированный элемент (минимальный) Сортировка элементов массива по убыванию выбором осуществляется следующим образом:


Сортировка массива Индекс Значение Шаги Итог:


A then imax:=j; x:=a[i]; a[i]:=a; a:=x ; end; for i:=1 to 10 do write (a[i],` `); end; program n_8; imax var n, i, j, x, imax: integer; a:arrav o" title="Сортировка массива for i:=1 to 9 do begin imax:=i; for j:=i+1 to 10 do if a[j]>a then imax:=j; x:=a[i]; a[i]:=a; a:=x ; end; for i:=1 to 10 do write (a[i],` `); end; program n_8; imax var n, i, j, x, imax: integer; a:arrav o" class="link_thumb"> 21 Сортировка массива for i:=1 to 9 do begin imax:=i; for j:=i+1 to 10 do if a[j]>a then imax:=j; x:=a[i]; a[i]:=a; a:=x ; end; for i:=1 to 10 do write (a[i],` `); end; program n_8; imax var n, i, j, x, imax: integer; a:arrav of integer; begin for i:=1 to 10 do read (a[i]); for i:=1 to 10 do write (a[i],` `); a then imax:=j; x:=a[i]; a[i]:=a; a:=x ; end; for i:=1 to 10 do write (a[i],` `); end; program n_8; imax var n, i, j, x, imax: integer; a:arrav o"> a then imax:=j; x:=a[i]; a[i]:=a; a:=x ; end; for i:=1 to 10 do write (a[i],` `); end; program n_8; imax var n, i, j, x, imax: integer; a:arrav of integer; begin for i:=1 to 10 do read (a[i]); for i:=1 to 10 do write (a[i],` `); 01924365 96543210"> a then imax:=j; x:=a[i]; a[i]:=a; a:=x ; end; for i:=1 to 10 do write (a[i],` `); end; program n_8; imax var n, i, j, x, imax: integer; a:arrav o" title="Сортировка массива for i:=1 to 9 do begin imax:=i; for j:=i+1 to 10 do if a[j]>a then imax:=j; x:=a[i]; a[i]:=a; a:=x ; end; for i:=1 to 10 do write (a[i],` `); end; program n_8; imax var n, i, j, x, imax: integer; a:arrav o"> title="Сортировка массива for i:=1 to 9 do begin imax:=i; for j:=i+1 to 10 do if a[j]>a then imax:=j; x:=a[i]; a[i]:=a; a:=x ; end; for i:=1 to 10 do write (a[i],` `); end; program n_8; imax var n, i, j, x, imax: integer; a:arrav o">


Самое главное Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элементов в массиве. В языках программирования массивы используются для реализации таких структур данных, как последовательности и таблицы. Перед использованием в программе массив должен быть описан. Общий вид описания одномерного массива: var: array [ … ] of тип_элементов; Заполнять массив можно либо вводя значение каждого элемента с клавиатуры, либо присваивая элементам некоторые значения. При заполнении массива и его выводе на экран используется цикл с параметром. Решение разнообразных задач, связанных с обработкой массивов, базируется на таких типовых задачах, как: суммирование элементов массива; поиск элемента с заданными свойствами; сортировка массива.


Вопросы и задания Может ли массив одновременно содержать целые и вещественные значения? Для чего необходимо описание массива? Что вы можете сказать о массиве, сформированном следующим образом? а) for i:=1 to 10 do a[ i ]:= random(101)-50; б) for i:=1 to 20 do a[ i ]:= i ; в) for i:=1 to 5 do a[ i ]:= 2* i -1; Запишите на языке Паскаль программу решения задачи. В некотором населённом пункте N домов. Известно, сколько людей проживает в каждом из домов. Исходные данные (количество жильцов) представить с помощью линейной таблицы А, содержащей N элементов: A - количество жильцов дома 1, A - количество жильцов дома 2, …, A[N] - количество жильцов дома N. В общем случае А[ i ] количество жильцов дома i, где i принимает все значения от 1 до n (i =1,n). Результат работы обозначить через s. Считайте количество жильцов дома случайным числом из диапазона от 50 до 200 человек, а число домов n = 30. Запишите на языке Паскаль программу решения задачи. Объявлен набор в школьную баскетбольную команду. Известен рост каждого из N учеников, желающих попасть в эту команду. Подсчитайте количество претендентов, имеющих шанс попасть в команду, если рост игрока команды должен быть не менее 170 см. Считайте рост претендента в команду случайным числом из диапазона от 150 до 200 см, а число претендентов n = 50. Пример входных данныхПример выходных данных Введите температуру Понедельник >> 12 Вторник >> 10 Среда >> 16 Четверг >> 18 Пятница >> 17 Суббота >> 16 Воскресенье >> 14 Средняя температура за неделю: 14,71 Напишите программу, которая вычисляет среднюю за неделю температуру воздуха. Исходные данные вводятся с клавиатуры. Дан массив из десяти целых чисел. Определите, сколько элементов этого массива имеют максимальное значение. В классе 20 учеников писали диктант по русскому языку. Напишите программу, подсчитывающую количество двоек, троек, четвёрок и пятёрок, полученных за диктант. В целочисленных массивах a и b содержатся длины катетов десяти прямоугольных треугольников: a [ i ] - длина первого катета, b[ i ]длина второго катета i -го треугольника. Найдите треугольник с наибольшей площадью. Выведите его номер, длины катетов и площадь. Предусмотрите случай, когда таких треугольников несколько. Занесите информацию о десяти европейских странах в массивы n (название страны), к (численность населения), s (площадь страны). Выведите названия стран в порядке возрастания плотности их населения. > 12 Вторник >> 10 Среда >> 16 Четверг >> 18 Пятница >> 17 Суббота >> 16 Воскресенье >> 14 Средняя температура за неделю: 14,71 Напишите программу, которая вычисляет среднюю за неделю температуру воздуха. Исходные данные вводятся с клавиатуры. Дан массив из десяти целых чисел. Определите, сколько элементов этого массива имеют максимальное значение. В классе 20 учеников писали диктант по русскому языку. Напишите программу, подсчитывающую количество двоек, троек, четвёрок и пятёрок, полученных за диктант. В целочисленных массивах a и b содержатся длины катетов десяти прямоугольных треугольников: a [ i ] - длина первого катета, b[ i ]длина второго катета i -го треугольника. Найдите треугольник с наибольшей площадью. Выведите его номер, длины катетов и площадь. Предусмотрите случай, когда таких треугольников несколько. Занесите информацию о десяти европейских странах в массивы n (название страны), к (численность населения), s (площадь страны). Выведите названия стран в порядке возрастания плотности их населения.">


Опорный конспект Ввод с клавиатуры Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элементов в массиве. var array var: array [.. of ] of тип_элементов; Присваивание значений Заполнение массива Суммирование элементов Сортировка элементов массива Поиск элемента во свойствам Задачи по обработке массива


Источники информации 1. numbers.jpg -цифры numbers.jpg клавиатура случайные числа 4. – числа 5. content/uploads/2012/01/ _ jpg - числа content/uploads/2012/01/ _ jpg мальчик с числами 7. content/themes/rttheme9/timthumb.php?src= wp-content/uploads/mas-slider-two.jpg&w=940&h=320&zc=1 –цифры content/themes/rttheme9/timthumb.php?src= wp-content/uploads/mas-slider-two.jpg&w=940&h=320&zc= числа счёты мальчик сортировка матрёшки матрёшки

Сегодня на уроке мы с вами рассмотрим новое понятие массив . Массив это упорядоченный набор однотипных данных. Иначе говоря, массив – это таблица, каждый элемент которой является элементом массива. Массивы бывают одномерные и двумерные. Одномерный массив – это линейная таблица, т.е. таблица, элементы которой располагаются в одну строку или столбец. Двумерный массив

Скачать:


Предварительный просмотр:

Костанайская обл., Мендыкаринский р-н, ГУ «Буденновская средняя школа»,

учитель информатики

Дощанова Гульжан Байгариевна

9 класс

Тема: Понятие массива. Одномерные и двумерные массивы. Элемент массива.

Ход занятия:

  1. Организационный момент.
  2. Проверка домашнего задания.
  3. Объяснение нового материала.
  4. Решение задач.
  5. Задание на дом.
  1. Организационный момент. Проверить готовность кабинета к занятиям, провести перекличку учащихся.
  1. Проверка домашнего задания. Проверить правильность решения домашних задач. Закрепить теоретический материал предыдущего урока.
  1. Объяснение нового материала.

Сегодня на уроке мы с вами рассмотрим новое понятие массив . Массив – это упорядоченный набор однотипных данных. Иначе говоря, массив – это таблица, каждый элемент которой является элементом массива. Массивы бывают одномерные и двумерные. Одномерный массив – это линейная таблица, т.е. таблица, элементы которой располагаются в одну строку или столбец. Двумерный массив – это прямоугольная таблица, т.е. таблица, которая состоит из нескольких строк и столбцов. (Продемонстрировать плакаты таблиц линейной и прямоугольной. При наличии в классе интерактивной доски можно подготовить презентацию по различным типам массивов.)

В данной линейной таблице семь элементов. Каждый элемент данной таблицы представляет собой букву.

Элементами массива могут быть числовые и текстовые величины. В разделе переменных Var массив записывается следующим образом:

x: array of string;

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

Двумерный массив обозначается следующим образом:

y: array of integer;

элементами данного массива являются целые числа, которые записаны в 4 строки и 5 столбцов.

Элемент одномерного массива записывается так: x – пятый элемент одномерного массива x (его значением является буква «О»), y – элемент, расположенный во второй строке и третьем столбце двумерного массива y (его значение – 15).

А теперь перейдем к решению задач. (Задачи нужно подбирать с учетом уровня подготовленности класса.)

  1. Решение задач. Построить блок-схему и составить программу для решения следующих задач:
  1. В заданном массиве x действительных чисел определить среднее арифметическое тех из них, которые больше 10.

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

Program summa;

x: array of real;

s,c: real;

k, n: integer;

begin

for k=1 to 9 do

begin

writeln(‘ВВЕДИТЕ ЗНАЧЕНИЕ X[‘, k,’]’);

readln (x[k]);

end;

{вводим элементы таблицы, которые представляют собой любые действительные числа}

s:=0; n:=0; {обнуляем сумму и количество элементов}

for k:=1 to 9 do

begin

if x[k]>10 then begin s:=s+x[k]; n:= n+1; end;

end;

{подсчитываем сумму и количество элементов больших 10}

c=s/n; {находим среднее арифметическое}

writeln(‘c=’,c); {выводим результат на экран}

End.

  1. Даны площади нескольких кругов. Найти радиус самого маленького из них.

Перед решением задачи выяснить с учащимися, как зависит площадь круга от радиуса. (Если радиус меньше, то и площадь меньше.) Согласно выполненному анализу выполнить решение задачи одним из способов.

Первый способ :

Program krugi_1;

S, R: array of real;

x: real; k, n: integer;

begin

for k=1 to 10 do

begin

R[k]:=sqrt(S[k]/pi);

end;

x:=R(1); n:=1;

for k:=2 to 10 do

begin

if R[k]

end;

writeln(‘РАДИУС ’,n,’ КРУГА – САМЫЙ МАЛЕНЬКИЙ R=’, R[n]);

End.

Второй способ :

Program krugi_2;

S: array of real;

R, x: real; i, k: integer;

begin

for k=1 to 10 do

begin

writeln(‘ВВЕДИТЕ ПЛОЩАДЬ ‘, k,’КРУГА’); readln (S[k]);

end;

x:=S(1); k:=1;

for i:=2 to 10 do

begin

if S[k]

end;

R:=sqrt(x/pi); writeln(‘РАДИУС ’, n ,’ КРУГА – САМЫЙ МАЛЕНЬКИЙ R=’,R);

End.

  1. Задание на дом. Стр. 90-97. (Н.Т. Ермеков, В.А. Криворучко, Л.Н. Кафтункина Информатика 9 класс, Алматы «Мектеп» 2005)

Решить следующие задачи:

  1. В массиве Y, состоящем из 12 целых чисел определить среднее арифметическое тех из них, которые являются чётными.
  2. Даны площади нескольких квадратов. Найти длину диагонали самого большого из них.
  1. Подведение итогов урока. Объявить оценки учащимся, прокомментировать их. Проанализировать решение учащимися задач.

Ключевые слова:

  • массив
  • описание массива
  • заполнение массива
  • вывод массива
  • обработка массива
  • последовательный поиск
  • сортировка

До сих пор мы работали с простыми типами данных. При решении практических задач данные часто объединяются в различные структуры данных, например в массивы. В языках программирования массивы используются для реализации таких структур данных, как последовательности и таблицы.

Мы будем рассматривать одномерные массивы.

Решение разнообразных задач, связанных с обработкой массивов, базируется на решении таких типовых задач, как:

  • суммирование элементов массива;
  • поиск элемента с заданными свойствами;
  • сортировка массива.

4.7.1. Описание массива

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

var <имя_массива>: array [<мин_знач_индекса> .. <макс_знач_индекса>] of <тип__элементов>;

Пример

var a: array of integer;

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

Небольшой массив с постоянными значениями может быть описан в разделе описания констант:

const b: array of integer = (1, 2, 3, 5, 7);

В этом случае не просто выделяются последовательные ячейки памяти - в них сразу же заносятся соответствующие значения.

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

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

Например, для ввода с клавиатуры значений элементов описанного выше массива а используется следующий цикл с параметром:

for i:=l to 10 do read (a:=i;

В следующем фрагменте программы организовано заполнение целочисленного массива а, состоящего из 10 элементов, случайными числами, значения которых изменяются в диапазоне от 0 до 99:

4.7.3. Вывод массива

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

Элементы массива можно вывести в строку, разделив их пробелом:

for i:=1 to 10 do write (a[i], ");

Более наглядным является следующий вариант вывода с комментариями:

for i:=1 to 10 do writeln ("a[", i, ")=", a[i]);

На основании рассмотренных примеров попытайтесь самостоятельно запишите программу, в которой осуществляется: заполнение случайным образом целочисленного массива а, состоящего из 10 элементов, значения которых изменяются в диапазоне от 0 до 99; вывод массива а на экран.

4.7.4. Вычисление суммы элементов массива

Суммирование элементов массива осуществляется по тому же принципу, что и суммирование значений простых переменных: за счёт поочерёдного добавления слагаемых:

  1. определяется ячейка памяти (переменная s), в которой будет последовательно накапливаться результат суммирования;
  2. переменной s присваивается начальное значение 0 - число, не влияющее на результат сложения;
  3. для каждого элемента массива из переменной s считывается её текущее значение и складывается со значением элемента массива; полученный результат присваивается переменной s.

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

Приведём основной фрагмент решения этой задачи:

Дополните созданную в п. 4.7.3 программу формирования массива так, чтобы вычислялась сумма элементов массива и результат суммирования выводился на экран.

4.7.5. Последовательный поиск в массиве

В программировании поиск - одна из наиболее часто встречающихся задач невычислительного характера.

Можно выделить следующие типовые задачи поиска:

  1. найти наибольший (наименьший) элемент массива;
  2. найти элемент массива, значение которого равно заданному значению.

Компьютер не может сравнить разом весь ряд объектов. На каждом шаге он может сравнивать только два объекта. Поэтому в программе необходимо организовать последовательный просмотр элементов массива и сравнение значения очередного просматриваемого элемента с неким образцом.

Рассмотрим подробно решение задач первого типа (нахождение наибольшего (наименьшего) элемента).

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

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

В итоге на доске будет записано самое большое значение просмотренного массива.

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

Самостоятельно запишите программу, в которой осуществляется формирование целочисленного массива а из 10 элементов, значения которых лежат в диапазоне от 0 до 99, и поиск наибольшего элемента этого массива.

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

Результатом решения задачи второго типа (нахождение элемента массива, значение которого равно заданному значению) может быть:

  • n - индекс элемента массива такой, что а[n] = х, где х - заданное число;
  • сообщение о том, что искомого элемента в массиве не обнаружено.

Алгоритм поиска в сформированном нами массиве а значения, равного 50, может выглядеть так:

В этой программе последовательно просматриваются все элементы массива. Если в массиве несколько элементов, значения которых равны заданному числу, то программа найдёт последний из них.

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

Здесь выполнение алгоритма будет прервано в одном из двух случаев:

  1. в массиве найден первый из элементов, равный заданному;
  2. все элементы массива просмотрены.

Запишите полный текст программы и выполните её на компьютере.

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

Определите, количество каких элементов подсчитывается в следующем фрагменте программы.

Если требуется определить сумму значений элементов, то вводят переменную, к значению которой прибавляют значение найденного элемента массива.

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

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

4.7.6. Сортировка массива

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

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

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

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

Вы уже встречались с сортировкой при работе с базами данных. Сейчас мы рассмотрим один из возможных вариантов1 реализации механизма этой операции - сортировку выбором.

Сортировка выбором (например, по убыванию) осуществляется следующим образом:

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

Рассмотрим процесс сортировки выбором на примере массива а = {0, 1, 9, 2, 4, 3, 6, 5}.

В этом массиве из восьми элементов операцию выбора максимального элемента мы проводили 7 раз. В массиве из n элементов такая операция будет проводиться n-1 раз. Объясните почему.

Приведём фрагмент программы, реализующий описанный алгоритм:

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

Запишите полный текст программы и выполните её на компьютере для рассмотренного в примере массива а.

На сайте «Интерактивные демонстрации по программированию» (http://informatika.kspu.ru/flashprog/demos.php) вы сможете поработать с интерактивными наглядными пособиями для того, чтобы более полно представить процесс сортировки выбором и другими способами.

Самое главное

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

Перед использованием в программе массив должен быть описан. Общий вид описания одномерного массива:

var <имя_массива>: array [<мин_знач_индекса> ..
<макс_знач_индекса>] of тип_элементов;

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

Решение разнообразных задач, связанных с обработкой массивов, базируется на таких типовых задачах, как: суммирование элементов массива; поиск элемента с заданными свойствами; сортировка массива.

Вопросы и задания