IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Струтура, реализация объекта, м/с
сообщение
Сообщение #1


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


Добрый день!
Помогите написать обект для реализации мультисспика. Со струтурами никогда еще не работал
про стуктуру и ооп читал на этом сайте, коешто понял, а с реализацией неочень.

Описал структуру для объекта

;модуль с основными типами элементов списка

nil = 0ffffh ;константа отсуствия ссылки

Rayon STRUC Global Method {
init : dword = Rayon_construct ;процедура-конструктор
deinit : dword = Rayon_deinit ;процедура-деконструктор
insert : dword = Rayon_insert ;процедура ввода полей (имя района, имя мера)
print : dword = Rayon_print ;процедура вывода на екран
}

RayonName db 20 dup (0) ; Имя района
NameMer db 20 dup (0) ; Имя мера

Next dw nil ;указатель на сл.
ENDS


теперь нужно написать процедуру конструктора объекта, которая при создание структуры видиляла в дин памити место для объекта, и инициализацию проводила(хотя что инициализировать я не знаю), и деконтсрутора, которая будет удалять объект. Процедура Инсерт будет осущетвлять заполнение полей, а принт их выводить.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
сообщение
Сообщение #2


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


Спасибо, посмотрел ток ниче не понял с реализацией mega_chok.gif
вот каркас

.286
.model large,stdcall
.stack 200h
.data

;Исоходный масив указателей
;Ечейка масива содержит адрес объекта в памити
ArrOfTObject dw 10 dup (?)

;подключаем модуль с основными типами элемента списка
;INCLUDE obj.aso

Menu db '1-Create new object',13,10
db '2-Print object',13,10
db '3-Delete object',13,10
db '4-Exit',13,10,'$'

Writeln dw 13,10,'$'
.code
;подключаем модуль с основными процедурами и макросами
INCLUDE Proc.aso

st_:
mov ax,@data
mov ds,ax

GetNewComand:
showMessage menu

mov ah,1
int 21h
sub al,'0'

cmp al,1
je CreateNewObject
cmp al,2
je PrintObject
cmp al,3
je DeleteObject
cmp al,4
je Exit
jmp Exit

CreateNewObject:
;создание нового обекта
;узаказатель на объкт должен хранится в ArrOfTObject[0]

jmp GetNewComand
PrintObject:
;вывод объкта на кран, указатель на объкт хранится нудевым елементом массива

jmp GetNewComand
DeleteObject:
;удаление объкта, указатель на объкт хранится нудевым елементом массива

jmp GetNewComand

Exit:
mov ah,4ch
int 21h
end st_



модуль модуль процедур и макросов
;модуль процедур и макросов

ShowMessage Macro Mess
mov ah,9
mov dx,offset Mess
int 21h
endm


Как мне создать обект чтоб указатель на объкт был нулевой ячейки массива ArrOfTObject?

Сообщение отредактировано: amega -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 3:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name