Хелпикс

Главная

Контакты

Случайная статья





t:array[1..31] of integer;



                                      t:array[1..31] of integer;

Читаем: t- линейная таблица от 1 до 31 целого типа. Внимание: [1..31]!!! две точки!

б) динамика стоимости $ в ПМР в течение 10 дней. Как описать этот вектор?

var SD:array[1..10] of real;   Прочитайте эту строку…

в) список 10-го класса (фамилии, скажем). Сделайте описание и прочитайте его…

Прямоугольные таблицы:

а) таблица Пифагора – имеет 9 строк и 9 столбцов. (Как она называется?)

Описание такой таблицы имеет вид: var TP:array[1..9,1..9] of integer;

Читаем ТР – матрица 9 на 9 целого типа или матрица из 9 строк и 9 столбцов, содержащих целые числа.

б) таблица результатов футбольного турнира для 6-ти команд, в которую внесены колонки: проигрыши(0), ничьи(1),победы(2). Опишите эту матрицу и прочитайте запись… (Как определить победителя?)

III. Обращение к элементам таблицы

Чтобы подвергнуть элементы таблицы каким-либо преобразованиям, действиям, надо записать обращение к элементу, т.е. указать на него, найти его в массиве. Для этого надо указать “адрес” элемента в таблице. В линейной таблице это будет номер (индекс) элемента в строке (столбце), в прямоугольной таблице – номер строки и номер столбца.

Примеры:

а) Пусть задан некоторый одномерный массив А: array[1..10] of integer;

                           1  2   3 4 5  6 7    8 9   10

-4 -6 -7 -9

Здесь A[1]=3; A[4]=-4; A[9]=-7 и т.д. Необходимо различать номер элемента (адрес) и значениеэлемента. (Номер – на коробочке, значение – в коробочке).

В общем виде записываем: A[i], где i – индекс (номер) элемента в линейной таблице.

Примечание: В зависимости от задачи нумерация элементов может быть и такой, например [5..20], [-10..10], [1..N], [M..N], где N и M – целые числа, причем M<=N.

Вопрос: Как определить количество элементов в линейной таблице? Выведите формулу для общего случая [M..N].                                         j    1    2   3          

-7

б) Пусть задана матрица                                            i      

 А:array[1..5,1..3] of real;                                       1

   A[1,1]=3; A[3,3]=2;                                               2                                                                                                                                                                           

A[4,2]=8; A[5,2]=10                                            3

A[1,4]=? A[3,5]=?                                                  4                                           

                                                                                  5

                                                                                                                                        

В общем виде записывается:  A[i,j] – где i – номер строки, j- номер столбца.

Задание Определить количество элементов в следующих матрицах:

       A[1..6,1..9], a[3..9,4..8], sb[-2..2, 1..5], tr[1..10,1..N], B[1..M,1..N].

IV. Формирование таблиц можно выполнять различным образом:

- через ввод элементов с клавиатуры;

- вычислениепо заданному правилу (формуле, закону);

- случайным образом (автоматически).

Примечания: 1) В Паскале для задания случайных чисел (не зависящих от нас, от какой-либо формулы…) существует специальная процедура – генератор случайных чисел – randomize;  После запуска этой процедуры в программе надо выполнить команду присваивания, например, A[i]:=random(x); где х – целое число, и в массив А начнут записываться целые случайные числа в интервале от 0 до х. Если хотим, чтобы были и отрицательные числа, то можно воспользоваться командой A[i]:=random(x) – x/2;             (к примеру, random(200)-100) ).

 2) Для записи элементов линейного (одномерного) массива в память, обработки (преобразования, действий над ними), вывода их на печать используется команда повторения (цикл) for i:=1 to n do… Если имеем матрицу, то понадобятся два вложенных цикла:   for i:=1 to m do                     Внешний цикл – по строкам,                                             

              for j:=1 to n do                        внутренний (вложенный) – по столбцам.

V. Способы формирования таблиц – образцы записи

 

А) линейные таблицы              Б) прямоугольные таблицы:

                              1) вручную (ввод с клавиатуры):           

       for i:=1 to 10 do                                       for i:=1 to 10 do                             

             read(A[i]);                                               for j:=1 to 10 do

                                                                                        read(A[i,j]);

                             2) по заданной формуле (правилу, закону):

       for i:=1 to 10 do                                       for i:=1 to 10 do                             

            A[i]=2*i+1;                                               for j:=1 to 10 do

                                                                                         A[i,j]=i+j;

                              3) случайным образом:

       randomize;                                                   randomize;

       for i:=1 to 10 do                                           for i:=1 to 10 do

            A[i]:=random(10);                                       for j:=1 to 10 do                 

                                                                                         A[i,,j]:=random(100);

VI. Вывод таблиц на печать:

А) линейные таблицы                  Б) прямоугольные таблицы:

     for i:=1 to 10 do                                       for i:=1 to 10 do                             

       write(A[i], ’ ‘);                                       begin     

                                                                                  for j:=1 to 10 do

                                                                                         write(A[i,j], ’ ‘);

                                                                                  writeln;

                                                                            end;

VII. Комбирированный ввод-вывод

А) линейные таблицы                Б) прямоугольные таблицы:

     randomize;                                             randomize;

    for i:=1 to 10 do                                     for i:=1 to 10 do                              

       begin                                                       begin

             A[i]:=random(10);                                   for j:=1 to 10 do                                  

             write(A[i], ‘  ‘);                                              begin

       end;                                                                          A[i,j]:=random(100);

                                                                                             write(A[i,j], ‘ ‘);

                                                                                      end;

                                                                                 writeln;

                                                                            end;

См. на обороте

VII. Образцы ПРОГРАММ на формирование и вывод на печать

А) линейной таблицы                    Б) прямоугольной таблицы:

 program Vector;                            program Matrica;

  var A:array[1..100] of integer;     var A:array[1..10,1..5] of real;

        i:integer;                                       i,j:integer;

begin                                               begin

  randomize;                                     for i:=1 to 10 do

  for i:=1 to 10 do                                  for j:=1 to 5 do

        A[i]:=random(100)-50;                       A[i,j]:=sin(i-j);

 for i :=1 to 10 do                            for i:=1 to 10 do

        write(A[i], ‘ ‘);                             begin     

  end.                                                          for j:=1 to 5 do

                                                                             write(A[i,j], ’ ‘);

                                                                       writeln;

                                                                  end;                                                                                                                                       

                                                       end.

 

   program Lintab;                          program Prugtab;

   var A:array[1..100] of real;          var A:array[1..10,1..5] of integer;

           i:integer;                                  i,j:integer;

begin                                            begin

  for i:=1 to 10 do                           randomize;

    begin                                          for i:=1 to 10 do

         A[i]:=sqrt(i);                                begin

         write(A[i], ‘ ‘);                                   for j:=1 to 5 do                                                       

    end;                                                       begin

end.                                                             A[i,j]:=random(100)-50;                                                                              

                                                                           write(A[i,j], ’   ‘);

                                                                       end;

                                                                    writeln;

                                                                end;                                                                                                                                       

                                                     end.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.