36575

Структурный тип маcсив. Описание мас и доступ к эл мас

Контрольная

Информатика, кибернетика и программирование

Идея массива состоит в том чтобы объединить в одно целое фиксированное количество элементов одного и того же типа. Общая форма описания массива имеет вид: type имя типамассива = rry [ тип индекса ] of тип элементов ; где: имя типамассива имя выбираемое программистом. тип индекса любой порядковый тип кроме longint или типдиапазон.

Русский

2013-09-22

33 KB

0 чел.

Структурный тип маcсив. Описание мас и доступ к эл мас.

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

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

Прежде чем использовать массив, его следует описать в разделе описаний программы. Общая форма описания массива имеет вид:

type <имя типа-массива> = array [ < тип индекса > ] of < тип элементов>;

где: <имя типа-массива> - имя, выбираемое программистом.

 < тип индекса > - любой порядковый тип (кроме longint) или тип-диапазон.

 < тип элементов > - любой тип Турбо Паскаля.

В качестве типа индекса часто используют тип-диапазон, указывающий границы индекса. Например:

type measure = array [ 1..16] of real; {тип -массив измерений}

var m1,m2: measure; {переменные-массивы измерений}

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

сonst vect: array [1..8] of 0..9 = (0,0,0,0,1,2,3,4);

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

Двумерный массив (матрица) может быть описан в виде:

type <имя типа-массива>= array [<тип индекса1>] of array [<тип индекса2>] of <тип >;

Однако в Паскале допускается более компактная форма таких описаний, в которой вместо одного типа индекса используется список из нескольких типов индексов.

Для матрицы такое описание будет иметь вид:

type <имя типа-массива>=array[<тип индекса1,тип индекса2>]of <тип компонент>;

Например: type matr= array [ 1..16,1..8] of real; {тип - матрица 16х8}

var mt1,mt2: matr; {переменные типа matr}

Доступ к элементам массива осуществляется посредством так называемых индексированных имен, имеющих вид:

<имя переменной-массива > [<индексное выражение > ];

где : <индексное выражение > - выражение типа индекса (в частности, индексным выражением может быть переменная).

В случае, когда массив многомерный (имеет несколько индексов), доступ к элементу массива осуществляется по списку индексных выражений в виде:

<имя переменной-массива >[<индексное выражение1 >,<индексное выражение2 >, ...];

Например: m1[ j ] {значение j- элемента массива m1}

mt2[j+3, k] {значение элемента (j+3)-строки, k-столбца матрицы mt2}

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

Задача 4.2.6(13)

program Project13;

type mas=array[1..3,1..4] of Integer;

var a:mas;

i,j,l1,l2,d1,d2,s:Integer;

procedure p(x:mas; e1,e2:Integer; var n,k:integer);

var j,min:Integer;

begin

min:=x[1,e1];

n:=1;

k:=e1;

for j:=e1 to e2 do

for i:=1 to 3 do

if x[i,j]<min then

begin

min:=x[i,j];

n:=i;

k:=j;

end;

end;

begin

for i:=1 to 3 do

for j:=1 to 4 do

read(a[i,j]);

p(a,1,2,l1,d1);

p(a,3,4,l2,d2);

s:=a[l1,d1];

a[l1,d1]:=a[l2,d2];

a[l2,d2]:=s;

Writeln;

for i:=1 to 3 do begin

for j:=1 to 4 do begin

write(a[i,j],' ');

end; writeln; end;

Readln;

Readln;

 end.


 

А также другие работы, которые могут Вас заинтересовать

25457. Теория социальной работы как наука. Механизмы взаимодействия теории и практики социальной работы 15.18 KB
  Теория социальной работы как наука. Механизмы взаимодействия теории и практики социальной работы Теоретическое обоснование соц. Вопервых определяется место соц.работы как науки среди таких дисциплин как соц.
25459. Основные группы категорий социальной работы 11.87 KB
  основные группы категорий социальной работы Любая гуманитарная наука в том числе теория социальной работы отражает изменчивые тесно переплетающиеся друг с другом многообразные социальные явления например взаимодействие человекчеловек человексреда обобщая и интерпретируя которые ученые выдвигают понятия краткие но всеобъемлющие определения способные объяснить особенности того или иного явления не позволяющие его толковать двояко. Категориально понятийный аппарат социальной работы. В теории социальной работы сложился...
25460. Февральский переворот 1917 г 12.75 KB
  В ходе боев формируется убеждение что земля не может не перейти крестьянам в награду за страдания жертвы и гибель за Царя тем более что община провожая солдат на войну говорила : Защитите землю и отвоюйте ее в руки крестьянские Вера в победоносное и непременно скорое окончание войны побуждало солдат безропотно нести свой крест и выполнять свой долг перед Царем и Отечеством. Объективно особых причин для этого не было но традиционное сознание ориентировано на то что правдивую информацию поставляет ближайшее окружение то есть солдат при...
25461. Взаимосвязь процесов в обществе социальной политики и социальной работы 12.45 KB
  Решение соц. проблем через личностные потребности и интерес клиентов Зависимость результативности ср от профессионализма нравственных Закономерности соц работы носят объективный характер Жуков 2 группы: 1 законодат функц и разв системы СР 2 законод отраж существ связи между С и О соц дти и их диалектика полит обусловл СР взаимосвязь соц пол госва и сод СР объем и финанс соц прогр: стрра соц служб кат нас все завис от соц пол госва детермин сод и форм СР с социокульт услми ее сущя проф компетентность и ориентир соц служб ...
25462. Вторая половина 1918 г. 12.51 KB
  в стране насчитывалось до 10 типов изданий проводивших политику правящей партии. Но самым примечательным стал выход 28 новых центральных изданий. Среди центральных изданий возникших в годы гражданской войны следует назвать газету Жизнь национальностей орган Народного Комиссариата по делам национальностей. они выпустили около 500 различных изданий.
25463. Принципы и методы профессиональной социальной работы 15.61 KB
  Принципы и методы профессиональной социальной работы Принципы соц. Именно через применение принципов осуществляется непосредственное соотнесение теоретических положений воплощенныхв категориях и закономерностях с практикой соц. Теория соц.рты выявляет и описывает основные тенденции закономерности разя и функционирования всего комплекса взаимосвязанных компонентов соц.