Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
100 / 95 / 23
Регистрация: 30.08.2015
Сообщений: 457
.NET 3.x

Создание пользовательской функции в MathCAD 11

15.07.2016, 08:19. Показов 1024. Ответов 3

Студворк — интернет-сервис помощи студентам
Доброго форумчане и уни, пытаюсь написать простенькую функцию для mathcad 11 (более шустрая версия) почитав статью на хабре и примеры ,

функция чтения файла
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Imports System.Reflection
Imports NetEFI
 
Public Class readfile
 
    Implements IFunction
 
    Private _info As FunctionInfo
 
    Public ReadOnly Property Info() As FunctionInfo Implements IFunction.Info
        Get
            Return _info
        End Get
    End Property
 
    Public Sub New()
 
        _info = New FunctionInfo("readfile", "filepatch", "dilimited", _
            New Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath, _
            GetType(String), _
            New Type() {GetType(String), GetType(String)}) ', GetType(TComplex(,))
    End Sub
 
    Public Function GetFunctionInfo(ByVal lang As String) As FunctionInfo Implements IFunction.GetFunctionInfo
 
        Return Info
    End Function
 
    Public Function NumericEvaluation(ByVal args As Object(), ByRef result As Object) As Boolean Implements IFunction.NumericEvaluation
 
        Dim array As String(,) = Nothing
 
        result = array
 
        Try
            Dim dfile = DirectCast(args(0), [String])
            Dim dilimeted = DirectCast(args(1), [String])
           
 
            Dim fStream As New System.IO.FileStream(dfile, IO.FileMode.Open)
            Dim sReader As New System.IO.StreamReader(fStream)
            Dim sArray As String()
            Dim I As Integer = 0
            Do While sReader.Peek >= 0
                ReDim Preserve sArray(I)
                sArray(I) = sReader.ReadLine
                I += 1
            Loop
            Dim rows As Integer = sArray.Length - 1
            Dim cols As Integer = sArray(0).Split(";").Length - 1
            'Dim array(rows, cols) As String
            Dim _array As String()
 
            For K As Integer = 0 To rows
                For J As Integer = 0 To cols
                    _array = sArray(K).Split(New Char() {";"})
                    array(K, J) = _array(J)
                Next
            Next
            result = array
 
        Catch ex As Exception
            Return False
        End Try
    End Function
 
End Class
вызываю ее и - ошибка - "general protection error"



наверно все объявления переменных в вункции NumericEvaluation кроме первой - ошибочны но и конвертировать в TComplex не получается - невозможно преобразовать string в TComplex
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.07.2016, 08:19
Ответы с готовыми решениями:

Создание пользовательской функции
Как заставить работать пользовательскую функцию. На Делфи это делал, а на С++ не знаю. Есть проект, в нем приходится часто делать...

Создание пользовательской функции
Прошу Вас! Cоздайте функцию пользователя z=e^-x*корень |x^3 - у^3|корень закр. - x^2/y Очень Вас прошу помочь Заранее благодарен!

Создание и вызов пользовательской функции
Создаю пользовательскую функцию применения границ ячеек и пытаюсь вызвать ее с аргументом. Выдает ошибку Option Explicit Public...

3
100 / 95 / 23
Регистрация: 30.08.2015
Сообщений: 457
15.07.2016, 09:36  [ТС]
Цитата Сообщение от densy Посмотреть сообщение
result = array
если эту строку заменить на
VB.NET
1
result = array(0)
то работает
0
100 / 95 / 23
Регистрация: 30.08.2015
Сообщений: 457
17.07.2016, 03:11  [ТС]
TComplex - только один из типов переменных реализованный в враппере
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Imports System.Reflection
Imports NetEFI
Imports System.IO
 
Public Class readfile
 
    Implements IFunction
    Private _info As FunctionInfo
 
    Public ReadOnly Property Info() As FunctionInfo Implements IFunction.Info
        Get
            Return _info
        End Get
    End Property
 
    Public Sub New()
 
        _info = New FunctionInfo("readfile", "filepatch", "dilimited", _
            New Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath, _
            GetType(String), _
            New Type() {GetType(String), GetType(String), GetType(TComplex), GetType(TComplex), GetType(TComplex)}) ', GetType(TComplex(,))
    End Sub
 
    Public Function GetFunctionInfo(ByVal lang As String) As FunctionInfo Implements IFunction.GetFunctionInfo
 
        Return Info
    End Function
    Private Function readf(dfile As String, dilimited As String, n As Integer, z As Integer, x As Integer) As String
        On Error Resume Next
        If File.Exists(dfile) Then
            Dim sReader As New System.IO.StreamReader(dfile, System.Text.Encoding.UTF8)
            Dim sArray As String()
            Dim I As Integer = 0
            Do While sReader.Peek >= 0
                ReDim Preserve sArray(I)
                sArray(I) = sReader.ReadLine
                I += 1
            Loop
            If Not IsNothing(sArray) Then
                Dim rows As Integer = sArray.Length - 1
                Dim cols As Integer = sArray(0).Split(dilimited).Length - 1
                If n = 1 Then
                    readf = rows.ToString
                    rows = Nothing
                ElseIf n = 2 Then
                    readf = cols.ToString
                    cols = Nothing
                ElseIf n = 3 Then
                    Dim _array As String()
                    Dim array(rows, cols) As String
                    For K As Integer = 0 To rows
                        For J As Integer = 0 To cols
                            _array = sArray(K).Split(New Char() {dilimited})
                            array(K, J) = _array(J)
                        Next
                    Next
                    readf = array(z, x)
                    Erase array
                    Erase _array
                End If
            Else
                readf = "null"
            End If
            Erase sArray
            sReader.Close()
        Else
            readf = "error file patch"
        End If
    End Function
 
    Public Function NumericEvaluation(ByVal args As Object(), ByRef result As Object) As Boolean Implements IFunction.NumericEvaluation
 
 
        Dim dfile = DirectCast(args(0), [String])
        Dim dilimited = DirectCast(args(1), [String])
        Dim n = CInt(DirectCast(args(2), TComplex).Real)
        Dim z As Integer = CInt(DirectCast(args(3), TComplex).Real)
        Dim x As Integer = CInt(DirectCast(args(4), TComplex).Real)
 
        result = readf(dfile, dilimited, n, z, x)
    End Function
 
End Class
0
 Аватар для уни
368 / 146 / 17
Регистрация: 06.03.2010
Сообщений: 327
Записей в блоге: 1
11.08.2016, 14:38
Вообще говоря, netefi - это экспериментальная штука. Лучше смотреть последние версии исходников и тестов на github'е.

Помочь пока не могу (если есть вопросы), т.к. занят очень.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.08.2016, 14:38
Помогаю со студенческими работами здесь

Создание пользовательской функции и ее использование
подскажите пожалуйста как создать пользовательскую функцию z= корень из x^2 + y^2. А также использовать эту пользовательскую функцию z=...

Создание пользовательской функции с параметрами
Как в c# windows forms создать функцию со своими параметрами, пробовал стандартным методом: public void myFunction(string...

Создание пользовательской функции в Excel
Помогите решить данную задачу в Excel используя Visual Basic (ALT+F11) Вот типа того: Function stom(a, b) If a > 10 Then stom =...

Создание пользовательской функции в Excel, VBA
Добрый день. Столкнулся с проблемой создания пользовательской функции в MS Excel, используя VBA. Если я правильно понял, это и есть...

Создание пользовательской функции с неопределенным количеством параметров
Написать пользовательскую функцию ч неопределенным количеством параметров. Функция возвращает среднее положительное.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru