TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

 

1. 10. 1.  Линейные массивы

            Линейным массивом можно обозначить,  например,  оценки учеников класса.  Каждая оценка является значением элемента массива оценок "A" и имеет порядковый номер (индекс).  В Турбо-Паскале значение индекса указывается в квадратных скобках после имени массива.  Можно создать массив фамилий  "S"  учеников класса.  Значением элемента массива будет фамилия ученика,  а индексом - порядковый номер по списку.  Пусть дан список фамилий учеников и их оценки:

                 

    N     Фамилии  оценки   Описание массивов:    Var A: array[ 1. . 30 ] of byte;

     1.    Иванов          5                                                             S: array[ 1. . 30 ] of string;

     2.    Петров          4                                           {или}     SO: array[ 1. . 30 ] of string[12];

     3.    Сидоров        5                                               

     4.    Титов             5             Присвоение значений элементам массива:

    . . .   . . . . . . .        . . .                          "A"  -     A[1]:= 5;                 A[2]:= 4;               и т. д.

   30.   Якупов           4                           "S "  -      S[1]:= 'Иванов';     S[2]:= 'Петров';   и т. д. 

            

            Приведем таблицу обозначений и соответствия элементам массива,  их значений и индексов:


   Номер элемента (индекс)          1                 2                  3                4                i               30  

    Элементы массива "S “         S[ 1 ]          S[ 2 ]            S[ 3 ]          S[ 4 ]         S[ i ]        S[ 30 ] 

    Значения элементов            Иванов    Петров      Сидоров     Титов        . . .        Якупов

   Элементы массива "A “         A[ 1 ]        A[ 2 ]           A[ 3 ]          A[ 4 ]         A[ i ]      A[ 30 ] 

   Значения элементов                 5               4                   5                   5              . . .           4    

            Если известна зависимость,  по которой изменяются значения элементов массива,  то присвоение значений удобно проводить в операторах цикла c параметром или с условием.  Например,  присвоим значения элементам массива "y" по зависимости:   y=sin(x),    где  x= Pi * i/180,     0<= i <=180 .

     For i:= 0  to 180  Do   y[i]:= sin(Pi * i/180); 

    Присвоим случайные значения в диапазоне от -30 до +40  ста элементам массива "R":

     Randomize;   for  i:= 1  to 100  Do R[i]:= - 30 + Random(71);

            Присвоим значения семи элементам массива "A" оператором Readln:

            For i:= 1 to 7  Do  begin  Write( ' Введите A[ ' , i , ' ] = ' );    Readln( A [ i ] )     end;

            При выводе массива на экран удобно размещать данные в виде таблицы - в несколько колонок.  Для вывода обозначений переменных ("шапки таблицы") можно использовать операторы вывода символов в цикле,  например:

     For j:=1 to 66  do  Write('-');   Writeln;

     For j:=1 to 3 do Write('|_ _ Фамилия _ _| _ оценка _|'); Writeln;

     For j:=1 to 66  do  Write('-');   Writeln;  

- шапка для вывода в три пары колонок значений переменных "S" и  "A".  Шапка занимает 66 позиций (по ширине экрана в текстовом режиме размещается 79 символов и пробел).  Оператор Writeln; переводит курсор на новую строчку.

            Вывод значений ста элементов массивов "S" и "A" в три пары колонок,  произведем операторами: 

     For i:= 1 to 100 do  begin Write('|', s[i]:11,'|', a[i]:8,  '|');

                        if (i mod 3) = 0     Then  Writeln;    

                        if (i mod 60) = 0    then  readln     end;

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

            В цикле удобно определять сумму элементов массива,  наибольший (наименьший) элемент и создавать новые массивы, удовлетворяющие некоторому условию, например:

s:= 0; for i:= 1 to 100 do  s:= s + a[i];    { s - сумма элементов массива }

a_max:= a[1];  for i:= 1 to 100 do      { поиск наибольшего элемента a[j] }

            if a[i] > a_max then begin  a_max:= a[i];  j:= i  end;                             

j:= 0; k:= 0; 

for i:=1 to 100  do       {создание новых массивов с элементами: b[j] >=0,   c[k] <0}

             if a[i] >= 0  then begin  j:= j+1;  b[j]:= a[i]  end 

                           else begin  k:= k+1;  c[k]:= a[i] end; 

j:= 0;  k:= 8;

for i:= 1 to 100  do       {создание массива номеров "M" для элементов: a[i] > a[k]}

             if a[i] > a[k]  then begin  j:= j+1;  M[j]:= i   end; 

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz