الخميس، 1 سبتمبر 2011

استخدام اكثر من لغة برمجية في برنامج واحد (حل ورسم الأعداد المركبة complex number)

كيف نحل مسائل الاعداد المركبة  ونرسمها بواسطة (vb.net2008)
ماهو العدد المركب ؟؟ للعدد المركب صيغتان
1.الصيغة المثلثية
X+iy
2.الصيغة الدائرية (القطبية)
(z=r*exp(jtheta
يتكون العدد المركب من جزئيين حقيقي وخيالي

قد تعطى لنا مسئلة مكونة من مجموعة اعداد مركبة مضروبة ببعضها اومقسومة بصيغة دائري polar اومثلثي ومطلوب منا رسمها وحلها

خطوات التصميم:
1. نفتح VB.NET نكون برنامج بدوت نت ذو واجه كهذه 





2. لنبدء بالماتلاب  Matlab  نفتح ملف جديد (M-file) ونكتب فيه هذه الدالة ونحفظها التي ستعطينا الجزء الحقيقي والخيالي لاي عدد مركب او معادلة عدد مركب تحلها وتعطينا فقط الجزء الحقيقي والجزء الخيالي

(function [y]=drawingcomplex(string12  


try 

    ;(z=eval(string12  
;(y(1)=real(z  
;(y(2)=imag(z 
catch 
    y='error cannot find this result  
end 
  
end

تقوم هذا الدالة بتحويل السلسلة المرسلة من الأعداد المركبة الى عدد واحد حقيقي واخر خيالي وتعيدهم في مصففوفة


3.نكتب في (command windows) امر (deploytool) ونظبط التالي (نكتب اسم الملف ومكان حفظه حتى نستدعي فيما بعد من مكان حفظه ) و (target) نجعله .net assembly


الان نكون كلاس جديد نسمية ( class1) ونضف اليه الفاكشن التي كونها بسحب والأفلات



 نعمل له build من قائمة الخيارات سوف يكون لنا ملف امتداده DLL  ويخزنه في الامتداد الذي  اخترنا لحفظه فيه




4. نفتح واجهة فيجوال vb.net2008 ونضيف الدالة التي كونها بصيغة (dll) الى البرنامج عن طريق  عن طريق Add refrence

5.نضيف ملف ال DLL الموجود بهذا المسار الخاص بالتعامل مع المصفوفات
وهو MWArray.dll   لانه سيعيد لنا من الماتلاب البيانات بشكل مصفوفة بموقعين موقع للحقيقي وموقع للخيالي موجود في المسار التالي
\C:\Program Files\MATLAB\R2010a\toolbox\dotnetbuilder\bin\win3 2\v2.0


هذا كود لأيجاد x,iy من اي سلسلة يدخلها المستخدم  .


 Public ax As Double 
    Public ay As Double
  Dim eqution1 As MWArray = Nothing
Dim test As New Class1
                'عرفنا كائن من نوع الكلاس الذي صممناه بالماتلاب
               
eqution1 = test.drawingcomplex(fdrawtxt.Text)
         
                ax = Convert.ToDouble(Convert.ToString(eqution1(1)))
                ay = Convert.ToDouble(Convert.ToString(
eqution1(2)))


ويتم استدعاء المكاتب التالية 
Imports MathWorks.MATLAB.NET.Arrays
Imports MathWorks.MATLAB.NET.Utility
Imports dotnetMatlabDraw




نفتح نافذة (Code) ونبدء بكتابة الخاص بالمثال تجدها في المثال المرفق .




إرسال تعليق