![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
SunDevil |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите, плиз, разобраться с такой проблемой: в прикрепленном файле наполовину сделанный мой курсовик. Все ООП содержтся в файле Main.PAS В этом файле нормально работает только массив (с матрицей и списком я еще не разобрался). Когда запустите прогу, то увидете меню. Мне надо, чтобы на данный момент ВЫ помогли бы мне реализовать первый пункт меню (РАБОТА С МАССИВОМ). Надо, чтобы когда я зашел в этот пункт меню и выбрал любой другой пункт (Ввод массива, ввод диапазона от А до В, вывод измененного массива), то соотвественно это все работало. Моя проблема заключается в том, что я не знаю как вызывать файл Main.PAS и чтобы там все прекрасно работало :o
ПОМОГИТЕ, плиз :p2: Прикрепленные файлы ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Объясни мне, непонятливому, ПОЧЕМУ ты массив хочешь наследовать от матрицы??? Смысл в этом какой? Искусственно создать себе же проблемы и искусственно их потом решать? Ну не для этого ввели OOP !!! Если уж тебе нужно наследование и виртуальные функции, то я бы сделал так:
Исходный код Type pMassiv: ^massiv; massiv: Array[1 .. 1] Of Real; pMatrix = ^matrix; matrix = Array[1 .. 1] Of pMassiv; TAbst = Object { Абстрактный класс } Size, ArrCount: Integer; x: pMassiv; { это все равно везде присутствует } Constructor Init; { Write('Размерность: '); ReadLn(Size); GetMem(X, Size*SizeOf(Real)); } Destructor Done; Virtual; { FreeMem(X, Size*SizeOf(Real)); } Procedure InData; Virtual; Procedure OutData; Virtual; Procedure Form; Virtual; Procedure OutRes; Virtual; End; TMass = Object(TAbst) Y: pMassiv; Constructor Init; { Inherited Init; { Вызываем конструктор предка } GetMem(Y, Size*SizeOf(Real)); } Destructor Done; Virtual; { FreeMem(Y, Size*SizeOf(Real)); Inherited Done; } Procedure InData; Virtual; Procedure OutData; Virtual; Procedure Form; Virtual; Procedure OutRes; Virtual; End; TMatr = Object(TAbst) Y: pMatrix; Constructor Init; { Inherited Init; GetMem(Y, Size*SizeOf(pMassiv)); For i := 1 To Size Do GetMem(Y[i], Size*SizeOf(Real)); } Destructor Done; Virtual; { For i := 1 To Size Do FreeMem(Y[i], Size*SizeOf(Real)); FreeMem(Y, Size*SizeOf(pMassiv)); Inherited Done; } Procedure InData; Virtual; Procedure OutData; Virtual; Procedure Form; Virtual; Procedure OutRes; Virtual; End; Я уж не знаю, что ты хочешь делать со списком, но при желании его тоже можно наследовать от TAbst (правда, непонятно зачем ему нужен размер ![]() |
![]() ![]() |
![]() |
Текстовая версия | 6.07.2025 18:13 |