среда, 14 ноября 2012 г.

Двумерные массивы и TStringGrid


Пример работы с двумерным массивом:
var 
  A: array[1..10] of array[1..10] integer;
  B: array[1..10,1..10] of integer;
  i,j,N,M:integer;

begin
 read(N,M);
 for i:=1 to N do
 begin
   for j:=1 to M do
   begin
     A[i,j]:=random(100);
     write(A[i,j]:5);
   end;
   writeln;
 end;

Ввод:  
5 5
Вывод
   67    3   32   96   59
   97   96   94   88   61
   21   97   62   76    7
   57   78    4    3   81
   81   66   59   46   36

TStringGrid (Additional)
Свойства:
ColCount - количество столбцов
RowCount  - количество строк
Cells - ячейки с текстом
FixedCols - количество фиксированных столбцов
FixedRows - -"- строк
Options -> GoEditing - разрешить ввод текста в ячейки с клавиатуры

Пример работы со StringGrid 

var 
  A: array[1..10,1..10] of integer;
  i,j,N,M:integer;

begin
 N:=SpinEdit1.Value;
 M:=SpinEdit2.Value;
 StringGrid1.RowCount := N;
 StringGrid1.ColCount := M;
 for i:=1 to N do
 begin
   for j:=1 to M do
   begin
     A[i,j]:=random(100);
     StringGrid1.Cells[j-1,i-1]:=A[i,j]
   end;   
 end

Практическое задание:
№1 Заполнить квадратный массив "снежинкой":

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

№2(а) Сгенерировать квадратную матрицу случайных чисел, по нажатию на кнопку очистить верхний треугольник: элементы над главной диагональю.
№2(б) ...по нажатию на кнопку очистить нижний треугольник: элементы под главной диагональю.
№3 Заполнить квадратную матрицу по следующему правилу: 
элементы над "побочной диагональю" =4, под диагональю =5, на диагонали =3. Например:
4 4 4 4 3
4 4 4 3 5
4 4 3 5 5
4 3 5 5 5
3 5 5 5 5
№4 Сформировать квадратную матрицу порядка n по заданному образцу:
1*2
0
0
0
0
0
0
2*3
0
0
0
0
0
0
3*4
0
0
0
0
0
0
0
(n-1)*n
0
0
0
0
0
0
n*(n+1)

№5 Дано действительное число x. Получить квадратную матрицу порядка n+1.
1
x
x2
xn-2
xn-1
xn
X
0
0
0
0
xn-1
x2
0
0
0
0
xn-2
xn-1
0
0
0
0
x
xn
xn-1
xn-2
x2
x
1


№6 Получить матрицу:
1
2
3
9
10
0
1
2
8
9
0
0
1
7
8
0
0
0
0
1


№7 Дана действительная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n*n по часовой стрелке, начиная с блока в левом верхнем углу.

№8 Напишите программу, которая заполняет с клавиатуры StringGrid словами разной длины. Находит самое длинное слово на побочной диагонали и записывает в эту же ячейку задом  наперед.


Во всех заданиях задавать размер матрицы из SpinEdit

Комментариев нет:

Отправить комментарий