С Новым годом! Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 02.06.2019
Сообщений: 3

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

02.06.2019, 11:21. Показов 2845. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить пожалуйста. Желательно побыстрее
Дана матрица целых чисел X(n,m). Упорядочить ее строки по возрастанию последних элементов строк. Вывести исходную и полученную матрицы. Значения буквенных переменных задавать с клавиатуры. Значения элементов матрицы задать с помощь датчика случайных чисел.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.06.2019, 11:21
Ответы с готовыми решениями:

Дана матрица размером N строк и M столбцов Упорядочить ее строки по возрастанию их первых элементов
Дана матрица размером N строк и M столбцов. Упорядочить ее строки по возрастанию их первых элементов. Переменные вводить и выводить с...

Упорядочить строки матрицы по возрастанию последних элементов строк
Создать шаблоны функций, выполняющий ввод, вывод и упорядочивание матрицы. Протестировать шаблоны для матриц с элементами различных типов:...

Упорядочить строки матрицы по возрастанию последних элементов строк
Всем здрасти.Помогите с лабами пожалуйста. 1)Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1...

6
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
15.03.2020, 22:45
Код для фрибейсика:
PureBasic
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Const MAX_CELL_VALUE As Integer = 265
 
Type MATRIX As Integer Ptr Ptr
 
Function CreateMatrix(Columns As Integer, Rows As Integer)As MATRIX
    Dim X As MATRIX = Allocate(Rows * SizeOf(Integer Ptr))
    
    For j As Integer = 0 To Rows - 1
        X[j] = Allocate(Columns * SizeOf(Integer))
        
        For i As Integer = 0 To Columns - 1
            X[j][i] = CInt(MAX_CELL_VALUE * Rnd())
        Next
    Next
    
    Return X
    
End Function
 
Sub DestroyMatrix(X As MATRIX, Columns As Integer, Rows As Integer)
    For j As Integer = 0 To Rows - 1
        Deallocate(X[j])
    Next
    Deallocate(X)
End Sub
 
Sub PrintMatrix(X As MATRIX, Columns As Integer, Rows As Integer)
    For j As Integer = 0 To Rows - 1
        For i As Integer = 0 To Columns - 2
            Print X[j][i],
        Next
        Print X[j][Columns - 1]
    Next
End Sub
 
Sub BubbleSortMatrixOfMainColumn(X As MATRIX, Rows As Integer, MainColumn As Integer)
    For j As Integer = 0 To Rows - 2
        Dim ExitFlag As Boolean = True
        
        For i As Integer = 0 To Rows - j - 2
            If X[i][MainColumn] > X[i + 1][MainColumn] Then
                Swap X[i], X[i + 1]
                ExitFlag = False
            End If
        Next
        
        If ExitFlag Then
            Exit For
        End If
    Next
End Sub
 
Dim n As Integer
Print "Введи количество столбцов матрицы"
Input n
 
Dim m As Integer
Print "Введи количество строк матрицы"
Input m
 
Dim X As MATRIX = CreateMatrix(n, m)
 
Print "Исходная сгенерированная матрица"
PrintMatrix(X, n, m)
 
BubbleSortMatrixOfMainColumn(X, m, n - 1)
 
Print "Отсортированная матрица по последнему столбцу"
PrintMatrix(X, n, m)
 
DestroyMatrix(X, n, m)
Print "Матрица удалена, память уничтожена"
0
 Аватар для vlisp
1062 / 983 / 153
Регистрация: 10.08.2015
Сообщений: 5,336
15.03.2020, 23:38
Цитата Сообщение от Замабувараев Посмотреть сообщение
Код для фрибейсика:
Это не лучший код для фб и вам ли не знать... гораздо лучше создать класс матрицы как объект и инкапсулировать в него то, что сейчас не инкапсулировано, ну кроме разве что функции печати...
0
Эксперт по электронике
6526 / 3155 / 332
Регистрация: 28.10.2011
Сообщений: 12,377
Записей в блоге: 7
16.03.2020, 00:25
Не проще было создать двумерный массив?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
16.03.2020, 02:21
Цитата Сообщение от locm Посмотреть сообщение
Не проще было создать двумерный массив?
Нет, не проще: в двумерной массиве не обменять одной инструкцией Swap две строки.
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
16.03.2020, 08:55
Лучший ответ Сообщение было отмечено Quiet Snow как решение

Решение

Если писать на FB в стиле QB, то нужно использовать двумерный массив, думаю, что для учебной задач это больше подходит
PureBasic
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
CONST MAXVALUE = 99, MINVALUE = 10
 
DIM i AS INTEGER, j AS INTEGER, n AS INTEGER, m AS INTEGER
RANDOMIZE TIMER
n = 10 'Input n
m = 12 'Input m
DIM a(i TO n, 1 TO m) AS INTEGER, ai(1 TO n) AS INTEGER
PRINT "matrix"
FOR i = 1 TO n
    ai(i) = i
    FOR j = 1 TO m
        a(i, j) = INT(RND * (MAXVALUE - MINVALUE + 1) + MINVALUE)
        PRINT a(i, j);
    NEXT j
    PRINT
NEXT i
FOR i = 1 TO n - 1
    FOR j = i + 1 TO n
        IF a(ai(i), m) > a(ai(j), m) THEN SWAP ai(i), ai(j)
NEXT j, i
 
PRINT "sorted matrix"
FOR i = 1 TO n
    FOR j = 1 TO m
        PRINT a(ai(i), j);
    NEXT j
    PRINT
NEXT i
PS: Я не отсортировал матрицу, а просто ее вывел используя сортированный массив индексов строк
Возможно это не самый лучший способ, т.к. не решает исходную задачу, но работает значительно быстрее, чем обменивать целые строки в матрице.
В крайнем случае можно после сортировки сгенерировать новый отсортированный массив за один проход.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
17.03.2020, 04:39
Я бы обошёлся массивом по своим мотивам. Но Замабувараев, написал нормальный код, универсальный
и довольно портабельный.
Хотя студика конечно отымеют за это во все пихательные, преподы любят попроще, для них это стресс.

Цитата Сообщение от vlisp Посмотреть сообщение
Это не лучший код для фб и вам ли не знать... гораздо лучше создать класс матрицы как объект и инкапсулировать в него то, что сейчас не инкапсулировано
Инкапсулировал инкапсулировал да невыинкапсулировал.
Адепт морей и калькулятора Замабувараев, после веб сервака с предыханием слушает эти байки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.03.2020, 04:39
Помогаю со студенческими работами здесь

Упорядочить строки матрицы по возрастанию последних элементов строк
помогите,пожалуйста с решением задачи на qbasic.дана матрица целых чисел X(n,m)упорядочить ее строки по возрастанию последних элементов...

Дана матрица. Упорядочить ее строки по возрастанию суммы их элементов
Помогите решить..я начало но не понимаю как сделать вещественную матрицу и поменять местами строки const n=3;m=4; Var a:array of...

Дана действительная матрица размером n * m. Упорядочить (переставить) по возрастанию сумм элементов строк
#include<iostream> using namespace std: const float n=3; const float m=4; float a; void sum(float a){ матриц не...

Дана матрица Nxm упорядочить ее строки по возрастанию суммы их элементов
Дана матрица Nxm упорядочить ее строки по возрастанию суммы их элементов Использовать 2 стринг грида

Дана матрица размером M*N. Упорядочить ее строки по возрастанию элементов k-го столбца.
Дана матрица размером M*N. Упорядочить ее строки по возрастанию элементов k-го столбца.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru