Дисциплина «Программирование» Специальность 08080165 «Прикладная информатика (в экономике)» Институт информатики, инноваций и бизнес-систем Кафедра информатики, инженерной и компьютерной графики Люлько Виктор Иванович, старший преподаватель Тема 5. Массивы. Использование и описание (объявление) массивов. Ввод данных в массивы. Форматы вывода. Реализация алгоритмов с использованием одномерных массивов. Требования к знаниям, умениям и навыкам После изучения темы студент должен иметь представление о возможностях использования массивов для размещения данных уметь реализовывать алгоритмы с использованием одномерных массивов и использовать форматы вывода для вывода данных из массивов 2 Содержание 1. Ключевые понятия 2. Учебный материал 3 Ключевые понятия Массив Одномерный массив Многомерный массив Описание (объявление) массива 4 Учебный материал Основные задачи лекции Знакомство с понятием массива и его размерности Знакомство с правилами описания (объявления) массивов Изучение возможностей использования средств языка программирования для реализации основных алгоритмов с использованием одномерных массивов 5 Учебный материал Понятие массива Массив представляет собой совокупность последовательно расположенных в памяти областей памяти с однотипными данными. Эти области памяти называются элементами массива (аналогом одного элемента массива может служить переменная). Массив имеет имя, являющееся общим для всех элементов массива. Доступ к отдельному элементу массива осуществляется по номеру (или индексу) этого элемента. В качестве индексов чаще всего используются значения целого типа. 6 Учебный материал Одномерные и многомерные массивы Массивы могут быть одномерными и многомерными. В одномерном массиве каждому его элементу соответствует один индекс, в многомерном – соответствуют несколько индексов. Из многомерных массивов на практике чаще всего используются двумерные массивы, каждому элементу которых соответствуют два индекса. Доступ к элементу массива осуществляется по индексу или индексам этого элемента, указываемым в квадратных скобках после идентификатора массива, например, ab[k]:=a*a; v[i,k]:=z[i]*ab[k+9]; 7 Учебный материал Описание (объявление) массивов (начало) Примеры описаний (объявлений) массивов: Var z: Array [1..20] of Real; ab: Array [10..100] of Integer; v: Array [1..20,1..10] of Real; 8 Здесь z и ab являются одномерными массивами, v – двумерным массивом. Каждый из элементов массива ab – целое число типа Integer, каждый и элементов массивов z и v – вещественное число типа Real. Массив z состоит из 20 элементов (нижняя граница индексов –1, верхняя граница – 20), массив ab состоит из 91 элемента (нижняя граница индексов –10, верхняя граница – 100), массив v состоит из 200 элементов (из 20 строк по 10 элементов в каждой). Учебный материал Описание (объявление) массивов (окончание) При описании (объявлении) массивов могут быть использованы именованные константы, например: Const N=20; Var z: Array [1..N] of Real; Использование в таких случаях именованных констант позволяет изменять используемые в разных местах программы значения границ индексов массивов, изменяя лишь значения соответствующих именованных констант в области описания (объявления). 9 Учебный материал Ввод данных в массивы При вводе значений массива можно указывать только элемент массива с индексами, например: Readln(z[10],z[i+k],v[k,i+1]); 10 Учебный материал Форматы вывода и их использование для вывода данных из массивов При выводе значений массива можно указывать только элемент массива с индексами, например: Writeln(z[1],z[i+1],v[i,k]); При выводе нескольких элементов массивов в строке рекомендуется использовать форматы вывода, например: Writeln(ab[i+10]:5,v[i,k]:8:2); 11 Учебный материал Реализация алгоритмов с использованием одномерных массивов (начало) Пример суммирования элементов одномерного массива: s:=0; for i:=1 to 20 do s:=s+z[i]; 12 Учебный материал Реализация алгоритмов с использованием одномерных массивов (продолжение) Поиск в массиве обычно сводится к определению номеров элементов массива, отвечающих заданному критерию, и выполнению каких-либо действий с использованием найденных элементов и (или) номеров этих элементов. Простейшим из таких действий является, например, вывод номеров элементов массива, отвечающих заданному критерию. 13 Учебный материал Реализация алгоритмов с использованием одномерных массивов (продолжение) Например, при выполнения фрагмента программы min:=z[1]; {1-й элемент массива тоже может быть минимальным} imin:=1; for i:=1 to 20 do if z[i]<min then begin min:=z[i]; imin:=i end; writeln(imin); будет определен и выведен номер первого из элементов массива, имеющих минимальное значение. 14 Учебный материал Реализация алгоритмов с использованием одномерных массивов (продолжение) Сортировка элементов массива обычно сводится к перестановкам элементов массива в соответствии условиями сортировки. На практике чаще всего используется сортировка по возрастанию или по убыванию значений элементов массива. 15 Учебный материал Реализация алгоритмов с использованием одномерных массивов (продолжение) Ниже приведен пример фрагмента программы, выполняющего сортировку по убыванию значений элементов одномерного массива, состоящего из 10 элементов: for n:=9 downto 1 do for i:=1 to n do if z[i]<z[i+1] then begin s:=z[i]; z[i]:=z[i+1]; z[i+1]:=s end; 16 Использование материалов презентации Использование данной презентации, может осуществляться только при условии соблюдения требований законов РФ об авторском праве и интеллектуальной собственности, а также с учетом требований настоящего Заявления. Презентация является собственностью автора. Разрешается распечатывать копию любой части презентации для личного некоммерческого использования, однако не допускается распечатывать какую-либо часть презентации с любой иной целью или по каким-либо причинам вносить изменения в любую часть презентации. Использование любой части презентации в другом произведении, как в печатной, электронной, так и иной форме, а также использование любой части презентации в другой презентации посредством ссылки или иным образом допускается только после получения письменного согласия автора. 17