Обработка массивов записей. пример курсовой. Краткий обзор языка Основная часть 1 Массив. 2 Одномерные массивы
Скачать 49.2 Kb.
|
printf("\n"); } В данном фрагменте после вывода очередной строки массива осуществляется переход на следующую строку дисплея. В языке Си допускается использовать не только двумерные, но и трехмерные, четырехмерные и т. д. массивы. Их использование ничем принципиально не отличается от использования двумерных массивов, однако на практике они применяются значительно реже. Индексный массив Индексный массив (в некоторых языках программирования также таблица, ряд) — именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом (в отличие от списка), доступ к которым осуществляется по индексу. Индекс массива — целое число, либо значение типа, приводимого к целому, указывающее на конкретный элемент массива. В ряде скриптовых языков, например JavaScript, PHP, Ruby применяются также ассоциативные массивы, в которых переменные не обязаны быть однотипными, и доступ к ним не обязательно осуществляется по индексу. Общее описание Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко. Пример статического массива на Паскале - word Array : array [Word] of Integer; { Статический, размер = High(Word) + 1 } multi Array : array [Byte, 1..5] of Char; { Статический массив, 2 измерения } rang e Array : array [5..20] of String; { Статический массив, размер = 16 } Пример статического массива на С/С++ - int Array[10]; // Статический, размер 10, базовый тип данных - целое число (int) double Array[12][15]; // Статический массив, 2 измерения, базовый тип данных - число// с дробной частью (double) Поддержка индексных массивов (свой синтаксис объявления, функции для работы с элементами и т. д.) есть в большинстве высокоуровневых языков программирования. Максимально допустимая размерность массива, типы и диапазоны значений индексов, ограничения на типы элементов определяются языком программирования и/или конкретным транслятором. В языках программирования, допускающих объявления программистом собственных типов, как правило, существует возможность создания типа «массив». В определении такого типа может указываться размер, тип элемента, диапазон значений и типы индексов. В дальнейшем возможно определение переменных созданного типа. Все такие переменные-массивы имеют одну структуру. Некоторые языки поддерживают для переменных-массивов операции присваивания (когда одной операцией всем элементам массива присваиваются значения соответствующих элементов другого массива). Объявление типа «массив» в Паскале - type T Array Type = array [0..9] of Integer; (* Объявления типа "массив" *) var arr1, arr2, arr3: TArrayType; (* Объявление трёх переменных-массивов одного типа *) Специфические типы массивов Динамические массивы Динамическим называется массив, размер которого может меняться во время исполнения программы. Для изменения размера динамического массива язык программирования, поддерживающий такие массивы, должен предоставлять встроенную функцию или оператор. Динамические массивы дают возможность более гибкой работы с данными, так как позволяют не прогнозировать хранимые объёмы данных, а регулировать размер массива в соответствии с реально необходимыми объёмами. Обычные, не динамические массивы называют ещё статическими. Пример динамического массива на Delphi byte Array : Array of Byte; // Одномерный массив multi Array : Array of Array of string; // Многомерный массив Пример динамического массива на Си float *array1; // Одномерный массив int **array2; // Многомерный массив array1=(float*)malloc(10*sizeof(float)); // выделение 10 блоков по sizeof(float)байт каждый array2=(int**)malloc(16*sizeof(int *)); // выделение 16*8 блоков по sizeof(int) байт каждый for(i=0;i<16;i++) array2[i]=(int*)malloc(8*sizeof(int)); Пример динамического массива на С++ float *array1; // Одномерный массив int **array2; // Многомерный массив array1=new float[10]; // выделение 10 блоков размером типа float array2=new int*[16]; // выделение 16*8 блоков размером типа int for(int i=0;i<16;i++) array2[i]=new int[8]; Гетерогенные массивы Гетерогенным называется массив, в разные элементы которого могут быть непосредственно записаны значения, относящиеся к различным типам данных. Массив, хранящий указатели на значения различных типов, не является гетерогенным, так как собственно хранящиеся в массиве данные относятся к единственному типу — типу «указатель». Гетерогенные массивы удобны как универсальная структура для хранения наборов данных произвольных типов. Отсутствие их поддержки в языке программирования приводит к необходимости реализации более сложных схем хранения данных. С другой стороны, реализация гетерогенности требует усложнения механизма поддержки массивов в трансляторе языка. Гетерогенный массив как встроенный тип данных присутствует в языке PHP. Массивы массивов Многомерные массивы, как правило, реализованные как одномерные массивы, каждый элемент которых является ссылкой на другой одномерный массив. Реализация Стандартным способом реализации статических массивов с одним типом элементов является следующий: Под массив выделяется непрерывный блок памяти объёмом S*m1*m2*m3…mn, где S — размер одного элемента, а m1…mn — размеры диапазонов индексов (то есть количество значений, которые может принимать соответствующий индекс). При обращении к элементу массива A[i1, i2, i3, … in] адрес соответствующего элемента вычисляется как B+S*(i1p*m1+i2p*m2+…+i(n-1)p*mn-1+inp), где B — 27 база (адрес начала блока памяти массива), ikp-значение k-го индекса, приведённое к целому с нулевым начальным смещением. Таким образом, адрес элемента с заданным набором индексов вычисляется так, что время доступа ко всем элементам массива одинаково. Первый элемент массива, в зависимости от языка программирования, может иметь различный индекс. Различают три основных разновидности массивов: с отсчетом от нуля (zero-based), с отсчетом от единицы (one-based) и с отсчетом от специфического значения заданного программистом (n-based). Отсчет индекса элемента массивов с нуля более характерен для низкоуровневых ЯП, однако этот метод был популяризирован в языках более высокого уровня языком программирования С. Более сложные типы массивов — динамические и гетерогенные — реализуются сложнее. Достоинства легкость вычисления адреса элемента по его индексу (поскольку элементы массива располагаются один за другим) одинаковое время доступа ко всем элементам малый размер элементов: они состоят только из информационного поля Недостатки для статического массива — отсутствие динамики, невозможность удаления или добавления элемента без сдвига других для динамического и/или гетерогенного массива — более низкое (по сравнению с обычным статическим) быстродействие и дополнительные накладные расходы на поддержку динамических свойств и/или гетерогенности. при работе с массивом в стиле C (с указателями) и при отсутствии дополнительных средств контроля — угроза выхода за границы массива и повреждения данных Заключение На данный момент мировая компьютерная индустрия развивается очень стремительно .Производительность систем возрастает, а следовательно возрастают возможности обработки больших объёмов данных. Операционные системы класса MS-DOS уже не справляются с таким потоком данных и не могут целиком использовать ресурсы современных компьютеров .Поэтому она больше нигде широко не используется. Все стараются перейти на более совершенные ОС,какими являются UNIX и Windows. Но из-за “непопулярности “ , UNIX мало кто использует этот ОС. Во всем мире все, начиная от домохозяек и заканчивая корпоративными пользователями, пользуются Windows 9x. В данной Курсовой работе мы рассмотрели основное понятие программирования. Не смотря на внешне кажущуюся простоту данной программы, он таит в себе ряд сложностей, которые реализуются с использованием всех основных приемов Турбо Паскаль. Вообще Турбо Паскаль как среда программирование уже давно устарела, но основы, которые лежат в среде программировании в Турбо Паскаль, лежат в большинстве известных и популярных приложений. На мой взгляд, изучая программирование в Турбо Паскаль, можно освоить основные приемы программирования. Двумерные массивы серебряных наностержней в диэлектрической пластине обладают нетривиальными оптическими свойствами. Вследствие малых по сравнению с длиной волны размерами такие структуры должны моделироваться с использованием точной электромагнитной теории. На ее основе построены модели усреднения материала, в частности, рассматривается НМ усреднения. Результаты аналитического моделирования сравниваются с анализом распространения света через точную структуру численным периодическим методом конечных граничных элементов. Сравнение показало эффективность НМ в ТМ - случае для расчета структур с металлическими стержнями. Сумма отклонений коэффициентов отражения и пропускания возрастает с расстоянием между стержнями. В том случае модель может быть использована только для качественного анализа. Целью данной курсовой работы, являлось углубление знаний и расширение навыков по разработке массивам и их реализации на персональном компьютере, на мой взгляд, разработанная мной программа, вполне отвечает поставленным целям. Список литературы Основная 1.Львовский М.Б. Методическое пособие «BOOK» по информатике для 9-11 классов. 2.Гусак А.А. Высшая математика. В 2-х т. Т. 2.:Учеб. Пособие для студентов вузов. – Мн.: ТетраСистемс, 1998. – 448 с. 3.Лиходед Н.А. Методы распараллеливания гнезд циклов: Курс лекций. – Мн.: БГУ. 2007. – 100 с. Ser314\ subFaculty\ Каф. Дискр. мат. и алгор\ КУРСЫ ДМА\ 4 курс\ Лиходед\ Лекции\ Распараллеливание гнезд циклов. 4.Вирт Н. Алгоритмы + структуры данных = программы. — М.: Мир, 1985. — С. 406. 5.Светозарова Г.И., Мельников А.А., Козловский А.В. Практикум по программированию на языке Бейсик: Учебное пособие для вузов. – М.: Наука, 1988. Дополнительная 1.Источник: Львовский М.Б. Методическое пособие «BOOK» по информатике для 9-11 классов. Адрес: http://markbook.chat.ru/book/ 2.Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. — М.: Финансы и статистика, 1982. — С. 151. 3.Перминов О. Н. Язык программирования Паскаль : Справочник. — М.: Радио и связь, 1989. — С. 128. — ISBN 5-256-00311-9 4.Для подготовки данной работы были использованы материалы с сайта http://www.comp-science.ru/ 5.Вострикова З.П., Вострикова О.Ю., Туева С.С. Программирование на языке “Бейсик” для персональных ЭВМ. – М.: Финансы и статистика, 1993. |