1 / 1 / 0
Регистрация: 25.12.2015
Сообщений: 24
|
||||||
1 | ||||||
Матричный калькулятор, динамическая память для матрицы14.12.2016, 09:11. Показов 1551. Ответов 11
Метки нет (Все метки)
Всем доброго времени суток. Пишу программу в С++ Builder - матричный калькулятор, с использованием компонента StringGrid.
Помогите пожалуйста, до конца декабря сдать работу нужно) P.S. язык C++ это единственный, в котором я работал, и то, было это всего пару раз и в прошлом году, так что мало чего здесь понимаю)) (следовательно за компактность кода не ручаюсь, пусть хотя бы так заработает)
0
|
14.12.2016, 09:11 | |
Ответы с готовыми решениями:
11
Матричный калькулятор, нахождение обратной матрицы Матричный калькулятор, возведение матрицы в степень Матричный калькулятор, умножение матрицы на матрицу Матричный калькулятор, умножение матрицы на число |
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
|
|
14.12.2016, 09:20 | 2 |
i - row, j - col и индексация с нуля. А после всю память освободить.
0
|
1 / 1 / 0
Регистрация: 25.12.2015
Сообщений: 24
|
||||||
14.12.2016, 09:35 [ТС] | 3 | |||||
Нулевая индексация для нумерации строк и столбцов.
Для освобождения использовать "delete" сразу после циклов? Добавлено через 8 минут чот не получилось
0
|
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
|
|||||||||||
14.12.2016, 09:38 | 4 | ||||||||||
Я же сказал - с нуля все индексы для массивов.
0
|
1 / 1 / 0
Регистрация: 25.12.2015
Сообщений: 24
|
||||||
14.12.2016, 19:35 [ТС] | 5 | |||||
Получилось, спасибо. Но когда одна матрица заполнена, а другая нет, то при нажатии кнопки вычисления (разности, умножения), также выдаёт ошибку. Есть ли способ "защиту от дурака" сделать, например, если хотя бы одна матрица пустая, или заполнена не до конца, то при нажатии кнопки вычисления, не будет никаких действий? Не могу придумать вариантов, как реализовать это.
Добавлено через 13 минут И как матрицу заставить "съедать" вещественные числа? Я заменил StrToInt на StrToFloat, но этого видимо недостаточно
0
|
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
|
|
14.12.2016, 20:46 | 6 |
Лови ошибку StrToFloat(). Там же вроде бы исключение есть для этого. Запятую в качестве разделителя ставишь?
0
|
1 / 1 / 0
Регистрация: 25.12.2015
Сообщений: 24
|
||||||
18.12.2016, 19:19 [ТС] | 7 | |||||
С вещественными разобрался (вместо int написал double (при выделении динам. памяти) Доделал умножение программы.. Но с отрицательными числами программа работает некорректно: 3*(-5)=-14, -3-4=-6. Именно, когда взаимодействуют два числа, отличные по знаку друг от друга. В чём проблема то??
Операция вычитания двух матриц:
0
|
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
|
|
18.12.2016, 20:15 | 8 |
А без округления?
0
|
1 / 1 / 0
Регистрация: 25.12.2015
Сообщений: 24
|
||||||
19.12.2016, 11:03 [ТС] | 9 | |||||
округление убрал - то же самое
Добавлено через 56 минут Это умножение. Но умножает только квадратные матрицы, а прямоугольные не хочет, хотя сетки матриц выставляются таким образом, что кол-во столбцов первой матрицы равно кол-ву строк второй матрицы.
0
|
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
|
|
19.12.2016, 17:43 | 10 |
Как-то слишком просто для умножения матриц. Здесь смотри: Умножение матриц
0
|
1 / 1 / 0
Регистрация: 25.12.2015
Сообщений: 24
|
||||||||||||||||
19.12.2016, 19:37 [ТС] | 11 | |||||||||||||||
дык это ж кусок из программы. Для него все параметры уже имеются: заданы размеры матриц, в двумерные массивы A[i][r] и B[r][j] передаются значения из уже заполненных таблиц (StringGrid1, StringGrid2), потом цикл, выполняющий умножение этих двух "2D-массивов" (По формуле умножения матриц C(ij)=Summ(A(ir)*B(rj)). и в конечном итоге из двумерного массива C[i][j] полученные значения отправляются в StringGrid3. Там ошибка где-то в циклах, которую я никак не могу найти. А принцип у меня точно такой же, как и в этой ссылке.
Установка размерности первой, второй и третьей матрицы (для сложения и вычитания)
0
|
1 / 1 / 0
Регистрация: 25.12.2015
Сообщений: 24
|
|
23.12.2016, 12:56 [ТС] | 12 |
проблема решена
0
|
23.12.2016, 12:56 | |
23.12.2016, 12:56 | |
Помогаю со студенческими работами здесь
12
динамическая память под матрицы Упорядочить столбцы матрицы по неубыванию характеристик. Динамическая память Матричный калькулятор C++ Матричный калькулятор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |