Читайте также: |
|
Dim i, p As Byte
p =1
While p =1 ' Аналіз значення індикатора перестановок
p =0
For i =1 To n - 1
If A(i) < A(i + 1) Then
ap =A(i): A(i) =A(i + 1): A(i + 1) =ap
p =1
End If
Next i
Wend
End Sub
' Сортування одновимірного масиву методом пошуку найменшого елемента
Sub Sort_M(A, n)
Dim min As Single
Dim i, p As Byte
For i =1 To n - 1
min =A(i): p =i
For j =i + 1 To n ' Пошук мінімального значення серед елементів
If min > A(j) Then
min =A(j): p =j
End If
Next j
A(p) =A(i): A(i) =min
Next i
End Sub
Sub Zavd_6_11() ' Сортування рядка за спаданням значень його елементів
Dim j, col, ozn As Byte
Dim A_mas() As Single
Set myCELL = Application.InputBox (_
prompt:="Виберіть вхідний рядок даних (без заголовка)", _
Type:=8)
Set myCELL2 = Application.InputBox (_
prompt:="Виберіть клітинку, з якої будуть виводитися отримані результати", _
Type:=8)
ozn = Application.InputBox ("Введіть ознаку сортування: 1 - за спаданням; 2 - за зростанням")
col =myCELL. Columns. Count ' Обчислення кількості стовпців
ReDim A_mas(1 To col)
'Занесення введених елементів у одновимірний масив
For j =1 To col
A_mas(j) =myCELL. Columns (j). Cells (1)
Next j
If ozn =1 Then ' Сорт. масиву за спаданням
' Сортування одновимірного масиву методом перестановок
Call Sort_P(A_mas, col)
Else ' Сорт. масиву за зростанням
' Сортування одновимірного масиву методом пошуку найменшого елемента
Call Sort_M(A_mas, row)
End If
' Виведених елементів одновимірного масиву
For j =1 To col
myCELL2. Offset (0, j - 1) .Value =A_mas(j)
Next j
myCELL2. Offset (1, 0) .Value ="Кінець розрахунку"
End Sub
Сортування стовпця за зростанням значень його елементів
B | C | D | E | F | G | H | I | J | K | |
D | D' | |||||||||
1,08 | -4,91 | |||||||||
-4,91 | 1,08 | |||||||||
31,34 | 31,34 | |||||||||
324,23 | 33,37 | |||||||||
2365,17 | 187,39 | |||||||||
6003,80 | 324,23 | |||||||||
4236,29 | 1111,89 | |||||||||
1111,89 | 2365,17 | |||||||||
187,39 | 4236,29 | |||||||||
33,37 | 6003,80 |
Порядок виконання дій – для середовища Excel
1. Формування рядка D:
Клітини B77:B86 à =C14 – <Ctrl + Enter>
2. Формування рядка D':
Клітини B77:B86 à – <Ctrl + C> (де C – copy)
Клітина D77 à – Правка, Специальная вставка... Вставить: значения <OK>
3. Сортування рядка D':
Клітини B67:K67 à Данные, Сортировка:
1. Сортировать по: возрастанию
2. Идентифицировать поля по: отсутствует
3. Параметры...
4. Сортировать по первому ключу: не производится
5. Сортировать: строки диапазона
6. <OK>
Тексти процедур і функцій – для середовища Visual Basic
Sub Zavd_6_12() ' Сортування стовпця за спаданням значень його елементів
Dim i, j, row, ozn As Byte
Dim A_mas() As Single
Set myCELL = Application.InputBox (_
prompt:="Виберіть вхідний стовпець даних (без заголовка)", _
Type:=8)
Set myCELL2 = Application.InputBox (_
prompt:="Виберіть клітинку, з якої будуть виводитися отримані результати", _
Type:=8)
ozn = Application.InputBox ("Введіть ознаку сортування: 1 - за спаданням; 2 - за зростанням")
row =myCELL. Rows.Count ' Обчислення кількості рядків
ReDim A_mas(1 To row)
'Занесення введених елементів у одновимірний масив
For i =1 To row
A_mas(i) =myCELL. Columns (1). Cells (i)
Next i
If ozn =1 Then ' Сорт. масиву за спаданням
' Сортування одновимірного масиву методом перестановок
Call Sort_P(A_mas, col)
Else ' Сорт. масиву за зростанням
' Сортування одновимірного масиву методом пошуку найменшого елемента
Call Sort_M(A_mas, row)
End If
' Виведених елементів двовимірного масиву
For i =1 To row
myCELL2. Offset (-1 + i, 0) .Value =A_mas(i)
Next i
myCELL2. Offset (row, 0) .Value ="Кінець розрахунку"
End Sub
Задача 6.2. Відповідно до номера варіанту (прикл. 1 і 2), з використанням засобів середовищ Excel та Visual Basic відсортувати елементи двовимірного масиву, а саме:
● рядків матриці у порядку спадання значень їх елементів;
● стовпців матриці у порядку зростання значень їх елементів;
● матриці по рядках у порядку спадання значень їх елементів;
● матриці по стовпцях у порядку зростання значень їх елементів.
Сортування елементів двовимірного масиву
Сортування рядків матриці у порядку спадання значень їх елементів
B | C | D | E | F | G | H | I | J | K | L | |
А | А' | ||||||||||
0,10 | 8,11 | 40,44 | 65,52 | 57,51 | 65,52 | 57,51 | 40,44 | 8,11 | 0,10 | ||
1,20 | 2,97 | 6,75 | 12,61 | 14,10 | 12,61 | 14,10 | 6,75 | 2,97 | 1,20 | ||
1,29 | 11,08 | 47,19 | 78,13 | 71,61 | 78,13 | 71,61 | 47,19 | 11,08 | 1,29 | ||
2,49 | 14,05 | 53,95 | 90,75 | 85,70 | 90,75 | 85,70 | 53,95 | 14,05 | 2,49 | ||
3,79 | 25,13 | 101,14 | 168,88 | 157,31 | 168,88 | 157,31 | 101,14 | 25,13 | 3,79 |
Порядок виконання дій – для середовища Excel
1. Формування матриці <А>:
Клітини B92:F96 à =C48 – <Ctrl + Enter>
2. Формування матриці <А'>:
Клітини B92:F96 à – <Ctrl + C> (де C – copy)
Клітина H92 à – Правка, Специальная вставка... Вставить: значения <OK>
3. Сортування рядків матриці <А'>:
Клітини H92:L96 à Данные, Сортировка:
1. Сортировать по: убыванию
2. Идентифицировать поля по: отсутствует
3. Параметры...
4. Сортировать по первому ключу: не производится
5. Сортировать: столбцы диапазона
6. <OK>
Сортування стовпців матриці у порядку зростання значень їх елементів
B | C | D | E | F | G | H | I | J | K | L | |
А | А' | ||||||||||
0,10 | 8,11 | 40,44 | 65,52 | 57,51 | 3,79 | 25,13 | 101,14 | 168,88 | 157,31 | ||
1,20 | 2,97 | 6,75 | 12,61 | 14,10 | 2,49 | 14,05 | 53,95 | 90,75 | 85,70 | ||
1,29 | 11,08 | 47,19 | 78,13 | 71,61 | 1,29 | 11,08 | 47,19 | 78,13 | 71,61 | ||
2,49 | 14,05 | 53,95 | 90,75 | 85,70 | 1,20 | 2,97 | 6,75 | 12,61 | 14,10 | ||
3,79 | 25,13 | 101,14 | 168,88 | 157,31 | 0,10 | 8,11 | 40,44 | 65,52 | 57,51 |
Порядок виконання дій – для середовища Excel
1. Формування матриці <А>:
Клітини B107:F111 à =C48 – <Ctrl + Enter>
2. Формування матриці <А'>:
Клітини B107:F111 à – <Ctrl + C> (де C – copy)
Клітина H107 à – Правка, Специальная вставка... Вставить: значения <OK>
3. Сортування рядків матриці <А'>:
Клітини H107:L111 à Данные, Сортировка:
1. Сортировать по: возрастанию
2. Идентифицировать поля по: обозначениям столбцов листа
3. Параметры...
4. Сортировать по первому ключу: не производится
5. Сортировать: строки диапазона
6. <OK>
Сортування матриці по рядках у порядку спадання значень їх елементів
B | C | D | E | F | G | H | I | J | K | L | |
А | А' | ||||||||||
0,10 | 8,11 | 40,44 | 65,52 | 57,51 | 0,10 | 1,20 | 1,29 | 2,49 | 2,97 | ||
1,20 | 2,97 | 6,75 | 12,61 | 14,10 | 3,79 | 6,75 | 8,11 | 11,08 | 12,61 | ||
1,29 | 11,08 | 47,19 | 78,13 | 71,61 | 14,05 | 14,10 | 25,13 | 40,44 | 47,19 | ||
2,49 | 14,05 | 53,95 | 90,75 | 85,70 | 53,95 | 57,51 | 65,52 | 71,61 | 78,13 | ||
3,79 | 25,13 | 101,14 | 168,88 | 157,31 | 85,70 | 90,75 | 101,14 | 157,31 | 168,88 | ||
AR | |||||||||||
0,10 | 8,11 | 40,44 | 65,52 | 57,51 | 1,20 | 2,97 | 6,75 | 12,61 | 14,10 | 1,29 | |
ARс | |||||||||||
0,10 | 1,20 | 1,29 | 2,49 | 2,97 | 3,79 | 6,75 | 8,11 | 11,08 | 12,61 | 14,05 |
Порядок виконання дій – для середовища Excel
1. Формування матриці <А>:
Клітини B123:F127 à =C48 – <Ctrl + Enter>
2. Формування рядка АR:
Клітини B129:F129 à =B123 – <Ctrl + Enter>
Клітини G129:K129 à =B124 – <Ctrl + Enter>
....................................
Клітини V129:Z129 à =B127 – <Ctrl + Enter>
3. Формування рядка АRc:
Клітини B129:Z129 à – <Ctrl + C> (де C – copy)
Клітина B131 à – Правка, Специальная вставка... Вставить: значения <OK>
4. Сортування рядка АRc:
Клітини B131:Z131 à Данные, Сортировка:
1. Сортировать по: возрастанию
2. Идентифицировать поля по: отсутствует
3. Параметры...
4. Сортировать по первому ключу: не производится
5. Сортировать: столбцы диапазона
6. <OK>
5. Формування матриці <А'>:
Клітини H123:L123 à =B131 – <Ctrl + Enter>
Клітини H124:L124 à =G124 – <Ctrl + Enter>
....................................
Клітини V127:L127 à =V131 – <Ctrl + Enter>
Сортування матриці по стовпцях у порядку зростання значень їх елементів
B | C | D | E | F | G | H | I | J | K | L | |
А | А' | ||||||||||
0,10 | 8,11 | 40,44 | 65,52 | 57,51 | 168,88 | 78,13 | 47,19 | 12,61 | 2,97 | ||
1,20 | 2,97 | 6,75 | 12,61 | 14,10 | 157,31 | 71,61 | 40,44 | 11,08 | 2,49 | ||
1,29 | 11,08 | 47,19 | 78,13 | 71,61 | 101,14 | 65,52 | 25,13 | 8,11 | 1,29 | ||
2,49 | 14,05 | 53,95 | 90,75 | 85,70 | 90,75 | 57,51 | 14,10 | 6,75 | 1,20 | ||
3,79 | 25,13 | 101,14 | 168,88 | 157,31 | 85,70 | 53,95 | 14,05 | 3,79 | 0,10 | ||
АR | |||||||||||
0,10 | 1,20 | 1,29 | 2,49 | 3,79 | 8,11 | 2,97 | 11,08 | 14,05 | 25,13 | 40,44 | |
АRc | |||||||||||
168,88 | 157,31 | 101,14 | 90,75 | 85,70 | 78,13 | 71,61 | 65,52 | 57,51 | 53,95 | 47,19 |
Порядок виконання дій – для середовища Excel
1. Формування матриці <А>:
Клітини B143:F147 à =C48 – <Ctrl + Enter>
2. Формування рядка АR:
Клітини B149:F149 à =ТРАНСП(B143:B147) – <Ctrl + Shift + Enter>
Клітини G149:K149 à =ТРАНСП(C143:C147) – <Ctrl + Shift + Enter>
....................................
Клітини V149:Z149 à =ТРАНСП(F143:F147) – <Ctrl + Shift + Enter>
3. Формування рядка АRc:
Клітини B149:Z149 à – <Ctrl + C> (де C – copy)
Клітина B151 à – Правка, Специальная вставка... Вставить: значения <OK>
4. Сортування рядка АRc:
Клітини B151:Z151 à Данные, Сортировка:
1. Сортировать по: убиванию
2. Идентифицировать поля по: отсутствует
3. Параметры
4. Сортировать по первому ключу: не производится
5. Сортировать: столбцы диапазона
6. <OK>
5. Формування матриці <А'>:
Клітини H143:H147 à =ТРАНСП(B151:F151) – <Ctrl + Shift + Enter>
Клітини I143:I147 à =ТРАНСП(G151:K151) – <Ctrl + Shift + Enter>
....................................
Клітини L143:L147 à =ТРАНСП(V151:Z151) – <Ctrl + Shift + Enter>
Тексти процедур і функцій – для середовища Visual Basic
' Сорт. рядків матриці у порядку зрост./спад. значень їх елементів
Sub Sort_rM(A, m, n)
Дата добавления: 2015-11-14; просмотров: 66 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Dim m, n, nr, ns, i, j, z, k As Integer 5 страница | | | Dim A_mas()As Single 1 страница |