вещественная матрица, ООП в ТР |
вещественная матрица, ООП в ТР |
Svetlana |
16.09.2009 18:04
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: 0 |
Помогите, пожалуйста, доработать код.Думаю ошибок там много(((
Сообщение отредактировано: Svetlana - 16.09.2009 18:07 |
sheka |
16.09.2009 18:53
Сообщение
#2
|
Я. Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
...
Извините. Сообщение отредактировано: sheka - 16.09.2009 18:57 |
Svetlana |
16.09.2009 19:20
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: 0 |
извиняю...)
|
volvo |
16.09.2009 19:38
Сообщение
#4
|
Гость |
Цитата Думаю ошибок там много((( Первая из них - неправильный выбор раздела. Тебе это надо сделать на Паскале, или Дельфи? А может быть, Object Pascal? Определись с этим, потом будем смотреть дальше. |
Svetlana |
16.09.2009 20:19
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: 0 |
Object Pascal
|
volvo |
16.09.2009 21:22
Сообщение
#6
|
Гость |
В таком случае вот тебе информация к размышлению:
type Этого интерфейса в принципе достаточно, чтобы организовать тот класс, который тебе нужен. В Object Pascal-е есть перегрузка (overloading) функций, так что одно имя можно использовать для нескольких методов, при условии, что в них будут передаваться разные параметры (что я и сделал на примере Mult). Второе: обрати внимание, у тебя все время должен изменяться тот экземпляр, для которого вызван метод. Поэтому нет нужды передавать в качестве параметров исходную матрицу, и результат тоже. Только второй параметр - то, что находится справа от знака операции. Еще одно: никогда не делай так, как пыталась сделать в методе umnosh_na_chislo (я про то, что ты внутри метода пытаешься заставить пользователя ввести само число, на которое надо умножить матрицу.) Этого делать нельзя ни в коем случае: метод занимается ТОЛЬКО перемножением матрицы на число. Всё, больше ничем. Он получает на вход ТОЛЬКО число, на которое надо умножить матрицу. Как и когда ты получаешь от пользователя это число - это твоя проблема, метод об этом знать ничего не должен, это не его дело. Его дело - получить матрицу и число, и перемножить их. Точка. Не пытайся возхложить на методы чужую работу. Каждый должен заниматься своим делом. Кто-то складывает, кто-то перемножает, кто-то вводит данные, кто-то выводит их. А не "все вперемешку". Тему переношу в 32-битные компиляторы, там гораздо ближе к Object-Pascal-ю. Дальше сама справишься? |
Svetlana |
16.09.2009 21:34
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: 0 |
Спасибо,стало яснее. Только у меня ещё одна проблема:в первой же процедуре ввода. Она меня выбрасывает из командной строки после ввода первого элемента массива. Почему?
|
volvo |
16.09.2009 21:43
Сообщение
#8
|
Гость |
Я не вижу у тебя нигде инициализации массива Х в классе... У тебя просто попытка записи в неинициализированную переменную. Напиши свой конструктор, в котором сделай SetLength этому массиву, тогда все будет работать. Только вот M, N надо бы знать ДО инициализации.
|
Svetlana |
16.09.2009 21:45
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: 0 |
Спасибо
|
Svetlana |
14.10.2009 16:29
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: 0 |
Решила написать работающий код(может кому-нибудь пригодится):
Сообщение отредактировано: Svetlana - 14.10.2009 16:34 |
volvo |
14.10.2009 18:21
Сообщение
#11
|
Гость |
Что это было? Вот это тебе зачем, например:
Цитата Procedure Add (const A,B:veshmatr; var C:veshmatr); Зачем понадобилось в Transpose, например, заставлять пользователя вводить количество строк/столбцов? Что, класс не знает, сколько столбцов, а сколько строк в той матрице, которую он хранит? Знает (иначе зачем тебе M и N?). Почему для печати матрицы надо делать вот этот ужас: Цитата M3.vivod(M3) В общем, эту программу можно значительно упростить и сделать работу с классом гораздо более ясной и понятной... Чуть позже покажу, как... |
Svetlana |
2.11.2009 18:23
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: 0 |
Хорошо,буду ждать
|
volvo |
3.11.2009 10:53
Сообщение
#13
|
Гость |
Ну вот. Сравни с твоей реализацией, и скажи, с чем удобнее работать? Можно и дальше улучшать, кстати, это еще не самый окончательный вариант. Если честно, я думал, ты сама уже все сделала - столько времени прошло.
program lab_a; |
Svetlana |
3.11.2009 15:35
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: 0 |
Ну вот. Сравни с твоей реализацией, и скажи, с чем удобнее работать?
Конечно же этот вариант лучше,причём намного Если честно, я думал, ты сама уже все сделала - столько времени прошло. На самом деле я сдала эту работу и совсем о ней не вспоминала...Спасибо Сообщение отредактировано: Svetlana - 3.11.2009 15:36 |
Текстовая версия | 27.09.2024 2:39 |