160 likes | 384 Views
Дисциплина «Программирование» Специальность 08080165 «Прикладная информатика (в экономике)» Институт информатики, инноваций и бизнес-систем Кафедра информатики, инженерной и компьютерной графики Люлько Виктор Иванович, старший преподаватель.
E N D
Дисциплина «Программирование» Специальность 08080165 «Прикладная информатика (в экономике)» Институт информатики, инноваций и бизнес-систем Кафедра информатики, инженерной и компьютерной графики Люлько Виктор Иванович, старший преподаватель Тема 6. Особенности алгоритмов обработки данных в двумерных и многомерных массивах. Динамические массивы.
Требования к знаниям, умениям и навыкам • После изучения темы студент должен • уметь реализовывать алгоритмы с использованием двумерных, многомерных и динамических массивов 2
Содержание • Ключевые понятия • Учебный материал 3
Ключевые понятия • Двумерный массив • Многомерный массив • Динамический массив 4
Учебный материал • Основные задачи лекции • Изучение возможностей использования средств языка программирования для реализации основных алгоритмов с использованием двумерных и многомерных массивов • Знакомство с особенностями описания (объявления) и использования динамических массивов 5
Учебный материал • Особенности ввода, вывода и обработки данных с использованием двумерных и многомерных массивов (начало) • Если в одномерном массиве каждому его элементу соответствует один индекс, то в многомерном – соответствуют несколько индексов. • Из многомерных массивов на практике чаще всего используются двумерные массивы, каждому элементу которых соответствуют два индекса 6
Учебный материал • Особенности ввода, вывода и обработки данных с использованием двумерных и многомерных массивов (продолжение) • При вводе и выводе значений двумерного массива можно указывать только элемент массива с индексами, например: Readln(z[1,10], z[i,i+k], v[k,I+1]); Writeln(z[10,1], z[i,i+1], v[i,k]); 7
Учебный материал • Особенности ввода, вывода и обработки данных с использованием двумерных и многомерных массивов (окончание) • Пример вложенного цикла для суммирования элементов каждой строки двумерного массива v с размещением полученных сумм в тех элементах одномерного массива z, индексы которых совпадают с номерами строк двумерного массива v: for i:=1to20dobegin z[i]:=0;for k:=1to10do z[i]:=z[i]+v[i,k]end; 8
Учебный материал • Динамические массивы, особенности их описания (объявления) и использования (начало) • Динамические массивы отличаются от статических тем, что при их объявлении (описании) не указывается число элементов массива и место для их размещения не отводится. В связи с этим динамические массивы следует использовать тогда, когда объемы массивов заранее неизвестны и определяются в процессе выполнения программы. • Формат объявления (описания) типа динамического массива: <Имя> Array of <Тип элементов> 9
Учебный материал • Динамические массивы, особенности их описания (объявления) и использования (продолжение) • Примеры объявлений (описаний) динамических массивов:Var a: Array of Integer; {Одномерныйдинамическиймассив целых чисел}b: Array of Array of Real; {Двумерный динамическиймассив вещественных чисел} 10
Учебный материал • Динамические массивы, особенности их описания (объявления) и использования (продолжение) • Перед использованием динамического массива следует задать его размерпроцедурой SetLength, в качестве аргументов которой указываются имя массиваи целые значения, определяющие размеры массива. 11
Учебный материал • Динамические массивы, особенности их описания (объявления) и использования (продолжение) • Например, при выполнении оператора процедурыSetLength(a,10);для одномерного динамического массива a будетвыделена память для размещения 10 элементов этого массива и заданы нулевые значения этих элементов. • Индексы динамического массива являются целыми числами, начинающимися с 0. • В приведенном выше примере динамический массив a содержит 10 элементов от a[0] до a[9] включительно. 12
Учебный материал • Динамические массивы, особенности их описания (объявления) и использования (продолжение) • При выполнении оператора процедуры SetLength(b,i,k);для двумерного динамического массива b будет выделена память для размещения i•k элементов этого массива и заданы нулевые значения этих элементов. • При записи операторов элементы динамических массивов имеют такой же вид, как и элементы статических массивов. 13
Учебный материал • Динамические массивы, особенности их описания (объявления) и использования (продолжение) • При повторном применении процедуры SetLength к уже существующему в памяти динамическому массиву его размер изменяется. • Если новое значение размера больше предыдущего, то все значения элементов сохраняются и в конце массива добавляются новые нулевые элементы. • Если новое значение размера меньше предыдущего, то в массиве остаются только значения первых элементов (массив усекается). 14
Учебный материал • Динамические массивы, особенности их описания (объявления) и использования (окончание) • Удалить из памяти динамический массив (например, массив a) можно: или присвоением ему значения nil: a:=nil; или использованием функции Finalize: Finalize(a); или использованием процедуры SetLength для задания нулевого размера массива: SetLength(a,0); 15
Использование материалов презентации Использование данной презентации, может осуществляться только при условии соблюдения требований законов РФ об авторском праве и интеллектуальной собственности, а также с учетом требований настоящего Заявления. Презентация является собственностью автора. Разрешается распечатывать копию любой части презентации для личного некоммерческого использования, однако не допускается распечатывать какую-либо часть презентации с любой иной целью или по каким-либо причинам вносить изменения в любую часть презентации. Использование любой части презентации в другом произведении, как в печатной, электронной, так и иной форме, а также использование любой части презентации в другой презентации посредством ссылки или иным образом допускается только после получения письменного согласия автора. 16