Рефераты. Основы программирования на языке Паскаль

     k:=1;

     for i:=1 to 4 do

     for j:=1 to 4 do

    if i=j then Begin b[k]:=a[i,j]; k:=k+1; end;

                             {отыскиваем и заносим в b[1] a[1,1]}

                             {меняем k и заносим в b[2] a[2,2] и т.д.}

    writeln('  на главной диагонали лежат элементы:');

    writeln('a[1,1]=',b[1],' a[2,2]=',b[2],' a[3,3]=',b[3],' a[4,4]=',b[4]);

      readln;

                                END.

Эта программа отличается от предыдущей тем, что она вначале вводит массив А, затем его распечатывает в виде

    a11   a12    a13   a14

    a21   a22    a23   a24

    a31   a32    a33   a34

    a41   a42    a43   a44

а после выводит результаты в том же виде, что и программа Prim26, т.е.

           Program Prim26b;

    Var i,j,k,n:integer;

        a:array[1..40,1..40] of integer;

        b:array[1..40] of integer;

  BEGIN   writeln('введите размерность массива');

          readln(n);

     for i:=1 to n do

     for j:=1 to n do

      Begin writeln('введите a[',i,',',j,']');

      readln(a[i,j]); end;

                             { вывести элементы массива а }

     for i:=1 to n do

  Begin writeln;            {перевести курсор на новую строку}

        for j:=1 to n do

     write(a [i , j],'  ');      {вывести элементы в одну строку}

  end;

     k:=1;

     for i:=1 to n do

     for j:=1 to n do

    if i=j then Begin b[k]:=a[i , j]; k:=k+1; end;

                             {отыскиваем и заносим в b[1] a[1,1]}

                             {меняем k и заносим в b[2] a[2,2] и т.д.}

    writeln('  на главной диагонали лежат элементы:');

    for k:=1 to n do

    write('  a[',k,',',k,']=',b[k]);

      readln;

                                END.

Эта программа работает так же, как и предыдущая, но с массивами и с переменными измерениями.

Величина входного массива может быть до 40 строк и 40 столбцов. Чтобы это обеспечить, в разделе Var описываем массив a: array [1..40,1..40] of integer; а затем в программе вводим по запросу n, которое будет определять, с матрицей какой величины мы будем работать конкретно (n должно быть в диапазоне 1-40). Далее все циклы программы работают от 1 до n, т.е. машина решит задачу для массива введенной размерности n.

           Program Prim27;

    Var i,j,k,n:integer;

        a:array[1..40,1..40] of integer;

        b:array[1..40] of integer;

  BEGIN   writeln('ввести n'); readln(n);

     for i:=1 to n do

     for j:=1 to n do

      Begin writeln('ввести a[',i,',',j,']');

      readln(a[i,j]); end;

                             { вывести элементы массива а }

     for i:=1 to n do

  Begin writeln;            {перевести курсор на новую строку}

        for j:=1 to n do

     write(a[i,j],'  ');      {вывести элементы в одну строку}

  end;

     k:=1;

     for i:=1 to n do

     for j:=1 to n do

    if i+j-1=n then Begin b[k]:=a[i,j]; k:=k+1; end;

{отыскиваем и заносим в b[1] a[1,1]}

                                                {меняем k и заносим в b[2] a[2,2] и т.д.}

    writeln;

    writeln('  на дополнительной диагонали лежат элементы:');

    for k:=1 to n do

 write(b[k],'  ');

      readln;

                                END.

Программа Prim 27 работает аналогично программе Prim 26b, однако выводит элементы, лежащие на дополнительной диагонали.

        Program Prim28;

    Var i,j,min,m,n,k:integer;

        a:array[1..20,1..10] of integer;

        b:array[1..10] of integer;

  BEGIN   writeln('ввести m,n'); readln(m,n);

     for i:=1 to m do                {m – количество строк  }

     for j:=1 to n do                {n – количество столбцов}

      Begin writeln('ввести a[', i ,', ', j,']');

      readln(a[i , j]); end;

                             { вывести элементы массива а }

     for i:=1 to m do

  Begin writeln;

          for j:=1 to n do

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

  min:=32767; {максимальное integer, чтобы в последующем сравнивать}

{и заносить в min все элементы a[i,j], которые меньше min}

     for i:=1 to m do

     for j:=1 to n do

   if a[i , j]<min then Begin min:=a[i , j]; k:=i;   end;

  writeln(' строка, содержащая наименьший элемент');

    for j:=1 to n do

    write(' a[', k ,',', j ,']=',a[k , j]);

      readln;                       END.

Программа Prim 28 находит в массиве строку размером до 20х10, содержащую наименьший элемент.

  Program Prim29;

  Var i,j:integer; a:array[1..5, 1..7] of integer;

                   b:array[1..7] of integer;

                   c:array[1..5] of integer;

   BEGIN for i:=1 to 5 do

         for j:=1 to 7 do

      begin writeln('введите a[',i,',',j,'] элемент матрицы а');

            readln(a[i,j]); end;

         for j:=1 to 7 do

      begin writeln('введите b[',j,'] элемент вектора b');

            readln(b[j]); end;

    for i:=1 to 5 do      {начало перемножения матрицы на вектор}

  begin c[i]:=0;

    for j:=1 to 7 do

     c[i]:=c[i]+ a[i,j]*b[j]; end;

{конец перемножения матрицы на вектор}

     writeln('распечатка массива а');

       for i:=1 to 5 do

          begin writeln;  {начать новую строку}

       for j:=1 to 7 do

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

      writeln('распечатка массива b');

          for j:=1 to 7 do

     write('  ',b[j]);               writeln;

     writeln('результирующий массив с');

          for i:=1 to 5 do

     write('  ',c[i]);

             readln;     END.

Программа вводит матрицу А размером 5х7 и вектор размером 7 элементов, затем их перемножает по правилу Сi = Сi + a[i,j]*b[j] и выводит пять элементов массива С.

Заметим, что для вычисления каждого с необходимо каждый элемент строки массива a умножить на соответствующий по индексу элемент массива b, а затем все эти произведения сложить. таким образом, количество элементов массива с будет равно количеству строк матрицы a (и, соответственно, количеству элементов массива b).

  Program Prim29a;

  Var i,j,n,m:integer; a:array[1..50,1..70] of integer;

                   b:array[1..70] of integer;

                   c:array[1..50] of integer;

   BEGIN  writeln('ввести количество строк и столбцов');

          readln(n,m);

        for i:=1 to n do

        for j:=1 to m do

      begin writeln('ввести a[',i,',',j,'] элемент матрицы а');

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.