دورة LINQ

الحجم: px
بدء العرض من الصّفحة:

Download "دورة LINQ"

النسخ

1 دورة LINQ Language-Integrated Query بقلم: محمد سامر أبو سلو هذا الكتاب عتبر دورة تعر ف ة بتقن ة Linq نشرح ف ها التقن ات الجد دة ف ف جول ستود و 2008 والمتعلقة بهذه التقن ة مع شرح لص ؽة كتابة االستعالمات باستخدامها وذلك عبر مزوداتها المختلفة مع العد د من األمثلة التوض ح ة

2 2

3 فهرس الموضوعات العنوان مقدمة مزودات Linq - LINQ Providers بن ة استعالمات Linq معامالت استعالم Linq مواض ع متعلقة بتقن ة Linq البد من اإلطالع عل ها... االستدالل المحل على النوع Local Type Inference... األنواع المجهولة Anonymous Types Lambda Expressions تعاب ر لمدا ف العمق Object Initializers... ترق ة مشار ع 2005 لتعمل على 2008 ثم إضافة دعم Linq لتلك المشار ع Linq وأساس ات استعالمات Linq To Object Linq To DataSet مثال عمل على Linq To DataSet مع استخدام Lambda Expressions مقدمة ف Linq to XML بعض استخدامات Linq TO XML تعرؾ على Linq to SQL و O/R Designer Linq To Sql Master/Detail مثال سر ع عن ك ف ة إنشاء فئات Linq To SQL دو ا أمثلة على استعالمات Linq االستعالمات المترجمة Compiled Queries رقم الصفحة

4 دورة LINQ بسم اهلل الرمحن الرحيم يقذية تض ؾ Linq إمكان ات استعالم ة بإمكان ات بس طة وقو ة لف جول با ز ك عندما تتعامل مع العد د من أنواع الب انات المختلفة فباإلضافة إلى إرسال االستعالم إلى قاعدة ب انات ك تتم معالجته أو العمل مع ص ؽة مختلفة لالستعالم لكل نوع من أنواع الب انات الت تقوم بالبحث عنها. تقدم Linq االستعالمات كجزء من لؽة ف جول با ز ك مستخدمة ص ؽة موحدة بؽض النظر عن نوع الب انات الذي تستخدمه. وه تمكنك من االستعالم عن الب انات من قاعدة ب انات SQL Server أو Xml أو المجموعات والمصفوفات ف الذاكرة أو ADO.net Datasets األمر الذي جعلها قادرة على االستعالم من أي قاعدة ب انات مكن ربطها مع DataSet أو أي مصدر ب انات محل أو بع د دعم Linq ح ث مكنك عمل ذلك كله باستخدام عناصر لؽة ف جول با ز ك الشائعة ألن استعالماتك أصبحت مكتوبة بلؽة ف جول با ز ك ونتائج االستعالم تعاد كؤؼراض أنواع ب انات قو ة داعمة IntelliSense مما جعل كتابتك للكود أسرع واكتشافك لألخطاء ف االستعالمات عند ترجمة المشروع بدال من وقت التنف ذ كما أن استعالمات Linq مكن أن تكون مصدرا الستعالمات إضاف ة لمز د من الدقة ف البحث. كما مكن ربطها مع التحكمات ممكنا المستخدم من استعراض وتعد ل نتائج استعالمك بسهولة. وهذا مثال عن استعالم بس ط ع د قائمة شركات الزبائن الموجود ن ف إ طال ا Dim itacus = From cus In NwDs.Customers _ Where cus.country = "Italy" _ Select cus.contactname, cus.companyname دعنا ال نقلق اآلن بخصوص ص ؽة االستعالم على كل حال إن كنت متمكنا من كتابة استعالمات س كول س رفر لن تجد صعوبة ف فهم ص ؽتها بما أن الص ؽة مشابهة مع بعض االختالفات طبعا واالستعالم السابق ماثل استعالم س كول س رفر التال SELECT COMPANYNAME FROM CUSTOMERS WHERE COUNTRY='Italy' كما مكن أن كون استعالم Linq أكثر تعق د فالكود التال ع د قائمة بالزبائن و ع د تجم عهم حسب الموقع Dim customers As List(Of Customer) = GetCustomerList() Dim customersbycountry = From cust In customers _ Order By cust.country, cust.city _ Group By CountryName = cust.country _ Into RegionalCustomers = Group, Count() _ Order By CountryName For Each country In customersbycountry Console.WriteLine(country.CountryName & _ " (" & country.count & ")" & vbcrlf) For Each customer In country.regionalcustomers Console.WriteLine(vbTab & customer.companyname & _ " (" & customer.city & ")") Next Next ح ث مكننا استخدام استعالم Linq ف برنامجنا بعدة أشكال فالمثال األول مثال مكننا عرض نت جته ف DataGrid مباشرة Me.DataGridView1.DataSource = itacus.tolist 4

5 أو مكننا إدخاله ضمن حلقة الشركات ف ListBox For Each مثال واستخدام النتائج فف المثال التال نستخدم االستعالم الوارد بالمثال األول إلظهار قائمة Me.ListBox1.Items.Clear() For Each cust In itacus Me.ListBox1.Items.Add(cust.CompanyName) Next LINQ Providers - يزودات Linq Linq ؤخذ المزود قوم مزود Linq بتنظ م استعالمات Linq ف ف جول با ز ك بحسب مصدر الب انات الذي تستخدمه فعندما تكتب استعالم ذلك االستعالم و ترجمه إلى أوامر ستط ع مصدر الب انات تنف ذها و قوم أ ضا بتحو ل الب انات من األؼراض المصدر ة ل شكل نتائج االستعالم وأخ را قوم بتحو ل األؼراض إلى ب انات عندما ترسل التحد ثات للمصدر. و ضم ف جول با ز ك مزودات Linq التال ة: Linq to Objects مكنك هذا المزود من االستعالم ف المجموعات والمصفوفات ف الذاكرة إذا كانت ؼرضك دعم الواجهة IEnumerable(T) بح ث مكنك المزود من االستعالم عنها و مكنك تمك ن هذا المزود باست راد IEnumerable أو الواجهة المجال System.Linq والذي كون مستوردا بشكل افتراض ف مشار ع ف جول با ز ك SQL Server والتحد ث إل ها و جعل من السهل ربط أؼراض Linq to SQL مكنك هذا المزود من االستعالم من قواعد ب انات التطب ق مع الجداول واألؼراض ف قواعد الب انات. و سهل ف جول با ز ك العمل مع Linq to SQL بتقد م Object Relational O/R ف التطب ق رتبط مع األؼراض ف قاعدة الب انات و قدم ال Object Model والذي مكنك من إنشاء Designer DataContext الذي د ر االتصال مع قاعدة Designer إمكان ة التعامل مع اإلجراءات والوظائؾ المخزنة وإجراءات الؽرض الب انات و خزن الحالة من أجل تصادم الب انات التفاإل Xml الموجودة ف الذاكرة أو مكنك Xml والتعد ل عل ها بح ث مكنك تعد ل محتو ات Linq to Xml مكنك من االستعالم من تحم ل ملؾ Xml أو حفظه Linq للتطب قات الت تستخدم ADO.net Datasets والتعد ل عل ها وإضافة قوة Linq to Dataset مكنك من االستعالم من Datasets تسهل وتوسع إمكان ات االستعالم والتجم ع والتحد ث ف ال Dataset ف تطب قك 5

6 بنية اسحعاليبت Linq شار عادة إلى استعالم Linq بتعب ر االستعالم وهو تؤلؾ من تول فة من تراك ب االستعالم الت تحدد مصدر الب انات ومتؽ رات التكرار الخاصة باالستعالم كما مكنه أن تضمن تعل مات من أجل الفرز أو التصف ة أو التجم ع أو الضم أو الحساب ل تم تطب قها على الب انات المصدر ة وص ؽتها تكون مشابهة لص ؽة ال SQL ولهذا ستجد أن معظم الص ؽة مؤلوفة. بدأ االستعالم بقسم From الذي حدد مصدر الب انات والمتؽ رات الت تش ر إلى كل عنصر من الب انات المصدر ة بشكل مستقل وه تدعى بمتؽ رات المجال أو متؽ رات التكرار وقسم From مطلوب من أجل االستعالم إال ف استعالمات التجم ع Aggregate ح ث كون قسم From ف ها اخت اري وبعد تعر ؾ مجال ومصدر االستعالم ف قسم From أو ف قسم Aggregate مكنك تضم ن أي ترك ب من أقسام االستعالم. فمثال االستعالم التال حدد مصدر مجموعة من ب انات الزبائن بالمتؽ ر Customers ومتؽ ر التكرار cust Dim queryresults = From cust In customers _ Select cust.companyname وهذا المثال شكل استعالم مقبول بذات نفسه ومع ذلك صبح االستعالم أقوى عندما تض ؾ أقسام استعالم أخرى لتحد د النتائج فمثال مكنك إضافة قسم Where لتصف ة النتائج إلى ق مة أو أكثر وتكون تعاب ر االستعالم عبارة عن سطر واحد من الكود بح ث مكنك إضافة أقسام استعالم جد دة لنها ة االستعالم كما مكنك فصل االستعالم إلى عدة أسطر لتحس ن قراءة كودك باستخدام المحرؾ _ و مثل الكود التال استعالما ستخدم قسم Where Dim queryresults = From cust In customers _ Where cust.country = "USA" و مثل قسم select قسم قوي آخر ف االستعالم ح ث مكنك من إعادة الحقول المختارة فقط من مصدر الب انات وتع د استعالمات Linq مجموعة تعداد ة من األؼراض القو ة النوع كما مكنها إعادة أنواع مجهولة أو أنواع معروفة. و مكن استخدام قسم select للعودة بحقل واحد فقط من مصدر الب انات وعندما تفعل هذا كون نوع المجموعة المعادة هو نوع ب انات ذلك الحقل. وعندما ع د قسم Select مجموعة من الحقول من مصدر الب انات تكون المجموعة المعادة من النوع المجهول و مكنك مطابقة الحقول المعادة من االستعالم مع حقول من نوع معروؾ محدد و ظهر الكود التال تعب ر استعالم ع د مجموعة نوعها مجهول تضم أرقاما مع ب انات من الحقل المحدد من مصدر الب انات Dim queryresults = From cust In customers _ Where cust.country = "USA" _ Select cust.companyname, cust.country مكن استخدام استعالمات Linq لدمج عدة مصادر من الب انات ف نت جة واحدة ح ث مكن عمل هذا باستخدام قسم From واحد أو أكثر أو باستخدام أقسام Join أو Group Join و ظهر الكود التال تعب ر استعالم ضم ب انات Customer و Order و ع د مجموعة من نوع مجهول تحتوي ب انات من Customer و Order Dim queryresults = From cust In customers, ord In orders _ Where cust.customerid = ord.customerid _ Select cust, ord مكنك استخدام قسم Group Join لبناء استعالمات شجر ة تحتوي مجموعة من أؼراض Customer وكل ؼرض Customer متلك خاص ة تحتوي مجموعة تتضمن جم ع أؼراض order لذلك الزبون. و ظهر المثال التال تعب ر استعالم دمج ب انات Customer و Order كنت جة شجر ة و ع د مجموعة من نوع مجهول و ع د االستعالم نوعا تضمن الخاص ة CustomerOrders تحتوي على مجموعة تحتوي على مجموعة من ب انات Order وب انات Customer وتتضمن أ ضا الخاص ة OrderTotal تحتوي على مجموع إجمال الطلبات لذلك الزبون Dim queryresults = From cust In customers _ Group Join ord In orders On _ cust.customerid Equals ord.customerid _ Into CustomerOrders = Group, _ OrderTotal = Sum(ord.Total) _ Select cust.companyname, cust.customerid, _ CustomerOrders, OrderTotal 6

7 يعبيالت اسحعالو Visual Basic LINQ Query Operators - Linq تتضمن الفئات ف المجال System.Linq والمجاالت الت تدعم Linq طرائق مكنك استدعاإها إلنشاء االستعالمات وتول ها بحسب حاجة التطب ق و تضمن ف جول با ز ك كلمات مفتاح ة ألقسام االستعالم الشائعة From Clause جب أن بدأ االستعالم بقسم From أو Aggregate و حدد قسم From المجموعة المصدر أو متؽ ر التكرار لالستعالم ' Returns the company name for all customers for whom ' State is equal to "WA". Dim names = From cust In customers _ Where cust.state = "WA" _ Select cust.companyname ' Returns the company name and ID value for each ' customer as a collection of a new anonymous type. Dim customerlist = From cust In customers _ Select cust.companyname, cust.id Select Clause اخت اري حدد مجموعة من متؽ رات التكرار لالستعالم و إن لم كن قسم Select موجودا ف االستعالم فتتؤلؾ متؽ رات التكرار لالستعالم من تلك المحددة ف قسم From أو Aggregate ' Returns all product names for which the Category of ' the product is "Beverages". Dim names = From product In products _ Where product.category = "Beverages" _ Select product.name Where Clause اخت اري و حدد شرط التصف ة لالستعالم ' Returns a list of books sorted by price in ' ascending order. Dim titlesascendingprice = From b In Books _ Order By b.price Dim Intrst = From i In DsDesposits.InterestRates_ Join d In DsDesposits.Deposits_ On i.interestid Equals d.interestid_ Select i.interestid, i.interestrate, i.depositpreiod Order By Clause اخت اري و حدد ترت ب الفرز لألعمدة ف االستعالم Join Clause اخت اري و دمج مجموعت ن ضمن مجموعة واحدة Group by Clause اخت اري و قوم بتجم ع عناصر نت جة االستعالم و مكن استعماله لتطب ق إجراءات تجم ع لكل مجموعة ' Returns a list of orders grouped by the order date ' and sorted in ascending order by the order date. Dim orders = From order In orderlist _ Order By order.orderdate _ Group By OrderDate = order.orderdate _ Into OrdersByDate = Group 7

8 ' Returns a combined collection of customers and ' customer orders. Dim customerlist = From cust In customers _ Group Join ord In orders On _ cust.customerid Equals ord.customerid _ Into CustomerOrders = Group, _ OrderTotal = Sum(ord.Total) _ Select cust.companyname, cust.customerid, _ CustomerOrders, OrderTotal Group Join Clause اخت اري و جمع مجموعت ن ضمن مجموعة شجر ة واحدة Aggregate Clause جب بدء االستعالم دوما إما بقسم From أو قسم Aggregate وقسم Aggregate طبق واحدة أو أكثر من وظائؾ التجم ع على المجموعة فمثال مكن استخدام قسم Aggregate لحساب مجموع جم ع العناصر المعادة باالستعالم ' Returns the sum of all order totals. Dim ordertotal = Aggregate order In Orders _ Into Sum(order.Total) كما مكنك استخدام قسم Aggregate لتعد ل االستعالم فمثال مكن استخدام قسم Aggregate إلجراء عمل ة حساب ة على مجموعة استعالم ' Returns the customer company name and largest ' order total for each customer. Dim customermax = From cust In customers _ Aggregate order In cust.orders _ Into MaxOrder = Max(order.Total) _ Select cust.companyname, MaxOrder Let Clause اخت اري و قوم بحساب ق مة و ضعها ف متؽ ر جد د ' Returns a list of products with a calculation of ' a ten percent discount. Dim discountedproducts = From prod In products _ Let Discount = prod.unitprice * 0.1 _ Where Discount >= 50 _ Select prod.productname, prod.unitprice, Discount ' Returns a list of cities with no duplicate entries. Dim cities = From item In Customers _ Select customer.city_ Distinct Distinct Clause اخت اري وهو ضبط الق م المعادة من االستعالم بح ث ال جلب ق ما مكررة ' Returns a list of customers. The first 10 customers ' are ignored and the remaining customers are ' returned. Dim customerlist = From cust In customers _ Skip 10 Skip Clause اخت اري تجاوز عددا مع نا من العناصر ف المجموعة و ع د الباق 8

