Массивы

Автор работы: Пользователь скрыл имя, 10 Августа 2011 в 16:07, контрольная работа

Краткое описание

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

Содержание работы

Введение…………………………………………………………………………...3
1. Массивы………………………………………………………………………..5
1. Одномерные массивы………………………………………………….......5
1.2 Двумерные массивы………………………………………………………..6
1.3 Многомерные массивы…………………………………………………….6
2. Реализация массивов в различных языках программирования………….8
2.1 Язык Fortran………………………………………………………………...8
2.2 Язык Pascal………………………………………………………………..9
2.3 Язык Basic…………………………………………………………………10
2.4 Язык С……………………………………………………………………...11
Заключение……………………………………………………………………….12
Список литературы………………………………………………………………13

Содержимое работы - 1 файл

Массивы.docx

— 37.09 Кб (Скачать файл)

Содержание 

Введение…………………………………………………………………………...3

1. Массивы………………………………………………………………………..5

    1. Одномерные массивы………………………………………………….......5

  1.2 Двумерные массивы………………………………………………………..6

  1.3 Многомерные  массивы…………………………………………………….6

2. Реализация  массивов в различных языках программирования………….8

    2.1 Язык Fortran………………………………………………………………...8

  2.2 Язык Pascal………………………………………………………………..9

  2.3 Язык Basic…………………………………………………………………10

  2.4 Язык С……………………………………………………………………...11

Заключение……………………………………………………………………….12

Список литературы………………………………………………………………13 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Введение

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

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

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

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

     Концепции разработки типов данных, появившиеся  в конце 1970-х годов в результате естественного обобщения идеи типов, определяемых пользователем, были воплощены в языке Ada 83. Методология, лежащая в основе определяемых пользователем типов данных, состоит в том, что программисту следует позволить создавать отдельный тип для каждого отдельного класса переменных, определяемых предметной областью задачи. Более того, язык должен обеспечивать уникальность типов, являющихся, фактически, абстракциями переменных из предметной области задачи. Это довольно мощная концепция, оказывающая значительное влияние на общий процесс разработки программного обеспечения.

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

1. Массивы

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

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

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

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

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

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

    Например, массив А(8)

    А1, А2, А3, А4, А5, А6, А7, А8

Этот  массив является одномерным, причем массив имеет имя А и состоит из восьми элементов. Количество индексов в списке определяет размерность массива.

1.2 Двумерные массивы

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

    

     В общем виде элемент матрицы обозначается как A(I,J), где

    А – имя массива,

    I – индекс (номер) строки,

    J – индекс (номер) столбца.

    Если двумерный массив имеет число строк равное числу столбцов, то такой массив (матрица) называют квадратным, например, массивы 3х3, 4х4, 5х5 и т.д.

    1.3 Многомерные массивы

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

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

     Под массив выделяется непрерывный блок памяти объёмом 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 — база (адрес начала блока памяти массива), inp-значение n-го индекса, приведённое к целому с нулевым начальным смещением.

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

     Первый  элемент массива, в зависимости  от языка программирования, может  иметь различный индекс. Различают  три основных разновидности массивов: с отсчетом от нуля (zero-based), с отсчетом от единицы (one-based) и с отсчетом от специфического значения заданного программистом (n-based). Отсчет индекса элемента массивов с нуля более характерен для низкоуровневых языков программирования, однако этот метод был популяризирован в языках более высокого уровня языком программирования С. 

       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2. Реализация массивов  в различных языках 

программирования

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

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

    Рассмотрим, как реализованы массивы в  таких языках программирования как FORTRAN, PASCAL, BASIC и С.

    2.1 Язык Fortran

    Язык  Fortran один из первых ввел понятие массива. Первые версии языка позволяли организовывать только числовые массивы. Впрочем, и сам язык появился как средство описания вычислительных задач математики (FORTRAN=FORmula TRANslation). Более поздние версии языка значительно расширили понятие массива.

    Массивы в языке  Fortran могут иметь произвольное количество индексов, или размерностей. Однако конкретные трансляторы могут накладывать ограничения. Изменить размер созданного массива невозможно. Первый элемент массива всегда имеет индекс 1. Примеры описания массивов:

               DIMENSION A(30)

               REAL B(50)

               INTEGER C(10,20,30)  

    Примеры обращения к массивам:

            DO 5 I=1,20

        5  C(5,I,10)=A(i)+B(I+10)*4

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

               SUBROUTINE NEG(A,N)

               INTEGER A(N)

               DO 1 I=1,N

            1  A(I)=-A(I)

               END       

    2.2 Язык Pascal

    Язык  Pascal был разработан Н.Виртом как язык для обучения программированию. Базовым языком послужил Algol60. Все сложные и неоднозначные конструкции Algol были выброшены. Были добавлены недостающие элементы, такие как пользовательские типы данных.

    Пример  описания массива:

               Program test;

               const

                  Size=30;

               type

                  Color=(Red, Green, Blue);

               var

                  CrtPixels : array [0..Size] of Color;

                          i: integer;

               begin

                  for i:=0 to Size do begin

                     case i mod 3 of

                        0: CrtPixels[i]:=Red;

                        1: CrtPixels[i]:=Green;

                        2: CrtPixels[i]:=Blue;

                     end;

                  end;

               end.

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

    2.3 Язык Basic

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

    Оригинальный Basic допускал только однобуквенные переменные. Массивы были только статические, и только одномерные. Причем если объявлялся массив без указания размерности, то считается, что массив состоит из 10 элементов. При развитии языка первыми ликвидированными ограничениями стали длинна имен переменных и количество индексов массива. В дальнейшем стали допустимы и динамические массивы. Нижнее значение индекса фиксировано, и равно 0.

               DIM Arr[30,30]

               DIM Matrix()

               REDIM Matrix(30,10,30)

               FOR I=30 TO 0 STEP -1

                  Matrix[I,0,I]=I

Информация о работе Массивы