Главная страница
Навигация по странице:

  • Формат описания массива в разделе переменных

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

  • Схема представления двумерного массива

  • Формат описания массивов: 1.Type =array[индекс] of 2.Var3. : Пример

  • Результаты работы программы

  • Массив. Именем массива с индексом


    Скачать 33.53 Kb.
    НазваниеИменем массива с индексом
    Дата27.09.2019
    Размер33.53 Kb.
    Формат файлаdocx
    Имя файлаМассив.docx
    ТипДокументы
    #87874

    Массив – конечная группа переменных одного типа, которой присвоено общее имя.

    Так, совокупность целых чисел

     -12, 14, 124, -1, 25 

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

     первый - A[1], четвертый - A[4]. 

    Имя массива является единым для всех элементов. К каждому элементу массива можно обратиться с помощью индекса. Индекс – величина, характеризующая положение элемента относительно начала массива. Индекс записывается в квадратных скобках, например, A[1] , 1 – это индекс, указывающий на первый элемент массива с именем A .

    Если в программе используется массив, то он должен быть описан или в разделе переменных Var , или в разделе типов Type .

    Формат описания массива в разделе переменных:

    1.Var

    2.:array[индекс] of

    здесь : array (массив); of (из) – зарезервированные слова языка;  индекс – величина, характеризующая положение элемента относительно начала массива. В качестве индекса могут использоваться константы или данные целого, логического, символьного, перечисляемого и интервального типа (кроме Longint );  тип элементов – любой тип Турбо Паскаля.

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

    1.Var

    2.a:array[1..5] of integer;

    3.b,c:array[1..20] of real;

    В приведенном примере описаны три массива: a,b,c . В описании массивов содержатся следующие сведения: имена массивов – a,b,c ; тип элементов массивов: a – целые, b и c – вещественные; диапазон изменения индексов – 1..5 и 1..20 . Нижняя граница отделяется от верхней границы двумя точками. Две точки « .. » рассматриваются как единый неделимый символ. Нижняя граница показывает наименьшее значение индекса, верхняя – наибольшее. Значение нижней границы не может быть больше верхней. Массивы b и c имеют один и тот же тип и одинаковое количество элементов, поэтому описания можно объединить, разделив имена массивов запятой.

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

    Например:

    1.Program example_2;

    2.const n=20;

    3.Var

    4.b,c:array[1..n] of real;

    5.Begin ...

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

    Массивы могут быть одномерными и многомерными. На практике, как правило, используют одномерные, двумерные и трехмерные массивы. Схематично одномерный и двумерный массивы можно представить таким образом:

    Схема представления одномерного массива

     

     

    Схема представления двумерного массива

     

    В приведенной схеме массив A можно рассматривать как матрицу или таблицу и говорить, что A[i,j] – это элемент, находящийся в j -ом столбце i- ой строки этой матрицы.

    Описание двумерного массива.

    1.Const

    2.m =10; n =20;

    3.Var

    4.b,c:array[1..m, 1..n] of real;

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

    • в разделе описания типов Type указывается тип массива;

    • в разделе описания переменной Var перечисляются массивы, относящиеся к указанному типу.

     Формат описания массивов:

    1.Type<имя типа массива>=array[индекс] of <тип элементов>

    2.Var

    3.<имя массива>:<имя типа массива>

    Пример:

    1.Const

    2.n=10; m=20;

    3.Type

    4.mas=array[1..n,1..m] of real;

    5.Var

    6.a:mas ;

    Если в программе несколько массивов, например, a,b,c,d, которые имеют тип mas , то изменяется только раздел описаний переменных:

    1.Var

    2.a,b,c,d:mas;

    Тип массива mas формально введен только в разделе описания типов и нигде в программе не указывается и не обрабатывается.

    При работе с массивами следует учитывать следующие правила:

    • над массивами не определены операции отношения. Нельзя писать

    if a=b then ... 

    • сравнивать элементы массива можно поэлементно

    for i:= 1 to 10 do 

    if a[i]b[i] then ... 

    • при работе с массивами наиболее часто используется оператор цикла

    For ... to ...do 

    Примеры:

    1. Всем элементам одномерного массива  a[1..10] присвоить нуль:

    for i:= 1 to 10 do a[i]:=0; 

    2. Всем элементам двумерного массива a[1..10,1..20] присвоить нуль:

     for i:= 1 to 10 do 

     for j:= 1 to 20 do 

     a[i,j]:=0; 

    3. Всем элементам одномерного массива a[1..10] присвоить значения элементов массива b[1..10] :

     for i:= 1 to 10 do a[i]:=b[i]; 

    ЗАДАЧА 1. Написать программу вычисления суммы пятнадцати чисел.

    01.program a16;

    02.Type

    03.mas=array[1..15] of integer; {объявление типа массива}

    04.Var

    05.a:Mas; {объявление массива a типа mas}

    06.i,sum:integer; {i-параметр цикла; sum-сумма чисел}

    07.begin

    08.sum:=0; {присваиваем начальное значение}

    09.writeln(‘Введите 15 целых чисел:’);

    10.for i:=1 to 15 do

    11.begin

    12.readln(a[i]); {ввод элементов массива}

    13.sum:=sum+a[i]; {вычисление суммы}

    14.end;

    15.writeln(‘Сумма чисел равна:’, sum:6);

    16.end.

    Результаты работы программы:

     Введите 15 целых чисел 

     1 

     1 

     1 

     ... 

     1 

     Сумма чисел равна: 15 

    ЗАДАЧА 2. Ввести с клавиатуры 15 вещественных чисел в массив и найти сумму этих чисел.

    01.program a17;

    02.Const n =15; {количество чисел}

    03.Type

    04.mas=array[1..n] of real;

    05.Var

    06.a:Mas;

    07.i:integer; {параметр цикла}

    08.sum:real; {сумма чисел}

    09.begin

    10.writeln(‘Введите ’, n:4,’ чисел’);

    11.for i:=1 to n do

    12.begin

    13.write(‘a[‘,i,’]=’);

    14.readln(a[i]); {ввод элементов массива}

    15.end;

    16.sum:=0; {присваиваем начальное значение}

    17.for i:=1 to n do sum:=sum+a[i]; {вычисление суммы}

    18.writeln;

    19.writeln(‘Сумма равна:’, sum:8:2);

    20.end.

    Результаты работы программы:

    Введите 15 чисел

    a[1]=1

    a[2]=1

    a[3]=1

    ...

    a[15]=1

    Сумма равна: 15.00

    ЗАДАЧА 3. Найти наибольший элемент массива и определить его номер. Количество элементов массива и их значения ввести с клавиатуры.

    01.program a18;

    02.Const n =100; {допустимое количество чисел}

    03.Type

    04.mas=array[1..n] of real;

    05.Var

    06.a:Mas;

    07.m:integer; {количество чисел}

    08.i:integer; {параметр цикла}

    09.k:integer; {порядковый номер элемента массива}

    10.max:real; {максимальный элемент массива}

    11.begin

    12.write(‘Введите количество чисел: ’);

    13.readln(m);

    14.writeln(‘Введите ’, m:4,’ чисел’);

    15.for i:=1 to m do

    16.begin

    17.write(‘a[‘,i,’]=’);

    18.readln(a[i]); {ввод элементов массива}

    19.end;

    20.max:=a[1]; k:=1; {берем первый элемент массива}

    21.for i:=2 tom do {в цикле начиная со второго элемента просматриваем массив}

    22.if a[i]>max then

    23.begin

    24.max:=a[i]; k:=i;

    25.end;

    26.writeln;

    27.writeln(‘Номер наибольшего элемента:’,k:3);

    28.writeln(‘Его значение:’,max:8:2);

    29.end.

    Результаты работы программы:

     Введите количество чисел: 5 

     Введите 5 чисел 

     a[1]=101.2 

     a[2]=11.4 

     a[3]=1.0 

     a[4]=304.7 

     a[5]=19.3 

     Номер наибольшего элемента: 4 

     Его значение: 304.70 



    http://turbopro.ru/index.php/turbopascal/6800-turbo-pascal-massivy


    написать администратору сайта