9 ' Returns a list of customers. The query ignores all ' customers until the first customer for whom ' IsSubscriber returns false. That customer and all ' remaining customers are returned. Dim customerlist = From cust In customers _ Skip While IsSubscriber(cust) Skip While Clause اخت اري تجاوز عناصر المجموعة طالما ق مة الشرط True ثم ع د باق العناصر ' Returns the first 10 customers. Dim customerlist = From cust In customers _ Take 10 Take Clause اخت اري و ع د عددا من العناصر المتجاورة ف بدا ة المجموعة Take While Clause اخت اري قوم بتضم ن عناصر المجموعة طالما ق مة الشرط True و تجاهل بق ة العناصر ' Returns a list of customers. The query returns ' customers until the first customer for whom ' HasOrders returns false. That customer and all ' remaining customers are ignored. Dim customerswithorders = From cust In customers _ Order By cust.orders.count Descending _ Take While HasOrders(cust) كما مكنك استخدام خصائص إضاف ة الستعالم Linq باستدعاء عناصر المجموعات واألنواع المستعلم عنها الت وفرها Linq ح ث مكنك استخدام هذه اإلمكان ات اإلضاف ة باستدعاء معامل استعالم على نت جة االستعالم فمثال الكود التال ستخدم الطر قة Union لدمج ناتج استعالم ن ف نت جة استعالم واحدة و ستخدم الطر قة ToList(TSource) إلعادة ناتج االستعالم كقائمة Public Function GetAllCustomers() As List(Of Customer) Dim customers1 = From cust In domesticcustomers Dim customers2 = From cust In internationalcustomers Dim customerlist = customers1.union(customers2) Return customerlist.tolist() End Function 9

10 يىاضيع يحعهقة بحقنية Linq البذ ين اإلطالع عهيهب االسحذالل ان حهي عهى اننىع Local Type Inference ستخدم المترجم ف ف جول با ز ك 2008 االستدالل على النوع Type Inference لتحد د نوع المتؽ رات المحل ة الت تم التصر ح عنها بدون استخدام فقرة As ف تعب ر التصر ح ح ث ستدل المترجم على نوع المتؽ ر من نوع التعب ر الذي ضبط ق مة ذلك المتؽ ر مما وفر إمكان ة تعر ؾ المؽ رات بدون تحد د نوعها كما ف المثال التال Public Sub inferenceexample() End Sub ' Using explicit typing. Dim num1 As Integer = 3 ' Using local type inference. Dim num2 = 3 وال مكن استخدام االستدالل على النوع عند تعر ؾ الحقول ف الفئة Class Fields فإن كان num2 ف المثال السابق حقال ف فئة بدال عن كونه متؽ را محل ا فسوؾ ولد التصر ح خطؤ إذا كان Option Strict On وسوؾ صنؾ num2 على أنه ؼرض Object إن كان Option Strict Off وبشكل مشابه فنوع المتؽ رات الساكنة Static Variables ال مكن االستدالل عل ها إن كان Option Strict On وإن كان Option Strict Off فنوع المتؽ ر الساكن س كون ؼرض Object فإن لم تكن تر د من المتؽ ر num2 ف المثال السابق أن كون من النوع Integer ف مكنك تحد د نوعا آخر عند التصر ح عنه Dim num3 As Object = 3 or Dim num4 As Double = 3 والكود الذي ستخدم استدالل النوع شابه الكود الذي عتمد على الربط المتؤخر Late Binding الذي س كون نوعه معروفا فقط ف زمن التشؽ ل. ومعرفة النوع بشكل مبكر مكن المترجم من تحد د المشاكل قبل التنف ذ وحجز الذاكرة بدقة وإجراء عمل ات التحس ن األخرى باإلضافة إلى تمك ن ب ئة التطو ر من تزو د المبرمج ب IntelliSense والمساعدة حول أعضاء ذلك الؽرض باإلضافة إلى تفض له العتبارات خاصة باألداء بسبب أن جم ع الب انات الت تخزن باستخدام الربط المتؤخر جب تؽل فها وكؤنها من النوع Object والوصول إلى األعضاء ف زمن التشؽ ل س كون أبطؤ. حدث االستدالل على النوع عندما تم التصر ح عن المتؽ ر بدون استخدام فقرة As ف تعب ر التصر ح وضبط ق مة لذلك المتؽ ر ف ستخدم المترجم نوع تلك الق مة كنوع للمتؽ ر فمثال سطور الكود التال ة تعرؾ متؽ را من النوع String ' Using explicit typing. Dim name1 As String = "Springfield" ' Using local type inference. Dim name2 = "Springfield" و ستعرض الكود التال طر قتان متكافئتان إلنشاء مصفوفة من النوع Integer ' Using explicit typing. Dim somenumbers1() As Integer = New Integer() {4, 18, 11, 9, 8, 0, 5} ' Using local type inference. Dim somenumbers2 = New Integer() {4, 18, 11, 9, 8, 0, 5} 10

11 كما مكنك استخدام االستدالل على النوع لتحد د نوع متؽ ر التحكم لحلقة تكرار ة فف الكود التال س تعرؾ المترجم على النوع Integer ألن somenumbers2 عبارة عن مصفوفة Integer num بؤنه من Dim total = 0 For Each number In somenumbers2 total += number Next و ستخدم االستدالل على النوع ف العبارة Using أ ضا لتحد د نوع اسم المصدر كما هو واضح ف المثال التال Using proc = New System.Diagnostics.Process ' Insert code to work with the resource. End Using و ستدل على نوع المتؽ ر من الق مة المعادة من اإلجراء أ ضا كما هو ظاهر ف الكود التال ح ث كونpList1 و plist2 عبارة عن Lists of Processes ' Using explicit typing. Dim plist1() As Process = Process.GetProcesses() ' Using local type inference. Dim plist2 = Process.GetProcesses() وقد قدم ف جول با ز ك 2008 خ ارا جد دا هو Option Infer مكنك من تحد د إذا كان االستدالل المحل على النوع مسموحا أم ال ف ملؾ مع ن. فلتمك ن أو تعط ل خ ار االستدالل على النوع اكتب التعب ر المناسب من السطر ن التال ن ف بدا ة الملؾ Option Infer On Option Infer Off وإن لم تقم بتحد د ق مة للخ ار Option Infer ف الكود فالمترجم س ستخدم الخ ار االفتراض Option Infer On من أجل المشار ع الت تم إنشاإها ف Visual Basic 2008 والخ ار Option Infer Off من أجل المشار ع الت تمت ترق تها من إصدارات سابقة. وإن تضاربت ق مة الخ ار Option Infer ف الملؾ مع الق مة المضبوطة ف خ ارات ب ئة التطو ر أو ف سطر األوامر فسوؾ تم استخدام الق مة الموجودة ف الملؾ. Class Fields أو و ستخدم االستدالل على النوع فقط ف المتؽ رات الؽ ر ساكنة الخصائص Properties أو اإلجراءات Functions Non-Static وال مكن استخدامها ف تعر ؾ حقول الفئة 11

12 األنىاع ان جهىنة Anonymous Types قدم ف جول ستود و 2008 األنواع المجهولة anonymous types والت تمكنك من إنشاء األؼراض Objects بدون كتابة تعر ؾ فئة Class definition من أجل نوع الب انات وعوضا عن ذلك ولد المترجم الفئة من أجلك ولن كون للفئة اسما قابال لالستخدام ح ث تكون هذه الفئات موروثة مباشرة من Object وتمتلك الخصائص الت تحددها عند تعر ؾ الؽرض Object وبما أن نوع الب انات لم تم تحد ده تم اإلشارة إل ه على أنه نوع مجهول.anonymous type ح ث صرح المثال التال عن المتؽ ر product كمتؽ ر من النوع Price و Name ممتلكا الخاص ت ن anonymous type ' Variable product is an instance of a simple anonymous type. Dim product = New With {Key.Name = "paperclips",.price = 1.29} ح ث ستخدم تعب ر االستعالم التال األنواع المجهولة لدمج أعمدة الب انات المحددة بواسطة االستعالم وبما أنه ال مكنك تحد د نوع النت جة مقدما بسبب عدم إمكان ة التنبإ باألعمدة الت مكن أن ختارها استعالم مع ن فتمكنك األنواع المجهولة من كتابة استعالم ختار عدد من األعمدة بؤي ترت ب نر ده ف قوم المترجم بإنشاء نوع الب انات المماثل لتلك الخصائص المحددة بذلك الترت ب المع ن. وف المثال التال كون Products عبارة عن قائمة من أؼراض Product وكل منها متلك خصائص عد دة بح ث حمل المتؽ ر namepricequery تعر ؾ االستعالم الذي ع د عند تنف ذه مجموعة من األنواع المجهولة الت تمتلك الخاص ت ن Name و Price Dim namepricequery = From prod In products_ Select prod.name, prod.price والمتؽ ر namequantityquery OnHand و Name تعر ؾ حمل األنواع من مجموعة تنف ذه عند ع د الذي االستعالم خاص ت ن تمتلك الت المجهولة Dim namequantityquery = From prod In products_ Select prod.name, prod.onhand تعريف نوع مجهول Declaring an Anonymous Type تعر ؾ متؽ ر من نوع مجهول ستخدم قائمة بناء لتحد د خصائص ذلك النوع بح ث مكنك تحد د هذه الخصائص فقط عند اإلعالن عن النوع المجهول وال مكن استخدام بق ة عناصر الفئات مثل الطرائق واألحداث ف األنواع المجهولة فف المثال التال كون Product1 من نوع مجهول متلك خاص ت ن Name و Price 'Variable product1 is an instance of a simple anonymous type. Dim product1 = New With {.Name = "paperclips",.price = 1.29} - 'or- 'product2 is an instance of an anonymous type with key properties. Dim product2 = New With {Key.Name = "paperclips", Key.Price = 1.29} فإن قمت بتحد د الخصائص كخصائص مفتاح ة key properties أصبح بإمكانك استخدامها لمقارنة نوع ن مجهول ن هل هما متساو ن أم ال ومع ذلك فق م الخصائص المفتاح ة ال مكن تؽ رها فه للقراءة فقط. مع مالحظة أن التصر ح عن نوع مجهول ماثل التصر ح عن نوع مسمى باستخدام بان الؽرض object initializer 'Variable product3 is an instance of a class named Product. Dim product3 = New Product With {.Name = "paperclips",.price = 1.29} انخصبئص ان فحبحية Key Properties تختلؾ الخصائص المفتاح ة عن العاد ة بعدة أمور: تستخدم الخصائص المفتاح ة فقط لمقارنة المساواة ب ن نوع ن مجهول ن ال مكن تؽ ر ق م الخصائص المفتاح ة فه دائما للقراءة فقط فقط الخصائص المفتاح ة تم تضم نها ضمن ال Hash Code الذي ولده المترجم من أجل األنواع المجهولة 12

