Учебный курс Программирование на Delphi. Модуль 11: различия между версиями

Материал из Wiki Mininuniver
Перейти к навигацииПерейти к поиску
(Пример 1)
Строка 99: Строка 99:
 
==Задание==
 
==Задание==
  
Таблица 19
+
<CENTER>'''Таблица №19'''</CENTER>
 +
{| border=1
 +
|-
 +
!Номер варианта||Условие
 +
|-
 +
|<center>1</center>||Для данного целого положительного n создать  матрицу A(n,n), в которой элементы, стоящие  по диагонали, равны единице, а все остальные  элементы - нулевые.
 +
|-
 +
|<center>2</center>||Для данного целого положительного n сформировать матрицу A(n,n), в которой элементы диагонали равны номеру строки, а все остальные элементы - нулевые.
 +
|-
 +
|<center>3</center>||В матрице A(n,n) поменять местами две строки  с номерами р и q.
 +
|-
 +
|<center>4</center>||В матрице A(n,m) поэлементно вычесть последнюю строку из всех строк, кроме последней.
 +
|-
 +
|<center>5</center>||В матрице х(k,l) поменять местами максимальный и минимальный элементы.
 +
|-
 +
|<center>6</center>||Матрицу A(n,n) сформировать по следующему принципу: по диагонали расположены единицы, выше диагонали - нули, а элементы, расположенные ниже диагонали, равны сумме соответствующих индексов.
 +
|-
 +
|<center>7</center>||Задана матрица В(3,5). Получить матрицу V путем  удаления из В строки и столбца, в которых  содержится минимальный элемент.
 +
|-
 +
|<center>8</center>||Дана матрица A(m,n). Дополнить ее (m+1)-й строкой и (n+1)-м столбцом, в которых записать суммы элементов соответствующих строк или столбцов исходного массива А.
 +
|-
 +
|<center>9</center>||Транспонировать матрицу x(m,n).
 +
|-
 +
|<center>10</center>||Из матрицы А(3,4) получить вектор В, элементами которого являются произведения элементов в каждой строке матрицы.
 +
|-
 +
|<center>11</center>||Создать вектор М, содержащий количество отрицательных элементов каждого столбца матрицы z(3,4).
 +
|-
 +
|<center>12</center>||Сформировать матрицу У(n,n) таким образом, чтобы значения всех элементов 1-го столбца были равны 1, второго - 2, n-го - n.
 +
|-
 +
|<center>13</center>||Имеется матрица A(m,n). Найти максимальный из всех минимальных элементов строк. Вывести номер строки, в которой расположено выбранное число.
 +
|-
 +
|<center>14</center>||Сформировать диагональную матрицу C(m,m).  У диагональной матрицы все элементы равны нулю, кроме диагональных.
 +
 
 +
  |}
 +
 
  
 
Таблица 20
 
Таблица 20

Версия 13:10, 26 февраля 2008

Работа с двумерными массивами

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

Двумерный массив состоит из элементов с двумя индексами: один показывает номер строки в

массиве, другой - номер столбца.

В Delphi возможны массивы и большей размерности. Для их описания возможны два подхода:

а) массив рассматривается как массив других массивов:

type x = array[1..100] of real; y = array[1..2] of x;

б) массив рассматривается как многоиндексный

type y = array [ 1...100, 1...2 ] of real;

Оба описания равноценны.

Пример 1

  • Условие.

Получить матрицу, элементами которой являются произведения номеров строк i и номеров столбцов j.

  • Использованные компоненты:

StringGrid1 - для выврда результирующей таблицы

BitBtn1 - для запуска программы

BitBtn2 - для закрытия формы

  • Программный код:
program umnog;
     type mat = array[1..9, 1..9] of integer;
     var i,j: integer; p: mat;
begin
    for i:=1 to 9 do
       begin
          for j:=1 to 9 do
             begin
                 p[i,j]:=i*j;
                 write (p[i,j]: 3)
             end;
             writeln;
         end
end.


  • Форма с результатом работы программы.

-6-1.JPG

Пример 2

  • Условие.

Из матрицы А[3,4] получить вектор В, элементами которого являются наибольшие элементы столбцов матрицы.

  • Использованные компоненты:

StringGrid1 - для вывода исходной матрицы

StringGrid2 - для вывода результирующего вектора

Label1 - для подписи матрицы

Label2 - для подписи вектора

BitBtn1 - для запуска программы

BitBtn2 - для закрытия формы

  • Программный код:
type x = array[1..3, 1..4] of integer;
         y = array[1..4] of integer;
 var  i, j: integer; a: x; b: y;
begin
    writeln ('Введите матрицу А');
    for i:=1 to 3 do begin
      for j:=1 to 4 do begin
          read(a[i,j]);
          write (' ')
      end;
      writeln
    end;
    writeln ('Массив В');
    for j: = 1 to 4 do
        begin
            b[j]: = a[1,j];
            for i: = 2 to 3 do
               if b[j] < a[i, j]
                then b[j]: = a[i, j];
            write(b[j]:4)
       end
end.


  • Форма с результатом работы программы.

-6-2.JPG

Задание

Таблица №19
Номер варианта Условие
1
Для данного целого положительного n создать матрицу A(n,n), в которой элементы, стоящие по диагонали, равны единице, а все остальные элементы - нулевые.
2
Для данного целого положительного n сформировать матрицу A(n,n), в которой элементы диагонали равны номеру строки, а все остальные элементы - нулевые.
3
В матрице A(n,n) поменять местами две строки с номерами р и q.
4
В матрице A(n,m) поэлементно вычесть последнюю строку из всех строк, кроме последней.
5
В матрице х(k,l) поменять местами максимальный и минимальный элементы.
6
Матрицу A(n,n) сформировать по следующему принципу: по диагонали расположены единицы, выше диагонали - нули, а элементы, расположенные ниже диагонали, равны сумме соответствующих индексов.
7
Задана матрица В(3,5). Получить матрицу V путем удаления из В строки и столбца, в которых содержится минимальный элемент.
8
Дана матрица A(m,n). Дополнить ее (m+1)-й строкой и (n+1)-м столбцом, в которых записать суммы элементов соответствующих строк или столбцов исходного массива А.
9
Транспонировать матрицу x(m,n).
10
Из матрицы А(3,4) получить вектор В, элементами которого являются произведения элементов в каждой строке матрицы.
11
Создать вектор М, содержащий количество отрицательных элементов каждого столбца матрицы z(3,4).
12
Сформировать матрицу У(n,n) таким образом, чтобы значения всех элементов 1-го столбца были равны 1, второго - 2, n-го - n.
13
Имеется матрица A(m,n). Найти максимальный из всех минимальных элементов строк. Вывести номер строки, в которой расположено выбранное число.
14
Сформировать диагональную матрицу C(m,m). У диагональной матрицы все элементы равны нулю, кроме диагональных.


Таблица 20

Литература

  1. Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
  2. Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
  3. Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.


Ссылки

Учебный курс Программирование на Delphi

Учебный план курса Программирование на Delphi