Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
 
196 / 8 / 3
Регистрация: 30.04.2016
Сообщений: 733
1

Упорядочить строки по возрастанию элементов главной диагонали

30.09.2017, 10:39. Показов 472. Ответов 4
Метки нет (Все метки)

. В массивe R(5, 5) упорядочить строки по возрастанию
элементов главной диагонали.
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
CLS
DIM X(5, 5)
FOR i = 1 TO 5
FOR j = 1 TO 5
  IF i = j  THEN
X(i, j) = INT(20 * RND(i))
   END IF
   LOCATE I * 2, j * 43
   PRINT X(i, j);
     S = S + X(i, j)
NEXT j, i
     PRINT
PRINT “ Сумма эл-тов массива: “ ;  S
На выходе имеем:
QBasic/QuickBASIC
1
2
3
4
5
6
14   0    0   0   0
0    10   0   0   0
0     0   11  0   0
0     0    0   5   0
0     0    0   0   6
Сумма эл-ов массива:  46
На выходе, я думаю, должно быть так:
QBasic/QuickBASIC
1
2
3
4
5
14   0   0   0   0
 0   11  0   0   0
 0    0  10  0   0
 0    0   0   6   0
 0    0   0   0   5
А как это сделать Предполагаю, что можно применить сортировку массива. Но для двухмерного массива – вопрос-
делается ли она или нет. В книге Тимофеевской об этом ни звука.
Вы могли бы раскрыть эту тему? Ну и сделать приведённую программу. .
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2017, 10:39
Ответы с готовыми решениями:

Упорядочить строки по возрастанию элементов главной диагонали
В массивe R(5, 5) упорядочить строки по возрастанию элементов главной диагонали. CLS DIM X(5,...

Упорядочить строки по возрастанию элементов главной диагонали
. В массивe R(5, 5) упорядочить строки по возрастанию элементов главной диагонали. CLS DIM X(5,...

Упорядочить строки матрицы по убыванию элементов главной диагонали
В массивe R(5, 5) упорядочить строки по убыванию элементов главной диагонали. (уточнять условие...

Первую половину элементов главной диагонали квадратной матрицы по возрастанию, вторую по убыванию
Нужно первую половину элементов главной диагонали квадратной матрицы по возрастанию, вторую по...

4
26 / 31 / 14
Регистрация: 08.09.2017
Сообщений: 448
30.09.2017, 12:05 2
В чем проблема?
Отсортируйте строки. А элементом сравнения
будут элементы главной диагонали.
0
7 / 7 / 8
Регистрация: 06.03.2016
Сообщений: 19
06.10.2017, 17:45 3
Если можно проще, буду рад увидеть.
QBasic/QuickBASIC
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
37
38
39
40
41
42
43
44
45
DEFINT A-Z
OPTION BASE 1
CLS
RANDOMIZE TIMER
 
'zapolnenie iznahalnogo massiva
DIM a(5, 5)
COLOR 15: PRINT "Bilo:"
FOR i = 1 TO 5
FOR j = 1 TO 5
    a(i, j) = INT(RND * 100)
    IF i = j THEN COLOR 2 ELSE COLOR 7
    PRINT a(i, j),
NEXT j
NEXT i
 
'vipiska glavnoy diagonali & nahojdenie maksimalnogo elementa
DIM b(5, 5)
max = a(1, 1)
FOR i = 1 TO 5
b(5, i) = a(i, i)
IF max < a(i, i) THEN max = a(i, i)
NEXT i
 
'sozdanie massiva s sortirovanimi strokami
COLOR 15: PRINT "Stalo:"
i = 1
WHILE i <= 5
    'nahojdenie nomera stroki s minimalnim elementom diagonali
    x = 1
    FOR j = 2 TO 5
        IF b(5, x) > b(5, j) THEN x = j
    NEXT j
 
    'zapis stroki s minimalnim na danniy moment elementom
    FOR j = 1 TO 5
        b(i, j) = a(x, j)
        IF j = x THEN COLOR 2 ELSE COLOR 7
        PRINT b(i, j),
    NEXT j
    'minimalniy element delaem bolshe maksimalnogo
    IF i < 5 THEN b(5, x) = max + 1
    i = i + 1
WEND
COLOR 7
0
26 / 31 / 14
Регистрация: 08.09.2017
Сообщений: 448
07.10.2017, 12:12 4
QBasic/QuickBASIC
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
CLS
RANDOMIZE TIMER
 
DIM x(5, 5) ' исходный массив
DIM d(5)     ' массив диагонали
 
FOR i = 1 TO 5  ' заполнение массивов
FOR j = 1 TO 5
   x(i, j) = INT(90 * RND)
   IF i = j THEN d(i) = x(i, i)
   PRINT USING "####"; x(i, j);
NEXT: PRINT
NEXT: PRINT
 
FOR i = 1 TO 5  ' преобразование массива
FOR j = i + 1 TO 4
   IF d(i) > d(j) THEN
      FOR k = 1 TO 5
         SWAP x(i, k), x(j, k)
      NEXT k
   END IF
NEXT j, i
 
FOR i = 1 TO 5  ' вывод результата
FOR j = 1 TO 5
   PRINT USING "####"; x(i, j);
NEXT: PRINT
NEXT
0
7 / 7 / 8
Регистрация: 06.03.2016
Сообщений: 19
21.10.2017, 16:24 5
Исправил ошибки.
QBasic/QuickBASIC
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
CLS
RANDOMIZE TIMER
DIM x(5, 5), d(5)
 
FOR i = 1 TO 5
FOR j = 1 TO 5
    x(i, j) = INT(90 * RND)
    IF i = j THEN d(i) = x(i, j)
    PRINT USING "####"; x(i, j);
NEXT: PRINT
NEXT: PRINT
 
FOR i = 1 TO 4
FOR j = i + 1 TO 5
    IF d(i) > d(j) THEN
        FOR k = 1 TO 5
            SWAP x(i, k), x(j, k)
        NEXT k
        SWAP d(i), d(j)
    END IF
NEXT j, i
 
FOR i = 1 TO 5
FOR j = 1 TO 5
    PRINT USING "####"; x(i, j);
NEXT: PRINT
NEXT
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2017, 16:24

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Упорядочить ее строки по возрастанию их наибольших элементов
Дана матрица целых чисел X(n, т). Упорядочить ее строки по возрастанию их наибольших элементов....

Упорядочить строки матрицы по возрастанию сумм их элементов
Ребят, сижу над задачей уже 2 часа. Задача полностью: Дана матрица целых чисел X(n,m)....

Упорядочить строки матрицы по возрастанию сумм их элементов
Дана матрица целых чисел x(n,m). Упорядочить ее строки по возрастанию сумм их элементов. Вывести...

Упорядочить строки матрицы по возрастанию их наибольших элементов
Как я понимаю надо найти максимальный элемент каждой строки, сравнить их каким-то макаром между...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.