13 ان سبواة Equality تكون متؽ رات األنواع المجهولة متساو ة عندما تكون متؽ رات لنفس النوع المجهول و قوم المعالج بمعاملة متؽ ر ن كمتؽ ر ن من نفس النوع إذا توفرت ف هما الشروط التال ة تم التصر ح عنهما ف نفس المجمع تمتلك خصائصهما نفس االسم والنوع وتم التصر ح عنها بنفس الترت ب وتكون مقارنة األسماء ؼ ر حساسة لحالة األحرؾ نفس الخصائص ف ها محددة كخصائص أساس ة متلك كل نوع خاص ة أساس ة واحدة على األقل والتصر ح عن نوع مجهول الذي ال متلك أي خاص ة مفتاح ة كون مساو ا لنفسه فقط 'prod1 and prod2 have no key values. Dim prod1 = New With {.Name = "paperclips",.price = 1.29} Dim prod2 = New With {.Name = "paperclips",.price = 1.29} 'The following line displays False, because prod1 and prod2 have no 'key properties. Console.WriteLine(prod1.Equals(prod2(( 'The following statement displays True because prod1 is equal to itself. Console.WriteLine(prod1.Equals(prod1(( وتكون ق مة متؽ ر ن لنفس النوع المجهول متساو ن إذا كانت ق مة خصائصهما المفتاح ة متساو ة كما ف المثال التال الذي وضح ك ف ة فحص هذه المساواة Dim prod3 = New With {Key.Name = "paperclips", Key.Price = 1.29} Dim prod4 = New With {Key.Name = "paperclips", Key.Price = 1.29} 'The following line displays True, because prod3 and prod4 are 'instances of the same anonymous type, and the values of their 'key properties are equal. Console.WriteLine(prod3.Equals(prod4(( Dim prod5 = New With {Key.Name = "paperclips", Key.Price = 1.29} Dim prod6 = New With {Key.Name = "paperclips", Key.Price = 1.29, OnHand = 423} 'The following line displays False, because prod5 and prod6 do not 'have the same properties. Console.WriteLine(prod5.Equals(prod6(( Dim prod7 = New With {Key.Name = "paperclips", Key.Price = 1.29, OnHand = 24} Dim prod8 = New With {Key.Name = "paperclips", Key.Price = 1.29, OnHand = 423} 'The following line displays True, because prod7 and prod8 are 'instances of the same anonymous type, and the values of their 'key properties are equal. The equality check does not compare the 'values of the non-key field. Console.WriteLine(prod7.Equals(prod8(( انقيى انقببهة نهقراءة فقط ال مكن تؽ ر ق م الخصائص المفتاح ة فمثال ف prod8 ف المثال السابق الحقول Name و Price قابلة للقراءة فقط ف ح ن أن الحقل OnHamd مكن تؽ ر ق مته 'The following statement will not compile, because Name is a key 'property and its value cannot be changed. 'prod8.name = "clamps" 13

14 'OnHand is not a Key property. Its value can be changed. prod8.onhand = 22 األنواع المجهولة من تعابير االستعالم Anonymous Types from Query Expressions تعاب ر االستعالم ال تتطلب دوما إنشاء أنواع مجهولة فعند اإلمكان مكنها استخدام نوع موجود ل حمل ب انات العمود وهذا حدث عندما ع د االستعالم إما سجالت كاملة من مصدر الب انات أو حقل واحد من كل سجل فف المثال التال كون Customers عبارة عن مجموعة فئات Customer والفئة تمتلك العد د من الخصائص بح ث مكنك تضم ن واحدة أو أكثر من هذه الخصائص ف نتائج االستعالم وبؤي ترت ب تر ده فف المثال ن األول ن ال وجد حاجة ألي نوع مجهول ألن االستعالم جلب عناصر من أنواع معروفة ف Custs1 كون من النوع string ألن cust.name من النوع String و Custs2 هو مجموعة من األؼراض Customers ألن كل عنصر ف Customers هو ؼرض Customer وكامل العنصر تم جلبه بواسطة االستعالم Dim custs1 = From cust In customers_ Select cust.name Dim custs2 = From cust In customers_ Select cust ومع ذلك فاألنواع المسماة ال تكون دائما متوفرة ح ث مكنك االستعالم عن Names و Addresses من أجل هدؾ مع ن و ID و Numbers و Location من أجل هدؾ آخر فهنا تمكنك األنواع المجهولة من اخت ار أ ة ترك بة من الخصائص وبؤي ترت ب بدون أن تضطر ف البدا ة للتصر ح عن نوع مسمى جد د ل حمل النت جة وبدال عن ذلك قوم المترجم بإنشاء نوع مجهول لكل ترك بة من الخصائص فمثال االستعالم التال حدد فقط Name و ID من كل ؼرض Customer ف customers ومن أجل ذلك قوم بإنشاء نوع مجهول من تلك الخصائص Dim custs3 = From cust In customers_ Select cust.name, cust.id وكل من االسم والنوع العائد ن لخصائص النوع المجهول تم أخذها من بارامترات االستعالم cust.name و Cust.Id وتكون خصائص النوع المجهول الت نشئها االستعالم خصائص مفتاح ة دوما وعند تنف ذ cust3 ف حلقة For...Each التال ة تكون النت جة ه مجموعة أنواع مجهولة تمتلك خاص ت ن مفتاح ت ن Name و ID For Each selectedcust In custs3 Console.WriteLine(selectedCust.ID & ": " & selectedcust.name) Next جحذيذ يحى نسحخذو األنىاع ان جهىنة قبل أن تقوم بالتصر ح عن ؼرض بؤنه من نوع مجهول جب عل ك التفك ر ف ما إذا كان هذا الخ ار هو األفضل فمثال إن كنت تر د إنشاء ؼرض مإقت ل حتوي بعض حقول المعلومات ولست بحاجة إلى بق ة الحقول والطرائق الت تحتو ها الفئة الكاملة كون عندها النوع المجهول حال ج دا وتكون األنواع المجهولة مالئمة عندما تر د انتقاء مجموعة مختلفة من الخصائص عند كل تصر ح أو إن كنت تر د تؽ ر ترت ب هذه الخصائص وإن كان مشروعك حتوي على عدة أؼراض تحمل نفس الخصائص بترت ب ثابت مكنك عندها التصر ح عنهم بسهولة باستخدام األنواع المسماة باستخدام بان فئة فعندها باستخدام بان مالئم مكن تعر ؾ عدة متؽ رات من الفئة Product و كون ذلك أسهل من استخدام عدة متؽ رات مجهولة النوع 'Declaring instances of a named type. Dim firstprod1 As New Product("paperclips", 1.29( Dim secondprod1 As New Product("desklamp", 28.99( Dim thirdprod1 As New Product("stapler", 5.09( 'Declaring instances of an anonymous type. Dim firstprod2 = New With {Key.Name = "paperclips", Key.Price = 1.29} Dim secondprod2 = New With {Key.Name = "desklamp", Key.Price = 28.99} Dim thirdprod2 = New With {Key.Name = "stapler", Key.Price = 5.09} وتكمن فائدة أخرى لألنواع المجهولة ف أن المترجم مكنه التقاط األخطاء الطباع ة ف أسماء الخصائص فف المثال السابق فترض باألنواع firstprod2 و secondprod2 و thirdprod2 أن تكون متؽ رات لنفس النوع المجهول ومع ذلك قمت عن طر ق الخطؤ بالتصر ح عن و secondprod2 بؤحد الطرائق الالحقة وهو نوع مختلؾ عن firstprod2 thirdprod2 'Dim thirdprod2 = New With {Key.Nmae = "stapler", Key.Price = 5.09} 'Dim thirdprod2 = New With {Key.Name = "stapler", Key.Price = "5.09"} 14

15 'Dim thirdprod2 = New With {Key.Name = "stapler",.price = 5.09} واألمر األهم هو أنه هناك حدود الستخدام األنواع المجهولة ال تنطبق على األنواع المعروفة فمع أن firstprod2 و secondprod2 و thirdprod2 ه متؽ رات لنفس النوع المجهول فالمتؽ ر المجهول المشترك ؼ ر متوفر وال مكن توقع ظهوره كنوع معروؾ ف الكود فمثال مكن استخدام النوع المجهول لتحد د توق ع الطر قة للتصر ح عن حقل متؽ ر ف كون بالنت جة النوع المجهول ؼ ر مالئم لتبادل الب انات عبر الطرائق 15

16 Lambda Expressions ال Lambda Expression هو وظ فة Function بدون اسم تحتسب وتع د ق مة وح دة كما مكن استخدامها ف التعاب ر الت تطلب إجراءات مفوضة Delegate والمثال التال عن هذه التعاب ر ؤخذ ق مة و ع د الناتج بعد إضافة واحد لها Function (num As Integer) num + 1 Dim add1 = Function(num As Integer) num + 1 Console.WriteLine(add1(5)) كما مكنك إسناد هذه الوظ فة لمتؽ ر وتمر ر الق مة له كما مكنك تعر ؾ وتنف ذ الوظ فة بنفس الوقت Console.WriteLine((Function(num As Integer) num + 1)(5)) كما مكن أن تستخدم Lambda Expressions كق مة معادة عند استدعاء وظ فة أو تمر رها كوس ط إلجراء مفوض فف المثال التال تستخدم Lambda Expressions بول ان ة كوسائط لإلجراء testresult ح ث تطبق الطر قة فحص بول ان لوس ط من النوع Integer و ظهر الق مة Success إذا كانت ق مة Lambda Expression ه True أو Failure إن كانت ق مته False Module Module2 Sub Main() ' The following line will print Success, because 4 is even. testresult(4, Function(num) num Mod 2 = 0) ' The following line will print Failure, because 5 is not > 10. testresult(5, Function(num) num > 10) End Sub ' Sub testresult takes two arguments, an integer value and a ' Boolean function. ' If the function returns True for the integer argument, Success ' is displayed. ' If the function returns False for the integer argument, Failure ' is displayed. Sub testresult(byval value As Integer, ByVal fun As Func(Of Integer, Boolean)) If fun(value) Then Console.WriteLine("Success") Else Console.WriteLine("Failure") End If End Sub End Module Compiler بإنشاء Linq ح ث قوم المترجم Lambda Expressions ه األساس لكث ر من معامالت االستعالم تكون تعاب ر تعاب ر Lambda Expressions للق ام بالعمل ات الحساب ة للطرائق الخاصة باالستعالم مثل Where و Select و Order و By و Take While فعلى سب ل المثال انظر االستعالم التال Dim londoncusts = From cust In db.customers Where cust.city = "London" Select cust ح ث ستتم ترجمته إلى الكود التال Dim londoncusts = db.customers _.Where(Function(cust) cust.city = "London") _.Select(Function(cust) cust) وتكون ص ؽتها على الشكل 16

17 هذه التعاب ر ال تملك اسما ال مكن استخدام المعدالت معها مثل Overloads أو Overrides ال تستخدم قسم AS لتحد د نوع الق مة المعادة وبدال عن ذلك كون نوع الق مة المعادة هو نوع الق مة الت شكلها جسم اإلجراء فإن كان جسم اإلجراء مثال "London" Cust.City = فتكون الق مة المعادة بول ان ة جسم اإلجراء جب أن كون تعب ر ول س تصر ح و مكن أن حتوي على استدعاء لوظ فة إجراء Sub ال وجد تعب ر Return وتكون الق مة المعادة ه ق مة ذلك التعب ر الذي شكل جسم الوظ فة ال وجد تعب ر End Function ولكنه ال مكن أن ستدع جب أن تكون جم ع الوسائط محددة النوع أو تكون جم عها بؤنواع باإلشارة ؼ ر مسموح بالوسائط االخت ار ة الوسائط Generic ؼ ر مسموح بها ونت جة لهذه القواعد سنرى أن أي تعب ر Lambda Expression س كون بس طا وؼ ر معقد تشترك Lambda Expression مع الوظائؾ Methods بؤنها محددة ولها جم ع حقوق الوصول كؤي كود مكتوب ف الطر قة الت تحتو ها وهذا تضمن الوصول إلى متؽ رات األعضاء والوظائؾ وجم ع المؽ رات الموجودة ف الوظ فة الت تحتوي التعب ر Lambda Lambda والطر قة الت تم تحد د التعب ر makethegame هو محل بالنسبة ل target فف المثال التال المتؽ ر Expression Expression ف ها ه playthegame الحظ أن الق مة المعادة من التعب ر Lambda Expression تم تع نها ل takeaguess ف target مازالت تستط ع الوصول للمتؽ ر المحل Main Module Module1 Sub Main() ' Variable takeaguess is a Boolean function. It stores the target ' number that is set in makethegame. Dim takeaguess As gamedelegate = makethegame() ' Set up the loop to play the game. Dim guess As Integer Dim gameover = False While Not gameover guess = CInt(InputBox("Enter a number between 1 and 10 (0 to quit)", "Guessing Game", "0")) ' A guess of 0 means you want to give up. If guess = 0 Then gameover = True Else ' Tests your guess and announces whether you are correct. Method takeaguess ' is called multiple times with different guesses. The target value is not ' accessible from Main and is not passed in. gameover = takeaguess(guess) Console.WriteLine("Guess of " & guess & " is " & gameover) End If End While End Sub Delegate Function gamedelegate(byval aguess As Integer) As Boolean Public Function makethegame() As gamedelegate ' Generate the target number, between 1 and 10. Notice that ' target is a local variable. After you return from makethegame, ' it is not directly accessible. Randomize() Dim target As Integer = CInt(Int(10 * Rnd() + 1)) ' Print the answer if you want to be sure the game is not cheating ' by changing the target at each guess. Console.WriteLine("(Peeking at the answer) The target is " & target) ' The game is returned as a lambda expression. The lambda expression ' carries with it the environment in which it was created. This ' environment includes the target number. Note that only the current ' guess is a parameter to the returned lambda expression, not the target. ' Does the guess equal the target? Dim playthegame = Function(guess As Integer) guess = target 17

18 Return playthegame End Function End Module و ستعرض المثال التال مجاال عر ضا من حقوق الوصول المعششة ف Lambda Expression فعندما تم تنف ذ التعب ر Lambda Expression من Main ك adel ستخدم العناصر التال ة ( حقل ف الفئة afield خاص ة ف الفئة aprop وس ط لإلجرائ ة functionwithnestedlambda هو level1 متؽ ر محل ل functionwithnestedlambda هو localvar وس ط للتعب ر ) المعشش هو level2 Lambda Expression Module Module3 Sub Main() ' Create an instance of the class, with 1 as the value of ' the property. Dim lambdascopedemoinstance = New LambdaScopeDemoClass _ With {.Prop = 1} ' Variable adel will be bound to the nested lambda expression ' returned by the call to functionwithnestedlambda. ' The value 2 is sent in for parameter level1. Dim adel As adelegate = _ lambdascopedemoinstance.functionwithnestedlambda(2) ' Now the returned lambda expression is called, with 4 as the ' value of parameter level3. Console.WriteLine("First value returned by adel: " & adel(4)) ' Change a few values to verify that the lambda expression has ' access to the variables, not just their original values. lambdascopedemoinstance.afield = 20 lambdascopedemoinstance.prop = 30 Console.WriteLine("Second value returned by adel: " & adel(40)) End Sub Delegate Function adelegate(byval delparameter As Integer) _ As Integer Public Class LambdaScopeDemoClass Public afield As Integer = 6 Dim aprop As Integer Property Prop() As Integer Get Return aprop End Get Set(ByVal value As Integer) aprop = value End Set End Property Public Function functionwithnestedlambda _ (ByVal level1 As Integer) As adelegate Dim localvar As Integer = 5 ' When the nested lambda expression is executed the first ' time, as adel from Main, the variables have these values: ' level1 = 2 ' level2 = 3, after alambda is called in the Return statement ' level3 = 4, after adel is called in Main ' locarvar = 5 ' afield = 6 ' aprop = 1 18

19 End Class End Module ' The second time it is executed, two values have changed: ' afield = 20 ' aprop = 30 ' level3 = 40 Dim alambda = Function(level2 As Integer) _ Function(level3 As Integer) _ level1 + level2 + level3 + localvar _ + afield + aprop ' The function returns the nested lambda, with 3 as the ' value of parameter level2. Return alambda(3) End Function كما مكن تحو ل Lambda Expressions لتتوافق مع اإلجراءات المفوضة فعندما تع ن Lambda Expression إلجراء مفوض Delegate مكنك تحد د أسماء الوسائط ولكن مع إؼفال أنواع الب انات الخاصة بها تاركا مهمة تحد دها لإلجراء المفوض فف المثال التال تم تع ن Lambda Expression لمتؽ ر اسمه del من النوع ExampleDel الذي هو عبارة عن إجراء مفوض ؤخذ وس طت ن integer و string الحظ أن أنواع المتؽ رات ف Lambda Expression لم تم تحد دها ومع ذلك ف del تطلب وس طا من النوع integer ووس طا آخر من النوع string كما تم تحد ده عند تعر ؾ ExampleDel ' Definition of function delegate ExampleDel. Delegate Function ExampleDel(ByVal arg1 As Integer, _ ByVal arg2 As String) As Integer ' Declaration of del as an instance of ExampleDel, with no data ' type specified for the parameters, m and s. Dim del As ExampleDel = Function(m, s) m ' Valid call to del, sending in an integer and a string. Console.WriteLine(del(7, "up")) ' Neither of these calls is valid. Function del requires an integer ' argument and a string argument. 'Console.WriteLine(del(7, 3)) 'Console.WriteLine(del("abc")) ف المثال التال تم تحد د Lambda Expression ل ع د الق مة True إذا كان الوس ط متلك قسمة أو False إذا كان الق مة Nothing Dim notnothing = Function(num? As Integer) _ num IsNot Nothing Dim arg As Integer = 14 Console.WriteLine("Does the argument have an assigned value?") Console.WriteLine(notNothing(arg)) والمثال التال حدد Lambda Expression ع د Index العنصر األخ ر ف مصفوفة Dim numbers() As Integer = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Dim lastindex = Function(intArray() As Integer) _ intarray.length - 1 For i = 0 To lastindex(numbers) numbers(i) = numbers(i) + 1 Next 19

20 جعببير ن ذا في انع ق Lambda Expressions تعتبر تعاب ر لمدا من اإلضافات المف دة ف ف جول با ز ك 2008 ح ث مكنك إعادتها كق مة من وظ فة أو تمر رها كمحدد لوظ فة أخرى ح ث تمت إضافتها للؽة البا ز ك كدعم للؽة االستعالمات المضمنة Linq الت تض ؾ إمكان ات استعالم ة قو ة لبرمجة الب انات ف ف جول با ز ك وعندما تبدأ باستخدام تعاب ر لمدا سترى القوة والمرونة الكامنة ف ها Integer و ع د يب هي جعببير ن ذا شكل الكود التال مثاال عن تعر ؾ تعب ر لمدا أساس فهو عرؾ تعب ر لمدا ؤخذ الدخل و ع دها مضروبة ب 2 Integer بح ث ؤخذ ق مة Dim doubleit as Func(Of Integer, integer) = _ Function(x As Integer) x * 2 والنوع Func من األنواع الجد دة ف ف جول با ز ك 2008 وهو ف األساس إجراء مفوض Delegate ع د نوعا حدده المحدد األخ ر و مكنك من تمر ر أربعة محددات تسبق ذلك المحدد والنوع المفوض Func معرؾ ف المجمع System.Core.dll األمر الذي مكنك من االستفادة منه فور ا وذلك ألن المجمع المذكور تم است راده تلقائ ا عندما ننشئ تطب قا جد دا و مثل الكود التال تحم الت Overloads مختلفة ل Func Dim f0 As Func(Of Boolean) Dim f1 As Func(Of Integer, Boolean) Dim f4 As Func(Of Integer, Integer, Integer, Integer, Boolean) فف المثال السابق f0 هو مفوض ع د ق مة Boolean و f1 مفوض ؤخذ Integer و ع د Boolean و f4 مفوض ؤخذ أربعة محددات من النوع Integer و ع د ق مة من النوع Boolean وتكمن النقطة األساس ة ف التعب ر لمدا هو أنه مفوض قابل لالستدعاء تماما كالمفوضات ف ف جول با ز ك 2005 فمن ناح ة المساواة ال منى ف قطعة الكود األولى مكنك رإ ة الص ؽة الجد دة للتعاب ر لمدا فه تبدأ بالكلمة المحجوزة Function متبوعة بقائمة من المحددات وتعب ر وح د فف المثال السابق ؤخذ تعب ر لمدا محددا واحدا من النوع Integer ونالحظ عدم وجود تعب ر Return وذلك ألن المترجم عرؾ النوع المإسس عل ه التعب ر وبهذا قوم بتمر ر عبارة Return تلقائ ا وف هذه الحالة بما أن x هو من النوع Integer ونت جة المعادلة ه Integer لهذا فنت جة تعب ر لمدا ه Integer أ ضا و مكن السحر ف تعاب ر لمدا ف أنه مكن استخدامها كمفوض بس ط كما نرى ف المثال Dim doubleit As Func(Of Integer, Integer) = _ Function(x As Integer) x * 2 Dim z = doubleit(20) فإن نفذت الكود السابق سترى أن الق مة المخزنة ف z ه 40 وأنت بهذا قمت بإنشاء تعب ر لمدا ضاعؾ ق مة أي Integer مرر له. دعنا اآلن نتفحص مثال معقد أكثر باستخدام تعاب ر لمدا Dim mult As Func(Of Integer, Func(Of Integer, Integer)) = _ Function(x As Integer) Function(y As Integer) x * y و عتبر mult تعب ر لمدا معقد قل ال فهو ؤخذ كدخل له محدد من النوع Integer و ع د تعب ر لمدا كق مة له والذي أخذ بدوره ق مة Integer و ع د ق مة Integer كما مكننا إعادة تقس م التعب ر السابق على أسطر من أجل توض ح الكود Dim mult As Func(Of Integer, Func(Of Integer, Integer)) = _ Function(x As Integer) _ Function(y As Integer) x * y فتعب ر لمدا الخارج حتوي تعب ر لمدا آخر الذي ستخدم من قبل المترجم كق مة معادة و كون التوق ع الخاص بتعب ر لمدا الداخل مماثال لتوق ع المفوض Integer) Func(Of Integer, ف الق مة المعادة من تعب ر لمدا الخارج ح ث قوم المترجم بترجمة التعب ر بؤكمله دون مشاكل و مكننا رإ ة تعب ر لمدا هذا كما ل 20

21 Dim mult_10 = mult(10) Dim r = mult_10(4) فالسطر األول حدد mult_10 ك mult(10) وبما أن Mult(10) ع د تعب ر لمدا ؤخذ محدد و ضربه ب 10 والنوع المعاد من mult_10 هو Integer) Func(Of Integer, والسطر الثان ستدع mult_10 ممررا له الق مة 4 بهذا ستكون الق مة المخزنة ف r ه 40 و كون نوع r هو Integer و عتبر mult مصنع لتعاب ر لمدا فهو ع د تعب ر لمدا مخصص بالمحدد األول وستالحظ أن تعب ر لمدا الداخل ستخدم محدد تعب ر لمدا الخارج ولكن فترة ح اة تعب ر لمدا الداخل تتجاوز فترة ح اة تعب ر لمدا الخارج جعببير ن ذا كبسحذعبءات بما أن تعاب ر لمدا ه ببساطة مفوضات لذا مكنك استخدامها ف أي مكان مكن استخدام المفوض ف ه. الحظ اإلجراء التال الذي ؤخذ مفوض كمحدد له و ستدع مفوض من أجل كل عنصر ف القائمة Delegate Function ShouldProcess(Of T) (element As T) As Boolean Sub ProcessList(Of T) ( _ Elements As List(Of T), shouldprocess As ShouldProcess(Of T)) For Each elem in elements If shouldprocess(elem) Then ' Do some processing here End If Next End Sub و كون المثال التال تطب قا ق اس ا على المفوضات فالطر قة ProcessList ستمر على كل عنصر من القائمة وتتحقق ف ما إذا كان عل ها معالجة العنصر ثم تقوم ببعض المعالجة وحتى تتمكن من استخدام هذا ف ف جول با ز ك 2005 عل ك إنشاء وظ فة تمتلك نفس توق ع المفوض ثم تمرر عنوان تلك الوظ فة إلى اإلجراء ProcessList Class Person Public age As Integer End Class Function _PrivateShouldProcess(person As Person) As Boolean Return person.age > 50 End Function Sub DoIt() Dim list As New List(Of Person) 'Obtain list of Person from a database, for example ProcessList(list, AddressOf _PrivateShouldProcess) End Sub وهذا سبب بعض اإلزعاج فؽالبا عل ك البحث ف توث ق الكود لمعرفة ماذا مثل توق ع المفوض ثم جب عل ك مطابقته كل ا وإن احتجت الستدعاء ProcessList مع عدة إجراءات ستقوم بإنشاء العد د من الوظائؾ الخاصة. دعنا نرى اآلن ك ؾ مكننا استدعاء هذا اإلجراء باستخدام تعاب ر لمدا Class Person Public age As Integer End Class Sub DoIt() Dim list As new List(Of Person) 'Obtain list of Person from a database, for example 21

22 ProcessList(list, Function(person As Person) person.age > 50) End Sub فباستخدام تعاب ر لمدا لم عد هناك حاجة إلنشاء وظ فة خاصة للق ام بمنطق المعالجة ح ث تم تعر ؾ المفوض ف النقطة الت س ستخدم ف ها وهذا أفضل من تعر فه ضمن وظ فة خاصة ف مكان ما وفقدان محل تها باستخدام الطر قة الخاصة وبهذا أنت ترى قوة تعاب ر لمدا وتسه لها لعمل ة قراءة وص انة الكود الخاص بك ن برا جى جقذيى جعببير ن ذا من أجل دعم استعالمات ل نك لمدا. افترض أنه لد نا االستعالم التال Linq كان جب إضافة مجموعة من اإلمكان ات الجد دة للؽة ف جول با ز ك ومن ضمنها كانت تعاب ر Dim q = From p In Process.GetProgesses() _ Where p.priorityclass = ProcessPriorityClass.High _ Select P فلك تم ترجمة هذا التعب ر جري الكث ر من العمل تحت الؽطاء فالمترجم س قوم بالمرور عبر المجموعة Process.GetProcesses و طبق المرشح الموجود ف قسم Where عل ها و ع د قائمة بالعمل ات الت تطابق ذلك الشرط كما نالحظ وجود تعب ر ف جول با ز ك داخل قسم Where هو p.priorityclass = ProcessPriorityClass.High وذلك لتطب ق المرشح وهنا قوم المترجم بإنشاء تعب ر لمدا من أجل المرشح الموجود ف قسم Where و طبقه على كل عنصر ف قائمة العمل ات Dim q = Process.GetProcesses().Where( _ Function(p) p.priorityclass = ProcessPriorityClass.High) وأساسا شكل التعب ر لمدا اختصارا للمترجم من أجل اختصار عمل ة إنشاء الطرق وربطها مع المفوضات ح ث قوم بكل ذلك من أجلك والفائدة الت نجن ها من تعاب ر لمدا وال نجن ها عند استخدام الوظائؾ والمفوضات ه أن المترجم هنا ستخدم االستدالل المحل على النوع على تعاب ر لمدا فف المثال السابق تم تحد د نوع المحدد p بناء على االستخدام وف هذه الحالة حدد التعب ر ف قسم Where تعب ر لمدا و قوم المترجم باالستدالل آل ا على نوع الق مة المعادة من التعب ر لمدا بح ث تعتبر م زة االستدالل المحل على النوع المدعومة من قبل المعالج من اإلضافات القو ة لف جول با ز ك االسحذالل ان حهي عهى اننىع تقد م م زة االستدالل المحل على النوع القو ة عن أنه لم عد عل ك أن تقلق حول تحد د النوع المالئم لكل متؽ ر وبالتال فه تمكنك من الق ام بالعد د من األمور الت كانت تبدو مستح لة فاالستدالل على النوع المعاد من تعاب ر لمدا مف د جدا فإن كان لد ك نوع مفوض تر د ربطه مع تعب ر لمدا لم عد عل ك تحد د نوع جم ع المحددات Dim lambda As Func(Of Integer, Integer) = Function(x) x * x فف هذا المثال كون نوع تعب ر لمدا هو Integer) Func(Of Integer, وهو مفوض ؤخذ محدد من النوع Integer و ع د محدد من النوع Integer وكنت جة لهذا فالمترجم ستدل آل ا على أن المحدد x العائد لتعب ر لمدا هو من النوع Integer والق مة المعادة من التعب ر لمدا ه Integer أ ضا كما مكنك االستفادة من االستدالل على نوع تعاب ر لمدا عندما تستدع طر قة تؤخذ مفوضا الحظ الكود التال ف هذه الحالة تؤخذ الوظ فة ProcessList تعب ر لمدا و مكن استدعاإها على الشكل Delegate Function ShouldProcess(Of T) (element As T) As Boolean Sun ProcessList(Of T) (_ Elements As List(Of T), shouldprocess As ShouldProcess(Of T)) ' Method body removed for brevity End Sub Sub DoIt() Dim list As new List(Of A) ' fill or obtain elements in list ProcessList(list, Function(a) a.x > 50) 22

23 End Sub الحظ أننا لم نحدد نوع المحدد الممرر للتعب ر لمدا كما فعلنا سابقا وذلك ألن المعالج ستدل عل ه بنفسه. ك ؾ مكن حدوث شئ كهذا ف الحق قة هناك عدة مستو ات من االستدالل على النوع ف هذا المثال فف البدا ة رى المترجم ProcessList كإجراء عادي ؤخذ (T list(of كدخل له و (T ShouldProcess(Of ف استدعاء ProcessList و رى المترجم أن list ه المحدد األول وأنها Person) list(of وبما أن المحدد الثان ال وفر تلم حات حول ماه ة نوع T ف قرر المترجم أن T من النوع Person و ستدل من هذا على أن محدد (T ShouldProcess(Of هو من النوع Person وبهذا ستدل على أن المحدد الثان هو من النوع (T ShouldProcess(Of وأخ را بما أن تعب ر لمدا ال قدم نوع المحدد الخاص به والمترجم عرؾ أن نوع المحدد عتمد على توق ع المفوض (T ShouldProcess(Of وقد استدل على أن نوع المحدد a هو Person و عتبر هذا نوعا قو ا من االستدالل على النوع فل س عل ك معرفة نوع محددات المفوض عندما تبن تعب ر لمدا وف الحق قة من األفضل ترك المترجم قوم بذلك العمل ن ابة عنك واالستدالل على نوع النت جة بهذه الطر قة مف د حق قة إن لم كن لد ك نوع مفوض وتر د من المترجم أن قوم بتصن عه من أجلك علما بؤن هذه الم زة متوفرة ف ف جول با ز ك فقط Dim lambda = Function(x As Integer) x * x فف المثال السابق بما أن المحدد x هو من النوع Integer فالمترجم ستدل آل ا على أن الق مة المعادة ه من النوع Integer أ ضا كنت جة المعادلة الموجودة ف التعب ر وبما أن تعب ر لمدا ال متلك نوعا لهذا قوم المترجم بتصن ع مفوض مجهول طابق شكل تعب ر لمدا و ربط ذلك النوع المفوض بتعب ر لمدا. وهذه م زة عظ مة ألنها تعن أنه مكنك إنشاء تعاب ر لمدا بسرعة بدون أن تحتاج لتعر ؾ األنواع المفوضة الخاصة بها. فكم مرة كنت ف وضع تحتاج ف ه لتطب ق مجموعة من المتؽ رات وتحتاج إلى فعل ذلك ف العد د من األماكن فف الكود التال مرت عدة حاالت مشابهة وعادة مكننا معالجة ذلك بح ث مكن التحقق من الشرط ف مكان واحد بدال من التشتت ف أرجاء الوظ فة Class Motorcycle Public color As String Public CC As Integer Public weight As Integer End Class Sub PrintReport(motorcycle As New Motorcycle) If motorcycle.color = "Red" And motorcycle.cc = 600 And _ Motorcycle.weight > 300 And Motorcycle.weight < 400 Then ' do something here End If ' do something here If motorcycle.color = "Red" And motorcycle.cc = 600 And _ Motorcycle.weight > 300 And Motorcycle.weight < 400 Then ' do something here End If End Sub وف بعض األح ان ستخدم هذا التحقق ف هذه الوظ فة فقط و مكننا إضافة إجراء ف الفئة لدعم تلك الوظ فة فقط والق ام بذلك إثر على عمل ة ص انة الكود فماذا لو قام أحد ما باستدعاء هذه الوظ فة ف مكان آخر واحتجت للق ام بتعد ل ما وقد إدي هذا ف بعض الفئات إلى وجود وظائؾ صعب تعقبها جاعال خاص ة IntelliSense ا قل فائدة لوجود العد د من المدخالت اإلضاف ة ف ها إضافة إلى خرق منطق المحل ة وإن قمنا بذلك باستخدام طر قة منفصلة مختلفة عندها فضل أن تكون قر بة من الطر قة الت تستخدمها ومع وجود العد د من األشخاص عملون على نفس المشروع صبح من الصعب ص انة المحل ة على المدى الطو ل وهنا ؤت استخدام تعاب ر لمدا وترك المترجم قوم آل ا بإنشاء المفوضات و قوم باستخدامها عند الحاجة Sub PrintReport(motorcycle As New Motorcycle) Dim check = Function(m As Motorcycle) m.color = "Red" And _ 23

24 m.cc = 600 And _ m.weight > 300 And _ m.weight < 400 If check(motorcycle) Then ' do something here End If ' do something here If check(motorcycle) Then ' do something here End If End Sub قمنا هنا بتعد ل منطق تفحص بعض شروط Motorcycle ل ستخدم تعاب ر لمدا عوضا عن س ئات الطرائق الخاصة ح ث س قوم المترجم تلقائ ا بإنشاء النوع المفوض و قوم بالعمل لك نستط ع استدعاء تعاب ر لمدا أ نما احتاج ذلك وهذه الطر قة مف دة ألنها تضع المنطق قر ب من التصر ح ح ث نقوم بتصن ع نسخة واحدة و قوم المترجم بعدها بمعظم عمل ات الص انة و عتبر هذا مف دا ألنه مكنك من بناء تعب ر معقد كجسم لتعب ر لمدا وباستخدام الربط المتؤخر واالستدالل على النوع ف هذا الس نار و فال نحدد نوع تعب ر لمدا أو المتؽ ر Dim lambda = Function(x) x * x وهنا أ ضا ولد المعالج مفوض مجهول من أجلك ولكن حدد نوع تعب ر لمدا ك System.Object وهذا عن أنه قد تم تفع ل الربط المتؤخر ف هذا الس نار و عندما كون الخ ار Option Strict على الوضع Off و عتبر هذا الس نار و ج دا بالنسبة ألولئك الذ ن عتمدون على الربط المتؤخر ح ث أن تعاب ر لمدا تدعم عمل ات الربط المتؤخر بشكل كامل فف المثال السابق طالما أن المعامل * معرؾ على األنواع الممررة إلى تعب ر لمدا فسوؾ عمل Dim a = lambda(10) Dim b = lambda(cdec(10)) Dim c = lambda("this will throw an exception because " & _ "strings don't support the * operator") وكما ترى من المثال السابق طالما أن المعامل * موجود ف مكتبات زمن التشؽ ل بالنسبة للنوع الممرر فسوؾ جري كل شئ بشكل ج د كما أن تعاب ر لمدا تتؤقلم بشكل رائع مع الربط المتؤخر ف ف جول با ز ك. انكىد ان ىنذ جحث انغطبء بعدما استكشفنا تعاب ر لمدا دعنا نلق نظرة على الكود الذي تم تول ده من قبل المترجم. انظر للكود السابق Sub TestLambda() Dim doubleit As Func(Of Integer, Integer) = _ Function(x As Integer) X * 2 Console.WriteLine(doubleIt(10)) End Sub أنت تعلم أن Func هو مفوض والمفوضات ه مإشرات للوظائؾ فك ؾ قوم المترجم إذا بالعمل ف هذه الحالة قوم المترجم بإصدار وظ فة جد دة و ربطها بمفوض ش ر إلى تلك الوظ فة الجد دة Private Function $GeneratedFunction$(x As Integer) As Integer Return x * 2 End Function Sub TestLambda() Dim doubleit As Func(Of Integer, Integer) = _ AddressOf $GeneratedFunction$ 24

25 Console.WriteLine(doubleIt(10) End Sub C ح ث ؤخذ المترجم تعب ر لمدا و نشئ وظ فة جد دة بمحتو اته و ؽ ر عبارة التصر ح بح ث ؤخذ تعب ر لمدا عنوان الوظ فة الجد دة المولدة فف هذه الحالة تم تول د الوظ فة بنفس األب الذي حتوي على الطر قة الت تستخدم تعب ر لمدا فإن كان TestLambda معرؾ ف الفئة فسوؾ تم تعر ؾ الوظ فة الجد دة ف الفئة C أ ضا ونالحظ أن هذه الوظ فة ؼ ر قابلة لالستدعاء و تم التصر ح عنها باستخدام محدد الوصول Private جعببير ن ذا ورفع ان حغيرات ف األمثلة السابقة ش ر جسم تعاب ر لمدا إلى متؽ رات تم تمر رها إلى تلك المتؽ رات ومع ذلك تؤت قوة تعاب ر لمدا مع ثمار رفع المتؽ رات وجم ع تعاب ر لمدا مبن ة على مبدأ متشابه. وتعب ر لمدا مكن أن ستخدم متؽ رات مرتبطة أو متؽ رات حرة لم تم تعر فها ضمن التوق ع الخاص بتعب ر لمدا فالمتؽ رات الحرة ممكن أن كون قد تم التصر ح عنها ف اإلجراء المستدع للتعب ر فقد تكون متؽ رات محل ة أو محددات ممررة لذلك اإلجراء والتعاب ر المرتبطة تكون تلك الت تم التصر ح عنها ف جسم التعب ر أو عناصر ف الفئة المحتو ة للتعب ر لمدا متضمنا الفئة األب لتلك الفئة. وهذا هام من أجل التم ز ب ن المتؽ رات المرتبطة والحرة ف تعاب ر لمدا الخاصة بك ألنها تإثر على داللة تعب ر لمدا والكود الذي تم تول ده وبالتال إثر على صحة برنامجك وهذا مثال حتوي على تعاب ر لمدا تستخدم متؽ رات مرتبطة وأخرى حرة Function MakeLambda() As Func(Of Integer, Integer) Dim y As Integer = 10 Dim addten As Func(Of Integer, Integer) = Function(ByVal x) x + y Return addten End Function Sub UseLambda() Dim addten = MakeLambda() Consloe.WriteLine(addTen(5)) End Sub فهذا الكود س قوم بطباعة 15 على نافذة الكونسول عندما تم استدعاء UseLambda ولكن مكن أن تسؤل نفسك ك ؾ عمل هذا تحدد الوظ فة MakeLambda المتؽ ر y كمتؽ ر محل والتعب ر لمدا ستخدم y ولكن التعب ر لمدا تم إعادته كنوع معاد من الوظ فة MakeLambda والوظ فة UseLambda تحصل على التعب ر لمدا من الوظ فة MakeLambda وتنفذ التعب ر لمدا و بدو األمر كما لو أن المتؽ ر y قد تم تذكره من قبل التعب ر لمدا. ففترة ح اة المتؽ ر y تنته مع نها ة الطر قة MakeLambda فعندما نحصل على التعب ر لمدا من MakeLambda فسوؾ تصبح MakeLambda خارج المجال و جب إزالة المساحة الت تحجزها ف المكدس وبطر قة ما علق هذا المتؽ ر مع تعب ر لمدا وهذا ما عرؾ برفع المتؽ ر Variable Lifting فف هذه الحالة دعى المتؽ ر y بالمتؽ ر المرفوع وكما ترى فالمتؽ رات المرفوعة تعتبر م زة برمج ة قو ة فالمترجم قوم بالكث ر من العمل من أجل تمك نك من إمساك حالة المتؽ ر ح ث حفظها خارج مجال فترة ح اتها الطب ع ة فعندما صادؾ المترجم تعاب ر لمدا تستخدم متؽ رات حرة قوم برفع المتؽ ر إلى فئة تدعى Closure بح ث تكون فترة ح اة هذه الفئة تمتد إلى ما بعد فترة ح اة المتؽ رات الحرة المستضافة داخلها و قوم المترجم بإعادة كتابة الوصول إلى المتؽ رات ف الطرق ل تم الوصول إلى نسختها الموجودة ف الفئة Closure دعنا نس ر مرة أخرى عبر المثال MakeLambda Dim MakeLambda() As Func(Of Integer, Integer) Dim y As Integer = 10 Dim addten As Func(Of Integer, Integer) = Function(ByVal x) x + y Return addten End Function وكما قمنا بالتحل ل سابقا فالمتؽ ر x مرتبط بمحدد التعب ر لمدا ولكن المتؽ ر Closure الت تلتقط المتؽ رات الحرة كما ف تعر ؾ تعب ر لمدا y تعب ر حر و قوم المترجم بالكشؾ عن ذلك و تابع بإنشاء الفئة Public Class _Closure$ 1 Public y As Integer 25

26 Public Function _Lambda$ 1(ByVal x As Integer) As Integer Return x + Me.y End Function End Class مكنك رإ ة أن متؽ ر Closure لتقط المتؽ ر y و خزنه ف الفئة Closure و تم تحو ل المتؽ ر الحر بعدها إلى متؽ ر مرتبط داخل الفئة Closure كما قوم المترجم بإعادة كتابة الطر قة الت تحتوي على التعب ر لمدا لتبدو كما ل Function MakeLambda() As Func(Of Integer, Integer) Dim Closure As New _Closure$ 1 Closure.y = 10 Return AddressOf Closure._Lambda$ 1 End Function مكنك اآلن رإ ة ك ؾ قوم المترجم بإنشاء المتؽ ر Closure و ع د كتابة المتؽ ر y الذي تم رفعه ضمن المتؽ ر Closure و ضبط ق مته و ع د ببساطة عنوان تعب ر لمدا المخزن ضمن الفئة Closure ومن الهام مالحظة أن المترجم قوم برفع المتؽ رات الحرة ف تعاب ر لمدا فقط و تم التقاط حالة المتؽ ر ف Closure الذي بقى موجودا طالما أن تعب ر لمدا بق موجودا. انظر للمثال التال Sub Test() Dim y As Integer = 10 Dim Lambda As Func(Of Integer, Integer) = Function(ByVal x) x + y y = 20 Console.WriteLine(Lambda(5)) End Sub ما ه الق مة الت تظهر عند تنف ذ الوظ فة السابقة إن قلت 25 فقد أصبت. فلماذا 25 إذا المترجم قوم بالتقاط وإعادة كتابة جم ع المتؽ رات الحرة y إلى نسخة Closure كالتال Sub Test() Dim Closure As New $Closure_Compiler_Generated_Name$ Closure.y = 10 Dim Lambda = AddressOf Closure.Lambda_1 Closure.y = 20 Console.WriteLine(Lambda(5)) End Sub فف الوقت الذي تم تنف ذ تعب ر لمدا ف ه تكون ق مة y قد تؽ رت إلى 20 وبهذا فعندما تم تنف ذ تعب ر لمدا ع د وهذا هام جدا ألنه عندما نؤت للحد ث عن الحلقات وأن المتؽ رات الحرة تم التقاطها ف Closure وح د قد ترى تصرفات ؼر بة. انظر للمثال التال Sub Test() For I = 1 To 5 StartThread(Function() I + 10) Next End Sub افرض أن StartThread نشئ مسارا جد دا و طبع النت جة على الكونسول وطالما أنه تم التقاطه إلى Closure ف مكن أن تكون الحلقة قد ؼ رت ق مة I ف الوقت الذي قوم المسار ف ه باستدعاء تعب ر لمدا وف هذه الحالة فالبرنامج قد ال طبع النت جة المتوقعة وبدال عن ذلك عل ك رإ ة المتؽ ر الملتقط داخل الحلقة Sub Test For I = 1 To 5 Dim x = I StartThread(Function() x + 10) Next 26

المحاضرة الثانية

المحاضرة الثانية المحاضرة الثان ة أنواع الب انات)المتغ رات و الثوابت( محتو ات المحاضرة أنواع الب انات اإلعالن عن المتغ رات الثوابت إسناد الق م إلى المتغ رات واجهة برنامج Visual Studio 2010 2 أنواع الب انات كلمات لغة ال

المزيد من المعلومات

Microsoft Word - C#2

Microsoft Word - C#2 الفصل الا ول مفاهيم البرمجة بواسطة الا هداف معنى البرمجة بواسطة األھداف... 5 معنى الفصيلة 5...Class ما ھي دوال البناء و دوال الھدم...6 Construction & destruction ما ھي خاصية التوريث 7...inheritance ما

المزيد من المعلومات

Microsoft Word - Excel VBA

Microsoft Word - Excel VBA الفصل الا ول (البداية) قواعد البرمجة...4 مقارنة بين VB و...4 VBA ضبط بيي ة Excel للبرمجة...5 الماآرو فى برنامج...8 Excel أنواع الماآرو... 9 تنفيذ الماآرو... 11 شروط اسماء المتغيرات...18 الكاي ناتObjects...18

المزيد من المعلومات

Microsoft Word - Oracle1

Microsoft Word - Oracle1 360 Hòî b þa@âbè½ai Oracle Developer îôèm@æë í@áüèm pbíìn a@ ŠèÏ تعرف على ا وراكل تعرف على أوراكل... 4 مالمح ومزايا مجموعة التطوير 5...Oracle Developer Suite 10g أدوات تطوير التطبيقات...6 Oracle Developer

المزيد من المعلومات

Microsoft Word - Access VBA

Microsoft Word - Access VBA الفصل الا ول (البداية) تصميم قاعدة بيانات بسيطة...4 الا وامر الا ساسية المتوفرة فى المعالجات...12 الفصل الثانى (برمجة ا كسيس (VBA برمجة أآسيس...18 VBA مقارنة بين VB وVBA...18 الدخول إلى صفحات آتابة برامج

المزيد من المعلومات

) NSB-AppStudio برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( ) برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( NSB-AppStudio الدرس األول ) 1 ( الدرس

) NSB-AppStudio برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( ) برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( NSB-AppStudio الدرس األول ) 1 ( الدرس ) NSB-AppStudio ) 1 ( أهداف الدرس : بعد انتهاء هذا الدرس ستكون الطالبة قادرة على أن : )1 توضح مميزات برنامج ( NSB-AppStudio ) 2( تعدد لغات البرمجة المستخدمة في برنامج ( NSB-AppStudio ) 3( تذكر خطوات كتابة

المزيد من المعلومات

جامعة حضرموت

جامعة حضرموت جاهعة حضرهوت التسجيل االلكتروني لمرحلة التنسيق بالجامعة عبر الموقع www.hu-registration.com الصفحة الرئيسية زر الدخول على النظام ف حالة التسج ل سابقا ولد ك اسم مستخدم وكلمة مرور زر تسج ل متقدم جد د اذا

المزيد من المعلومات

ABU DHABI EDUCATION COUNCIL Abu Dhabi Education Zone AL Mountaha Secondary School g-12 science section Mathematics Student Name:.. Section: How Long i

ABU DHABI EDUCATION COUNCIL Abu Dhabi Education Zone AL Mountaha Secondary School g-12 science section Mathematics Student Name:.. Section: How Long i ABU DHABI EDUCATION COUNCIL Abu Dhabi Education Zone AL Mountaha Secondary School g-12 science section Mathematics Student Name:.. Section: How Long is the Average Chord of a Circle?/ 2009-2010 Second

المزيد من المعلومات

السالم عليكم و رحمة هللا شرح ربط قاعدة بيانات Access بال.. C# مذا ستستفيد من هذا الموضوع!! -معرفة طريقة صنع قاعدة بيانات بالAccess -ربط قاعدة البيانات

السالم عليكم و رحمة هللا شرح ربط قاعدة بيانات Access بال.. C# مذا ستستفيد من هذا الموضوع!! -معرفة طريقة صنع قاعدة بيانات بالAccess -ربط قاعدة البيانات السالم عليكم و رحمة هللا شرح ربط قاعدة بيانات Access بال.. C# مذا ستستفيد من هذا الموضوع!! -معرفة طريقة صنع قاعدة بيانات بالAccess -ربط قاعدة البيانات هذه بالC # على بركة هللا.. * *إنجاز قاعدة بيانات ب*

المزيد من المعلومات

الدرس : 1 مبادئ ف المنطق مكونات المقرر الرسم عناصر التوج هات التربو ة العبارات العمل ات على العبارات المكممات االستدالالت الر اض ة: االستدالل بالخلف ا

الدرس : 1 مبادئ ف المنطق مكونات المقرر الرسم عناصر التوج هات التربو ة العبارات العمل ات على العبارات المكممات االستدالالت الر اض ة: االستدالل بالخلف ا الدرس : 1 مبادئ ف المنطق مكونات المقرر الرسم عناصر التوج هات التربو ة العبارات العمل ات على العبارات المكممات االستدالالت الر اض ة: االستدالل بالخلف االستدالل بفصل الحاالت االستدالل بالتكافؤ نبغ تقر ب

المزيد من المعلومات

مختبر البرمجة والتحليل العددي قسم علوم الجو جمل التحكم والشرط والتكرار المرحلة الثانية PROGRAM CONTROL, CONDITION AND LOOP STATEMENTS الجمل الشرطية :-

مختبر البرمجة والتحليل العددي قسم علوم الجو جمل التحكم والشرط والتكرار المرحلة الثانية PROGRAM CONTROL, CONDITION AND LOOP STATEMENTS الجمل الشرطية :- جمل التحكم والشرط والتكرار PROGRAM CONTROL, CONDITION AND LOOP STATEMENTS الجمل الشرطية :- تقسم جمل الشرط الى نوعين وهي :- -1 جملة اذا الشرطية ) statement ( if -2 جملة التوزيع ) case ( switch -1 جملة اذا

المزيد من المعلومات

Determinants

Determinants قسم الهندسة الزراعية د/ خالد ف ارن طاهر الباجورى استاذ الهندسة الز ارعية المساعد khaledelbagoury@yahoo.com Mobil: 01222430907 المقدمة ماهي المصفوفة جمع الضرب الكمي للمصفوفات ضرب منقول المصفوفة محدد المصفوفة

المزيد من المعلومات

الشريحة 1

الشريحة 1 القيادة 1 القيادة -الم ادة - تعر فات الم ادة -الفرق ب ن الم ادة واإلدارة - عناصر الم ادة اإلدار ة - نظر ات الم ادة اإلدار ة 2 القيادة تنطوي الم ادة على عاللة تبادل ة ب ن من بدأ بالفعل وب ن من نجزه وهذه

المزيد من المعلومات

مكثف الثالثة الوحدة البوابات املنطقية 1 هاتف : مدارس األكاد م ة العرب ة الحد ثة إعداد المعلم أحمد الصالح

مكثف الثالثة الوحدة البوابات املنطقية 1 هاتف : مدارس األكاد م ة العرب ة الحد ثة إعداد المعلم أحمد الصالح مكثف الثالثة الوحدة البوابات املنطقية هاتف : 798226 النظ ري الج زء و الثاني األ ول للد رسين وضح ان قصىد ت ا يهي : انرعثير انعالئقي ج هح خثريح ذكى قي رها إيا صىاب )( و إيا خطأ )( ان عايم ان طقي راتط يسرخذو

المزيد من المعلومات

Slide 1

Slide 1 Correlation and Regression اإلرتباط واإلنحدار Correlation اإلرتباط - Describes the relationship between two (X & Y) variables يوضح العالقة بين متغيرين )Y, X( - One variable is called independent (X) and

المزيد من المعلومات

Microsoft Word - SolutionOOPFinal2011.doc

Microsoft Word - SolutionOOPFinal2011.doc صفحة 1 من 5 : : A : : 2010/ : : :. : (20/60) (2) ( 20) (10/20) : محاآاة الواقع على أنه مجموعة من الا شياء و أ ن آل شيء مكون من صفات و سلوك هو... التغليف التجرید البرمجة الشيي ية إخفاء طریقة تطبيق السلوك

المزيد من المعلومات

Microsoft Word - new.doc

Microsoft Word - new.doc الدرس الاول فى الماتلاب عنوان الدرس : ما هو الماتلاب الماتلاب هو لغة ذات مستوى عالى للحسابات والبرمجة و تمتاز بوجود برنامج يسهل عملية التعامل مع هذه اللغة. ويشمل البرنامج على: الحسابات الرياضية عمل الالجوريثمات

المزيد من المعلومات

Banner – Hold Information SOAHOLD

Banner – Hold Information SOAHOLD 1 Financial Aid System Documentation - eservice E-serviceخطوات التقديم لنظام المساعدات عبر ال 2 خطوات التقديم لنظام المساعدات Steps to apply for financial aid 1 Login to the portal http://my.uaeu.ac.ae

المزيد من المعلومات

الحل المفضل لموضوع الر اض ات شعبة تقن ر اض بكالور ا 2015 الحل المفص ل للموضوع األو ل التمر ن األو ل: 1 كتابة و على الشكل األس. إعداد: مصطفاي عبد العز

الحل المفضل لموضوع الر اض ات شعبة تقن ر اض بكالور ا 2015 الحل المفص ل للموضوع األو ل التمر ن األو ل: 1 كتابة و على الشكل األس. إعداد: مصطفاي عبد العز الحل المفص ل للمضع األ ل التمر ن األ ل: كتابة على الشكل األس k ' cos s cos s e e ب( تع ن ق م العدد الطب ع بح ث كن العدد حق ق ا e e e arg حق ق معناه k منه k عل ه k ' k ح ث e ج( عدد مركب ح ث حساب ط لة العدد

المزيد من المعلومات

وزارة الترب ة بنك األسئلة لمادة علم النفس و الح اة التوج ه الفن العام لالجتماع ات الصف الحادي عشر أدب 0211 / 0212 األولى الدراس ة الفترة *************

وزارة الترب ة بنك األسئلة لمادة علم النفس و الح اة التوج ه الفن العام لالجتماع ات الصف الحادي عشر أدب 0211 / 0212 األولى الدراس ة الفترة ************* وزارة الترب ة بنك األسئلة لمادة علم النفس و الح اة التوج ه الفن العام لالجتماع ات الصف الحادي عشر أدب 2 / 22 األولى الدراس ة الفترة ************************************************************************************

المزيد من المعلومات

الفصل الثاني

الفصل الثاني 1 برنامج MINTAB 17 105 احص إعداد أ- ريم المبطي 2 الفصل الثاني ( اختبارات الفروض وفترات الثقة ) لمعالم مجتمع واحد أوال : اختبار المتوسط : لدينا حالتين : نستخدم اختبار Z عندما : N كبيرة و معلومة أو مجهولة

المزيد من المعلومات

Schedule Planner User Guide Target Audience: Students This tool can help you better plan your course schedule by generating a visual representation of

Schedule Planner User Guide Target Audience: Students This tool can help you better plan your course schedule by generating a visual representation of Schedule Planner User Guide Target Audience: Students This tool can help you better plan your course schedule by generating a visual representation of possible schedules with no time conflict. Getting

المزيد من المعلومات

استنادا الى احكام البند )ثالثا ( من المادة )08( من الدستور واحكام البند )2( من المادة )4( من امر سلطة االئتالؾ المؤقته )المنحلة( رقم )65( لسنة 2884 )ق

استنادا الى احكام البند )ثالثا ( من المادة )08( من الدستور واحكام البند )2( من المادة )4( من امر سلطة االئتالؾ المؤقته )المنحلة( رقم )65( لسنة 2884 )ق استنادا الى احكام البند )ثالثا ( من المادة )08( من الدستور واحكام البند )2( من المادة )4( من امر سلطة االئتالؾ المؤقته )المنحلة( رقم )65( لسنة 2884 )قانون البنك المركزي ) والبند ثان ا من المادة )9( من

المزيد من المعلومات

How To Make Connection Between Oracle DB Server 9i & Oracle Developer 6i

How To Make Connection Between Oracle DB Server 9i & Oracle Developer 6i بسم االله الرحمن الرحيم How To Make Connection Between Oracle DB Server 9i & Oracle Developer 6i آيف تربط الا وراآل 9i مع الديفيلوبر 6i الا س م التخص ص المو ه ل العم ل البل د اله اتف البري د الص فحة يوسف

المزيد من المعلومات

اختر عنوان مناسب

اختر عنوان مناسب 1 كيفية الوصول الى البريد االلكتروني في الكلية 2 3 الهدف من المحاضرة.Webmail كيفية الدخول الى حساب البريد االلكتروني في الخادم الجديد باستخدام كيفية استعراض الرسائل االلكترونية في السيرفر القديم..Microsoft

المزيد من المعلومات

برمجة NXT والخوارزميات تتبع الخط سلسلة دروس الروبوت التعل م قسم برمجة NXT والخوارزم ات تتبع الخط )حساس الضوء واأللوان( 1

برمجة NXT والخوارزميات تتبع الخط سلسلة دروس الروبوت التعل م قسم برمجة NXT والخوارزم ات تتبع الخط )حساس الضوء واأللوان(   1 سلسلة دروس الروبوت التعل م قسم برمجة NXT والخوارزم ات )حساس الضوء واأللوان( www.talents.edu.sa 1 اإلصدار 1,1 سبتمبر 2111 شركة المواهب الوطن ة للتدر ب والتعل م 2111 بعض الحقوق محفوظة. باستثناء المواضع الت

المزيد من المعلومات

عربي Sign-Code Website Guide فيما يلي دلي ا ل لطلب اسم مستخدم جديد لConnect Sell من خ لل موقع.Sign-Code يسمح لك الموقع بالدخول اإلداري على اسم المستخد

عربي Sign-Code Website Guide فيما يلي دلي ا ل لطلب اسم مستخدم جديد لConnect Sell من خ لل موقع.Sign-Code يسمح لك الموقع بالدخول اإلداري على اسم المستخد عربي فيما يلي دلي ا ل لطلب اسم مستخدم جديد لConnect Sell من خ لل موقع.Sign-Code يسمح لك الموقع بالدخول اإلداري على اسم المستخدم الخاص بك لID Office من خ لل طلب مستخدمين جدد وتحديثها وحتى حذفها:.1 ستتلقى

المزيد من المعلومات

التاريخ: االمتحان النهائي لمساق برمجة متقدمة תכנות מתקדם موعد أ الزمن: ساعتان فقط الخميس 2017/7/27 )10 عالمات( السؤال األول for او )while الالزمة لما

التاريخ: االمتحان النهائي لمساق برمجة متقدمة תכנות מתקדם موعد أ الزمن: ساعتان فقط الخميس 2017/7/27 )10 عالمات( السؤال األول for او )while الالزمة لما التاريخ: االمتحان النهائي لمساق برمجة متقدمة תכנות מתקדם موعد أ الزمن: ساعتان فقط الخميس 2017/7/27 )10 عالمات( السؤال األول for او )while الالزمة لما يلي )الجمل بصيغتين(: أ اكتب جمل التكرار بلغة البرمجة

المزيد من المعلومات

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

كيفية تفعيل خدمة IIS ونشر موقع ويب على الشبكة احمللي السالم عليكم اصدقائي الكرام في هذا الكتاب سنتناول ما هي خدمة المعلومات وكيفية التفعيل ونشر الموقع كيفية تفعيل خدمة IIS ونشر موقع ويب على الشبكة احمللي السالم عليكم اصدقائي الكرام في هذا الكتاب سنتناول ما هي خدمة المعلومات وكيفية التفعيل ونشر الموقع وتجربته وفي النهاية ستجدون روابط المثال مع شرح فيديو

المزيد من المعلومات

الأول في السي شارب((c#للمبتدائين

الأول في السي شارب((c#للمبتدائين شباب التنميه والبداع : امحد ياسني شلش ذ د الدرس األول: فتح فيوجل ستوديو وشرحه 2012 1 -هذا هوه البرنامج نقوم بفتحه نسخه 2012 فيوجل استوديو new )نضغط علي - 2 اي مشروع جديد( project المتبنأ هذه لغه فيوجل

المزيد من المعلومات

دليل الحسابات دل ل الحسابات هو عبارة عن نافذة تحوي شجرة حسابات افتراض ة تضم هذه الشجرة األنواع الثالثة لتصن ف الحسابات وه حسابات ( المتاجرة األرباح وا

دليل الحسابات دل ل الحسابات هو عبارة عن نافذة تحوي شجرة حسابات افتراض ة تضم هذه الشجرة األنواع الثالثة لتصن ف الحسابات وه حسابات ( المتاجرة األرباح وا دليل الحسابات دل ل الحسابات هو عبارة عن نافذة تحوي شجرة حسابات افتراض ة تضم هذه الشجرة األنواع الثالثة لتصن ف الحسابات وه حسابات ( المتاجرة األرباح والخسائر الم زان ة العامة ). ح ث تم تصن ف هذه الحسابات

المزيد من المعلومات

( IP Address ) العنوان الشبكي

( IP Address ) العنوان الشبكي اسم المقرر شبكات وامن المعلومات عنونة وتقس م الشبكات Network Addressing and Subnetting المحتو ات مقدمة العنوان الشبكى ) Address ( IP تقس مات العنوان الشبكى parts( )IP Network and Host قناع الشبكة Subnet

المزيد من المعلومات

8 مادة إثرائية وفقا للمنهاج الجديد األساسي الثامن للصف الفصل الدراسي األول إعداد املعلم/ة: أ. مريم مطر أ. جواد أبو سلمية حقوق الطبع حمفوظة لدى املكتبة

8 مادة إثرائية وفقا للمنهاج الجديد األساسي الثامن للصف الفصل الدراسي األول إعداد املعلم/ة: أ. مريم مطر أ. جواد أبو سلمية حقوق الطبع حمفوظة لدى املكتبة 8 مادة إثرائية وفقا للمنهاج الجديد الساسي الثامن للصف الفصل الدراسي الول إعداد املعلم/ة:. مريم مطر. جواد و سلمية حقوق الطع حمفوظة لدى املكتة الفلسطينية رقم إيداع )017/614( من وزارة الثقافة تطل من املكتة

المزيد من المعلومات

WHAT’S NEW

WHAT’S NEW الجديد في انجز تطبيق إصدارات X.4 المحتويات المحتويات... 1 المواصفات الجديدة بالنظام... 3.1.1.1 عدد المهام التي يجب إنجازها... 3 انشاء مهمة... 3.1.2 2. تعديل تكليف المهمة... 3 تاريخ حالات المهمة... 4.2.1.2.2.3

المزيد من المعلومات

اردوينو – الدرس الثامن – تغيير درجة الالوان لـ RGB LED

اردوينو – الدرس الثامن – تغيير درجة الالوان لـ RGB LED اردوينو الدرس الثامن تغيير درجة الالوان ل RGB LED في هذا الدرس ستقوم بتطبيق ماتعلمته بالدرس السابع والرابع وذلك لاستخدام الازرار في تغيير درجة الالوان في RGB Led القطع المطلوبة لاتمام هذا الدرس عليك توفير

المزيد من المعلومات

OtterBox Global Warranty Final _multi_final.xlsx

OtterBox Global Warranty Final _multi_final.xlsx Arabic الضمان المحدود ل كة OTTERBOX GLOBAL ("الضمان المحدود") الضمان المحدود شار إليها ( جميع أنحاء العالم تضمن كة Otter Products وOtterBox LLC d/b/a و اتها التا عة شار إليها إجمالا اسم "المنتجات") ضد

المزيد من المعلومات

نظرية الملاحظة

نظرية الملاحظة إعداد أ.هدى القحطان صاحب هذه النظر ة هو ألبرت باندورا ومن مإلفاته كتابه مبادئ تعد ل السلوك عام 1969 ثم كتابه عن نظر ة التعلم االجتماع عام 1971 ح ث تناول ف ه أحدث تصور دق ق لنظر ة التعلم االجتماع والمعرف

المزيد من المعلومات

Principles of C++ (Precedence)

Principles of C++ (Precedence) C++ Programming Week 1 Introduction to C++ HS Engineers اإلحسان ي ح ط من قدر من يت ل قونه. )1( Modulus Operator Division Operator كيفية ( / % ) التعامل مع في حال قسمة رقم صحيح على رقم صحيح آخر ينتج رقم

المزيد من المعلومات

جامعة العقيد الحاج لخضر - باتنة - 1 كلية العلوم االقتصادية والتجارية وعلوم التسيير قسم التعليم األساسي مادة II دروس وتطبيقات الرياضيات لطلبة السنة األ

جامعة العقيد الحاج لخضر - باتنة - 1 كلية العلوم االقتصادية والتجارية وعلوم التسيير قسم التعليم األساسي مادة II دروس وتطبيقات الرياضيات لطلبة السنة األ جامعة العقيد الحاج لخضر - باتنة - 1 كلية العلوم االقتصادية والتجارية وعلوم التسيير قسم التعليم األساسي مادة II دروس وتطبيقات الرياضيات لطلبة السنة األولى الثاني السداسي إعداد أساتذة المادة الفهرس العام

المزيد من المعلومات

السالم عليكم ورحمة هللا وبركاتة كتاب تعلم برمجة االلعاب بأستخدام محرك االلعاب Unity 3D الكتاب مقدم من االستاذ : عماد عارف التوي موقع : Home OF Games ا

السالم عليكم ورحمة هللا وبركاتة كتاب تعلم برمجة االلعاب بأستخدام محرك االلعاب Unity 3D الكتاب مقدم من االستاذ : عماد عارف التوي موقع : Home OF Games ا السالم عليكم ورحمة هللا وبركاتة كتاب تعلم برمجة االلعاب بأستخدام محرك االلعاب Unity 3D الكتاب مقدم من االستاذ : عماد عارف التوي موقع : Home OF Games الدورة تهتم فقط بتعلم البرمجة من االبتداء الى االحتراف

المزيد من المعلومات

دليل المستخدم لبوابة اتحاد المالك التفاعلية

دليل المستخدم لبوابة اتحاد المالك التفاعلية دليل المستخدم لبوابة اتحاد المالك التفاعلية الشاشة الرئيسية 3 إنشاء مستخدم جديد 4 أوال: التسجيل كفرد 5 - نوع الهوية «سعودي» : 5 - نوع الهوية «مقيم :» 6 - نوع الهوية «خليجي» : 7 : التسجيل كمنشأة : 9 ثانيا

المزيد من المعلومات

الوحدة التاسعة

الوحدة التاسعة الفائدة من احملاضرة التاسعة اإلجراءات و الدوال Procedures and Functions.1.2.3.4 استخدام اإلجراءات والدوال ميكن تلخيصها يف اآليت :- تقليل حجم الربانمج. سهولة تطوير الربانمج يف املستقبل. سهولة اكتشاف اخطاء

المزيد من المعلومات

ورقة عمل الدرس الثاني تطبيقي اخلاص على هاتفي... برنامج App Inventor اعداد املعلمة : اماني ممدوح املصري مدرسة امحد شوقي الثانوية للبنات اختار اإلجابة ا

ورقة عمل الدرس الثاني تطبيقي اخلاص على هاتفي... برنامج App Inventor اعداد املعلمة : اماني ممدوح املصري مدرسة امحد شوقي الثانوية للبنات اختار اإلجابة ا ورقة عمل الدرس الثاني تطبيقي اخلاص على هاتفي... برنامج App Inventor اعداد املعلمة اماني ممدوح املصري مدرسة امحد شوقي الثانوية للبنات اختار اإلجابة الصحيحة من بني االختيارات االتية - نضغط على االمر ببرنامج

المزيد من المعلومات

الدوال في اكسل الدوال: هي صيغ معرفة مسبقا تقوم بإجراء عمليات حسابية بإستخدم قيم محددة ووسائط مسماة في ترتيب بنية معينة بناء الدالة: إغالق. يبدأ بناء ا

الدوال في اكسل الدوال: هي صيغ معرفة مسبقا تقوم بإجراء عمليات حسابية بإستخدم قيم محددة ووسائط مسماة في ترتيب بنية معينة بناء الدالة: إغالق. يبدأ بناء ا الدوال في اكسل الدوال: هي صيغ معرفة مسبقا تقوم بإجراء عمليات حسابية بإستخدم قيم محددة ووسائط مسماة في ترتيب بنية معينة بناء الدالة: إغالق. يبدأ بناء الدالة بعالمة المساواة )=( ثم اسم الدالة وقوس فتح ويتم

المزيد من المعلومات

Allomani Warehouse User Guide

Allomani Warehouse User Guide المخزن warehouse.allomani.com دليل المستخدم اللوماني للخدمات البرمجية www.allomani.com / 11 اكتوبر / 2010 1 P a g e المحتويات اضافة و اعداد موقعك في المخزن... 3 اعداد بيانات ال...FTP 3 اعدادات بيانات حقوق

المزيد من المعلومات

جاهعة الوسيلة هركز الشبكات و أنظوة اإلعالم و االتصال والتعلين الوتلفز و التعلين عن بعد مودل Moodle التعل م نظام استخدام "دل ل االلكترون للطلبة" نظام ا

جاهعة الوسيلة هركز الشبكات و أنظوة اإلعالم و االتصال والتعلين الوتلفز و التعلين عن بعد مودل Moodle التعل م نظام استخدام دل ل االلكترون للطلبة نظام ا مودل Moodle التعل م نظام استخدام "دل ل االلكترون للطلبة" نظام التعليم االلكتروني مودل: هدف نظام التعل م االلكترون إل جاد ب ئة تفاعل ة تم من خاللها التواصل ب ن االساتذة ه وطلبتم وب ن الطلبة ف ما ب نهم من

المزيد من المعلومات

الصفة المشبَّهة باسم الفاعل

الصفة المشبَّهة باسم الفاعل الصفة المشب هة باسم الفاعل ه اسم صاغ من الفعل الالزم للداللة على معنى اسم الفاعل وتشابه اسم الفاعل ف المعنى وتفترق عنه ف أن ها تدل على ثابتة. صفة وأوزانها متعددة ثالثة منها مختصة بباب) وأربعة ف ع ل ( مختصة

المزيد من المعلومات

The Global Language of Business دليل ارشادي الستخدام صفحة خدمات الشركات األعضاء Members Area 1

The Global Language of Business دليل ارشادي الستخدام صفحة خدمات الشركات األعضاء Members Area 1 دليل ارشادي الستخدام صفحة خدمات الشركات األعضاء Members Area 1 للتسجيل في صفحة خدمات الشركات Area( )Members على الموقع االلكتروني لشركة هيئة الترقيم االردنية www.gs1jo.org.jo يرجى اتباع الخطوات التالية

المزيد من المعلومات

جامعة عجلون الوطن ة Ajloun National University كلية إدارة األعمال الخطة الدراسية لنيل درجة في الماجستير تخصص إدارة اإلعمال

جامعة عجلون الوطن ة Ajloun National University كلية إدارة األعمال الخطة الدراسية لنيل درجة في الماجستير تخصص إدارة اإلعمال كلية إدارة األعمال الخطة الدراسية لنيل درجة في الماجستير تخصص إدارة اإلعمال المقدمة: تسعى جامعة عجلون الوطن ة إلى استحداث برنامج ماجست ر ف تخصص إدارة األعمال استكماال لباق التخصصات والبرامج التعل م ة ف

المزيد من المعلومات

الدليل التدريبي لتسجيل منتج البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لتسجيل منتج 0

الدليل التدريبي لتسجيل منتج البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لتسجيل منتج 0 البوابة االلكترونية للمطابقة )سابر( 0 جدول المحتويات 2 2 4 6 7 8 9 11 وصف النظام تسجيل المنتج إضافة منتج عن طريق الرمز المنسق الجمركي HS code إضافة منتج عن طريق الكلمات الداللية إضافة منتج عن طريق البحث

المزيد من المعلومات

Oligopoly

Oligopoly OLIGOPOLY JUC مالحظة : الملخص جهد شخصي الجامعة غير مسؤلة عنه, المدونة : https://somenote8.wordpress.com/ احتكار القله OLIGOPOLY بين االحتكار والمنافسة الكاملة BETWEEN MONOPOLY AND PERFECT COMPETITION

المزيد من المعلومات

دولة فلسطين و ازرة التربية والتعليم العالي المبحث: تكنولوجيا المعلومات / النظري بسم هللا الرحمن الرحيم مدة االمتحان : ساعتان نموذج تجريبي مجموع العالم

دولة فلسطين و ازرة التربية والتعليم العالي المبحث: تكنولوجيا المعلومات / النظري بسم هللا الرحمن الرحيم مدة االمتحان : ساعتان نموذج تجريبي مجموع العالم دولة فلسطين و ازرة التربية والتعليم العالي المبحث: تكنولوجيا المعلومات / النظري بسم هللا الرحمن الرحيم مدة االمتحان : ساعتان نموذج تجريبي مجموع العالمات )70( عالمة مالحظة: عدد األسئلة خمسة أسئلة وعلى الطالب

المزيد من المعلومات

متطلبات النظام متطلبات جهاز الكمبيوتر الشخصي معالج Pentium 1 Intel غيغا هرتز أو أسرع نظام التشغيل Windows 2000 أوXP Windows مع Service Pack 2 أو Vista

متطلبات النظام متطلبات جهاز الكمبيوتر الشخصي معالج Pentium 1 Intel غيغا هرتز أو أسرع نظام التشغيل Windows 2000 أوXP Windows مع Service Pack 2 أو Vista متطلبات النظام متطلبات جهاز الكمبيوتر الشخصي معالج Pentium 1 Intel غيغا هرتز أو أسرع نظام التشغيل Windows 2000 أوXP Windows مع Service Pack 2 أو Vista Window أو Windows 7 Enterprise أو Ultimate أو Business

المزيد من المعلومات

المملكة العربية السعودية م ق س ..../1998

المملكة العربية السعودية م ق س ..../1998 SFDA.FD 2483 /2018 الدهون )األحماض الدهنية( المتحولة Trans Fatty Acids ICS : 67.040 تقديم الهيئة جهة مستقلة الغرض األساسي لها هو القيام بتنظيم وم ارقبة الغذاء والدواء واألجهزة الطبية ومن مهامها وضع اللوائح

المزيد من المعلومات

دليل تدريبي : الحلول لما بعد اختراق الحسابات إعداد : محمد المسقطي Mohammed Al-Maskati بمساعدة : علي السباعي Ali Sibai

دليل تدريبي : الحلول لما بعد اختراق الحسابات إعداد : محمد المسقطي Mohammed Al-Maskati بمساعدة : علي السباعي Ali Sibai دليل تدريبي : الحلول لما بعد اختراق الحسابات إعداد : محمد المسقطي Mohammed Al-Maskati Twitter:@mohdmaskati بمساعدة : علي السباعي Ali Sibai Twitter:@alisibai المقدمة : العديد منكم يتعرض إلى حالة من الصدمة

المزيد من المعلومات

( اختبارات الفروق لعينتين مستقلتين Samples) 2) Independent مان- ويتني( U (Mann-Whitney ب( نحتاج الى ھذا القانون الغراض المقارنة بين مجموعتين او عينتين

( اختبارات الفروق لعينتين مستقلتين Samples) 2) Independent مان- ويتني( U (Mann-Whitney ب( نحتاج الى ھذا القانون الغراض المقارنة بين مجموعتين او عينتين ( اختارات الفروق لعينتين مستقلتين Samples) 2) Independent مان ويتني( U (MannWhitney ( نحتاج الى ھذا القانون الغراض المقارنة ين مجموعتين او عينتين مستقلتين مثال المقارنة ين عينة للذكور م ع عينة لالناث او

المزيد من المعلومات

R.A.K Chamber of Commerce & Industry Studies & Commercial Cooperation Directorate Economic Studies Section 0802 /80/80 غرفة تجارة وصناعة رأس الخيمة إد

R.A.K Chamber of Commerce & Industry Studies & Commercial Cooperation Directorate Economic Studies Section 0802 /80/80 غرفة تجارة وصناعة رأس الخيمة إد 0802 /80/80 أداء شركات رأس الخيمة المساهمة بسوق أبوظبي لألوراق المالية لعام 5102 بلغ عدد شركات رأس الخيمة المدرجة في سوق أبوظبي لألوراق المالية 01 شركة مساهمة من أصل 77 شركة مساهمة في السوق لعام 0802 حيث

المزيد من المعلومات

حساب ختام موازنة السلطة المركز ة للسنة المال ة 2013 م قسم) 21 (:وزارة التعل م العال والبحث العلم فرع ( 3 ) :مستشف الكو ت الجامع

حساب ختام موازنة السلطة المركز ة للسنة المال ة 2013 م قسم) 21 (:وزارة التعل م العال والبحث العلم فرع ( 3 ) :مستشف الكو ت الجامع حساب ختام موازنة السلطة المركز ة للسنة المال ة 0 م 76 الباب األول :اإليرادات الضريبية الباب الثاني : المنح الباب الثالث : إيردات دخل الملكية ومبيعات السلع والخدمات والتحويالت والمتنوعة المبالغ باللاير

المزيد من المعلومات

المكونات

المكونات لغات البرمجه Programming Languages 2016/2017 الب ارمج او البرمجيات: هو عبارة عن مجموعة من األوامر والتعليمات مرتبة بتسلسل معين ويقوم الحاسوب بتنفيذها لتحقيق الهدف من البرنامج. المقدمة ىناك العديد من لغات

المزيد من المعلومات

كل ة االقتصاد وعلوم الس اس ة االسئلة االسترشاد ة لطلبة التعل م عن بعد لمادة نظر ة التنظ م قسم:االدارة. لسنة: أوال:أختر االجابة الصح حة: مكن

كل ة االقتصاد وعلوم الس اس ة االسئلة االسترشاد ة لطلبة التعل م عن بعد لمادة نظر ة التنظ م قسم:االدارة. لسنة: أوال:أختر االجابة الصح حة: مكن كل ة االقتصاد وعلوم الس اس ة االسئلة االسترشاد ة لطلبة التعل م عن بعد لمادة نظر ة التنظ م قسم:االدارة. لسنة: 2102-2102 أوال:أختر االجابة الصح حة: مكن أن النظر ة ه االسلوب العلم الذي مكن من: *التفس ر. *التنبؤ.

المزيد من المعلومات

Microsoft Word - moneybookers

Microsoft Word - moneybookers الرحيم الرحمن االله بسم א א א ãããaewt{tuaçxà دليل المستخدم العربي في MONEYBOOKERS شرح بنك أوال عن البنك: :معلومات وقلربيزدنيعلما من بريطانيا. 1- البنك جنسيته المناسبة للعمل بھا. به تختار العملة -2 من 5

المزيد من المعلومات

أ متطلبات التأش رة قص رة المدة عز زنا العم ل برجاء التأكد من النقاط التال ة: - تم تقد م الطلب للحصول على التأش رة ف مكتب ف إف إس جلوبال مكتب تأش رات م

أ متطلبات التأش رة قص رة المدة عز زنا العم ل برجاء التأكد من النقاط التال ة: - تم تقد م الطلب للحصول على التأش رة ف مكتب ف إف إس جلوبال مكتب تأش رات م أ متطلبات التأش رة قص رة المدة عز زنا العم ل برجاء التأكد من النقاط التال ة: - تم تقد م الطلب للحصول على التأش رة ف مكتب ف إف إس جلوبال مكتب تأش رات مالطا من الساعة 03:80 صباحا وحتى 03:80 مساءا من األحد

المزيد من المعلومات

Microsoft Word - AR_ _UM TLCD - KBRC01A.doc

Microsoft Word - AR_ _UM TLCD - KBRC01A.doc TOUCH LCD WALL CONTROLLER for Online Controller KBRC01A دليل المستخدم 1. وصف للشاشة التي تعمل بلمس Controller) (Touch LCD Wall التحكم عن طریق اللمس (LCD) هو من لوازم المحول KKRP01A الذي یسمح بتحكم سهل

المزيد من المعلومات

عرض تقديمي في PowerPoint

عرض تقديمي في PowerPoint Dr./ Ahmed Mohamed Rabie Sayed 1 2 Symbol Sprayer Tool -23 تستخدم األداة Symbol Sprayer Tool إلنشاء مجموعة من الرموز Symbols التصميم. لتنشيط األداة يتم الضغط على مفتاح Shift+S من لوحة المفاتيح. صفحة داخل

المزيد من المعلومات

السلام عليكم ورحمة الله بركاته

السلام عليكم ورحمة الله بركاته ھديتي المتواضعة لكم ھي عن القادم الجديد (نسبيا) LINQ رغم انه توجد مواضيع عديدة غنية عن ھذه التقنية فالمانع من التنوع.واحب ان اذكركم بأني مجرد ھاو للبرمجة تتواضع معرفتي ومعلوماتي امام االساتذة والمحترفين

المزيد من المعلومات

Microsoft Word - Sample Weights.doc

Microsoft Word - Sample Weights.doc ورشة العمل الا قليمية حول تصميم العينات الدوحة ١٥-١٧ ا يار/ مايو ٢٠٠٧ ترجيح العينات ا عداد خميس رد اد مستشار العينات ١ المحاضرة الثامنة ترجيح العينات مقدمة ان عملية ترجيح العينة تعنى عملية اعادة وضع العينة

المزيد من المعلومات

بسم اهلل الرمحن الرحيم الوحدة الثانية الفيجول بيسك Microsoft VISUAL BASIC احلمد اهلل الذي أكرمين و منحين الفرصة لتوفري لكم هذا امللخص املنقى للوحدة ال

بسم اهلل الرمحن الرحيم الوحدة الثانية الفيجول بيسك Microsoft VISUAL BASIC احلمد اهلل الذي أكرمين و منحين الفرصة لتوفري لكم هذا امللخص املنقى للوحدة ال بسم اهلل الرمحن الرحيم الوحدة الثانية الفيجول بيسك Microsoft VISUAL BASIC احلمد اهلل الذي أكرمين و منحين الفرصة لتوفري لكم هذا امللخص املنقى للوحدة الثانية من الكتاب املدرسي للصف احلادي عشر, و ارجوا أن

المزيد من المعلومات

بسم هللا الرحمن الرحيم المادة: مقدمة في بحوث العمليات )100 بحث ) الفصل الدراسي األول للعام الدراسي 1439/1438 ه االختبار الفصلي الثاني اسم الطالب: الرق

بسم هللا الرحمن الرحيم المادة: مقدمة في بحوث العمليات )100 بحث ) الفصل الدراسي األول للعام الدراسي 1439/1438 ه االختبار الفصلي الثاني اسم الطالب: الرق بسم هللا الرحمن الرحيم المادة: مقدمة في بحوث العمليات ) بحث ) الفصل الدراسي األول للعام الدراسي 9/8 ه االختبار الفصلي الثاني اسم الطالب: الرقم الجامعي: أستاذ المقرر: الدرجة: أكتب اختيارك لرمز اإلجابة الصحيحة

المزيد من المعلومات

AlZuhour Private School مدرسة الزهور الخاصة Term 1 Plan Subject Arabic Grade 2 Term 1 Contents ( كتاب الطالب ) الوحدة األولى :) صح تك بين يد

AlZuhour Private School مدرسة الزهور الخاصة Term 1 Plan Subject Arabic Grade 2 Term 1 Contents ( كتاب الطالب ) الوحدة األولى :) صح تك بين يد Term 1 Plan 2018-2019 Subject Arabic Grade 2 Term 1 Contents ( كتاب الطالب ) الوحدة األولى :) صح تك بين يديك( -- قصة مسعودة السلحفاة النص املعلوماتي : السلحفاة )الربط: بالعلوم( - النحو والكتابة : -االسم

المزيد من المعلومات

R.A.K Chamber of Commerce & Industry Studies & Commercial Cooperation Directorate Economic Studies Section 5510 /50/11 غرفة تجارة وصناعة رأس الخيمة إد

R.A.K Chamber of Commerce & Industry Studies & Commercial Cooperation Directorate Economic Studies Section 5510 /50/11 غرفة تجارة وصناعة رأس الخيمة إد 5510 /50/11 أداء شركات رأس الخيمة المساهمة بسوق أبوظبي لألوراق المالية لعام 4102 بلغ عدد شركات رأس الخيمة المدرجة في سوق أبوظبي لألوراق المالية 11 شركة مساهمة من أصل 87 شركة مساهمة في السوق لعام 5512 حيث

المزيد من المعلومات

عرض تقديمي في PowerPoint

عرض تقديمي في PowerPoint .1.2.3 أولا هذا اإلجراء يقوم به أمين مركز مصادر التعلم بعد الدخول للصفحة الرئيسية من حسابه في نظام نور ثم إختيار مصادر التعلم يتم إضافة أوعية مصادر التعلم ) الكتب أقراص الليزر( من قبل أمين مركز المصادر

المزيد من المعلومات

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE وزارة التعليم العالي والبحث العلمي Ministère de l enseignement supérieur et de la recherche scientifiq

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE وزارة التعليم العالي والبحث العلمي Ministère de l enseignement supérieur et de la recherche scientifiq ماستر. 1 لسان ات تطب ق ة ق: 16 النظر ات اللسان ة إنجلز ة 2018-06-19 ش خ إدر س المنهج و المنهج ة فن ات البحث و الكتابة فارس حس ن الطرش التحل ل التول دي خالدي هشام المبادئ المنهج ة للتحل ل اللسان الهادي

المزيد من المعلومات

Department of Computer Information Systems

Department of Computer Information Systems Departmet of Computer Iformatio Systems CIS : Itroductio to Iformatio Techology Topic 5 Numberig Systems (Exteral Material) Chapter Outlie Numberig Systems Coversio Betwee Systems ملخص الفصل أنظمة الا

المزيد من المعلومات

قررت وزارة التعليم تدري س هذا الكتاب وطبعه على نفقتها الريا ضيات لل صف االأول االبتدائي الف صل الدرا سي الثاين كتاب التمارين قام بالت أاليف والمراجعة

قررت وزارة التعليم تدري س هذا الكتاب وطبعه على نفقتها الريا ضيات لل صف االأول االبتدائي الف صل الدرا سي الثاين كتاب التمارين قام بالت أاليف والمراجعة قررت وزارة التعليم تدري س هذا الكتاب وطبعه على نفقتها الريا ضيات لل صف االأول االبتدائي الف صل الدرا سي الثاين كتاب التمارين قام بالت أاليف والمراجعة فريق من المتخ ص صين طبعة 9 0 ه 08 09 م ح وزارة التعليم

المزيد من المعلومات

PowerPoint Presentation

PowerPoint Presentation عرض لنظام المعماري الاستراتيجي لمتابعة الأداء وتنفيذ الاستراتيجيات 1999 مقدمة تاسست عام في مصر شركة مساهمة خاصة من عام 2002 المقر الرئيسي بالقاهرة 35 موظف شركاء استراتيجيين في الشرق الأوسط خبرات دولية

المزيد من المعلومات

الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات المستوردة( البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات

الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات المستوردة( البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات البوابة االلكترونية للمطابقة )سابر( 0 جدول المحتويات 2 2 9 1 وصف النظام 2 طلب مطابقة إرسالية جديد 3 إصدار الشهادة 1 1 وصف النظام يهدف هذا النظام لتمكين ضابط اتصال المنشأة ومفوض المنشأة من استخراج شهادة

المزيد من المعلومات

جامعة جدارا Jadara University كلية: الدراسات التربوية

جامعة جدارا   Jadara University كلية: الدراسات التربوية Jadara University جامعة جدا ار College: Educational Studies كمية: الد ارسات التربوية اثر حجم العينة وأسموب اختيارها في الخصائص السيكومترية لممقاييس النفسية The Effect Of Sample Size And It's Selection

المزيد من المعلومات

Microsoft Word - CO_RT10

Microsoft Word - CO_RT10 إعداد : تقديم الشكل أسفله يمثل مضخم يعتمد على ترانزيستور. فھو يحتوي على شبكة من المقاومات تمكن من تقطيب و مكثفات تعمل على ربط المضخم بأخر وذلك بتمرير اإلشارات المتناوبة. R1 100k 1µF 1µF (Load) Rc (charge)

المزيد من المعلومات

Microsoft Word - 1-NURSE CALL SYSTEM

Microsoft Word - 1-NURSE CALL SYSTEM أنظمة التيار الخفيف 1 -نظام استدعاء الممرضات Eman.A (نظام استدعاء الممرضات) NURSE CALL SYSTEM الھدف من النظام : تسھيل عملية الرعاية الصحية للمرضي, مساعدته في حالة الطوارء. تسھيل التواصل بين فريق العالج

المزيد من المعلومات

Slide 1

Slide 1 تصميم السيرة الذاتية كصفحات الويب د. احمد عادل اسماعيل عمادة المركز الجامعي لخدمة المجتمع و التعليم المستمر. WWW.Dr-Ahmed.Info Info@Dr-Ahmed.Info -------------- المرجع: www.support.office.com اهداف المحاضرة

المزيد من المعلومات

كل ة الترب ة األساس ة مكتب الترب ة العمل ة بطاقة تقو م الطالب المعلم تخصص اللغة االجنلل ي ة 02 / 02 المجنطقة التعل م ة:... العام الدراس : م... : المرح

كل ة الترب ة األساس ة مكتب الترب ة العمل ة بطاقة تقو م الطالب المعلم تخصص اللغة االجنلل ي ة 02 / 02 المجنطقة التعل م ة:... العام الدراس : م... : المرح كل ة الترب ة األساس ة كتب الترب ة العل ة بطاقة تقو الطالب العل تخصص اللغة االجنلل ي ة 2 / 2 الجنطقة التعل ة:... العا الدراس :... : الرحلة التعل ة:... الفصل الدراس... :... اس الدرسة : اس الطالب...... الشرف

المزيد من المعلومات

التعصيب و الحجب

التعصيب و الحجب العصبة النسب ة ه األصل ف اإلرث. و ه ثالثة أنواع: أ-عصبة بالنفس ب- عصبة بالغ ر أ-عصبة مع الغ ر - لغة: الشدة والقوة و اإلحاطة. -اصطالحا: اإلرث بال تقد ر. و عن أخذ الوارث كل الم راث عند عدم وجود صاحب فرض

المزيد من المعلومات

riyadh-geeks-mobile-first

riyadh-geeks-mobile-first هذه الشريحة ت ركت فارغة عمد ا. رياض قيكس. لقاء شهر أغسطس ٢٠١٥. اجلو ال أوال *. تصميم صفحات الو يب ألجهزة اجلو ال. * مستلهم من http://www.youtube.com/watch?v=nje_or4vilu و غيره. ح سام الزغيبي. @hossamzee

المزيد من المعلومات

المحاضرة العاشرة الجديده لالساليب الكميه في االداره الفصل الثاني لعام 1439 ه للدكتور ملفي الرشيدي يجب الرجوع للمحاضره المسجله لفهم الماده وامثلتها تحل

المحاضرة العاشرة الجديده لالساليب الكميه في االداره الفصل الثاني لعام 1439 ه للدكتور ملفي الرشيدي يجب الرجوع للمحاضره المسجله لفهم الماده وامثلتها تحل المحاضرة العاشرة الجديده لالساليب الكميه في االداره الفصل الثاني لعام 1439 ه للدكتور ملفي الرشيدي يجب الرجوع للمحاضره المسجله لفهم الماده وامثلتها تحليل القرارات الجزء األول Decision Analysis- Part I عناصر

المزيد من المعلومات

عرض تقديمي في PowerPoint

عرض تقديمي في PowerPoint Dr./ Ahmed Mohamed Rabie Sayed 1 2 صندوق االدوات صندوق االدوات Tools Box يحتوى اظهار وإخفاء Tools Box من قائمة على االدوات Window الرئيسية الالزمة النشاء واختيار.Tools وتعديل التصميم. ويمكن 3 Move Tool

المزيد من المعلومات

عرض تقديمي في PowerPoint

عرض تقديمي في PowerPoint بسم هللا الرحمن الرح م الضغط الجوي : إن الضغط الجوي هو ذلك الثقل الذي مارسه الغالف الغازي على سطح الكرة األرض ة. و هو وزن عمود من الهواء مساحة مقطعه وحدة المساحات بارتفاع عادل سمك الغالف الجوي أجهزة ق

المزيد من المعلومات

Microsoft Word - e.doc

Microsoft Word - e.doc حرارة التفاعل الكيمياي ي - قانون حفظ الطاقة : (Exothermic) (Endothermic) ا نواع الطاقة طاقة الحركة طاقة الوضع الطاقة الحرارية - التفاعلات المنتجة (الطاردة) للحرارة - التفاعلات الماصة (المستهلكة) للحرارة

المزيد من المعلومات

قوانين اإلستعارة هذه هي قوانين اإلستعارة التي تسري في المكتبات الشعبية في كل من بيورهولم, نوردمالينغ, روبيرت فورش, اوميو, فيندلن و فيينسس. بطاقة المكت

قوانين اإلستعارة هذه هي قوانين اإلستعارة التي تسري في المكتبات الشعبية في كل من بيورهولم, نوردمالينغ, روبيرت فورش, اوميو, فيندلن و فيينسس. بطاقة المكت قوانين اإلستعارة هذه هي قوانين اإلستعارة التي تسري في المكتبات الشعبية في كل من بيورهولم, نوردمالينغ, روبيرت فورش, اوميو, فيندلن و فيينسس. بطاقة المكتبة يمكنك اإلستعارة مجانا ( بدون أية رسوم( في كل المكتبات

المزيد من المعلومات

اجيبي علي الاسئلة التالية بالكامل:

اجيبي علي الاسئلة التالية بالكامل: أساليب توزيع السكان وكثافتهم أوال: التوزيع السكاني Population Distribution التوزيع السكاني هو عبارة عن توزيع البشر األعداد المطلقة على الرقعة المساحية. إن التوزيع الجغ ارفي للسكان هو الجغ ارفية. انعكاس

المزيد من المعلومات

اختبار تحليل التباين األحادي و اختبار كرودكال والس الالمعلمي يبين السؤال التالي ست مجموعات من دول العالم توضح نسبة التحضر في كل منها حسب الموجود في ال

اختبار تحليل التباين األحادي و اختبار كرودكال والس الالمعلمي يبين السؤال التالي ست مجموعات من دول العالم توضح نسبة التحضر في كل منها حسب الموجود في ال اختبار تحليل التباين األحادي و اختبار كرودكال والس الالمعلمي يبين السؤال التالي ست مجموعات من دول العالم توضح نسبة التحضر في كل منها حسب الموجود في الملفات الثالثة المرفقة المطلوب : 1 -هل وجد اختالف ب

المزيد من المعلومات

1 درس :

1 درس : 1 درس : ثانية االمام البخاري التأهيلية المستى: الجدع المشترك العلمي المكن : الهندسة المرجع: في رحاب الرياضيات المادة: الرياضيات الجدادة: رقم 2 71 فبراير االسبع: من الدرس الى 32 فبراير 3172 المستقيم في

المزيد من المعلومات