Страница: 1 |
Страница: 1 |
Вопрос: Свой тип функции
Добавлено: 18.08.07 13:17
Автор вопроса: Denn | Web-сайт:
Есть функия которая перемножает две матрицы и должна возвращать результа в третей ну вот примерно так:
xx AS SINGLE
xy AS SINGLE
xz AS SINGLE
xw AS SINGLE
yx AS SINGLE
yy AS SINGLE
yz AS SINGLE
yw AS SINGLE
zx AS SINGLE
zy AS SINGLE
zz AS SINGLE
zw AS SINGLE
wx AS SINGLE
wy AS SINGLE
wz AS SINGLE
ww AS SINGLE
END TYPE
FUNCTION UmnRavnoM(m1 AS matrixT , m2 AS matrixT) AS matrixT
DIM m3 as matrixT .....
.....
function = m3
end function
компилер пишет ошибка синтекса 477
Неужели свой тип возвращат нельзя=(?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #1
Добавлено: 18.08.07 15:46
А ты это в форму или в модуль записал?
Попробуй перед определением TYPE matrixT поставить ключевое слово Private
Номер ответа: 2
Автор ответа:
Denn
Вопросов: 2
Ответов: 2
Web-сайт:
Профиль | | #2
Добавлено: 18.08.07 16:34
dNW ты наверно просто случайно форум перепутал. Это не VB
Номер ответа: 3
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #3
Добавлено: 18.08.07 22:10
Уппс Простите! Просто я зашел на главную страницу и увидел твою тему в списке последних Погорячился :D
Номер ответа: 4
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #4
Добавлено: 20.08.07 09:47
Неужели свой тип возвращат нельзя=(?
Свой тип вернуть нельзя, но можно передать указатель на него.
Номер ответа: 5
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #5
Добавлено: 31.08.07 02:29
Кстати,
В ПБ есть оператор MAT
который может перемножать матрицы
Номер ответа: 6
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #6
Добавлено: 13.10.07 01:48
BTW, you are wrong,
вы можете возвращать свой тип из функции:
#COMPILE EXE
#DIM ALL
TYPE MyType
sz AS ASCIIZ * 128 ' size 128 bytes
dw AS DWORD ' size 4 bytes
lng AS LONG ' size 4 bytes
END TYPE
UNION MyUDT
s AS STRING *136 ' total size of UDT MyType =136
MyType
END UNION
FUNCTION test() AS STRING
LOCAL uSub AS MyUDT
uSub.sz = "Hello !"
uSub.dw = &H01020304???
uSub.lng = 555&
FUNCTION = uSub.s
END FUNCTION
FUNCTION PBMAIN () AS LONG
LOCAL uPBmain AS MyUDT
uPBmain.s = test()
? "uPBmain.sz = "+ uPBmain.sz +$CRLF+_
"uPBmain.dw = "+HEX$(uPBmain.dw,8)+$CRLF+_
"uPBmain.lng = "+STR$(uPBmain.lng)
END FUNCTION