Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка-ПРОГРАММИРОВАНИЕ -DELPHI 2007.doc
Скачиваний:
7
Добавлен:
12.11.2019
Размер:
2.04 Mб
Скачать

6.3. Пример программирования с использованием двумерного массива

Задание: Подсчитать сумму всех элементов в двумерном мас­сиве А[4,5].

6.3.1. Разработка алгоритма

Входные данные

А - вещественный массив размером 4x5. Выходные данные

sum - вещественная переменная - сумма всех элементов массива. Промежуточные данные

i, j - индексы массива, целочисленные переменные.

Таблица 6.1 Используемые компоненты

Имя ком­понента

Страница

палитры

компонент

Настраи­ваемые свойства

Значения

1

Forml

Caption

Лабораторная работа №6

2

Label 1

Standard

Caption

Введите элементы матрицы

3

Label2

Standard

Caption

Сумма элементов равна

4

Label3

Standard

Caption

5

Button 1

Standard

Caption

Расчет

6

StringGridl

Additional

FixedCols

0

RowCount

4

FixedRows

0

Options

[goEditing, goTabs]

6.3.3. Текст программы

unit Unit 1; interface

uses

Windows, Messages, SysUfils, Classes, Graphics, Contro Forms, Dialogs,

StdCtris, Grids;

type TForml = class(TForm)

StringGridl: TStringGrid;

Label 1: TLabel;

Button1:TButton;

Label2: TLabel;

Label3: TLabel;

procedure ButtonlClick(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var Forml: TForml; implementation

{$R *.DFM} ?

procedure TForml.ButtonlClick(^ender: TObject); const m=4; n=5;.'

type.

mas=array [l..m,l..n] of real; var ijrinteger; a:mas; sum:real; begin

fori:=0to m-1 do

forj:=0 to n-1 do

a[i+l,j+l]:=strtofloat(stringgridl.cells[j,i]);

sum:=0;

for i:=l to m do

forj:=l to ndo

sum:=sum+a[ij];

label1 .caption:=floattostr(sum);

end;

end.

6.4. Контрольные вопросы

  1. Написать фрагмент программы ввода двумерного целочисленно­го массива, в котором 5 строк и 10 столбцов.

  2. Написать фрагмент программы вывода двумерного веществен­ного массива, в котором 5 строк и 6 столбцов.

  3. Дать описание трехмерного целочисленного массива.

  4. Дать описание четырехмерного целочисленного массива с ис­пользованием разделов описания type и var.

  5. Заданы массивы:

var

А, В: аггау[1.Л5Д.8] of real;

t: boolean;

Какие операции над этими массивами как над единым целым допустимы в системе Delphi?

6. Ввести квадратную вещественную матрицу 4-го порядка, эле­- менты которой заданы построчно, и распечатать ее по столбцам.

7. Сколько элементов содержит каждый из описанных ниже ком­- понентов?

var MB: array [ А .. С ,2..5] of real;

var MC: array [FALSE..TRUE] of array [1..5] of char;

var MD: array [1..5,2.-8] of integer;

8. Присвоить нулевые значения всем элементам массива

A: array [ К .. Z ] of real

9. Для чего предназначается компонент TStringGrid?

10. Какими свойствами обладает компонент TStringGrid?

6.5. Задания к лабораторной работе 6

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

  2. Дана вещественная матрица размером NxM. Упорядочить ее строки по возрастанию их первых элементов.

  3. Дана вещественная матрица размером NxM. Упорядочить ее строки по возрастанию суммы их элементов.

  4. Дана вещественная матрица размером NxM. Упорядочить ее строки по возрастанию наибольших элементов.

  5. Определить, является ли заданная целочисленная квадратная матрица порядка N симметричной относительно главной диаго­нали.

  6. Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке, и одновременно наибольшим в сво­ем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целочисленной матрицы размером NxM напечатать индексы ее седловых точек.

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

  1. Даны целые числа А1…А10, целочисленная квадратная матрица порядка N. Заменить нулями в матрице те элементы, для кото­рых имеются равные числа среди A1...,A110.

  2. Дана действительная квадратная матрица порядка N. Преобразо­вать матрицу по правилу: первую строку сделать первым столб­цом, вторую строку сделать вторым столбцом и т.д.

  3. Даны две действительные квадратные матрицы порядка N. По­лучить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее из элементов соответствующей строки второй матрицы.

  4. Даны две действительные квадратные матрицы порядка N. По­лучить новую матрицу прибавлением к элементам каждого столбца первой матрицы минимального элемента соответст­вующего столбца второй матрицы.

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

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

14. Дана действительная матрица размером NxM, в которой не все элементы равны нулю. Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент.

15. Дана действительная матрица, в которой не все элементы равны нулю. Получить новую матрицу путем деления всех элементов данной матрицы на ее наименьший по модулю элемент.

16. Дана действительная квадратная матрица порядка N. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее.

17. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные значениям средних арифметических элементов строк.

18. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные значениям средних арифметических элементов столбцов.

19. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные среднему арифметическому значению макси­мального и минимального элементов каждого столбца.

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

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

22. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные произведениям элементов строк.

23. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные произведению минимального и максимального элементов столбцов матрицы.

24. Дана действительная матрица размером NxM. Определить числа В1..,Вn, равные произведению минимального и максимального элементов строк матрицы.

25. Дана действительная матрица размером NxM. Определить числа В1…Вn равные максимальным значениям элементов строки

С1-.,Сn, равные минимальным значениям элементов столбцов.