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.


 

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

37845. ИССЛЕДОВАНИЕ ОСНОВНЫХ МЕТРОЛОГИЧЕСКИХ ХАРАКТЕРИСТИК ЭЛЕКТРОМЕХАНИЧЕСКИХ ИЗМЕРИТЕЛЬНЫХ ПРИБОРОВ 204 KB
  Определить основную погрешность комбинированного измерительного прибора тестера в следующих режимах работы: вольтметра постоянного тока вольтметра переменного тока миллиамперметра постоянного тока. Определить амплитудночастотную характеристику АЧХ вольтметра переменного тока. Построить график АЧХ определить рабочую полосу частот вольтметра. Для поверки вольтметра собрать поверочную схему рис.
37846. ЭЛЕКТРОННО-ЛУЧЕВОЙ ОСЦИЛЛОГРАФ 595 KB
  Оценить погрешности измерений используя результаты исследования осциллографа и его метрологические характеристики указанные в описании. Объекты измерений задаются преподавателем. ОБРАБОТКА РЕЗУЛЬТАТОВ ПРЯМЫХ И КОСВЕННЫХ ИЗМЕРЕНИЙ Цель работы ознакомление с методами обработки результатов прямых и косвенных измерений при однократных и многократных измерениях. 2 при наличии относительно больших случайных погрешностей число измерений и уровень случайных погрешностей задаются преподавателем.
37848. Розробка алгоритмів задач з використанням складних структур 163 KB
  Преподаватель Егорова Кривой рог 1997 Контрольні запитання: Яка структура має назву списки Яким чином у мові С описується список Що таке стек Що таке черга Чим відрізняється черга від стека та списку Теоретичні відомості: Покажчики. Кількість елементів у послідовності називається довжиною списку. При роботі з списками часто доводиться виконувати такі операції: знайти елемент із заданною властивістю; визначити iй елемент у лінійному списку; внести додатковий елемент до або після вказанного вузла; вилучити певний елемент зі...
37849. Знайомство з середовищем програмування DELPHI 411.5 KB
  Borlnd Delphi 7 Studio дозволяє створювати самі різні програми: від найпростіших одновіконних додатків до програм керування розподіленими базами. 5 яких можна побачити відсунувши убік вікно форми треба набирати текст програми. На початку роботи над новим проектом це вікно редактора коду містить сформований Delphi шаблон програми. Так на етапі розробки програми називають діалогові вікна.
37850. Створення форм 66.5 KB
  Помістити обєкт Lbel у вікно форми Form1. Вибрати в палітрі компонентів на сторінці стандартних компонентів компонентів Lbel. Обєкт буде доданий у форму і за замовчуванням одержить імя Lbel1. Перемістити обєкт Lbel1 на бажане місце у формі.
37851. СТВОРЕННЯ НАЙПРОСТІШОЇ ПРОГРАМИ ДЛЯ ЛІНІЙНОГО АЛГОРИТМУ 285.5 KB
  Звіт до лабораторної роботи повинен сладатися з коротких теоретичних відомостей відповідей до контрольних запитань та програми. Головне вікно завжди присутнє на екрані і призначено для керування процесом створення програми. Вікно форми являє собою проект Windowsвікна програми.
37852. Стандартні компоненти і оброблювачі подій. Створення програм для процесів, що розгалужуються 177.5 KB
  Створення форми Створіть форму таку ж як у другій лабораторній роботі скорегувавши текст написів і положення вікон TEdit. 1 unit unit1; interfce uses Windows Messges SysUtils Vrints Clsses Grphics Controls Forms Dilogs StdCtrls ExtCtrls; type TForm1 = clssTForm Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Lbel1: TLbel; Lbel2: TLbel; Lbel3: TLbel; Lbel4: TLbel; Memo1: TMemo; Button1: TButton; CheckBox1: TCheckBox; RdioGroup1: TRdioGroup; Lbel5: TLbel;...
37853. Засоби налагодження програм у DELPHI. Створення програм для циклічних процесів 223.5 KB
  Мета роботи: вивчити засоби налагодження програм у середовищі DELPHI. Розробити і налагодити програму для циклічного обчислювального процесу.