Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_Metod_2009_VVYeD.doc
Скачиваний:
6
Добавлен:
06.12.2018
Размер:
1.14 Mб
Скачать

Пример 8

' Имя файла Dynamic_Array.vbs

' Дана матрица A размерностью 4 на 3 и вектор B, состоящий из 4-х элементов.

' Сформировать новую матрицу A размерностью 4 на 4, которая бы содержала в себе

' матрицу A и вектор B, в качестве последнего столбца.

Option Explicit

Dim i, j

Dim B(3) ' объявление вектора B, состоящего из 4-х элементов

Dim A() ' объявление динамического массива А

'-------------------------------------------------------------------------------

Sub Input_Rnd_Arr (A)

' процедура заполнения двумерного массива целыми

' числами от 0 до 20, выбранными случайным образом

ReDim A (3, 2)

For i=0 to 3

For j=1 to 2

Randomize

A(i,j)=Fix(Rnd(1)*20)

Next

Next

End Sub

'-------------------------------------------------------------------------------

Sub Input_Rnd_Vec (B)

' процедура заполнения одномерного массива целыми

' числами от 0 до 20, выбранными случайным образом

For i=0 to 3

Randomize

B(i)=Fix(Rnd(1)*20)

Next

End Sub

'-------------------------------------------------------------------------------

Function Arr_to_Str (A)

' функция записи матрицы в строку s

Dim s

For i=0 to 3

For j=1 to 2

s=s&A(i,j)&" "

Next

s=s&vbCrLf

Next

Arr_to_Str=s

End Function

'-------------------------------------------------------------------------------

Function Vec_to_Str (B)

Dim s

' функция записи вектора в строку s

For i=0 to 3

s=s&B(i)&" "

Next

Vec_to_Str=s

End Function

'-------------------------------------------------------------------------------

Function New_Arr(A, B)

Dim s

' функция формирования новой матрицы A и запись её в строку s

ReDim Preserve A (3, 3)

A(0, 3)=B(0)

A(1, 3)=B(1)

A(2, 3)=B(2)

A(3, 3)=B(3)

For i=0 to 3

For j=1 to 3

s=s&A(i,j)&" "

Next

s=s&vbCrLf

Next

New_Arr=s

End Function

'-------------------------------------------------------------------------------

Input_Rnd_Arr A ' вызов процедуры ввода элементов матрицы A

Input_Rnd_Vec B ' вызов процедуры ввода элементов вектора B

MsgBox Vec_to_Str (B),,"Вектор B:"

MsgBox Arr_to_Str (A),,"Первоначальная матрица A:"

MsgBox New_Arr (A, B),,"Изменённая матрица A:"

6.4 Задачи для самостоятельного решения "Заполнение" массивов

  1. Сформируйте двухмерный массив NxN по следующему правилу: элементы главной диагонали равны 1, ниже главной диагонали - 0, а выше - сумме индексов.

  2. Заполнить квадратную матрицу A(n)(n) последовательными целыми числами от 1 до n2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь против часовой стрелке:

1

20

19

18

17

16

2

21

32

31

30

15

3

22

33

36

29

14

4

23

34

35

28

13

5

24

25

26

27

12

6

7

8

9

10

11

(пример для n=6).

  1. Заполнить квадратную матрицу A(n)(n) последовательными целыми числами от 1 до n2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке:

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

27

28

29

30

31

32

33

34

35

36

(.пример для n=6)

  1. Написать программу, которая заполняет таблицу Пифагора - квадратную матрицу из 10 строк и 10 столбцов, каждый элемент которой определяется формулой A(I)(J)=I*J. Полученную матрицу распечатать.

  2. Получить квадратную матрицу M(n)(n):

1

2

3

4

5

...

n

2

1

2

3

4

...

n-1

3

2

1

2

3

...

n-2

4

3

2

1

2

...

n-3

5

4

3

2

1

...

n-4

n

n-1

n-2

n-3

n-4

...

1

Полученную матрицу распечатать.

  1. Дана последовательность целых чисел 0, 1, 2, ..., n. Заполнить ими матрицу A(n)(n) следующим способом:

n

...

5

4

3

2

1

n-1

...

4

3

2

1

2

n-2

...

3

2

1

2

3

n-3

...

2

1

2

3

4

n-4

...

1

2

3

4

5

...........................

1

...

n-4

n-3

n-2

n-1

n

Полученную матрицу распечатать.

  1. Получить квадратную матрицу A(n)(n), элементы главной диагонали которой является последовательностью целых чисел: n, n-1, ..., 1, а все остальные элементы равны 1.

Пример для n=5:

5

1

1

1

1

1

4

1

1

1

1

1

3

1

1

1

1

1

2

1

1

1

1

1

1

  1. Дано натуральное число n. Заполнить матрицу A(n)(n) элементами последовательности n2, n2-1, ..., 1. Приведем пример заполнения для n=5:

    25

    24

    23

    22

    21

    20

    19

    18

    17

    16

    15

    14

    13

    12

    11

    10

    9

    8

    7

    6

    5

    4

    3

    2

    1

  2. Дано натуральное n. Построить матрицу A(n)(n) из нулей и единиц по правилу:

1

1

1

...

1

1

1

0

1

1

...

1

1

0

0

0

1

...

1

0

0

0

0

1

...

1

0

0

0

1

1

...

1

1

0

1

1

1

...

1

1

1

  1. Дано натуральное n. Построить матрицу A(n)(n) следующим способом:

1

1

1

1

...

1

1

1

1

2

1

1

1

...

1

1

1

2

3

2

1

1

...

1

1

2

3

4

3

2

1

...

1

2

3

4

4

3

2

1

...

1

2

3

4

3

2

1

1

...

1

1

2

3

2

1

1

1

...

1

1

1

2

1

1

1

1

...

1

1

1

1

  1. Дано натуральное n. Построить матрицу A(n)(n) по правилу:

а(i)(j)=max(i,j).

  1. Постройте нерегулярный двухмерный массив из n строк по правилу:

(1) 1 2 3 4 5

1 2 3

1 2 3 4 5

1 2 3

1 2 3 4 5

1 2 3

...

(2) 1 2 3 ... n-2 n-1 n

1 2 3 ... n-2 n-1

1 2 3 ... n-2

............

1 2 3

1 2

1

(3) 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 27 28

...

(4) 1

2 n+1

3 n+2 2n

4 n+3 2n+1 ...

................

n 2n-1 3n-3 ...

(5) 10

11 12

13 14 15

16 17

18 19 20

21 22 23 24

25 26 27

28 29 30 31

32 33 34 35 36

37 38 39 40

41 42 43 44 45

46 47 48 49 50 51

..............

(6) n n-1 n-2 ... 3 2 1

n n-1 n-2 ... 3 2 1

n-1 n-2 n-3 ... 2 1

n-1 n-2 n-3 ... 2 1

n n-1 n-2 ... 3 2 1

n n-1 n-2 ... 3 2 1

n-1 n-2 n-3 ... 2 1

...................

(7) 1

1 2 3 ... n

1

1 2 3 ... n

1

1 2 3 ... n

...

(8) 0 0

1 2 3

0 0

1 2 3 4

0 0

1 2 3 4 5

0 0

1 2 3 4 5 6

0 0

...

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]