Массивы в паскале конспект

Обновлено: 05.07.2024

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

Задачи:

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

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

План урока:

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

    Ход урока

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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] запишем фрагмент программы:

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

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

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

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

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

    Массив А: 4 5 7

    5. Виды задач

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

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

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

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

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

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

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

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

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

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

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

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

    Программа

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

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

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

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

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

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

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

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

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

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

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

    • Для учеников 1-11 классов и дошкольников
    • Бесплатные сертификаты учителям и участникам

    Основные цели:

    Познакомить учащихся с основными понятиями: линейный массив, двумерный массив

    Научить описывать массив.

    Научить осуществлять ввод/вывод элементов массива.

    Тип урока: комбинированный

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

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

    Существует 2 вида массивов: одномерные и двумерные.

    Для получения доступа к элементу массива используется индекс. Индекс определяет местоположения элемента в массиве, является величиной целого типа.

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

    1. Представление массива .

    Массив X , состоящий из 10 элементов:

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

    : array [граничная паpа] of

    П p име p :

    Vector: array [1..60] of integer;

    Mb: array [40..50] of real;

    наибольшее значение индекса

    наименьшее значение индекса

    Несколько массивов, имеющих один и тот же тип можно объединить:

    : array [граничная паpа] of ;

    X1, x2: array [0..60] of integer;

    3. Ввод элементов массива :

    a: array [1..5] of real;

    writeln (' введите элементы массива ');

    for i: =1 to 5 do цикл ввода

    write ('a[i]='); цикл ввода

    A: array [1..5] of real;

    writeln (' введите элементы массива ');

    for i :=1 to 5 do цикл ввода с помощью функции случайных величин

    a [ i ]:= random (10);

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

    a : array [1..5] of real;

    writeln ('линейный массив имеет вид');

    for i:=1 to 5 do цикл вывода

    Задачи для тренировки:

    Составить программу вычисления суммы и среднеарифметического элементов линейного массива.

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

    Составить программу вычисления суммы элементов массива, стоящих на четных местах.

    Двуме p ные массивы .

    П p име p мат p ицы , имеющей p азме p 3 x 3:

    Пpимеp двухмеpного массива A[i, j]

    Каждый элемент имеет 2 индекса: A[i, j]

    i - индекс стpоки

    j - индекс столбца g побочная диагональ j = n - i + 1

    Главная диагональ i = j

    Мат p ицу можно описать :

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

    Ввод мат p ицы :

    FOR i :=1 TO n DO

    FOR j :=1 TO m DO

    FOR i :=1 TO n DO

    FOR j :=1 TO m DO

    Вывод мат p ицы :

    WRITELN ('полученный массив');

    FOR i :=1 TO n DO

    FOR j :=1 TO m DO

    WRITE (A[i, j],' '); цикл вывода

    Задачи для тренировки:

    Составить программу вычисления среднеарифметического элементов двумерного массива.

    Составить программу вычисления максимального и минимального элемента двумерного массива.

    Составить программу суммы четных элементов матрицы.

    • подготовка к ЕГЭ/ОГЭ и ВПР
    • по всем предметам 1-11 классов

    Курс повышения квалификации

    Дистанционное обучение как современный формат преподавания


    Курс повышения квалификации

    Инструменты онлайн-обучения на примере программ Zoom, Skype, Microsoft Teams, Bandicam

    • Курс добавлен 31.01.2022
    • Сейчас обучается 24 человека из 17 регионов

    Курс повышения квалификации

    Педагогическая деятельность в контексте профессионального стандарта педагога и ФГОС

    • ЗП до 91 000 руб.
    • Гибкий график
    • Удаленная работа

    Дистанционные курсы для педагогов

    Свидетельство и скидка на обучение каждому участнику

    Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

    5 606 567 материалов в базе

    Материал подходит для УМК

    § 18. Массивы в Паскале

    Самые массовые международные дистанционные

    Школьные Инфоконкурсы 2022

    Свидетельство и скидка на обучение каждому участнику

    Другие материалы

    Вам будут интересны эти курсы:

    Оставьте свой комментарий

    • 16.02.2020 631
    • DOCX 72 кбайт
    • 31 скачивание
    • Оцените материал:

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

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Автор материала

    40%

    • Подготовка к ЕГЭ/ОГЭ и ВПР
    • Для учеников 1-11 классов

    Московский институт профессиональной
    переподготовки и повышения
    квалификации педагогов

    Дистанционные курсы
    для педагогов

    663 курса от 690 рублей

    Выбрать курс со скидкой

    Выдаём документы
    установленного образца!

    Учителя о ЕГЭ: секреты успешной подготовки

    Время чтения: 11 минут

    В Россию приехали 10 тысяч детей из Луганской и Донецкой Народных республик

    Время чтения: 2 минуты

    Каждый второй ребенок в школе подвергался психической агрессии

    Время чтения: 3 минуты

    Онлайн-тренинг: нейрогимнастика для успешной учёбы и комфортной жизни

    Время чтения: 2 минуты

    В Белгородской области отменяют занятия в школах и детсадах на границе с Украиной

    Время чтения: 0 минут

    Минтруд предложил упростить направление маткапитала на образование

    Время чтения: 1 минута

    Отчисленные за рубежом студенты смогут бесплатно учиться в России

    Время чтения: 1 минута

    Подарочные сертификаты

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

    Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение администрации может не совпадать с точкой зрения авторов.

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

    Глоссарий по теме: массив, элемент массива, размерность массива, индекс элемента массива, сортировка.

    Основная литература по теме урока:

    Л. Л. Босова, А. Ю. Босова. Информатика. Базовый уровень: учебник для 11 класса. — М.: БИНОМ. Лаборатория знаний, 2017

    Дополнительная литература по теме урока:

    - И. Г. Семакин, Т. Ю. Шеина, Л. В. Шестакова. Информатика и ИКТ. Профильный уровень: учебник для 11 класса. — М.: БИНОМ. Лаборатория знаний, 2012

    - К. Ю. Поляков, Е. А. Еремин. Информатика. Углубленный уровень: учебник для 10 класса. В 2 ч. Ч. 2 — М.: БИНОМ. Лаборатория знаний, 2013

    - Андреева Е. В. Программирование — это так просто, программирование — это так сложно. Современный учебник программирования. — М.: МЦНМО, 2015

    Теоретический материал для самостоятельного изучения

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

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

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

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

    Элемент массива — отдельная переменная, входящая в массив.

    Индекс элемента массива — номер элемента в этом массиве.

    Размерность массива — количество элементов, которое содержит массив.

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

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

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

    var : array [ ] of

    - — описание индексации (нумерации) элементов массива. В качестве типа индекса можно использовать любые порядковые типы;

    - — тип величин, непосредственно составляющих массив.

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

    1. varday: array [1..365] of integer; — массив, состоящий из 365 целых чисел, которые пронумерованы от 1 до 365;
    2. vartem: array [0..11] of real; — массив, состоящий из 12 вещественных, пронумерованных от 0 до 11;
    3. var ocenka: array [–2..2] of char; — массив, состоящий из 5 символьных переменных с номерами от -2 до 2:
    4. const n=10; var slovo: array [1..n] of string; — n строковых величин, пронумерованных от 1 до n;

    Для того, чтобы обратиться к элементу массива, нужно записать имя массива и в квадратных скобках индекс нужного элемента, например, day[100].

    Рассмотрим основные приемы работы с массивами.

    Заполнение одномерного массива значениями

    Задать элементам массива значения мы можем:

    — вводя значения с клавиатуры;

    — случайным образом из некоторого диапазона;

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

    Для начала договоримся, что мы имеем дело с массивом из 10 натуральных чисел (хотя тип элементов в данном случае значения не имеет).

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

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

    Воспользуемся вторым и третьим способами, рассмотренными выше:


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

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

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


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

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

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

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

    Поиск в массиве элемента, удовлетворяющего некоторому условию

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

    Мы построим алгоритм, идея которого следующая:


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

    Поиск максимального (минимального) элемента массива

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

    Введем дополнительную переменную max, которой присвоим значение, равное значению элемента массива a[1]. Теперь будем сравнивать все элементы, начиная со 2-го, с max, и если найдем больший элемент, то присвоим его значение переменной max. Конечное значение этой переменной и будет значением наибольшего элемента массива.


    Поиск максимального (минимального) среди всех элементов массива, удовлетворяющих некоторому условию

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

    Прием, которым мы воспользовались в задаче 5, здесь может привести к ошибке. Например, на первом месте в массиве будет стоять НЕЧЕТНОЕ число, которое окажется больше всех четных. Здесь переменной max лучше присвоить начальное значение, заведомо меньшее всех элементов массива. Например, если наш массив составлен из натуральных чисел, то присвоить max значение -2. Если после окончания программы значение max останется таким же, это будет означать, что в массиве нет четных чисел. Если же они будут, max изменит значение.

    Сдвиг элементов массива

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

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


    Удалим из него элемент с индексом i=4, т. е. a[1]=a[1], a[2]=a[2], a[3]=a[3], a[4]=a[5], a[5]=a[6], a[6]=a[7]. А вот для последнего элемента a[7] новое значение взять неоткуда. Он сохранит свое значение. Получим:


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

    Программа удаления элемента из массива на языке Паскаль может выглядеть следующим образом:


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


    Реверс массива

    Реверс массива — это перестановка его элементов в обратном порядке: первый элемент становится последним, а последний — первым.


    Из примера видно, что местами меняются 1-й элемент с N-м, второй — с (N–1)-м и т. д. Замечаем, что сумма индексов элементов, участвующих в обмене, равна N+1, поэтому элемент с номером i должен меняться местами с (N+1–i)-м элементом.

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


    Все вернулось в исходное состояние, потому что реверс выполнился дважды. Чтобы этого не произошло, нужно остановить процесс обмена на середине массива, т.е. на элементе с индексом (N div 2).


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

    Сортировка — один из наиболее распространенных процессов обработки данных.

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

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

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

    Существует много различных алгоритмов сортировки. Мы рассмотрим некоторые из них на примере сортировки массива целых чисел в порядке неубывания (a[i] 2 , где n — число элементов в массиве.

    Нажмите, чтобы узнать подробности

    Ключевые слова или опорные понятия. Урок, программирование, массив, таблица, индекс, структурированный тип.

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

    Развивающая – развитие познавательного интереса, творческой активности учащихся; развить у школьников умения излагать мысли, моделировать ситуацию, планировать свою деятельность.

    Мотивационная – побудить интерес к изучению информатики.

    Воспитательная умение сотрудничать, толерантность, инициативность, умение добиваться поставленной цели.

    Тип урока: ознакомление с новым материалом

    Педагогические технологии: технология сотрудничества, проблемно-поисковый метод, информационно-компьютерные технологии.

    Продолжительность занятия – 40 минут.

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

    Microsoft Offict Word 2007 - набор и редактирование текста;

    Microsoft Office PowerPoint 2007 - создание, обработка, компоновка презентации;

    Microsoft Office Picture Manager - обработка графики для презентации.

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

    Части- блоки урока

    Организационный момент: приветствие

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

    Ознакомление с новым материалом.

    4.1 Определение массива. Характеристики массива.

    4.2 Способы описания массива

    4.3 Способы заполнения массива

    4.4 Действия с одномерными массивами. Решение задач.

    Подведение итога урока

    Организация начала занятия.

    Учитель приветствует детей, отмечает отсутствующих на уроке.

    Создание проблемной ситуации. Постановка задачи. (Слайд 1)

    Учитель. Начнем сегодняшний урок с решения задачи.

    Задача. С клавиатуры вводится n чисел (числа могут повторяться). Необходимо подсчитать количество чисел равных наименьшему числу.

    Давайте составим алгоритм решения задачи.

    Ввести n (количество вводимых чисел).

    Найти наименьшее число.

    Ввести число и запомнить его в переменную min.

    В цикле пока не просмотрим n чисел делать:

    Ввести число и запомнить его в переменную x/

    Сравнивать x с min. Если xmin, то записываем в переменную min значение x.

    Сравнить введенные ранее числа со значением min.

    А как? Ведь мы не запоминали вводимые числа.

    Учитель. Какой выход из сложившейся ситуации? Или записывать все вводимые числа на листочек (при небольших значениях n), или нужно где-то сохранять вводимые числа.

    Тема урока известна, давайте сформулируем цели и запишем их на доске.( Слайд 3)

    Ученики. (Предполагаемый ответ)

    Узнать, что такое массив?

    Что можно хранить в массиве?

    Для чего он используется?

    Как записать в массив число?

    Как считать число из массива?

    Какие действия можно выполнять над информацией, помещенной в массив?

    Учитель на данном этапе помогает ребятам формулировать цели и при необходимости дополняет ответы учеников.

    Ознакомление с новым материалом

    Определение массива. Характеристики массива. ( Слайд 4)

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

    Массив представляет собой совокупность данных одного типа с общим для всех элементов именем.

    Массив относится к структурированным типам данных (упорядоченная совокупность данных).

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

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


    Значение элемента массива а[3]=2, а а[7]=4. (Слайд 5)

    Обратите внимание — данные в массивах сохраняются только до конца работы программы. Для их долговременного хранения программа должна записать данные в файл. Характеристики массива: (Слайд 6)

    тип — общий тип всех элементов массива;

    размерность (ранг) — количество индексов массива;

    диапазон изменения индекса (индексов) — определяет количество эле­ментов в массиве.

    Одномерный массив — это пример массива, в котором элементы ну­меруются одним индексом.

    Способы описания массива

    Самый простой способ описания массива — это объявить переменную в разделе описания переменных var с использованием зарезервированного слова array (т. е. массив). В общем виде описание выглядит так:

    var ИмяМассива: array[НижняяГраница.. ВерхняяГраница] of Тип Элементов;

    var a: array[1..n] of real;

    b: array[0..50] of char;

    с: array[-3..4] of boolean;

    x,y: array[1..20] of integer;

    Описание массива требуется компилятору для выделения памяти под его элементы.

    Массив также можно описать как типизированную константу в разделе опи­сания констант. Список значений элементов массива при этом заключается в круглые скобки.

    const x: array[1..5] of integer=(l,3,5,7,9);

    В этом примере не просто выделяется память под массив, а происходит за­полнение ячеек заданными значениями по строкам.

    При описании массивов также широко используется предвари­тельное описание типа в разделе описания типов данных. Такая возможность может потребоваться, например, при использовании имени массива в качестве параметра процедуры или функции.

    Например, для массива а из 100 элементов (вещественные числа, тип real) в памяти будет выделено 100 ячеек по шесть байт — всего 600 байт.

    Type ИмяТипа = аггау[ НижняяГраница.. ВерхняяГраница ] of Тип Элементов;

    Var ИмяМассива : ИмяТипа;

    Type z: array[1..20] of integer;

    Var x, y: z (Слайд 10)

    Как вы думаете, при выполнении программы обязательно заполнять все ячейки данными? Почему? Если ячейка не заполнена то, какое значение в ней находится? Может ли реальное количество элементов в массиве может быть меньше, чем указано при описании? Почему? А может быть больше? Почему?

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

    Способы заполнения массива (Слайды 11,12) Значения элементов массива также можно задать следующими способами:

    при вводе данных с клавиатуры: for i:=1 to n do read (a[i]);

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

    Заполним массив числами в диапазоне от -3 до 7.

    for i:=1 to n do a[i]:=random(11)-3;

    присваиванием заданных значений;

    Заполним массив четными числами

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

    for i:=1 to n do begin

    if x mod 2=0 then a[i]:=x

    считывая значения элементов из файла: for i:=1 to n do read (f,a[i]);

    Вывод элементов массива осуществляется в цикле: for i:=1 to n do write (a[i],’ ‘)

    Действия с одномерными массивами. (Слайд 13)

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

    Применение допустимых операций даст следующий результат:

    A=B-результат истина, если значение каждого элемента массива а равно соответствующему значению элемента b.

    AB- результат истина, если хотя бы одно значение элемента массива а не равно значению соответствующего элемента массива b.

    A:=B- все значения элементов массива B присваиваются соответствующим элементам массива A.

    Действия над элементами массива. (Слайд 14)

    Пусть в одномерном массиве а содержится n элементов- целые числа.

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

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

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

    for i:=1 to n do begin

    for i:=1 to n do s:=s+a[i];

    writeln (‘сумма элементов массива =’, s)

    Подсчет количества элементов, удовлетворяющих какому-либо условию.

    Например, найдем произведение элементов имеющих нечетный индекс.

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

    for i:=1 to n do begin

    if i mod 20 then p:=p*a[i]

    writeln (‘призведение элементов массива =’, s)

    end. (Слайд 16)

    Поиск элемента с заданным значением. Найти элемент — это значит вы­яснить его номер в массиве.

    Например, найдем номер первого из элементов массива а, имеющего значение равное нулю. Если таких элементов нет, выведем соответствующее со­общение.

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

    for i:=1 to n do begin

    until (a[i]=0) or (i=n) ;

    if a[i]=0 then writeln (‘номер первого нулевого элемента=’, i)

    else writeln (‘ таких элементов нет!’);

    end. (Слайд 17)

    Поиск максимального (минимального) элемента и его номера.

    Например, в одномерном массиве подсчитает количество элементов равных минимальному.

    Ребята, кто попробует решить эту задачу на доске? Вызываю к доске ученика пожелавшего решить задачу.

    А с остальными ребятами проговариваем алгоритм решения.

    Найти минимальный элемент массива.

    Подсчитать количество элементов равных минимальному.

    For i:= 1 to n do if a[i]=min then k:=k+1;

    Рассматриваем решение на доске. Комментируем, исправляем ошибки, если таковы были.

    Сортировка элементов массива.

    Сдвиг, удаление и вставка элементов массива.

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

    Подведение итога урока. А теперь, ребята вернемся к целям урока (которые записаны на доске). Скажите на все вопросы мы нашли ответы? Чем ценны массивы?

    Ученик. (Предполагаемый ответ) Массивы ценны тем, что:

    Индексы элементов массива обеспечивают доступ не к одному, а к последовательно­сти элементов. Обработка массивов производится при изменении индексов элементов.

    Сразу можно хранить и обрабатывать большое количество однотипных данных

    Каким образом задается описание массива, что в нем указывается?

    Каким образом задается обращение к элементу массива?

    Почему при описании массива предпочтительнее употреблять константы , а не указывать размеры массива в явном виде? (Слайд 19)

    Домашнее задание. §17, 18 читать, отвечать на вопросы в конце параграфа.

    Читайте также: