محاضرات C++

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

Download "محاضرات C++"

النسخ

1 محاضرات C++ لألستاذ/ بسام الھاملي إعداد الطالب: ھشام يحيى دالل

2 اإلھداء اللھم إني أردت بھذا العمل وجھك الكريم فتقبل مني اللھم من استفاد من ھذا الكتاب بمعلومة فاكتب لي بھ ا ح سنة وإن تضاعف لي فإنك أنت الحليم الكريم ومن صححت لديه فكرة كان ت خاطئ ة ف أمحو عن ي س يئة وإن ت ضاعف فإنك أنت العفو الغفور. اللھم اغفر لي ولمن علمني ھذا العلم وأطل في عمره.. اللھم زدني علما وانفعني به اللھم إني أعوذ بك من عل م ال ينف ع وقل ب ال يخ شع وص الة ال ترف ع وص دقة ال تقب ل وأعوذ بك من الرياء والنفاق والكب ر والعج ب والبخ ل وال شح والعج ز والك سل وأرذل العم ر وع ذاب القب ر وفتنة المحيا والممات وفتنة المسيخ الدجال. اللھم إني اھدي ھذا الكتاب لجميع طالب العلم من المسلمين فاحفظه من التلف أو الضياع أو اإلھمال.. اللھم آمين في حالة وجود أخطاء: أرجو شاكرا أن تساھم معي في تصحيح األخطاء اإلمالئي ة واألخط اء ف ي الفك رة أو الك ود وغيرھ ا عب ر على البريد: مع ذكر رقم الفصل الذي يحتوي على الخطأ. إرس الھا ٢

3 الفصل 1 مقدمة عن البرمجة Introduction البرمجة :(Programming) عبارة عن مجموعة من األسس والمبادئ والنظريات التي تتالئم مع البيئات العملية "مبادئ علم الحاسوب". البرنامج :(Program) تعريف عام : مجموعة من التعليمات "Codes" واألوامر المرتبة لحل مشكلة معينة. أو : مجموعة من األكواد المكتوبة بلغة من لغات البرمجة. الحزم :(Package) مجموعة م ن الب رامج الج اھزة المتكامل ة والمترابط ة فيم ا بينھ ا والت ي ت ؤدي وظ ائف متع ددة وتعم ل تح ت بيئ ة واحدة. برامج جاھزة: يعني ال يتم التعديل عليھا فھي صيغة نھائية مثل : package windows, office أنواع البرامج :Program types أنظمة التشغيل.(OS) ١ لغات البرمجة Languages).(Programming ٢ التطبيقات.(Applications) ٣ المفسرات/المترجمات.(Compilers) ٤ مستويات البرمجة: وھي مستويات يمر عليھا المبرمج خالل رحلته التعليمية البرمجية: وھي مرحلة كتابة برامجه بطريق ة ع شوائية ال تعتم د عل ى أس س ونظري ات وھيكل ة فم ا يھم المبرمج ھو الوصول لحل المشكلة فقط. عيوبھا: ال يمكن اكتشاف الخطأ في البرنامج. ال يمكن تطوير البرنامج بسھولة. تطوير البرنامج يزيد حجم البرنامج بشكل كبير. وھي مرحلة يقوم فيھا المبرمج بتقسيم برنامجه إلى ھياك ل ت ساعد عل ى اكت شاف األخط اء والتطوير كما أعطت إمكانيات كثيرة. وھي مرحلة يقوم فيھا المبرمج بھيكلة برنامج ه إل ى كائن ات ك ل ك ائن يتخ صص ف ي ح ل مشكالت في مجال معين ويحتوي الكائن على ط رق "دوال" مترابط ة تجع ل م ن الك ائن يمتلك ذكاء في تحديد االستجابة المطلوبة تلقائيا. ١) التقليدية: ٢) الھيكلة: ٣) الكائنية: الكائنية الھيكلية التقليدية ٣

4 مستويات لغات البرمجة Levels) :(Programming Language المستوى األدنى (L.L.L) :Lowest Language Level يتعامل ھذا المستوى مع الدوائر المنطقية ويتكون من : لغة اآللة.(Assembler) لغة التجميع Assembly).(Micro.١ عيوبه: صعوبة كتابة البرمجيات أو فھمھا ألنھا تتعامل مع رموز بالنظام الثنائي "0/1". لغة قريبة من اآللة وبعيدة عن اإلنسان. تحتاج إلى متخصصين في الحاسوب. مالحظة: نظام اإلدخال (ثنائي) نظام الحفظ (عشري). نظام العرض (سادس عشر). المستوى المتوسط (M.L.L) :Midst Language Level ظھر ھذا المستوى ثم اختفى بسرعة بسبب سرعة التطوير إلى الم ستويات العلي ا حي ث دمج ت وص نفت لغاته في المستوى العالي ويتكون من اللغات التالية:.C.C++.٢ قريبة من الحاسوب ومن اإلنسان. مميزاته: المستوى العالي (H.L.L) :Highest Language Level تتكون من :.Basic (تستخدم في المجال العلمي). Pascal (تستخدم في المجال الفيزيائي والرياضي). Fortran (تستخدم في المجال التجاري). Cobol.Java.٣ مميزاته: قريبة جدا من لغة اإلنسان. سھلة الفھم والكتابة. لغات ھيكلية. لغ ات متخص صة (ك ل لغ ة تھ تم بجان ب مع ين وبالت الي يمك ن االس تفادة م ن اللغ ات المختلف ة بحسب نوع المشكلة المراد حلھا). ٤

5 الفصل 2 مقدمة عن ++C Introduction C++ نبذة تاريخية: أول لغ ة ظھ رت ھ ي األس مبلي للتعام ل م ع البواب ات المنطقي ة ومب ادئ الحوس بة ث م ظھ رت مب ادئ لغ ة C ف ي األربعينيات. مميزات لغة : C لغة كاملة وشاملة (تعتبر أم لغات البرمجة). بيئة تطويرية (IDE) Integrated Development Environment تحوي كل األدوات. إنشاء برامج مساعدة ال تعتمد على واجھات (Interface) تتميز بأنھا سرية وآمنة وقوية. مكتبات تنفيذ المشروع. MFC صفوف ميكروسوفت التأسيسية Microsoft foundation class تساعد ف ي إن شاء الواجھ ات (GUI) Graphic user interface (واجھات التخاطب مع المستخدم). أدوات البناء Built tools تساعد في استخدام األدوات الموجودة في ++C. الشكل العام للبرنامج: Header Files Program Body. ١ استيراد المكتبات <library_name.h> #include 1.. ٢ منطقة التصاريح العامة 2. Public Declaration () Main 3.. ٣ الدالة الري يسية { 4.. ٤ بداية الدالة الري يسية { Private Declaration. ٥ منطقة التصاريح الخاصة 6. Statements.. Statements.. Statements.. ٦. جمل برمجية 7.. ٧ نهاية الدالة الري يسية ٥

6 الفصل 3 واجھة بيئة ++C C++ Interface واجھة البرنامج: اسم الملف المصدري مع االمتداد.cpp أھم األجزاء: [١] مكان كتابة الكود. [٢] تنفيذ وعرض البرنامج ويتكون من مرحلتين: مرحلة تكوين ملف مصدري ثم ترجمة البرنامج للتنفيذ. [٣] منطقة عرض األخطاء ومن خاللھا يتم تحديد مكان الخطأ Error مع نوعية الخطأ. ٦

7 أنواع المشاريع: PROJECTS Database Project MFC ActiveX ControlWizard (ocx) MFC AppWizard (dll) MFC AppWizard (exe) Utility Project Win32 Application Win32 Console Application المشروعات قواعد بيانات ملفات مساعدة (لھا خصائص وليس لھا واجھات) ملفات مساعدة (لھا خصائص مثل النموذج) تساعد في تصميم الواجھات. ملفات مساعدة (تحوي النوعين (dll, ocx برامج خدمية تصميم تكوين مشروع من عدة تطبيقات تطبيق شاشة سوداء ٧

8 FILES Active Server Page Binary File Bitmap File C/C++ Header File C++ Source File Cursor File HTML Page Icon File الملفات صفحات انترنت تفاعلية ASP ملفات ثنائية (0/1) خريطة بيتات تنتج صورة مكتبات "إنشاء مكتبات" بامتداد h. برامج ++C "التي سنستخدمھا" ملفات مصدرية إنشاء صور مؤشر الفأرة إنشاء صفحات ويب في بيئة html إنشاء أيقونة (رمز) ٨

9 الفصل 4 مكونات ++C C++ Components المكتبات: iostream.h (١ stdio.h (٢ conio.h (٣ math.h (٤ String (٥ (مكتبة عامة ألوامر اإلدخال واإلخراج) (مكتبة عامة "أقدم مكتبة" ألوامر اإلدخال واإلخراج) (مكتبة دوال أوامر الشاشة) (مكتبة الدوال الرياضية) (مكتبة دوال معالجة النصوص) مالحظة: في أسماء المكتبات مثل stdio.h) (iostream.h, :.(Input) يعني أوامر اإلدخال ودوال اإلخراج : i.(output) يعني أوامر اإلخراج ودوال اإلدخال : o.system والبعض يصفھا ب Standard البعض يقصد بھا : s أنواع البيانات: INTEGER Bytes REAL Bytes STRING Bytes LOGIC Bytes Short 2 Float 4 Char 1 Bool 1 Int 4 Double 8 String 8 Long 4 ھذه المسميات موجودة في الذاكرة العشوائية (RAM) لكل نوع تقسيم "حجم" معين. RAM 1 bit 1 bit 1 bit 1 bit 1 bit 1 bit 1 bit 1 bit 1 byte النوع الحجم Bit 2 (0/1) Byte 8 bit Kilobyte 1,000 byte Megabyte 1,000,000 byte Gigabyte 1,000,000,000 byte ٩

10 المتغيرات: أسماء كلمات ليست من كلمات اللغة المحجوزة يصطلحھا المبرمج (م ستخدم بيئ ة تط وير لغ ة البرمج ة) بغ رض تخزين قيم في الذاكرة ال رام لتمك ين المب رمج م ن إج راء العملي ات المختلف ة عل ى المتغي رات. ف المتغير يحف ظ ف ي موقع في الذاكرة وإذا أراد المبرمج أن يزيد أو ينقص قيمة المتغير فيستطيع من خالل اسم المتغير. DataType VariableName; 1. int x; 2. char ch; الشكل العام: أمثلة إسناد قيم للمتغيرات: ; 5 = x 1. int تعريف متغير x يحمل قيمة ابتداي ية.5 2. x = 10 ; إسناد قيمة جديدة ل.x ; 20 = x.3 تغيير القيمة السابقة بقيمة جديدة أخرى. ; = x 4. ) للمتغير إسناد ناتج القيمة الحسابية (المتغير سيحمل القيمة ٨) 5. cin >> x ;. ( ٢ ) تغيير القيمة أثناء التشغيل من قبل المستخدم ; ' y 6. char ch = ' إسناد قيمة حرفية لمتغير (يكتب داخل تعليق مفرد ' ' ( ; ' y 6. char ch = ' شروط تعريف المتغيرات: ال يبدأ برقم أو عملية حسابية أو رمز ما عدا _.(underscore) أال يحتوي على عملية حسابية أو رمز أو فراغ. أال يزيد عن 255 حرفا..١.٢.٣ (1) العمليات الرياضية في الفصل السابع. (2) استقبال القيم من المستخدم أثناء التشغيل في الفصل التالي. ١٠

11 القيم االبتدائية الثابتة والمتغيرة Const) (Initialization & القيمة االبتدائية : ھي قيم تسند للمتغير بمجرد تعريفه وھي نوعين: القيم المتغيرة : يمكن تغييرھا في البرنامج من قبل المبرمج أو أثناء التشغيل mode" "run باستخدام."cin" القيم الثابتة :(const) ال يمكن تغييرھا بأي حال من األحوال. : : فائدتھا مثل حماية القيم التي نحتاجھا كما ھي وال نريد أن يتم تغيير قيمتھا بالخطأ. قيمة الثابت (3.14) π مثال لمتغير: ; 5 = x 1. int تعريف متغير x يحمل قيمة ابتداي ية.5 2. x = 10 ; إسناد قيمة جديدة ل 2. x = 10 ;.x ; 20 = x.3 تغيير القيمة السابقة بقيمة جديدة أخرى. ; x.4 cin << تغيير القيمة أثناء التشغيل من قبل المستخدم. مثال لثابت: 5; = x 1. const int تعريف ثابت يحمل قيمة ثابتة.5.2 x = 10 ; Error // إسناد قيمة جديدة يولد خطا في تنفيذ البرنامج. التعليقات :Comments عبارة عن توضيحات يكتبھا المبرمج ال تدخل في تركيب البرنامج (ال ينفذھا المترجم). وتكون على شكلين : 1. // This is a comment 2. // And this is another comment 1. /* 2. This is a comment 3. In tow lines 4. */ 1. /* This is 2. a comment 3. in three lines */ تعليق السطر الواحد : تعليق األسطر المتعددة: ١١

12 الفصل 5 أنواع المكتبات Libraries type المكتبة IOSTREAM تم دمج مكتبتين ضمن ھذه المكتبة : Istream مكتبة اإلدخال. Ostream مكتبة اإلخراج. أوامر اإلدخال واإلخراج: تحتوي مكتبة iostream.h على دوال منھا cin و cout ويتم استخدامھما كالتالي: إدخال قيمة للمتغير x من قبل المستخدم: ; x.1 cin << إخراج قيمة المتغير إلى الشاشة: ; x.2 cout >> أرقام ورموز وحروف (انجليزية) باستخدام شرطة مزدوجة " " ; " نص " >> cout.3 حرف واحد باستخدام شرطة مفردة ' ' ; ' c 4. cout << ' 1. #include <iostream.h> 2. Main() 3. { 4. int x ; 5. cin >> x ; 6. cout << " X value is: " << x ; #include <iostream.h> 2. Main() 3. { 4. int x, y ; 5. cin >> x >> y ; 6. cout << " first value is: " << x << " second value is: " << y ; 7. مثال ١: مثال ٢: ١٢

13 المحارف الخاصة: ھ ي رم وز محج وزة تعب ر ع ن الح روف غي ر المطبوع ة وت ستخدم م ع ال دوال مث ل (cout) و (printf) وتك ون ضمن إشارتي تنصيص مزدوجة أو مفردة. \n \t \b \a توضيح سطر جديد ٨ مسافات فارغة الرجوع للخلف إصدار صوت من الجھاز المعنى المحرف New line 8 Spaces (Tap) Backspace Sound "beep" مثال: الناتج : النزول إلى سطر جديد فارغ ;'n\' 1 cout >> الناتج : 20"; 2 cout << "Ahmed \t Ahmed 20 الناتج : "khaled\nsaleh"; 3 cout << khaled Saleh دوال تقوم بعمل المحارف الخاصة: تستخدم مع الدالة (cout). توضيح سطر جديد ٨ مسافات فارغة المعنى New line الدالة endl ends 8 Spaces (Tap) الناتج : "20"; << ends 1 cout << "Ahmed" << Ahmed 20 الناتج : "Saleh"; 2 cout << "khaled" << endl << khaled Saleh مثال: ١٣

14 المكتبة : Stdio.h تحتوي على دالتين مھمتين : printf وھي دالة خاصة بعمليات اإلخراج. scanf وھي دالة خاصة بعمليات اإلدخال. : PrintF (١ تتميز printf عن cout أنه يمكن كتابة النص والمتغير في نفس السطر ب دون الحاج ة لمعام ل االخ راج (>>) ولكن بدال عن كتابة اسم المتغير يكتب التمثيل الديناميكي للمتغير حسب نوعه مسبوقا بالرمز %: مالحظة التمثيل الديناميكي النوع digital أول حرف من من d% int char أول حرف من %c char string أول حرف من %s string float أول حرف من %f float الصيغة العامة: "); النص Printf(" التمثيل الديناميكي النص") printf," varname); ديناميكي تمثيل ديناميكي") printf,"تمثيل varname1, varname2); طباعة نص : طباعة نص مع متغير : طباعة أكثر من متغير : : الناتج "); welcome 1. Printf(" 2. int a = 255 ; 3. printf(" Area = %d ", a ); Area = int x = 1; int z = 2; 5. printf(" v1 = %d and v2 = %d ", x, z ); v1 = 1 and v2 = 2 أمثلة: ١٤

15 : ScanF (٢ يمكن من خالل ھذه الدالة استقبال المتغيرات من المستخدم وإسنادھا للمتغيرات تماما مثل.(cin) الصيغة العامة: scanf (" التمثيل الديناميكي ", &varname); استقبال قيمة من المستخدم: استقبال قيمتين من المستخدم: scanf ديناميكي تمثيل ديناميكي"),"تمثيل &varname1, &varname2); مالحظة: يجب كتابة الرمز & قبل أي متغير. 1. int x ; char y; 2. scanf ("%d ", &x ); 3. scanf ("%d%c ", &x, &y ); أمثلة: واجب : ابحث عن الدوال : getch() و.puts() ١٥

16 الدالة abs( x ) sin ( x) cos ( x ) tan ( x ) sinh ( x ) cosh ( x ) tanh ( x ) pow ( x, y ) exp ( x ) sqrt ( x ) log ( x ) ceil ( x ) floor ( x ) المكتبة : Math.h تحتوي على دوال رياضية كثيرة مثل: توضيح األعداد الحقيقية جا س جتا س ضا س س جا الرمز الرياضي x x y e x x Log x ١ ١ س جتا ١ ضا س االس e الجذر اللوغاريتم تقريب الكسور لألعلى حذف الكسور مثال: الناتج: cout << ceil( 3.44 ); 4 cout << ceil( 3.77); 3 cout << floor( 3.44 ); 3 ١٦

17 المكتبة : String توفر نوع من أنواع البيانات وھو (string) الذي يقبل تخزين مجموعة حروف ورم وز وأرق ام ك نص ف ي متغي ر واحد. تختلف المكتبة عن سابقاتھا فمن أجل تعريف متغير x من نوع string يجب : تضمين المكتبة.string ١. إلغاء h. من اسم المكتبة "باستثناء المكتبات القديمة ". ٢. تحديث المكتبات.. ٣. مثال:.1 #include <string> تضمين المكتبة string بدون كتابة اللاحقة h..2 #include <iostream> تضمين مكتبة جديدة لذا لا نكتب اللاحقة h..3 #include <stdio.h> تضمين مكتبة قديمة لذا تبقى اللاحقة مثل stdio.h, math.h 4..5 std; using namespace تحديث المكتبات حيث std يحوي أوامر جديدة للمكتبات القابلة للتحديث "المكتبات الجديدة" main () 8. { 9. ; s string تعريف متغير نصي 10. "; Bassam s = " إسناد قيمة نصية للمتغير.11 ;s cout >> طباعة المتغير (عرض المتغير على الشاشة). 12. ١٧

18 الفصل 6 تنسيق مخرجات البرنامج Format Outputs تنسيق الشاشة: مثال: يمك ن تح ديث المكتب ات ب دون ت ضمين مكتب ة string وم ن ممي زات تح ديث المكتب ات الح صول عل ى دوال.(DOS) التي تمكننا من تنسيق شاشة اإلخراج وكذلك استخدام جميع أوامر نظام system.1 #include <iostream> تضمين مكتبة مع حذف اللاحقة h. 2. std; using namespace تحديث المكتبات main () 5. {.6 system("color ("f0 ; تنسيق لون النص إلى اسود (0) والخلفية إلى أبيض (F).6 system("color ("f0 ;.7 colors"; cout >> "new طباعة نص (سيظهر باللون الا سود).8 system("pause"); جعل البرنامج في حالة انتظار 9. مالحظات: يتم تمثيل األلوان برقم "سادس عشري" من صفر إلى f حيث يمثل جميع األلوان األساسية. عند كتابة رقم واحد "9 "color فھذا سيغير لون النص فقط. عند كتابة رقمين "f0 "color فإن األول سيغير لون النص والثاني سيغير لون الخلفية. عند كتابة رقمين متشابھين "99 "color فلن يتغير أي لون باعتبار أن ل ون الخ ط سي شبه ل ون الخلفي ة ولذا لن يظھر شيء فلذلك يتم تجاھل األلوان وإعادة األلوان االفتراضية..١.٢.٣.٤ تنسيق األلوان االفتراضي لمحرر بيئة ++C :Microsoft الكلمة المحجوزة تظھر بلون أزرق. الكلمة غير المحجوزة تظھر بلون أسود. التعليقات تظھر بلون أخضر. لغة ++C حساسة لحالة األحرف ) r ال يساوي ( R.١.٢.٣.٤ ١٨

19 التنسيق باستخدام ) cout :( تحتوي cout على العديد من الخواص الخاصة بالتنسيق ومنھا : width والتي تعمل إزاحة لليمين م ن جھ ة الي سار بمق دار معين width تركتھ ا الت ي الفراغ ات بتعبئ ة تق وم والت ي Fill برمز معين. Precision والتي تقوم بتقريب األرقام. 1. cout.width(20); مثال ١ : النتيجة : "Welcome"; 2. cout << Welcome مثال ٢ : 1. cout.width(20); 2. cout.fill('#'); النتيجة : "Welcome"; 3. cout << ##########Welcome مثال ٣ : الكود : النتيجة : 1. cout.precision(3); 2. cout << 3.449; cout.precision(2); 4. cout << 3.449; cout.precision(3); 6. cout << 3.482; cout.precision(2); 8. cout << 3.482; cout.precision(1); 10. cout << 3.482; cout.precision(); 12. cout << 3.482; 3 ١٩

20 الفصل 7 العمليات في ++C C++ Operations العمليات الحسابية: الرمز + * / y / x y \ x y % x التوضيح العمليات الرياضية القسمة القسمة الصحيحة باقي القسمة 1. int x = 3 ; 2. int z = 7 ; 3. مثال : الناتج هو " x= 4. cout << "z + x= " ; "z + الناتج هو ; 10 x 5. cout << z + مالحظة : ما داخل األقواس 'المفردة' أو "المزدوجة" يعتبر نص. عمليات المقارنة: الرمز > < > = < = = =! = التوضيح أكبر من أصغر من أكبر أو يساوي أصغر أو يساوي يساوي ال يساوي 1. int x = 3 ; 2. int z = 7 ; 3. مثال : 4. if ( x!= z) z ( ٢ ) x لا يساوي ( ١ ) إذا كان 5. { 6. cout << "Not equal" ; فاطبع الجملة equal" "Not.7 ناتج البرنامج equal" "Not لا ن ناتج الشرط.7 True "صواب" (1) جمل التحكم في الفصل الثامن. (2) المساواة تعني "مقارنة قيمتين" األمثلة في الصفحة التالية. ٢٠

21 العمليات المنطقية :Logic Effects الرمز &&! التوضيح و أو نفي 1. int x = 3 ; 2. int z = 7 ; 3. مثال : (0<z.4 if ( x 0< && إذا كان x أكبر من الصفر وأيضا z أكبر من الصفر 5. { (ناتج الشرط (True 6. cout << "Both numbers positive" ; 7. ناتج البرنامج positive" " Both numbers 7. المساواة واإلسناد :Equal and Assigned اإلسناد: ھو إعطاء المتغير قيمة: 1 int x ; 2 x = 7 ; مثال: الناتج x; 7 3 cout << 1. int x = 7 ; 2. int y = 7 ; 3. المساواة: ھو مقارنة قيمتين: x==y; 4. cout << الناتج صواب (True) "سيطبع 1 في الشاشة" > 3 x 5. cout << الناتج خطا (False) "سيطبع 0 في الشاشة" > 3 x 5. cout << int z = x == 8 اسناد ناتج المقارنة للمتغير z ; z 8. cout << الناتج False لا ن x تساوي 7 وليس ; 8 z 8. cout << وستتم طباعة 0 على الشاشة. مثال: مالحظة: x = = y تعني ) ھل أن x يساوي y) وھي عملية مقارنة ناتجھا إما صواب أو خطأ. ٢١

22 تحويل المعادالت الرياضية إلى معادالت برمجية: المعادلة البرمجية المعادلة الرياضية 2 1) z = x + x + 7 Z = pow( x, 2 ) + x + 7 ; 2) x + 1 z = Z = (x+1) / (y+1) ; y ( x + x + ) 3) 7 2 z = Z = pow( (pow(x, 2) + x + 7), 2) / ( y + x + 1) y + x + 1 توجد الدالة pow ضمن المكتبة math.h لذلك يج ب ت ضمين المكتب ة math.h ف ي البرن امج المزي د م ن ال دوال الرياضية في الفصل الخامس. س: كيف تكتب المعادلة التالية برمجيا x + 1: x < 0 y = 2 x + x + 7 : x > 0 ج: إذا كان x أصغر من الصفر ) 0 < x 1. if ( 2. { 3. Y = x + 1 ; 4. ) ١ ( (جميع الحالات التي لا توجد في.5 else وإذا كان غير ذلك الشرط السابق مثل 0<x أو 0=x) {.6 7. Y = pow( x, 2 ) + x + 1 ; 8. 2 y R = x R = pow( x, pow( y, 2 ) ) ; Y = 2 3 Y = sqrt( pow( 3, 2 ) ) ; س: ج: س: ج: كيف تكتب المعادلة التالية برمجيا كيف تكتب المعادلة التالية برمجيا أولوية العمليات الحسابية: ما بداخل األقواس. األس. الضرب ثم القسمة. الجمع أو الطرح. (٦ ١ ٢ ٣ (1) جملة التحكم if لھا عدة أشكال المزيد في الفصل الثامن. ٢٢

23 برنامج إليجاد مساحة المستطيل: من المھم : فھم فكرة البرنامج. تحويل الفكرة إلى خطوات منطقية وأھمھا معرفة معادلة مساحة المستطيل. مساحة المستطيل = الطول العرض إذا نحتاج إلى ٣ متغيرات متغيرين سيقوم الم ستخدم بإدخالھم ا (الط ول والع رض) ومتغي ر س يحتوي عل ى ن اتج ضرب المتغيرين (المساحة). خطوات الحل البرمجي: التصريحات Declare المدخالت Input المعالجة Process المخرجات Output (تعريف المتغيرات). (إسناد قيم للمتغيرات "الطول والعرض"). (الضرب). (مساحة المستطيل). (١ (٢ (٣ (٤ area;.1 int height, width, تعريف ثلاثة متغيرات من نفس النوع في سطر واحد : width; 2. cin >> height >> استقبال قيمتين من المستخدم :.3 area = height * width تخزين نتيجة ضرب القيمتين في متغير المساحة area;.4 cout >> عرض الناتج (مساحة المستطيل) 5. الناتج : Press any key to continue_ كما نالح ظ أن الن اتج ف ي المث ال ال سابق غي ر واض ح وعن د تنفي ذ البرن امج تظھ ر شاش ة س وداء ال يوج د فيھ ا أي معلومات تساعد مستخدم البرنامج في معرفة ما المطلوب منه وماذا يجب أن يعمل.. تنسيق المخرجات: أعادة المثال السابق: 1. int height, width, area; طباعة نص يطلب إدخال الطول "; Height: 2. cout << "Enter استقبال الطول من المستخدم height;.3 cin << طباعة نص يطلب إدخال العرض "; Width: 4. cout << "Enter استقبال العرض من المستخدم.5 cin << width 6. area = height * width طباعة خط أفقي وسطر جديد ;"n\".7 cout >> طباعة "النتيجة هي" ثم ناتج الضرب ثم سطر جديد endl;.8 cout >> "Resutl is: " <<area >> الناتج: Enter Height: 7 Enter Width: 8 Result is: 56 Press any key to continue_ ٢٣

24 الواجب: أكتب برنامج لحساب مساحة الدائرة إذا علمت أن: R Circle = 2 π *R حيث أن : : R نصف القطر (معطى) (ثابت). :π الفرق بين signed و :unsigned مثال: signed جعل نوع البيانات يقبل القيم السالبة وھو االفتراض ي حت ى إذا ل م يكت ب بينم ا unsigned ال يقب ل الق يم السالبة حيث يرفض أي قيمة سالبة وتظل قيمته عشوائية إلى أن يتم إسناد قيمة موجبه إليه. 1. <iostream.h> #include الناتج main () 4. { 5. signed int x; 6. unsigned int z; 7. x = 100; 8. z = 100; 9. cout << x << endl; cout << y << endl; x = 100; 12. z = 100; 13. cout << x << endl; cout << y << endl; والرقم عبارة عن رقم عشوائي جاء م ن ال ذاكرة نتيج ة ألن المتغي ر y ل م ي سند ل ه أي قيم ة وذلك ألن النوع unsigned يجعل المتغير يرفض أن يسند إليه قيمة سالبة. ٢٤

25 الفصل 8 جمل التحكم Control Statements الجمل الشرطية :Condition Statements (١ جملة :IF if ( Expression ) { Statements; Statements;..; if ( Expression ) { Statements; Statements;..; else { Statements; Statements;..; if ( Expression ) { Statements; Statements;..; else if ( Expression ) { Statements; Statements;..; else { Statements; Statements;..; ٢٥

26 (٢ جملة :switch switch ( var ) { case 1 : Statements1; break; case 2: Statements; break; default: Statements; مالحظة : فائ دة break بع د ك ل case أنھ ا توق ف عم ل switch بع د تنفي ذ جمل ة case المناس بة وإذا ل م ي تم كتاب ة الكلم ة break فإن البرنامج سينتقل إلى case التالية وينفذھا حتى لو لم ينطبق الشرط var عليھا. يمكن كتابة الجزء األخير الخاص ب default ويمك ن ع دم كتابت ه حي ث ي تم تنفي ذ الجم ل داخ ل default عن دما ال تتحقق أي من الحاالت "cases" السابقة فھي تشبه else األخيرة في جملة.if مثال: 1. int r = 3 2. switch ( var ) 3. { 4. case 1 : cout << "one\n"; break; 5. case 2: cout << "two\n"; break; 6. case 3: cout << "three\n"; break; 7. default: cout << "Error!\n"; 8. مالحظة: إذا كان المتغير حرفي نستخدم عالمة االقتب اس المف ردة مث ل: 'y' case وإذا ك ان ن صي ن ستخدم عالم ة االقتب اس المزدوجة مثل: "yes".case الواجب : اكتب برنامج لمعرفة نوعية العدد (سالب أو موجب أو غير ذلك). ٢٦

27 دوال الدوران :Loops Functions :For (١ تحتاج دالة for إلى عداد (رقم تبدأ منه الدوران ورقم تنتھي إليه) لكي تنفذ الدورات ومقدار الزيادة (١). for ( initialization_value; condition; Increment or Decrement) Statements الشكل العام :Public formula مثال : الكود : النتيجة : 1. for ( int i = 0; i <=3; i++) i value is: 0 2. { i value is: 1 3. cout << "i value is : " << i << endl; i value is: 2 4. i value is: 3 :While (٢ تحتاج دالة while إلى شرط يحدد استمرارھا أو توقفھا فھي ستستمر بال توقف طالما الشرط متحقق. while (condition) Statements الشكل العام :Public formula مثال : الكود : النتيجة : 1. int w = 3; 2. while ( w <=3 ) value is: 0 3. { value is: 1 4. cout << "value is : " << w << endl; value is: 2 5. w++; value is: 3 6. مالحظة: يمكن االستغناء عن األقواس { الخاصة بدالة for و while و من سطر واحد. if إذا كانت الجملة الت ي تنف ذھا تتك ون (1) مقدار الزيادة أو النقصان في الصفات القادمة. ٢٧

28 :do while (٣ الشكل العام :Public formula do { Statements while (condition) مثال : الكود : النتيجة : 1. int w = 0; 2. do value is: 0 3. { value is: 1 4. cout << "value is : " << w << endl; value is: 2 5. w++; value is: while ( w <=3 ); لكن do while تقوم بتنفيذ الكود مرة واحدة حتى لو كان الشرط خاطئا : الكود : النتيجة : 1. int w = 0; 2. do value is: 0 3. { 4. cout << "value is : " << w << endl; while ( w >0 ); ٢٨

29 القيمة التزايدية Increment value (معنى ++i): i = i + 1; i += 5; i = i + 5; i = 5; i = i 5; تعني زيادة المتغير i بمقدار واحد فقط وھو اختصار للجملة التالية: ويمكن زيادة المتغير i بأي مقدار نريد بالشكل التالي: وھذا يكافئ السطر التالي: أو إنقاص المتغير i بأي مقدار نريد بالشكل التالي: وھذا يكافئ السطر التالي: الفرق بين ++i و i++ : مثال ١: cout << i ++; cout << ++ i; طباعة i ثم زيادته بمقدار واحد. زيادة i بمقدار واحد ثم طباعته. مثال ٢: int z, i ; int z, i ; i = 1 ; i = 1 ; z = 5 * i + i ++ ; z = 5 * i + ++ i ; التنفيذ : التنفيذ : z = 5 * 1 + 1; z = 5 * 1 + 2; قيمة : z قيمة z: 6 7 for فقط. الواجب: عمل برنامج يقم بطباعة مثلثات باسكال باستخدام دالتي ٥ ٤ ٣ ٥ ٢ ٤ ١ ٣ ٥ ٢ ٤ ٣ ٥ ٤ ٥ للتسھيل يمكن عملھا باستخدام رمز النجمة (*) فقط: * * * * * * * * * * * * * * * ٢٩

30 الفصل 9 أنواع البيانات Data Types Data Type أنواع البيانات User Define تعريف المستخدم Standard أساسية Array مصفوفة Enumerated Groups مجاميع مرقمة Painters مؤشرات Structures بنى classes الفئات Int رقم Long رقم طويل Float كسر Double كسر طويل وغيرھا األنواع القياسية :Standard ھي أنواع بيانات معرفة مسبقا يمكن استخدامھا وال يمكن تغييرھا فال يمكن زيادة حجمھا أو تحديدھا أي ال يمك ن للمستخدم التحكم بھا. األنواع من تعريف المستخدم :User Define ھي أنواع بيانات يعرفھا المستخدم بالطريقة التي يريد ويستطيع تغييرھا والتحكم بمساحتھا. ٣٠

31 المجاميع المرقمة :Enumerated groups int يعتبر من المجاميع المرقمة المعرفة مسبقا ويمكننا تعريف مجاميع ( ١ ) أمثله : خاصة بنا حسب الحاجة. enum int {32,700,., enum months { jan, feb,, des int نوع بيانات معرف مسبقا ولا يمكن تغييره. months معرف من المستخدم ويمكن تغييره أو حذفه. أمثله: 1. enum weekday { sat, sun,., friday تعريف x من نوع 2. weekday x; weekday 3. x = sat ; weekday لا يقبل إلا قيمة من نوع x الناتج : 0 x; 4. cout << 5. x = sun ; الناتج : 1 x; 6. cout << إعادة تعريف البيانات : Data definition return أنواع البيانات مث ل int, float, double يمك ن إعطائھ ا م سميات أخ رى للتب سيط أو للحماي ة حي ث إذا ت م تغيي ر نوع البيانات فلن يعرف من يطلع على الكود ما ھو ھذا النوع. يمكن تغيير اسم نوع البيانات من خالل الدال ة TypeOf م ع مالحظ ة أن ھ ذا التغيي ر ال ي ؤثر عل ى ن وع البيان ات األصلي. 1. TypeOf float fl ; إطلاق اسم جديد على النوع float (الا عداد الكسرية). 2. fl x = 5.4 ; إسناد قيمة للنوع الجديد (أصبح fl يقوم بعمل (float 3. cout << x; 3. cout << الناتج : 5.4 x; 3. cout << (1) تم التعويض بالنقاط friday) (sun,,. الختصار المثال. ٣١

32 المصفوفات :Array جاءت المصفوفات لحل مشكلة الحاجة إلدخال عدد كبير من البيانات فبدال من استخدام عدد كبير م ن المتغي رات لحفظ البيانات يتم استخدام المصفوفة التي تستطيع االحتفاظ بالبيانات كمتغير واحد. تعريفھا: مجموعة من المواقع المتجاورة في الذاكرة ولھا نفس نوع البيانات وتستخدم لخزن البيانات index x int int int int أنواع المصفوفات :Array types مصفوفات أحادية البعد.Single Dimensional مصفوفات متعددة األبعاد.Multi Dimensional.١.٢ مميزات المصفوفات: تقليل حجم البرنامج. سھولة اسناد القيم واسترجاعھا. استخدام تقنيات البحث والترتيب. الوصول المباشر Direct Access إلى البيان وھذه ميزة غير موجودة في أي نوع آخر. (١ (٢ (٣ (٤ عيوب المصفوفات: يمكن للمستخدم تحديد حجم المصفوفة عند تعريفھا فقط (ال يمكن أثناء التشغيل تحديد حجمھا). يجب أن تحتوي جميع القيم على نوع واحد من البيانات (ال يمكن تخزين بيانات من أنواع مختلفة). (١ (٢ الصيغة العامة :Public formula Data_Type Array_name [ Array_Size ]; int x[5]; مصفوفة أحادية: مثال:.١ x 4 byte 4 byte 4 byte 4 byte 4 byte حجم المصفوفة يتحدد بنوعھا فإذا كانت رقمية int فإن كل عنصر فيھا سيحجز 4 بايت وبالت الي ف إن حج م الم صفوفة األحادي ة س يكون ب ضرب حج م ن وع البيان ات ف ي ع دد صفوف المصفوفة كالتالي: 4 byte * 5 rows = 20 bytes وھذه ھي المساحة المحجوزة للمغير x في الذاكرة ٣٢

33 Data_Type Array_name [ Array_Rows_Size ][ Array_Cols_Size ]; int x[3][4]; x 4 byte 4 byte 4 byte 4 byte 4 byte 4 byte 4 byte 4 byte 4 byte 4 byte 4 byte 4 byte 4 byte 4 byte 4 byte مصفوفة ثنائية: مثال:.٢ حجم المصفوفة متعددة األبعاد يكون بضرب حجم نوع البيانات عدد صفوف المصفوفة عدد أعمدة المصفوفة: 4 byte * ( 3 rows * 4 cols ) = 48 bytes ( ١ ) إدخال البيانات للمصفوفة (اإلسناد) : الطريقة األولى: 1. 5; { 1, 7, 10, 2, = x[5] int تعريف مصفوفة وإسناد كل بياناتها في نفس الوقت : 2. 5; {3, = y[10] int بقية الخانات ستكون صفرية : 3. {0; = z[4] int كل الخانات ستكون أصفار : الطريقة الثانية: a[3]; 1. int تعريف مصفوفة : 2. a[0] = 1; 10 إسناد قيمة للخانة الا ولى في المصفوفة : 3. a[1] = 7; 7 إسناد قيمة للخانة الثانية في المصفوفة : 4. a[2] = 10; 1 إسناد قيمة للخانة الثالثة في المصفوفة: ويمكن إدخال البيانات إلى المصفوفة أثناء تشغيل البرنامج عن طريق ) cin ( : 1. int a[2]; إدخال جميع قيم المصفوفة باستخدام دالة 2. for ( int i=0; i<=2; i++) For 3. { 4. cin >> a[i]; 5. وبالمثل عملية اإلخراج: طباعة جميع قيم المصفوفة باستخدام دالة 1. for ( int i=0; i<=2; i++) For 2. { 3. cout << a[i] << endl; 4. (1) عند تحديد حجم المصفوفة بخمسة في لغة ++C فإن عدد العناصر خمسة أما في لغة Visual Basic فإن عدد العناصر سيكون ستة. ٣٣

34 إدخال بيانات من النوع الحرفي :char char c; char c = 'a'; النوع char يقبل حرف واحد فقط ويحجز بايتا واحدا في الذاكرة تعريف وإسناد معا كال الطريقتين اآلتيتين تؤدي نفس الغرض في اإلدخال إلى المصفوفة: char x[4] = { 'S', 'A', 'B', 'A'; A إسناد كل حرف على حدة char x[4] = "SABA"; B A S إسناد كل الحروف دفعة واحدة. ومن ھنا نستنتج أن النوع String ما ھو إال مصفوفة حرفية وحجمھا 255 بايتا. string = "SABA"; النوع string يستخدم نفس طريقة الا سناد. مالحظة : عند تعريف وإسناد المصفوفة في نفس الوقت فإن لغة ++C تحدد حجم المصفوفة تلقائيا بمعرفة العناصر داخل األقواس. أما إذا كنت ستعرف المصفوفة وتسند القيم فيما بعد فتأكد أن القيمة داخل قوسي المصفوفة ] [ تساوي عدد عناصر المصفوفة. int x[] = {1,2,3,4; مثال: استخدام المصفوفة: 1. int z; 2. int x[5] = { 1, 7, 10, 2, 5; 3. z = x[0] + x[3]; جمع قيمتين في المصفوفة وإسناد اإلجمالي إلى متغير آخر: 1. int sum = 0; 2. for ( int i =0; i<5; i++) 3. { 4. sum = sum + x[i]; cout << sum; 1. int m = 1; 2. for ( int i =0; i<5; i++) 3. { 4. m = m * x[i]; cout << m; جمع جميع قيم عناصر المصفوفة: ضرب جميع قيم عناصر المصفوفة: ٣٤

35 المصفوفة متعددة األبعاد: Data_Type Array_name [ x ][ y ]; Data_Type Array_name [ x ][ y ][ z ]; Data_Type Array_name name [ x ][ y ][ z ][ t ]; ثنائية البعد: ثالثية البعد: رباعية البعد: وھكذا يمكن إضافة أبعاد بحسب الحاجة. char ary[3][3] = {{'A','B','C',{'D','E','F',{'G','H','I'; مثال: A B C D E F G H I إدخال البيانات: كال الثالثة الطرق اآلتية تؤدي نفس الغرض في اإلدخال إلى المصفوفة الثنائية: 1. int x[2][2] = {1, 5, 4, 9; 1. int x[2][2] = { {1, 5, {4, 9 ; 1. int x[0][0] = 1; 2. int x[0][1] = 5; 3. int x[1][0] = 4; 4. int x[1][1] = 9; الطريقة األولى: الطريقة الثانية: الطريقة الثالثة: يمكن إدخال بيانات المصفوفة الثنائية باستخدام دالتي :For 1. int x[2][2]; for ( int i =0; i<2; i++) 4. for ( int r =0; r<2; r++) 5. cin >> x[i][r]; 1. for ( int i =0; i<2; i++) 2. for ( int r =0; r<2; r++) 3. cout << x[i][r]; وكذلك اإلخراج: ٣٥

36 العمليات على المصفوفات: اإلضافة. الحذف. البحث. الترتيب. التعديل وغيرھا... أ) البحث: ١ البحث عن قيمة موجودة في المصفوفة: مثال: يتم البحث عن قيمة موجودة في المصفوفة بمقارنة القيمة المراد البحث عنھا في عناصر المصفوفة. 1. int x = 4; 2. int a[] = {1,2,3,4,5,6; 3. int t; 4. for ( int i =0; i<6; i++) { المرور على كل عناصر المصفوفة بدالة for 5. { a[i]) if ( x == إذا تساوت قيمة x مع قيمة في المصفوفة 6. t = 1; فيتم اسناد قيمة 1 للمتغير 6. t = 1; t.7 break; وكذلك الخروج من دالة for الى السطر رقم break; 12.7 باستخدام الكلمة.Break.8 { else وإذا لم تتساوى قيمة x مع قيمة في المصفوفة 9. t = 0; فيتم إسناد قيمة 0 للمتغير 9. t = 0; t * ستدور الدالة for أربع مرات حتى تجد العنصر الذي قيمته 4 وعندها فا ن السطر 6 سينفذ وسيكون 1=t 12. if ( t = 1) و ستقفز إلى السطر رقم 12 بواسطة الا مر 12. if ( t = 1) Break.13 found\n"; cout >> "number وعندها سيتم طباعة النص في السطر Else.14 وإذا لم تجده "نفرض أننا نبحث عن القيمة 8" Else found\n"; cout << "number not فسيتم طباعة النص في السطر 15 ٣٦

37 ٢ البحث عن أكبر قيمة موجودة في المصفوفة: يتم البحث بأخذ عنصر من المصفوفة ومقارنته ببقية العناصر وخزن القيمة الكبيرة في. temp 1. int a[11] = {5,3,7,10,8,6,2,4,11,2,0; 2. int temp=0; 3. for (int j=0; j<11; j++){ 4. if ( a[j] > temp ){ 5. temp = a[j]; cout << temp << endl; ب) الترتيب: 1. int a[] = {5,3,7,10,8,6,2,4,11,2,0; 2. int temp = 0; 3. for (int i =0; i< 11; i++) { طباعة قيمة temp لغرض مشاهدة التغييرات ; ends 4. cout << temp << "\t [" << 5. for (int r=0; r< 11; r++) {.6 if(a[r+1]<a[r]){ إذا كان العنصر التالي أكبر من السابق بدل المواقع.7 a[r]; temp = السطور 6,7,8 عبارة عن تبديل مواقع القيم في 8. a[r+1]; a[r] = خلايا المصفوفة..9 temp; a[r+1] = وإذا كان العنصر التالي أصغر من السابق فلن يتم.10 تبديل موقعه حتى لو لم يكن أصغر قيمة في المصفوفة فسينتظر لحين الدورة الثانية ل For الا ولى التي ستقوم با عادة الترتيب وتحسين النتاي ج أكثر وأكثر انظر موقع القيمة 0 في الصورة أدناه. 11. ends; cout << a[r] << طباعة المتغير لغرض مشاهدة التغييرات cout << "]" <<endl; cout << "===============\n"; طباعة المصفوفة بعد الترتيب وهو ما يهمنا (++j.16 for ;0=j) ;11>j 17. cout << a[j] << ends; cout << endl; ٣٧

38 حل آخر: 1. int a[] = {5,3,7,10,8,6,2,4,11,2,0; 2. int temp = 0; 3. for (int i =0; i< 11; i++) { 4. cout << temp << "\t [" << ends ; 5. for (int r=i+1; r< 11; r++) { 6. if(a[i]>a[r]){ 7. temp = a[r]; 8. a[r] = a[i]; 9. a[i] = temp; cout << a[r] << ends; cout << "]" <<endl; cout << "===============\n"; 16. for (int j=0; j<11; j++){ 17. cout << a[j] << ends; cout << endl; ٣٨

39 ج) التعديل: س: إذا علمت أن الم صفوفة التالي ة تمث ل مجم وع درج ات الط الب ف المطلوب إض افة 5 درج ات للط الب ال ذين تنقصھم 5 درجات للنجاح. int Stud[6] = {70, 50, 45, 43, 47, 90; فالمطلوب عمل الكود الالزم. ج: 1. for ( int i =0; i<6; i++) { 2. if (Stud [i] < 50 && Stud[i] > 45) { 3. // Stud[i] += 5; // A 3. طريقة :A زيادة الطالب 5 درجات. // Stud[i] += 5; // A // Stud[i] = 50; // B 3. طريقة :B إعطاء الطالب درجة النجاح فقط. // Stud[i] = 50; // B 3..4 الغي التعليق من أحد الطريقتين A أو B في.5 في السطور رقم 3 لعرض الناتج بالطريقة التي.5 i++) 6. for ( i =0; i<6; تختارها. 7. cout << Stud[i] << ", " << ends; 8. cout << endl; الناتج (بالطريقة الثانية :(B 70, 50, 45, 43, 50, 90 الواجب: فوق القطر الرئيسي القطر الثانوي القطر الرئيسي تحت القطر الرئيسي في الشكل أعاله: المطلوب عمل برنامج يقوم بالتالي: ) مساعدة: يتساوى فيه رقم الصف مع رقم العمود ( ) مساعدة: رقم الصف + رقم العمود = حجم المصفوفة ١ ( ) مساعدة: رقم الصف أكبر من رقم العمود ( ) مساعدة: رقم الصف أصغر من رقم العمود ( طباعة عناصر القطر الرئيسي. طباعة عناصر القطر الثانوي. طباعة عناصر فوق القطر الرئيسي. طباعة عناصر تحت القطر الرئيسي. ٣٩

40 الدوال :Functions وھي عبارة عن برامج فرعية تشبه البرنامج الرئيسي main البرنامج main ھو عبارة عن دالة تتميز بأن بيئ ة ++C تقوم بتشغيلھا وتتولى دالة main تشغيل ما بداخلھا واستدعاء الدوال الفرعية وتشغيلھا. تعريفھا: مجموعة من التعليمات واألنشطة المكتوبة داخل برنامج مستقل (فرعي) يتم استدعائھا داخل البرنامج الرئيسي. Source file.cpp Main ( ) { Function 1.. Statements.. Statements.. Call functions.. Call functions.. Calling Function 2.. Function 3.. Call function 2 Calling مالحظة: استدعاء الدوال وتفعيلھا يجب أن يكون من داخل الدالة الرئيسية. main مميزات الدوال: ١ ٢ ٣ ٤ ٥ تقسيم البرامج الكبيرة إلى أجزاء صغيرة داخل البرنامج file"."source اختصار الكثير من السطور في اسم الدالة (ذات الطابع التكراري). تنظيم البرنامج. قابلية استخدامھا أكثر من مرة. سھولة التطوير والتعديل واكتشاف األخطاء. أنواع الدوال: دوال قياسية :Standard function كل الدوال الموجودة في المكتبات مثل pow() و cout وال يمكن تعديلھا. دوال من تعريف المستخدم :User define function الدوال التي يقوم المستخدم بتكوينھا. أشكال الدوال: إجراء :Procedures وھي دالة تقوم بعمل معين وتنفذه أو تطبعه على الشاشة و تسمى (إجراء) ألنھا ال تعيد قيمة. دالة :Function وھي دالة تقوم بعمل معين وتعيد قيمة ويمكنھا أن تطبع شيء على الشاشة وتعي د قيم ة ف ي نف س الوق ت ويمكن إسناد ھذه القيمة إلى متغير ثم طباعته على الشاشة. ٤٠

41 الصيغة العامة لإلجراء: void FunctionName(parameters) { Statements { التصريح البناء الصيغة العامة للدالة: استخدام الكلمة المحجوزة return إلعادة قيمة: DataType FunctionName(parameters) { Statements return value; { استخدام نفس اسم الدالة إلعادة قيمة: DataType FunctionName(parameters) { Statements FunctionName = value; { يمك ن أن يحت وي اإلج راء أو الدال ة عل ى ب اراميترات Parameters ويمك ن أال تحت وي عليھ ا فھ ذا يرج ع للمبرمج. مثال إلجراء: استدعاء اإلجراء داخل البرنامج: 1. void sum(int a, int b) 2. { 3. cout << a + b; 4. { sum( 7, 8 ); الناتج : 15 مالحظات: ال يمكن إسناد اإلجراء لمتغير فھو ال يعيد أي قيمة. ال يمكن إدخال اإلجراء ضمن عمليات حسابية. ٤١

42 1. int sum(int a, int b) 2. { 3. Return (a + b); 4. { مثال لدالة: استدعاء وطباعة الدالة داخل البرنامج "سيتم طباعة ناتج الدالة": cout << sum( 7, 8 ); الناتج : 15 أو استدعاء وإسناد الدالة إلى متغير "سيتم إسناد ناتج الدالة لمتغير": 1. int s; 2. s = sum( 7, 8 ); الناتج : 15 s; 3. cout << استدعاء وطباعة الدالة داخل البرنامج وإدخالھا ضمن عملية حسابية "سيتم في العلمية الح سابية التعام ل م ع ن اتج الدالة كقيمة": الناتج : 20 5; + ) 8 sum( 7, 1. cout << استدعاء وإسناد الدالة إلى متغير وإدخالھا ضمن عملية حسابية.. "سيتم إضافة ناتج الدالة إلى العملية الحسابية": 1. s = sum( 7, 8 ) + 5; 2. cout << s; 2. cout << الناتج : 20 s; 2. cout << تقديم نوع البيانات int قبل اسم الدالة function_name) (int يعني أن الدالة تعيد قيمة من النوع int بينما تقديم الكلمة void قبل اسم الدالة function_name) (void يعني أن الدالة ال تعيد أي قيمة من أي نوع. ٤٢

43 تعريف الدوال : (التصريح والبناء معا ). 1. int sum(int a, int b) 2. { 3. return a + b; 4. { void main() 7. { 8. cout << sum( 5, 4 ); 9. يمكن تعريف الدوال قبل الدالة الرئيسية main يمكن تعريف الدوال تحت الدالة الرئيسية main بشرط التصريح عنھا قبل الدالة. 1. ); int int get_sum( int, التصريح عن الدالة void main() 4. { 5. ); 4 get_sum( 5, cout << طباعة الدالة "ناتجها" b) int get_sum(int a, int بناء الدالة 9. { 10. return a + b; 11. ١ ( ) تطبيق المثال : الواجب: قم بعمل مثلث باسكال يقوم برسم عدة أشكال للمثلث باستخدام دالة واحدة تح وي دال ة for واح دة حي ث يتم تغيير شكل المثلث بالتالعب بقيمة متغيرات الدالة فقط. حل التمارين الموجودة لدى المصور إلى نھاية الترم. (1) تم استخدام برنامج DevC++) (Bloodshed في ھذا المثال وبعض األمثلة في ھذا الكتاب. ٤٣

44 القيم االبتدائية في الدوال: تعتبر كنوع من تحديد القيمة االبتدائية لمتغيرات الدالة أو اإلجراء فيمكنك عدم إسناد أي قيمة لمتغيرات الدالة: مثال : 1. b=0){ double _div( float a=0, float تحديد قيم افتراضية لمتغيرات الدالة "أصفار" 2. { 3. if(b==0){.4 ;0 return إرجاع 0 إذا كان المتغير الثاني صفرا 5. else{.6 ;(b return a) / إرجاع ناتج قسمة العددين إذا كان المتغير الثاني.7 لا يساوي الصفر void main() 11. { 12. cout << _div() << endl; 12. cout << _div() << الناتج : 0 endl; 12. cout << _div() << 13. cout << _div(5) << endl; 13. cout << _div(5) << الناتج : 0 endl; 13. cout << _div(5) << 14. cout << _div(5, 0) << endl; 14. cout << _div(5, 0) << الناتج : 0 endl; 14. cout << _div(5, 0) << 15. cout << _div(8, 5) << endl; 15. cout << _div(8, 5) << الناتج : 1.6 endl; 15. cout << _div(8, 5) << مالحظات: 16. يمكن جعل إحدى متغيرات الدالة تحمل قيمة ابتدائية واألخرى ال تحمل قيمة ابتدائية فھذا يعني أنه يج ب إسناد قيمة لھذا للمتغير اآلخر بشرط أن ال تجعل المتغيرات التي تحمل قيمة ابتدائية قبل المتغيرات الت ي ال تحمل قيم ابتدائية (لماذا "ابحث عن ھذا الموضوع"). تم كتابة _div تسبقھا شرطة ألن ھناك دالة من دوال مكتبة iostream.h تحمل االسم.div ٤٤

45 استخدام :#Define ي ستخدم ھ ذا األم ر ليخب ر المت رجم باس تبدال سل سلة م ن األح رف بالقيم ة المج اورة لألم ر define فھ ذا األم ر ال يفحص نوع القيمة فقد تكون قيمة أو معالجة لعملية حسابية أو غيرھا كما في الدوال: ١) استخدام األمر define لتعريف الثوابت: #define Constant value; الشكل العام :Public formula مثال : 1. #define MAX 100; 2. main ( ) 3. { 4. cout << MAX; 4. cout << الناتج : 100 MAX; 4. cout << 5. ٢) استخدام األمر define بدال عن الدوال: #define Function_name (parameters) Statements الشكل العام :Public formula مثال : 1. #define SUM( x, y ) x + y; 2. main ( ) 3. { 4. Int z = SUM( 1, 2 ); 5. cout << z << endl; 5. cout << z << الناتج : 3 endl; 5. cout << z << 6. cout << 7.5); SUM(3.5, 6. cout << الناتج : ); SUM(3.5, 6. cout << مميزات :define ال يحتاج لتعريف نوع البيانات. ال يحتاج لتعريف نوع الدوال. يمكن إسناد قيمتھا إلى متغير بشرط أن يكون المتغير من نفس نوع البيانات المعادة من الدالة. يمكن االستغناء بھا عن التحميل الزائد للدوال overload "سيتم دراسته في الفصل الثاني". 7. عيوب :define ال يمكن عمل مجموعة إجراءات "جمل" في سطور متعددة تحت األمر define ألن المترجم س يتجاھل السطور الالحقة ويعتبرھا خطأ. مالحظات: نالحظ أن ھذه الطريقة ال تحتاج لتعريف نوع المتغيرات في الدال ة SUM ويمكنن ا عن د االس تدعاء أن نكتب أي قيم من أي نوع لكن ما يحدد نوع المتغيرات المرسلة ھو نوع العملية وھ ي "x+y" فف ي ھ ذه الحالة سيحدث خطأ عند إرسال قيم حرفية نظرا ألن جملة الدالة تحتوي على جمع حيث ال يمكن جمع قيم نصية. ھذه الطريقة تشبه إلى حد كبير تعريف الثوابت const حيث ال يمكن تغيير القيمة بعد تعريفھا. يجب أن يتم وضع define قبل الدالة الرئيسية main "في منطقة التصاريح العامة". ٤٥

46 الفصل 10 ھياكل البيانات Data Structures مقدمة: تمثل الدوال والمصفوفات طرقا من طرق ھيكلة البرمجة حيث أنھا تساعد في تنظيم وتسھيل كتابة البرنامج. كما تمثل الھياكل طريقة أخرى من طرق ھيكلة البرمجة. تعريفھا: يطلق عليھا ھياكل أو تراكيب أو سجالت وھي تعني التعامل مع مجموعة من البيانات كوحدة واحدة. أو ھي مجموعة من المتغيرات والصفات والخصائص "الدوال" التي تندرج تحت بناء واحد "ھيكل". الھيكل التنظيمي: فكرة ھياكل البيانات تشبه الھياكل التنظيمية ألي مؤسسة أو شركة فم ثال الجامع ة تحت وي عل ى كلي ات ومق ررات ومدرس ين وط الب لك ن كلم ة "كلي ة تقني ة المعلوم ات" أو "م ادة ++C" مبھم ة إذا ذك رت ب دون اإلش ارة إل ى انتمائھا فيجب اإلشارة إليھا والى الجھة التي تتبعھ ا مث ل "جامع ة س بأ كلي ة تقني ة المعلوم ات" أو "جامع ة س بأ تقنية معلومات مادة ++C". وبالتالي عن د عم ل أي م شروع برمج ي يج ب تحوي ل ھيك ل المنظم ة إل ى ھيك ل بيان ات بح سب االحتي اج فيج ب ھيكلة ما ال يمكن أن تستمر المنظمة في عملھا بدونه وعدم ھيكلة األجزاء غير األساس ية ف ي المنظم ة ولك ن ھ ذا ليس شرطا فللمبرمج الحرية في تحديد ما يجب أن يھيكله وما ال يجب بحسب المشروع الذي ينوي بناءه. فإذا كان مشروعه نظام جامعة متكامل فمن الضروري أن يحتوي النظام على كل أجزاء الجامعة الرئيسية أم ا إذا كان برنامج بصمة الكترونية فإنه يحتاج لمعرفة أسماء الموظفين فقط. الجامعة كليات موظفين طالب معامل مدرسين مقررات أقسام ٤٦

47 وكل جزء من أجزاء المنظمة يحتوي على خصائص فالكلي ة ل ديھا "اس م" و "أق صى ع دد ط الب" و "أق ل ع دد" والطالب يحتوي على "رقم" و"اسم" و "عمر" و "عنوان".. الخ. الطالب رقم تاريخ التسجيل إسم رقم تلفون عمر عنوان نوع وھناك عالقة بين أجزاء المنظمة فھناك عالقة بين الكليات والطالب من نوع (واحد الى كثير) فالطالب يدرس في كلية واحدة بينما الكلية يدرس فيھا أكثر من طالب (راجع مقرر قواعد البيانات). الطالب الكليات 1 يدرس n وقد تتطلب العالقات غير الواضحة أو عالقات كثير لكثير إنشاء كيان وھمي مثل (مق ررات الكلي ة) ل ربط المق رر بالكلية. في الحياة الواقعية تفرض طبيع ة العم ل نف سھا عل ى طبيع ة العالق ات ب ين مكون ات المنظم ة وم ا يھ م المب رمج أن يعكس طبيعة ھذه العالقة في برنامجه بالشكل األنسب وھ و ل يس بھ ذه ال سھولة ف أي م شروع برمج ة يحت اج إل ى تحليل وتصميم ثم برمجة وكل وظيفة من ھذه الوظائف تحتاج الى متخصصين: المحلل : يجمع البيانات ويربط المعلومات مع بعض ولديه خبرة في العالقات العامة. المصمم : يأخذ نتائج التحليل ويحولھا الى شكل يعبر عن الھيكل ولديه خبرة في برامج التصميم. المبرمج : يحول تصميم الھيكل الى واجھات وأوامر وأكواد. الجامعة المستوى األول يعبر عن قاعدة البيانات طالب المستوى الثاني يعبر عن الجداول رقم اسم عمر المستوى الثالث يعبر عن الحقول ٤٧

48 التركيب :Struct بعد المقدمة النظرية ننتقل إلى الجزء العملي من الھياكل: 1. struct struct_name 2. { 3. DataType member1; 4. DataType member2; 5. DataType member3; 6. الصيغة العامة :Public formula مالحظات: ١. يكتب التركيب قبل الدالة الرئيسية: مثال لكيان طالب: 1. struct students 2. { 3. num; int رقم 4. name[20]; char اسم 5. age; int عمر 6. address; string عنوان 7. phone; double تلفون 8. ; 9. void main() 10. { int أو... char الخ. Struct: num name age address phone = 44 byte ٢. يصبح التركيب نوعا من أنواع البيانات مثله مثل students stud; يعرف على التراكيب متغيرات :.٣ إسناد قيم للتركيب: students stud = {1, " ali ", 25, " sanaa ", ; 1. students stud; 2. stud.num = 1; 3. stud.name = "ali"; 4. stud.age = 25; 5. stud.address = "sanaa"; 6. stud.phone = ; إسناد القيم دفعة واحدة: إسناد كل قيمة بشكل مستقل:.١.٢ ٤٨

49 ٣. ويمكن استخدام الدالة cin لطلب البيانات من المستخدم (أثناء التشغيل): 1. students stud; 2. cout<< "Enter number: ": cin >> stud.num; 3. cout<< "Enter name: ": cin >> stud.name; 4. cout<< "Enter age: ": cin >> stud.age; 5. cout<< "Enter address: ": cin >> stud.address; 6. cout<< "Enter phone: ": cin >> stud.phone; يمكن تعريف نوع التركيب لمتغير بعد بناءه مباشرة: 1. struct notebook 2. { 3. int num; 4. char name[20]; 5. double phone;.6 note;.6 لاحظ المتغير note في السطر رقم (٦). note;.6 7. void main() 8. {.9 note.num = ;1 إسناد قيم للمتغير من نوع notebook 10. حجم التركيب: يأخذ التركيب إجمالي حجم أنواع البيانات الداخلة في تركيبه: حجم أنواع بيانات العادية: int char double 4 byte 1*20 byte 8 byte حجم التركيب notebook (نوع بيانات مركب): notebook 13 byte int char double مالحظة: جاء التركيب لحل مشكلة المصفوفات في أنه يمكنه احتواء بيانات مختلفة األنواع. ٤٩

50 مالحظات: ١) في الشكل الت الي نالح ظ أن بيئ ة ++C تعطين ا قائم ة من سدلة بك ل خ صائص التركي ب مم ا ي سھل علين ا كتاب ة برنامجنا. ٢) التركيب في الشكل أعاله ال يستطيع خزن بيانات أكثر من طالب واح د فعن د إدخ ال بيان ات طال ب ث اني س يتم حذف بيان ات الطال ب ال سابق وھ ذا ي شبه إس ناد الق يم للمتغي ر فكلم ا ت سند قيم ة جدي دة للمتغي ر ف إن الق يم ال سابقة تحذف ولحل ھذه المشكلة نستخدم المصفوفات. ٥٠

51 استخدام المصفوفات في التراكيب: البرنامج التالي عبارة عن نظام لتسجيل بيانات الطالب وعرضھا بشكل منسق: #include <iostream> #include <string> using namespace std; struct students{ int num; char name[20]; int age; string address; double phone; ; void main(){ students stud[10]; تعريف مصفوفة من نوع التركيب "Stud" for(int i=0; i<3; i++){ stud[i].num = i; cout << "Student number: " << i+1 << endl; cout << "\n\n"; cout << "Name: "; cout << "Age: "; cout << "Address: "; cout << "Phone: "; system("cls"); cin >> stud[i].name; cin >> stud[i].age; cin >> stud[i].address; cin >> stud[i].phone; cout << "Num\tName\tAge\tAddress\tPhone\n"; cout << "\n"; for(i=0; i<3; i++){ cout << i+1 << "\t"; cout << stud[i].name << "\t"; cout << stud[i].age << "\t"; cout << stud[i].address << "\t"; cout << stud[i].phone << "\n"; مخرجات الشاشة: ٥١

52 التركيب المتداخل: ھو عبارة عن تركيب داخل تركيب. فقد نحتاج في برنامجنا السابق لتاريخ م يالد الطال ب ولك ن ال يوج د ف ي لغ ة ++C ن وع بيان ات للت اريخ ل ذلك س نقوم بعم ل تركي ب لتعري ف ن وع بيان ات جدي د يمث ل الت اريخ بالطريق ة الت ي تناسبنا: 1. struct date { 2. int day; 3. int month; 4. int year; 5. ; 6. struct students{ 7. int num; 8. char name[20]; 9. int age; 10. string address; 11. double phone; 12. date birthdate; 13. ; إنشاء تركيب "تاريخ": مالحظات: يجب أن يكون التركيب الم ضمن قب ل التركي ب المت ضمن ل ه فيج ب كتاب ة تركي ب الت اريخ قب ل تركي ب الطالب. يمكن بدال من عمل تركيب للتاريخ تعريف متغير من نوع نصي string ولكن التركيب يوفر لن ا س ھولة في الوصول إلى اليوم أو الشھر أو السنة. 1. void main() { 2. students stud; 3. cin >> stud.birthdate.day; 4. cin >> stud.birthdate.month; 5. cin >> stud.birthdate.year; 6. cin >> stud.address; 7. cin >> stud.phone; 8. إدخال قيمة لخاصية في تركيب داخلي: ٥٢

53 #include <iostream> #include <string> using namespace std; برنامج إلدخال وعرض بيانات الطالب (مصفوفة تركيب): struct date{ int day; int month; int year; ; struct students{ int num; char name[20]; int age; string address; double phone; date birthdate; ; void main(){ students stud[10]; for(int i=0; i<3; i++){ stud[i].num = i; cout << "Student number: " << i+1 << endl; cout << "\n\n"; cout << "Name:\t\t"; cin >> stud[i].name; cout << "Age:\t\t"; cin >> stud[i].age; cout << "Address:\t"; cin >> stud[i].address; cout << "Phone:\t\t"; cin >> stud[i].phone; cout << "Birth day:\t"; cin >> stud[i].birthdate.day; cout << "Birth month:\t"; cin >> stud[i].birthdate.month; cout << "Birth year:\t"; cin >> stud[i].birthdate.year; system("cls"); cout << "Num\tName\tAge\tAddress\tPhone\tBirthdate\n"; cout << "\n"; for(i=0; i<3; i++){ cout << i+1 << "\t"; cout << stud[i].name << "\t"; cout << stud[i].age << "\t"; cout << stud[i].address << "\t"; cout << stud[i].phone << "\t"; cout << stud[i].birthdate.day << "/" ; cout << stud[i].birthdate.month << "/"; cout << stud[i].birthdate.year << "\n"; ٥٣

54 شاشة إدخال البيانات: شاشة عرض النتائج: واجب: في المثال السابق أضف إمكانية للبرنامج يتيح للمستخدم أن يحدد عدد الطالب الذين يريد أن يدخل بياناتھم. ٥٤

55 الفصل 11 البرمجة الموجھة (الكائنية) Objects Oriented Programming مقدمة: يطلق عليھا : برمجة كائنية أوغرضية الھدف أوھدفية أو شيئية.. وھي برمجة تقوم على االھتمام بطريقة حل المشكلة قبل تحويلھا الى كود.. من تقنياتھا الدنيا: المصفوفات والدوال والتركيبات... ومن تقنياتھا العليا: المؤشرات والقوائم المتصلة. تعريف البرمجة الكائنية: طريقة لتجميع البيانات والوظائف (الصفات والخصائص) معا في قالب واحد يسمى الفصيلة أو الفئة. الصفات والخصائص :Attributes & Properties يتكون الكائن من صفات Attributes متغيرات.variables وخصائص Properties دوال.functions مكونات التركيب ومكونات الكائن: التركيب: متغير متغير متغير الكائن: متغير "بيان/صفة" متغير متغير دالة "مھمة/خاصية/طريقة" دالة دالة أوجه االختالف بين التركيب والكائن: البرمجة الكائنية تطوير للبرمجة الھيكلية فالتراكي ب اس تمدت بناءھ ا م ن الھياك ل فالھيك ل يتك ون م ن ج زء يتف رع منه أجزاء ترتبط به حيث تم إضافة خصائص "طرق" للتركيب وأطلق عليه اسم كائن. التركيب struct عدم القدرة على إخفاء البيانات. طريق ة الوص ول لل صفات "المتغي رات" ف ي التركي ب بشكل عام ومتاح للجميع. الوص ول إل ى البيان ات داخ ل التركي ب ي تم بواس طة متغيرات التركيب. الصنف class له القدرة على إخفاء البيانات. ال يمك ن الوص ول المباش ر إل ى ال صفات إال باس تخدام طرق معينة عبر مستويات الحماية ومن خالل اإلع الن عنھا. الوص ول إل ى البيان ات ف ي ال صنف ي تم بواس طة خصائص "دوال" الكائن. ٥٥

56 مقارنة بين أنواع البرمجة: البرمجة: صفاتھا مميزاتھا عيوبھا التقليدية ال تعتم د أس س وال قواع د (عشوائية) تھتم بحل المشكلة فقط. أنھ ا تح ل الم شاكل الصغيرة. ت دعم عم ل الف رد عل ى البرنامج الھيكلية تعتم د عل ى أس س وقواع د بسيطة تتمثل ف ي اس تخدام الم صفوفات وال دوال والتراكيب. تھ تم بتنظ يم الك ود البرمج ي وجعل ه س ھل التعديل. تحل المشاكل المتوسطة. تدعم عم ل الف رد أكث ر م ن دعمھا للفريق الواحد. تقليل استخدام الذاكرة. تنظم البرنامج. جمع المتغيرات ف ي متغي ر واح د (تركي ب) ي سھل الوص ول إلي ه وإل ى مكوناته. تقسيم البرنامج وظيفي ا إل ى دوال بسيطة. يمك ن اكت شاف الخط أ بسھولة. يمك ن تط وير البرن امج بشكل متوسط. ي صعب تق سيم العم ل لع دة مبرمجين أو مجموعات. يمكن تطوير البرن امج إل ى مدى مع ين ث م ي صعب بع د ذل ك ال سيطرة علي ه نظ را لكثرة الدوال والتراكيب. الكائنية تعتم د أس س وقواع د لح ل المشكلة. تھتم بطريقة حل الم شكلة أوال قبل تحويلھا إلى كود برمجي. ال يمكن اكتشاف الخطأ في البرنامج. ال يمك ن تط وير البرن امج بسھولة. تطوير البرنامج يزيد حج م البرنامج بشكل كبير. ال ت دعم عم ل الفري ق الواحد. تحل المشاكل المعقدة. تدعم عمل الفريق الواحد. تنظم البرنامج. طريق ة لتق سيم البرن امج إل ى برامج صغيرة وظيفية وفعالة. س ھوله الق راءة والفھ م والتتب ع واكتشاف األخطاء. سھوله المعالجة والتنقيح. حماي ة البيان ات واس تخدام طرق للوصول. قابلية إعادة االستعمال. يمكن اكتشاف الخطأ بسھولة. يمك ن تط وير البرن امج ب شكل كبير جدا بمجھود بسيط. تطورت عن الھياكل.struct تتطلب خبرة برمجية. بناء الكائنات يحتاج إلى تحليل وت صميم ورب ط م ع كائن ات أخ رى ومراع اة ش روط الھيكلي ة والكب سلة والتجري د وغيرھا.. مالحظات تحل مشكلة معينة ك ل دال ة تح ل م شكلة والبرن امج كك ل يح ل مجموعة مشاكل. التركي ب ي ستطيع تخ زين مجموع ة مختلف ة م ن المتغيرات. كل ك ائن يت ولى ح ل مجموع ة م شاكل مترابط ة ومجموع ة الكائن ات تت ولى ح ل كاف ة المشاكل المتعلقة بالمشروع. الك ائن ي ستطيع تخ زين مجموع ة مختلف ة م ن المتغيرات ويحتوي دوال. ٥٦

57 الفصيلة / الصنف / الفئة (Class) تعريفھا: مجموعة من األغراض أو الكيانات المتشابھة في الخصائص والسلوك. وھي بناء برمجي يجمع "يغلف" البيانات (الصفات) ومھامھا (الوظائف/الخصائص) معا. تتركب الفصيلة من مجموعه من الصفات والخصائص. تحتوي على البيانات مع الوظائف (الدوال) بدال من البيانات فقط. مالحظة: إذا لم تخدم البيانات المھام فال داعي لوجودھا. حماية البيانات في الصنف: يحتوي الصنف على سماحيات تمنع المبرمجين من الوصول إلى البيانات المحمية. والصفات الموجودة داخل الكالس ال يعرفھا أال من بنى الكالس. وللوصول إلى الصفات يتم استخدام الخصائص كما يمكن حماية الخصائص بحيث ال يمكن الوصول إليھا إال من داخل الكائن. الكائن: عبارة عن تركيب لظاھرة معينة الظاھرة :مؤسسات أوھيئات. تعرف الكيانات على أصنافھا: مثال: صنف أو فصيلة الطالب: يتكون من ھذا الصنف الكثير من الكائنات مثل الطالب/محمد والطالب/علي والطالب/احمد...الخ شفرة تكوين الكائن:.1 Class class_name كلمة مفتاحية class واسم الفي ة 2. {.3 public: منطقة الصفات والخصاي ص العامة 4. member1; data type تعريف متغير / صفة عامة 5. data type function_name(per) 5. data type تعريف دالة / خاصية عامة function_name(per) 5. data type Private: منطقة الصفات والخصاي ص المحمية 8. member1; data type تعريف متغير / صفة محمية 9. data type function_name(per) 9. data type تعريف دالة / خاصية محمية function_name(per) 9. data type Protected: منطقة الصفات والخصاي ص المورثة.12 member1; data type تعريف متغير / صفة يمكن توريثها.13 data type function_name(per).13 data type تعريف دالة / خاصية يمكن توريثها function_name(per).13 data type ; ٥٧

58 public المستوى العام كلمة مفتاحية تسمح للوصول لكل عنصر في الصنف ولكل المستخدمين. private المستوى الخاص كلمة مفتاحية ال تسمح للوصول لعناصر الصنف إال عن طريق الصنف نفسه (عن طريق الدال ة المعرف ة في الصنف). protected المستوى المحمي كلمة مفتاحية تسمح الشتقاق عناصر وتوريثھا ألص ناف أخ رى حي ث أنھ ا ال ت سمح للوص ول لعناص ر الصنف إال عن طريق الصنف نف سه مث ل الم ستوى private أو ع ن طري ق ال صنف الم شتق (دال ة ف ي الصنف المشتق). مالحظات: يفضل أن يكتب اسم الصنف بحرف كبير (يبدأ بحرف كبير) لتمييزه عن التركيب. تكتب الفئة قبل الدالة الرئيسية. يتم تعريف كائن على "الفئة/الصنف" داخل الدالة الرئيسية. ال يمكن استخدامھا خارج private المتغيرات (الصفات) والدوال (الخصائص) المصرح في الجزء الصنف. كل ما يندرج تحت المستوى public يمكن استخدامه داخل الصنف وخارجه. في حاله عدم ذكر public أو private فان الكلمة االفتراضية ھي.private حجم الكائن: كال من الكائن والتركيب يحجزان مساحة مركبة في الذاكرة حجمھا ھو حجم جمي ع المتغي رات الداخل ة ف ي الك ائن أو التركيب. مثال : struct students{ int num; char name[20]; int age; string address; double phone; ; التركيب : لنأخذ مثال الطالب الموجود في الفصل السابق: Int Char Int String Double اإلجمالي byte الكائن: يشبه التركيب باإلضافة إلى أنه يحجز مساحات للمتغيرات التي يتم تعريفھا داخ ل ال صفات "ال دوال" عن د استخدامھا. ٥٨

59 أمثلة من الحياة الواقعية: توزيع المساحات على المتغيرات: 1 bit 1 Byte = 8 bit Boolean 2 Byte = 16 bit Short Int 4 Byte = 32 bit Int 8 Byte = 64 bit String المتغيرات: في الواقع إذا اعتبرنا أن الرام قطعة أرض وأنھا مقسمة إل ى لبن ات فإن ه لبن اء من زل ص غير نحت اج إل ى ٨ لبن ات ولبن اء من زل كبي ر (بحج م من زلين ص غيرين) فإن ك بحاج ة إل ى ١٦ لبن ة ولبن اء ش ركة ص غيرة (بحج م ٤ من ازل صغيرة) تحتاج إلى ٣٢ لبنة ولبناء شركة متوسطة أو ملعب (بحجم ٨ منازل صغيرة) فإننا نحتاج إلى ٦٤ لبنة. فإن ه ف ي الكمبي وتر يمكنن ا ت شبيه المن زل ال صغير ب (Boolean) والمن زل الكبي ر ب Int) (Short وال شركة الصغيرة ب (Int) والشركة المتوسطة ب (String) والملعب ب.(Double) التركيب: بينما التركيب مثل المؤسسة يحتوي مباني مختلفة األحجام كل مبنى يحجز ع دد مع ين م ن اللبن ات فالبواب ة تحت اج إلى ٨ لبنات والمخازن تحتاج إلى ١٦ لبنة والمكاتب تحتاج إلى ٣٢ لبنة وكل ھذه اللبنات موجودة في مكان واح د "متجاورة". الكائن: عبارة عن تركيب لكن يحتوي على وظائف وعند إنشاء كائن من نوع صنف معين فإن األمر يشبه المثال التالي: (عن دما ت شتري كت اب ط بخ ف إن الوص فة تمث ل "ال صنف أو الك الس" بينم ا الطب ق ال ذي تنتج ه ھ و الك ائن فأن ت ال تستطيع أكل الوصفة بل الطعام "الكائن"). لذلك فإننا نقول أن ھذه الطبخة من تلك الوصفة وھذا الكائن من ذاك الصنف. مالحظات: يطلق على متغيرات الصنف أسماء (خصائص صفات بيانات) يطلق على دوال الصنف أسماء (طرق مناھج وظائف تصرفات مھام) ٥٩

60 مثال عملي: أثناء تعاملنا مع بيئة ++C استخدمنا خصائص الكائن cout لتنفيذ أعمال مختلفة وكنا نطلق عليه مجازا دال ة لكن ه كائن يحتوي عدة وظائف "دوال" وھو كائن من صنف اإلخراج.ostream تظھر الصفات والخصائص في قائمة منسدلة بمجرد الضغط على زر النقطة ".": إذا الوظيفة width تأخذ ممرر "وسيط" واحد وتقوم بعمل مسافات بعدد الرقم الممرر. cout.width(10); // print 10 spaces كذلك الكائن cin وھو من صنف اإلدخال.iostream الح ظ تق سيم اإلعم ال عل ى الكائن ات ك ائن يع الج م سائل اإلدخ ال وآخ ر يع الج م سائل اإلخ راج وھ ذا م ا يمي ز البرمجة الكائنية. مالحظات: تأخذ القائمة المنسدلة عدة ألوان تعبر عن عمل كل عنصر فيھا: الصفة (المتغير) تظھر بلون سماوي. الخاصية (الدالة) تظھر بلون وردي. وإذا كانت الصفة أو الخاصية محمية فإنه يظھر بجوارھا رمز القفل. أما إذا كانت الصفة أو الخاصية مورثة فإنه يظھر بجوارھا رمز المفتاح. الصفة العامة يمكن تغيير قيمتھا بوضع عالمة (=) مثال: obj.var = value الخاصية العامة يمكن تغيير قيمتھا عن طريق تمرير وسطاء للدالة مثال: obj.function(value1, value2) ٦٠

61 1. Class Simple_math 2. { 3. private: 4. int r; double result() 7. { return r; ; 8. public: 9. void sum(int a, int b) 10. { r = a + b; ; void divided(int a, int b) 13. { if (b==0){ 14. cout << "Can't divided by ziro"; 15. r = 0; 16. else { 17. r = a / b; ; 20. void print () 21. { cout << "\n====\n" 22. << result 23. << "\n====\n" ; 24. ; 25. ; 26. مثال بسيط: 27. void main(){ 28. Simple_math sm; 29. sm.sum( 3, 2 ); 30. sm.print(); 30. الناتج : 5 sm.print(); ); 0 ( 3, divided sm. الناتج : 32. sm.print(); Can't divided by ziro 33. نالح ظ أن الك الس Simple_math يح وي إج راءين األول لجم ع ع ددين واإلج راء divided لق سمة ع ددين وھو يقوم أيضا بمعالجة مشكلة القسمة على صفر ويعيد رسالة تفيد بعدم إمكانية القسمة على صفر.. ودال ة خاص ة "محمي ة" result تق وم بإرج اع قيم ة الخاص ية r واإلج راء print وال ذي ي ستدعي الدال ة result ويطبعھا بشكل منسق. مالحظات: يفضل استخدام حرف كبير في بداية اسم الكالس لتمييزه عن التراكيب. يمكنك إضافة خصائص أخرى لھذا الكالس مثل الطرح والضرب. يمكن نقل الدالة result من القسم الخاص إلى القسم العام وبالتالي تستطيع استخدامھا السترجاع قيمة r. ٦١

62 #include <iostream> #include <string> using namespace std; مثال لصنف الموظفين: class Employees { private: int no; string name; string address; int phone; string department; int salery; string date; //////////////////////// public: void insert() { cout<< "no:"; cin >> no; cout<< "name:"; cin >> name; cout<< "address:"; cin >> address; cout<< "phone:"; cin >> phone; cout<< "department:"; cin >> department; cout<< "salery:"; cin >> salery; cout<< "date:"; cin >> date; ; void print() { cout << "n= " << no << "\n " << "name = " << name << "\n " << "address = " << address << "\n " << "phone= " << phone << " " << "department = " << department << "\n " << "salery = " << salery << "\n " << "date = " << date << endl; ; ; main(){ Employees emp[200]; int sum=0; cout << "How records you want to enter:"; cin >> sum; for(int i=0; i<sum; i++){ emp[i].insert(); ; cout << "===============\n"; for( i=0; i<sum; i++){ emp[i].print(); ; ٦٢

63 مبادئ البرمجة الھيكلية: تحليل المشكلة (جمع المعلومات عنھا). تصميم الھيكل. برمجة الحل. تجربة البرنامج. التوثيق. مالحظة: سيتم دراسة مبادئ البرمجة الھيكلية بشكل أكبر في الفصل الثاني. أوجه االختالف بين البرمجة بالدوال والبرمجة بالكائنات: البرمجة بالدوال يمكن بواسطتھا بناء برنامج متكامل. تقسم البرنامج إلى أجزاء. البرنامج ضمن ملف واحد يحوي كل الدوال تحتاج من واحد إلى ثالثة مبرمجين لبناء البرنامج يشترك المبرمجين في بناء البرنامج الواحد إذا وجد خطأ في دالة يتوقف البرنامج بأكمله يحتوي البرنامج على عدة دوال تعمل الدوال بشكل مستقل عن بعضھا الكود يشكل جزء من البرنامج البرمجة بالكائنات يمكن بواسطتھا بناء مشروع متكامل. تقسم المشروع إلى برامج مستقلة فرعية. ك ل برن امج م ستقل خ ارج المل ف الرئي سي وي تم استدعاء البرنامج عند الحاجة إليه. تحتاج إلى مبرمج أو أكثر لكل برنامج مستقل كل مبرمج أو فريق مبرمجين مسئول عن برنامجه. إذا وج د خط أ ف ي برن امج فرع ي ي ستمر البرن امج الرئيسي للمشروع في العمل. قد يحتوي البرنامج على أكثر من كائن. تتكامل الدوال "الخصائص" في انجاز المھمة الواحدة. وتتكامل الكائنات بواسطة الوراثة أو تعدد الواجھات. الكائن يمثل جزء من المشروع مالحظ ة: إذا ت م وض ع الكالس ات داخ ل المل ف األساس ي ول م توض ع ف ي ب رامج فرعي ة ف إن الكثي ر م ن ممي زات البرمجة بالكائنات ستختفي! ٦٣

64 كتل البرنامج الھيكلي: يتم بناء البرنامج كود بعد كود لتكوين الكائن (ككتل ة واح دة) وبع دھا ي تم تك وين الم شروع كتل ة بع د كتل ة وبالت الي ييتم بناء المشروع بسرعة كبيرة. Program Project أمثلة : في نظام تشغيل : windows "برنامج المفكرة" ج زء م ن نظ ام وين دوز لكن ه برن امج م ستقل ف إن ح صل عط ل ف ي المفك رة فل ن يتوق ف نظ ام التشغيل.كذلك برنامج الرسام والحاسبة... وغيرھا. "برامج "office نالحظ أنه يتم تعديل تصميمھا بشكل كامل مع بقاء كل اإلمكانيات وإضافة إمكانيات جديدة لھ ا في كل إصدار جديد من إصدارات office وبشكل سريع وذلك نظرا لسھولة التطوير باستخدام الكائنات. تقنيات البرمجة الموجھة إخفاء البيانات Data Hiding الكبسلة والتضمين Encapsulation توريث الصفات Inheritance تجريد البيانات Abstracter تعدد االستخدام Polymorphism ٦٤

65 المشيدات والمدمرات ) Destructors ( Constructor & المشيدات : تعريفھا: ھي عبارة عن دالة لھا نفس اسم الصنف تقوم بتزويد الكائن أو عناصره بقيم ابتدائية "تھيئة الكائن لالستخدام". الخواص: لھا نفس اسم الصنف. ١. ال يمكن استدعائھا من خارج الصنف. ٢. يتم تنفيذھا عند إنشاء الكائن. ٣. يمكن عمل ممرات "تمرير وسطاء" أو عدم تمريرھا لكنھا ال تعود بشيء. ٤. يمكن إنشاء أكثر من دالة مشيد في الصنف الواحد "Overload" تحميل زائد. ٥. مالحظات: المشيد يھيئ الصنف لالستخدام األولي بإعطائه قيم أولية. بدون المشيد ال يمكن تھيئة الصنف ألنه لم يحجز مساحة أصال. مثال: ف ي المث ال ال سابق الخ اص ب الكالس Simple_math م اذا س يحدث ل و أنن ا اس تخدمنا الخاص ية print دونم ا الخصائص األخرى : Simple_math sm; sm.print(); الناتج: نالحظ أنھا ستتطبع قيمة ع شوائية " e" وذل ك ألن ه يطب ع قيم ة المتغي ر r ب دون أن ي سند ل ه أي قيمة. لذلك فنحن بحاجة لطريقة إلسناد قيمة ابتدائية للمتغير r. تقبل بع ض لغ ات البرمج ة إس ناد قيم ة للمتغي ر (ال صفة) مباش رة لك ن بيئ ة ++C ت شترط أن القيم ة االبتدائي ة ي تم إسنادھا من خالل دالة وإال ستظھر لك الرسالة التالية: 'r' : pure specifier can only be specified for functions مثال عملي: عند تعاملك مع بيئة visual basic فإنك عندما تن شئ نم وذج "Form" فإن ه يحت وي عل ى خ صائص م سبقا دون تدخل منك ومنھا "height" و "width" وبدون وجود القيم االبتدائية لھذا النموذج فلن ت ستطيع م شاھدة النم وذج الن ارتفاع النموذج وعرضه سيكونان "صفرا ". ٦٥

66 1. Class Simple_math 2. { 3. private: 4. int r; 5. المدمرات / الھادمات : تعريفھا: عبارة عن دالة تقوم بإزالة األغراض والكيانات من الذاكرة (إلغاء الكائن من الذاكرة). الخواص: لھا نفس اسم الصنف. ١. يسبق اسم دالة الھدم العالمة (~). ٢. ال توجد لھا ممررات وال تعود بشيء ٣. تقوم بإلغاء المساحات المحجوزة للكائنات في الذاكرة. ٤. ال يمكن إنشاء أكثر من دالة ھدم واحدة. ٥. يتم تنفيذھا عند إلغاء الكائن أو انتھاء البرنامج. ٦. شفرة المشيد: 6. double result() 7. { return r; ; 8. public: 9. Simple_math() دالة المشيد ١ 10. { r = 0; ; (x Simple_math(int دالة المشيد ٢ (تحميل زاي د) 13. { r = x; ; void sum(int a, int b) 16. { r = a + b; ; 17. void print () 18. { cout << "\n====\n" 19. << result 20. << "\n====\n" ; 21. ; 22. ; void main(){ 25. Simple_math sm; إنشاء كاي ن sm 26. sm.print(); 26. الناتج : 0 sm.print(); Simple_math sm2(1);.27 Simple_math إنشاء كاي ن sm2 وإسناد قيمة ابتداي ية له sm2(1);.27 Simple_math 28. sm2. print(); 28. sm2. الناتج : 1 print(); 28. sm تم حذف دالة divided الختصار البرنامج. ٦٦

67 إضافة شفرة المدمر: 1. Class Simple_math 2. { 3. private: 4. int r; double result() 7. { return r; ; 8. public: 9. Simple_math() 10. { r = 0; ; Simple_math(int x) 13. { r = x; ; void sum(int a, int b) 16. { r = a + b; ; 17. void print () 18. { cout << "\n====\n" 19. << result 20. << "\n====\n" ; 21. ;.22 ~Simple_math() دالة المدمر 23. { 24. cout << "\n*****" 25. << " The End *****\n"; 26. ; 27. ; void main(){ 30. Simple_math sm; إنشاء كاي ن sm.31 عند إغلاق نافذة البرنامج ستظهر العبارة : 32. ***** The End ***** 33. مالحظات: يتم التفريق بين دالة الھدم عن دالة المشيد بعالمة ~ ت سبقھا وال يمك ن اس تدعائھا فھ ي تنف ذ نف سھا عن د إنھاء البرنامج أو حذف الكائن. عند إغالق البرنامج يجب ح ذف جمي ع المتغي رات الت ي ي ستخدمھا م ن ال ذاكرة وإال فإنھ ا س تبقى حت ى تمألھا وبالتالي سنحتاج إلى إضافة ذاكرة إضافية والتي بدورھا ستمتلئ يمكنك مالحظة أنه عند إعطاء المتغير x قيمة معينة ثم إعادة تشغيل البرنامج وطباعة x فإنھا ال تعيد شيئا.. تقوم بيئ ة ++C بت دمير الك ائن مباش رة عن د انتھ اء البرن امج ولك ن إذا أردن ا ال تحكم بح ذف الك ائن فإنن ا ننشئ دالة ھدم خاصة بنا. المدمرات مھمة جدا وتوجد في كل لغة برمجية دوال مدمرة يمكنك مالحظة دالة التدمير الخاصة ببيئ ة ++C عند ظھور رسالة continue" "Press any key to في نھاية تنفيذ البرنامج. تقوم دالة الھدم الخاصة بنا بتدمير الكائن قبل دالة الھدم الخاصة بالبيئة. ٦٧

68 #include<iostream> #include<string> using namespace std; //////////////////////////////////////////////// class Student { private: int num, level; string name, space; ///////////////////////////////////////////////// public: void assigned(int n, string m, int l, string s) { num=n ; level=l ; name=m ; space=s ; ; void print( ) { cout <<num<<ends <<name<<ends <<level<<ends <<space<<endl; ; ///////////////////////////////////////////////////// Student( ) { num=0; name="nodata"; level=0; space="nodata"; ; مثال لصنف الطالب: Student(int n, int l, string m, string s) { num=n; level=l; name=m; space=s; ; ///////////////////////////////////////////////////// ~ Student( ) {cout<<"the end\n";; ; main() { Student stud; Student studl(1,4,"ali","it"); stud.print(); studl.print(); int a,b; string c,d; cout << "Enter Number: "; cin >> a; cout << "Enter Level: "; cin >> b; cout << "Enter name: "; cin >> c; cout << "Enter space: "; cin >> d; stud.assigned( a, c, b, d); stud.print(); ٦٨

69 إنشاء دوال الصنف خارجه : 1. #include<iostream> 2. #include<string> 3. using namespace std; 4. //////////////////////////////////////////////// 5. class Student 6. { 7. private: 8. int num, level; 9. string name, space; 10. ///////////////////////////////////////////////// 11. public: 12. void assigned(int, string, int, string); void print() 15. { cout <<num<<ends 16. <<name<<ends 17. <<level<<ends 18. <<space<<endl; 19. ; 20. ///////////////////////////////////////////////////// 21. Student( ){ num=0; name="nodata"; level=0; space="nodata"; ; Student(int n, int l, string m, string s){ num=n; level=l; name=m; space=s; ; 24. ///////////////////////////////////////////////////// 25. ~ Student( ) 26. {cout<<"the end\n";; 27. ; void Student::assigned(int w, string x, int y, string z) { 30. num = w; name = x; level = y; space=z; 31. ; void main( ){ 34. Student stud; 35. Student studl(1,4,"ali","it"); 36. stud.print(); 37. stud1.print(); 38. int a,b; 39. string c,d; cout << "Enter Number: "; cin >> a; 42. cout << "Enter Level: "; cin >> b; 43. cout << "Enter name: "; cin >> c; 44. cout << "Enter space: "; cin >> d; 45. stud.assigned(a,c,b,d); 46. stud.print(); 47. ٦٩

70 * الحظ السطر رقم : ١٢ ١ يمكن أن نحذف أسماء المتغيرات ونبقي أنواعھا فقط: ٢ ويمكن أن يحتوي أسماء المتغيرات: مثال: assigned(int, string, int, string); void assigned(int n, string m, int l, string s) توفر الطريقة في اليسار حماية أكبر للبيانات كما في المثالين السابقين الحظ أنه ال يتم عرض أسماء المتغيرات. * الحظ السطور من ٢٩ إلى ٣١: ١ يمكننا إعادة تسمية المتغيرات بأسماء تختلف عن األسماء الموجودة في الدالة داخل الكالس.. void Student::assigned(int w, string x, int y, string z) { ٢ يمكن الوصول إلى متغيرات الكالس داخل ھذه الدالة الخارجية: num = w; name = x; level = y; space=z; مميزات إنشاء دوال الصنف خارجه: إضافة تعدد أشكال للدوال الموجودة داخل الكالس. تطوير البرنامج مثل "حزم برامج office التطويرية". مالحظة: يمكن إنشاء دالة خارج الصنف أسفل الدالة الرئيسية main ٧٠

71 الفصل 12 إنشاء المكتبات Build Libraries تحتوي المكتبة على فئات وتراكي ب وال تحت وي عل ى أوام ر تنفيذي ة مث ل الطباع ة عل ى ال شاشة وبالت الي ال يمك ن تنفي ذ المكتب ة ولك ن يمك ن ت ضمينھا "اس تيرادھا" ف ي مل ف file" "source ث م تعري ف بيان ات م ن ن وع الفئ ات الموجودة في المكتبة. يتم تسمية أي مكتبة بأحرف كبيرة وتأخذ االمتداد "h." مثال :.MYLIBRARY.h يمكن وضع مكتبتنا داخل مجلد "include" الخاص ببيئة ++C في المسار التالي: C:\program files\microsoft visual studio\vc98\include وسيكون تضمين المكتبة بين قوسين <mylibrary.h> #include كم ا يمك ن وض ع مكتبتن ا ج وار مل ف file" "source الخ اص بن ا وعن دھا ن ستخدم إش ارتي تن صيص.#include "mylibrary.h" القوسين <mylibrary.h> تعني أن تبحث بيئة ++C عن المكتبة في مجلد.include عند تحديث المكتبات فإن االمتداد h. يبقى في المكتبات التي تنشئھا. الحظ أنه يجب إرفاق مكتبتك مع البرنامج عند نقله إلى إي جھاز آخر للعمل. خطوات عمل مكتبة : ١ إنشاء ملف مكتبة جديد: ٧١

72 ٢ قص الكالس م ن مل ف file" "source ول صقه ف ي مل ف المكتب ة (م ع إض افة المكتب ات والتح ديثات الالزم ة لعمل مكتبتك): (ملف المكتبة (STUDENTS.H ٣ حفظ ملف المكتبة بأحرف كبيرة وبامتداد h. جوار ملف file" "source أو في مسار."include" ٧٢

73 تم حفظ الملف داخل مجلد library جوار ملف.(prog1.cpp) source file شكل ملف المكتبة: ٤ تضمين المكتبة في ملف file" "source ويمكنك إنشاء دوال للصنف من خارجه: (ملف البرنامج ([prog1.cpp] source file مالحظات: يجب تضمين المكتبات مرة أخرى في ملف file"."source يمكن إنشاء دوال للصنف من خارجه الحظ : void Student::assigned(int w, string x, int y, string z) { num = w; name = x; level = y; space=z; ; بشرط أن تكون الدالة مصرح عنھا في الصنف: void assigned(int, string, int, string); ٧٣

74 الفصل 13 الوراثة The Inheritance مقدمة : تعد الوراثة واحدة من أھم الخصائص في البرمجة الكائنية ألنھا تعطيك مرونة وقوة في كتابة برامجك كم ا أنھ ا تسھل عملية تطوير البرنامج وتجعل من كتابة األكواد متعة بالفعل لكنھا تحتاج بالمقابل إل ى ب ذل مجھ ود فك ري ( ١ ) لبناء الصنف ومعرفة كيف سيتم توريث األصناف الم شتقة وك ذلك معرف ة بع ض المف اھيم مث ل التجري د وتع دد األشكال ومتى ما تعمقت معرفتك بالبرمجة الكائنية فسيكون لديك سالح قوي ال يمكنك أن تتخلى عنه. التعريف : عبارة عن توريث صفات وعناصر من صف المورث إلى صف الوريث. نقل عناصر صنف إلى صنف آخر. تعريف صنف بداللة صنف آخر. يعتبر صنف المورث (صنف األب) الصنف األساس Base class بينما يعتبر صنف الوريث (صنف االبن) الصنف المشتق Derived class 1. Class Derived_class : Access Base_class 2. { 3. private: 4. Declarations 5. Public: 6. Declarations 7. Protected: 8. Declarations 9. شفرة الكائن المشتق: شرح الشفرة: إنشاء كالس جديد اسم الكالس اإلبن طرق الوصول إلى صنف األساس "األب" وتكون على إحدى حالتين: Class Drived_class Access :Public نقل الصفات كما ھي. :Private نقل الصفات وتحويل الصفات العامة والمورثة إلى محمية. Base_class اسم الكالس األب ويجب أن يكون الكالس األب موجودا قبل إنشاء الكالس اإلبن. (1) راجع الفصل ١٥ في كتاب "تطبيق UML التحليل والتصميم بالمنحى للكائن باستخدام " UML ترجمة وإعداد "خالد الشقراوي". ٧٤

75 مالحظات: ال صفات المحمي ة ف ي األب تبق ى محمي ة ف ي االب ن وتبق ى غي ر متاح ة ف ي االب ن حت ى م ع تحدي د الوص ول.Public إلى عام "Access" الصفات المورثة Protected متاحة داخل الصنف االبن ومحمية خارج الصنف األب واالبن. يمكن أن يورث الصنف األساس عدد من األصناف المشتقة ويمكن للصنف الم شتق أن ي رث م ن ع دة أص ناف أساس. عند عدم الرغبة في توريث صفة يحملھا الصنف األساس إلى األصناف المشتقة فإننا نجعلھا محمية.Private المستوى public يسمح باستخدام الصفات والخصائص داخ ل األص ناف وخارجھ ا وداخ ل األص ناف الم شتقة وخارجھا (أي أنھا تكون متاحة). أمثلة من الواقع: مثال ١: شركة السيارات تقوم بعمل قالب واحد لمجموعة م ن ال سيارات وف ي المرحل ة التالي ة ي تم إض افة بع ض التفاص يل إلى السيارات لتمييزھا مثل اللون ونوع التنجيد وقوة المحرك... الخ نستطيع أن نقول أن القالب العام ھو األب وأن السيارات المختلفة ورثت كل ال صفات األساس ية م ن ال صنف األب وأضيف لكل واحدة منھا صفات مختلفة. مثال ٢: في بعض األلعاب االلكترونية ھناك العديد من السيارات قد تصل إلى أكث ر م ن ٥٠ ن وع فكي ف ي تم ذل ك ھ ل ي تم عمل كالس لكل سيارة على حدة فمن الصعب عمل ذلك ألن لكل سيارة ش كل ول ون وحج م وس رعة تختل ف م ن واحدة ألخرى.. من ناحية أخرى فإن كل ال سيارات لھ ا ٤ عج الت ولھ ا نف س الحرك ة "يم ين وي سار أم ام خل ف" ونفس دوال التسارع ودوال التحطم ودوال تشغيل اإلضاءة والمكابح... الخ. وم ن ھن ا ي أتي دور الوراث ة ليح ل ھ ذه اإلش كالية.. حي ث ي تم عم ل ص نف أب يحت وي ك ل الخ صائص وال صفات األساسية التي تشترك فيھا كل السيارات ثم يتم برمجة أصناف مشتقة تحتوي على إضافات وتغييرات بسيطة ف ي الشكل والحجم والتسارع وقوة التحمل مثال بينما ترث كل الصفات األساسية من الصنف األب. صنف أساس صنف مشتق ٧٥

76 عودة إلى أنواع البرمجة: البرمجة الكائنية البرمجة الھيكلية البرمجة التقليدية Main Function 1 Function 2 Function 3 Main Main call Main File1.exe call users File3.exe customers File4.exe reports File5.exe File File File Main call suppliers File6.exe goods File2.exe File7.exe البرمجة الھيكلية: تعتمد على إحدى طريقتين: ١) طريقة البرمجة المتتالية: حيث أن المبرمج يقوم ببرمجة بما يخصه ث م ينتق ل البرن امج إل ى مب رمج آخ ر ليق وم بدوره بما يخصه وھكذا دواليك.. ٢) طريقة البرمجة المستقلة: حيث يعمل ك ل مب رمج عل ى ج زء م ن البرن امج ث م ي تم تجمي ع األج زاء ف ي برن امج واحد. من عيوبھا: التأخير في تنفيذ البرنامج. كل مبرمج يجب أن يفھم ما عمله زميله. أي خطأ في دالة يوقف البرنامج. أي تعديل في برنامج فرعي يحتاج لتعديل في البرنامج الرئيسي. البرمجة الكائنية: أجزاء البرنامج عبارة عن برامج فرعية مستقلة. كل برنامج فرعي يعمله مبرمج أو فريق. تطوير البرنامج الفرعي ال يعني ھدمه وبناء برنامج جديد ولكن يعني إضافة وظائف أخرى. إذا كبر حجم البرن امج الفرع ي م ع كث رة التط ويرات في ه ف يمكن تق سيمه إل ى ب رامج فرعي ة ع ن طري ق وإضافة وظائف "دوال" أخرى. يجب عدم تداخل الوظائف فكل وظيفة يجب أن تختص بعمل شيء معين. إضافة وظائف للبرنامج ال تؤثر على الوظائف الرئيسية. مميزاتھا: كل المبرمجين يعملون في نفس الوقت. يمكن لكل مبرمج أن يبرمج بأي لغة. كل برنامج له حماية لبياناته. التعديل في برنامج فرعي ال يحتاج إلى التعديل في البرنامج الرئيسي. إذا تعطل برنامج فرعي فال يتوقف البرنامج الرئيسي. التوري ث ٧٦

77 مثال : لكائن سيارة يحسب األمتار التي تقطعھا ويظھر المسافة المقطوعة بالكيلو متر.. #include <iostream> #include <string> using namespace std; class movement { ///////////////////////////// private : int _state; float _kelo; float _meter; int _position; int _side; ///////////////////////////// public : movement(){ _state = 0; _kelo = 0; _meter = 0; _position = 0; _side = 1; //// void power_on(){ _state = 1; cout << "START\a\n"; //// void move_on( float meter, char side){ if (_state == 0 ){ cout << "You must start the car!\n"; else{ cout << "\nmove: "; if(side=='f'){ _meter += meter; _side = 1; if(_meter>= 100) { _meter = 100; _kelo++; cout << "\t> Moving " << meter << " meter forward\n"; else if(side=='b'){ _meter = meter; _side = 1; if(_meter<= 0){ _meter=99; _kelo; cout << "\t> Moving " << meter << " meter backward\n"; //// void position_(){ if (_side==1){ cout << "\t You moved to " << _kelo << "," << _meter << " km\n"; else{ cout << "\t You back to " << _kelo << "," << _meter << " km\n"; ٧٧

78 ; ~movement(){ cout << "\nstop\n"; ///////////////////////////// //#############################################// class shape : public movement { ///////////////////////////// private : string _model; string _color; int _doors; int _engine_force; ///////////////////////////// public : shape(){ _model = "BMW"; _color = "white"; _doors = 4; _engine_force= 200; //// void recolor( string color ){ _color = color; //// void upgread_engine( int force){ _engine_force += force; //// void descripe_(){ cout << "Model:\t"<< _model << endl << "Color:\t"<< _color << endl << "Doors:\t"<< _doors << endl << "Engine:\t"<< _engine_force << " horse\n\n"; ; //#############################################// class vehicle: public movement, public shape { ; //#############################################// void main(){ vehicle car; car.power_on(); //start car.move_on(20,'f'); car.position_(); car.move_on(83,'f'); car.position_(); car.move_on(100,'f'); car.position_(); car.move_on(4,'b'); car.position_(); cout << "\n\n"; car.descripe_(); car.recolor("red"); car.upgread_engine(100); car.descripe_(); ٧٨

79 الفصل 14 المؤشرات Pointers تعريفھا: عبارة عن متغيرات في الذاكرة تشير إلى عناوين والتي بدورھا تشير إلى قيم. عبارة عن مصفوفة مفتوحة. التعامل مع المؤشرات: العالمة (&) تستخدم مع المتغيرات والمؤشرات لمعرفة عناوينھا. العالمة (*) تستخدم مع المؤشرات لمعرفة قيمھا. مثال من الواقع: لنفرض أنك وأربع ة م ن أص دقاءك ذھب تم إل ى المطع م ف إنكم س تحجزون طاول ة م ا ب شكل ع شوائي وبف رض أن الطاولة تستوعب أربعة كراسي فقط فإن أي طاولة ستكون مناس بة لجل وس أربع ة أش خاص فق ط (وك ذلك المتغي ر يفعل "لكنه يحجز ٨ بت على األقل"). ولنفرض أن زمالء لك جاءوا إلى المطعم بالصدفة وأردت أن يتناولوا الطعام معك فإن ھذا غي ر ممك ن فيج ب أن يحجزوا طاولة أخرى عشوائيا ويطلبوا ما يريدونه ويدفعوا فاتورتھم وربما سيكونون في طاولة بعيدة.. ولحل ھذه المشكلة اتفقت مع مسئول المطعم بحجز طاولتين متجاورتين ووضعھما بجوار بع ض بحي ث ت ستطيعوا تناول الطعام معا وتكون الفاتورة واحدة اآلن إذا جاء أصدقاء آخرين فإنك لن ت ستطيع ض م طاول ة ثالث ة ألن ك ل م تطلب سوى طاولتين فقط وإذا طلبت من البداية ضم ث الث ط اوالت فربم ا ال ي أتي أص دقائك (وك ذلك الم صفوفة تفعل).. لنفترض أنك أردت أن تتخلص من المشكلة السابقة فإنك ستتفق مع أصدقاءك بحجز طاول ة وس تطلب م ن م سئول المطعم بأن بضم طاولة إضافية كلما جاء أصدقاء آخرون (وكذلك المؤشرات تفعل). أرأيت ك م ھ ذا مناس ب اآلن س تتفادى م شكلة ض م طاول ة إض افية ث م ال ي أتي زم الءك وتتجن ب اإلح راج عن دما يأتون وال تجد لھم مكان.. لنترك المطعم اآلن ولنتوجه إلى ++C مرة أخرى لنعقد مقارنة دقيقة.. مقارنة بين المتغيرات والمصفوفات والمؤشرات: مالحظات الطريقة وجه المقارنة يتم حجز موقع عشوائي "عنوان" في الذاكرة ;x int توضع القيمة 9 في عنوان المتغير في الذاكرة ;9 = x. x سيتم طباعة قيمة المتغير cout << x; المتغير سيتم طباعة عنوان المتغير x في الذاكرة (طباعة رقم سداسي عشر يدل عل ى موقع تقاطع الصف والعمود في الذاكرة.(RAM cout << &x; يتم حجز ثالثة مواقع متجاورة في الذاكرة بشكل عشوائي ;[3]a int ;7 = [0]a يتم وضع كل قيمة فيما يقابلھا من المواقع المحجوزة. a[1] = 4; المصفوفة a[2] = 1; يتم حجز موقع عشوائي في الذاكرة "مثل المتغير" ;p* int المؤشر يسبب خطأ يوقف البرنامج ألن المؤشر يحتاج عنوان وليس قيمة متغير. ;x p = يسبب خطأ يوقف البرنامج ألن المؤشر يحتاج عنوان وليس قيمة متغير. ;x int p* = يأخ ذ المؤش ر p عن وان المتغي ر x وبالت الي ت صبح قيم ة p ھ ي قيم ة x الن المؤشر p أصبح يؤشر إلى عنوان x. p = &x; ٧٩

80 طباعة القيمة التي يشير إليھا المؤشر p ويسبب خطأ إذا لم تكن ھناك قيمة في الموقع (يجب إسناد قيمة للمؤشر قبل طباعته (١) ). سيتم طباعة موقع المؤشر p "عنوانه في الذاكرة. يغير المؤشر قيمة المتغير x وبالتالي سيتم طباعة "100" وليس "9" إذا لم يتم إسناد متغير للمؤشر فإنه سيطبع عنوان المؤشر. إذا تم إسناد قيمة المتغير للمؤشر ";x& " p = فإنه سيطبع عن وان المتغي ر x. (عنوان أول خلية في المؤشر "عنوان ابتدائي"). إذا كان المتغير p حرفي فإنه سيطبع عنوان المؤشر سواء لم تسند له قيم أو ت م إسناده قيم "abc";) (char *p = ولكن إذا تم إسناده متغير x;) (char *p = فإنه سيطبع عنوان المتغير x. (++p) سيتم طباعة رقم عشوائي ألن المؤشر انتقل خطوة لألمام للخلية التالية ولم يضع أي قيمة فيھا ويتغير عنوان المؤشر بزي ادة 8 باي ت بالنظ ام الع شري 0012ff80] [0012FF7C + 8 = ألن ن وع البيان ات integer يحج ز 8 بايت. x الرجوع إلى الخلية السابقة التي فيھا قيمة.. وبالتالي سيتم طباعة قيم ة (p) مجددا. يمكن للمتغير النصي أن يسند إليه قيم مباشرة. يتم إسناد القيم إلى المؤشر مباشرة. إنشاء مؤشر من النوع الحرفي األنواع الحرفية تقبل إسناد قيمة لھا بشكل مباشر "دون االس تعانة بمتغي ر آخ ر كما ھو الحال في النوع الع ددي". ف ي ھ ذه الحال ة ف إن المؤش ر يعم ل كم سئول المطعم فإنه يحجز لكل حرف مساحة مجاورة في الذاكرة بعدد الحروف تذكر أن كل حرف يحج ز 1 باي ت (٤ ب ت) وبالت الي ف إن أربع ة ح روف س تحجز 4 بايت (١٦ بت) متجاورة. سيطبع "abcd" سيطبع "bcd" س يطبع "a" فق ط ألن ه س يطبع قيم ة أول خلي ة ي شير إليھ ا المؤش ر وإذا أردن ا االنتقال للقيمة في الخلية التالية نزيد ع دد t بمق دار واح د (++t) كي ف يع رف الحاسوب ذلك (ألن المؤشر يشير إلى الخلية التي بعده). سيطبع "b" س يطبع "a" ألنن ا رجعن ا خط وة للخل ف والرج وع خط وة أخ رى أو التق دم خطوات زيادة لألمام قد تصادف مواقع خالية في الذاكرة "Null" وبالت الي ل ن يطبع شيء (في المؤشرات الرقمية سيطبع رقم عشوائي). سيطبع القيم ابتداء من الخلية األولى.(abcd) سيطبع القيم ابتداء من الخلية التالية إلى نھاية سلسلة الحروف.(bcd) سيطبع القيمة التي في الخلية األولى (a). سيطبع القيمة في الخلية الثانية (b). سينتقل المؤشر إلى الخلية التالية ويعتبرھا األولى لذا سيطبع القيمة الثانية (b). سينتقل المؤشر إلى الخلية التالي ة ويعتبرھ ا األول ى ل ذا س يطبع الق يم ابت داء م ن الخلية الثانية إلى نھاية سلسلة الحروف.(bcd) سيتقدم المؤشر خلية واح دة ث م سي ضيف العب ارة "ahmed" ابت داء م ن الخلي ة. (٢ ) التي يقف عليھا وبعدد الحروف (خمسة خاليا) cout << *p; cout << p; int *p = &x; *p = 100; cout << x; cout << &p; int *p = &x; p++; cout << p; p; cout <<p; char *p = "abc"; char *p; p = "abc"; char *t; t = "abcd"; cout << t; t++; cout << t; cout << *t; t++; cout << *t; t; cout << *t; cout << &t[0]; cout << &t[1]; cout << t[0]; cout << t[1]; t++; cout << t[0]; t++; cout << &t[0]; t++; p = "ahmed"; (1) عند إنشاء مؤشر فإنه ال يشير إل ى أي مك ان وتك ون قيمت ه "Null" إال بع د إعط اءه عن وان متغي ر موج ود بالفع ل أو إس ناده قيم ة حرفي ة ف ي حال ة المؤشر الحرفي."char" (2) سيتم حذف الحروف الموجودة ابتداء من الخلية التي يقف عليھا المؤشر. ٨٠

81 char *p = "abcd"; ١ بايت (٨ بت) للمتغير الحرفي االنتقال للموقع التالي موقع المؤشر االول (0012FF6C) مثال P++; موقع المؤشر التالي (0012FF74) مثال أول خلية يشير إليھا المؤشر p++; cout << *p << p << &p << endl << p[0] << &p[0]; b bcd 0012ff6c b bcd; a b c d a b c d مثال شامل للتعامل مع المؤشرات: int i = 1; int *p = &i; //p++; cout << &p <<" "<< *p <<" "<< p <<" "<< p[0] << " " << p[1] << " " << &p[0] << " " << &p[1] << "\n\n\n"; char *c = "abcd"; for(int i=0; i<=3; i++){ cout << c[i] << endl; cout << &c <<" "<< *c <<" "<< c <<" "<< c[0] << " " << c[1] << " " << &c[0] << " " << &c[1] << "\n\n\n"; c++; cout << &c <<" "<< *c <<" "<< c <<" "<< c[0] << " " << c[1] << " " << &c[0] << " " << &c[1] << "\n\n\n"; c++; cout << &c <<" "<< *c <<" "<< c <<" "<< c[0] << " " << c[1] << " " << &c[0] << " " << &c[1] << "\n\n\n"; cout << &c <<" " << *c<<" "<< c <<" "<< c[0] << " " << &c[0] << endl; مميزات وعيوب ھياكل البيانات: النوع المتغير المصفوفة التركيب الطريقة يحجز موقع للقيمة تحج ز ع دة مواق ع متج اورة مت ساوية الطول والنوع يحج ز ع دة مواق ع متج اورة غي ر متساوية الطول أو الن وع ح سب الرغبة المميزات سھل التعريف واالستدعاء واإلسناد. توفر طريقة سھلة إلدخ ال الق يم واس تخراجھا بدالة دوران مثل for نفس مميزات المصفوفة يمكن عمل تركيب داخل تركيب ت وفر طريق ة س ھلة لتجمي ع متغي رات مختلف ة في تركيب واحد يسھل التعامل معه يمكن عمل مصفوفة من التركيب العيوب لكل قيمة يجب تعريف متغير جديد يصعب الحصول على المتغيرات فكل متغير يحتاج إلى استدعاءه باسمه. يجب تحديد حجم المصفوفة مسبقا وال يمكن تحديد حجمھا أثناء التشغيل. كل متغيرات المصفوفة الواح دة يج ب أن تكون من نفس النوع ال يمك ن زي ادة أو تقل يص حجمھ ا بحسب البيانات الفعلية. تبق ى م شكلة م صفوفة التركي ب حي ث ال يمكن زيادة أو تقليص حجمھا ال يمك ن تحدي د حج م الم صفوفة أثن اء التشغيل. ٨١

82 المؤشر يحج ز عن وان وي ضع في ه قيم ة وي ستطيع التح رك لوض ع قيم ة ف ي الموقع المجاور أو استدعاء قيمة منه. ي ستطيع التح رك ف ي ال ذاكرة وتعبئتھ ا ب القيم حسب الطلب. ال يحجز إال المساحة المطلوب ة ويمك ن زي ادة حجمه وتقليصه يضيف إمكانات ھائلة للمصفوفات والتراكيب وحتى الكائنات يمك ن تعري ف مؤش ر م ن ن وع م صفوفة وبالتالي يمكن تعيين حجمھا أثناء التشغيل. ص عوبة المؤش رات فھ ي تتعام ل م ع العناوين وليس القيم خطورة التعامل مع المؤشرات صعوبة اكتشاف أخطاء المؤشرات ت ستطيع تحدي د حج م الم صفوفة م ن ن وع مؤش ر أثن اء الت شغيل لك ن بع د تحديده ال يمكن زيادته أو تقليصه. ال ت دخل الكائن ات وال دوال ض من المقارن ة ألن الكائن ات تحت وي نف س عي وب التركي ب وألن ال دوال ال ت ضيف إمكانيات جديدة للمتغيرات "غي ر أن ه يمك ن تعري ف متغي ر ب نفس االس م داخ ل ع دة دوال ف ي نف س الوق ت (متغي ر محلي)". إمكانيات المؤشرات (١) : int count = 0; cout << "Enter array count: "; cin >> count ; تعريف مصفوفة متغيرة الحجم: char *c = new char[count]; for(int i=0; i<count; i++){ cin >> c[i]; for(int i=0; i<count; i++){ cout << c[i] << ends; cout << endl; تعريف مصفوفة متغيرة األبعاد: int rows,cols; cout << "Enter rows count: "; cin >> rows ; cout << "Enter cols count: "; cin >> cols ; int **Array = new int *[rows] ; for (int p=0 ; p < rows ; p++) { Array[p] = new int[cols]; for (int r=0 ; r < rows ; r++) { for (int c=0; c < cols; c++) { cout << "Enter array[" << r << "][" << c << "] value: "; cin >> Array[r][c]; cout << endl; for (int r=0 ; r < rows; r++) { for (int c=0; c < cols; c++) { cout << "[" << Array[r][c] << "]"; cout << endl; (1) اإلكسير في ++c للكاتب "سلطان محمد الثبيتي". ٨٢

83 : (١ ) حذف المؤشرات تحدث المشاكل في البرامج الكبيرة عندما تنسى إسناد قيمة للمؤشر فيستمر المؤشر بحج ز م ساحة فارغ ة وعن دما يحاول الحاسوب حجز ھذه المساحة ألنھا فارغة لمتغير آخ ر فق د يح دث خل ل يوق ف البرن امج أو حت ى الحاس وب عن العمل.. وبالتالي يجب إسناد قيم للمؤشرات وعند االنتھاء من استخدام المؤشر يجب إلغاؤه. طريقة حذف المؤشر: int *p = &x; p = 0; يتم إسناد القيمة "صفر" للمؤشر: فائدة: طالما أنه يمكننا معرفة عنوان المتغير ونستطيع تغيير القيمة الموجودة في ذلك العن وان ف إن ذل ك س يعطينا ق درات جديدة فمثال نستطيع أن نرسل عنوان متغير لدال ة أو حت ى إج راء وال ذي ب دوره يق وم بتغيي ر قيم ة العن وان بقيم ة جديدة وبالتالي يتم تحديث قيمة المتغير كال الطريقتين التاليتين تقوم بنفس العمل. void sum( int &q, int b, int c){ q = b + c; main(){ int a = 0; باستخدام العناوين: sum(a, 2, 3 ); cout << a; // print 5 void minus( int *w, int b, int c){ *w = b c; main(){ int a = 0; باستخدام المؤشرات: minus(&a, 7, 5 ); cout << a; // print 2 (1) المرجع السابق. ٨٣

84 الفصل 15 الملفات Files مقدمة: إن اس تخدام ال ذاكرة الظاھري ة (Ram) ومعرف ة التعام ل معھ ا وكيفي ة التخ زين فيھ ا واس ترجاع البيان ات منھ ا ال يكفي لعمل برنامج متكامل حيث أن الذاكرة الظاھرية تحذف البيانات بمجرد إغ الق البرن امج.. ل ذا ف ال ب د م ن وسيلة لحفظ البيانات بشكل دائم. تعتبر الملف ات وس يلة ض رورية لحف ظ المعلوم ات ب شكل دائ م وتت يح لن ا تخ زين البيانات في القرص الصلب والرجوع إليھا في أي وقت لالطالع واإلضافة والتعديل. مقارنة: RAM HD النوع الشكل Random Access Memory ذاكرة الوصول العشوائي تق وم الب رامج باس تخدام ھ ذه ال ذاكرة لتخ زين قيم المتغيرات وإجراء العمليات عليھا وتفق د ھذه القيم المخزنة بمجرد إغالق البرنامج. حجمھ ا ص غير تت راوح م ن 128mb إل ى 4GB ال يمكن ك ال تحكم بھ ا وال حت ى م شاھدة البيانات فيھا سريعة جدا في خزن واسترجاع البيانات ال تمتل ئ بالبيان ات ألنھ ا تح ذف م ا ب داخلھا أوال ب أول فتك ون متاح ة لك ل التطبيق ات الس تخدامھا لك ن لھ ا س قف مح دود ال يمكنھ ا تخطي ه ھ و حجمھ ا فال ذاكرة ال صغيرة تبط ئ عمل الحاسوب ألنھا تتعام ل م ع ق در ص غير من البيانات فتنتظر البيانات في طوابير حت ى تفرغ الذاكرة. Hard Disk القرص الصلب ي تم اس تخدام ھ ذه ال ذاكرة لحف ظ البيان ات بصورة ملفات بشكل دائم حتى بع د إع ادة تشغيل الجھاز. حجمھ م كبي رة يت راوح م ن 40GB إل ى.1TERA يمكن ك م شاھدة الملف ات وفتحھ ا واستعراض البيانات داخلھا. بطيئة في خزن واسترجاع البيانات كبي رة الحج م وال تبط ئ عم ل الحاس وب وھ ي متاح ة لخ زن البيان ات لكنھ ا تمتل ئ بالبيان ات م ع الوق ت وال يمك ن تخ زين بيانات إضافية فيھا. وينبغي ش راء ق رص جديد أو حذف البيانات منھا يدويا. االسم الوظيفة الحجم التحكم السرعة اإلتاحة كيف يتم تخزين الملفات: مثال من الواقع: عندما تقوم بالكتابة في برنامج word فإن كل التغييرات التي تقوم بھ ا تك ون ف ي ال ذاكرة الع شوائية ram وعن دما تقوم بالحفظ (ctrl+s) فإن البيانات تنقل من الرام إلى القرص الصلب فكيف يحدث ذلك تمتلك الملفات ھيئتين مختلفتين بناء على الوسط الذي تكون فيھا ولذا فلھا اسمين: ٨٤

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

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

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

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

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

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

مختبر البرمجة والتحليل العددي قسم علوم الجو جمل التحكم والشرط والتكرار المرحلة الثانية 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 جملة اذا

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

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

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

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

Microsoft Word - C#2

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

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

Microsoft Word - new.doc

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

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

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

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

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

Microsoft Word - Excel VBA

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

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

Microsoft Word - SolutionOOPFinal2011.doc

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

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

الموضوع الثالث تحليل التباين ANOVA) (Two Way الثنائي One Depended نلجأ الى ھذا القانون عند توفر متغيرين يتوقع بينھما تداخل او تفاعل (في تحليل التباين

الموضوع الثالث تحليل التباين ANOVA) (Two Way الثنائي One Depended نلجأ الى ھذا القانون عند توفر متغيرين يتوقع بينھما تداخل او تفاعل (في تحليل التباين الموضوع الثالث تحليل التباين ANOVA) (Two Way الثنائي One Depended نلجأ الى ھذا القانون عند توفر متغيرين يتوقع بينھما تداخل او تفاعل (في تحليل التباين االحادي كنا نقارن بين ثالث مجاميع في متغير واحد مثال

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

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

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

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

Allomani Warehouse User Guide

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

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

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

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

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

Microsoft Word - Access VBA

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

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

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

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

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

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

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

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

Microsoft Word - moneybookers

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

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

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

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

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

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

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

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

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

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

Microsoft Word - 1-NURSE CALL SYSTEM

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

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

Microsoft Word - CO_RT10

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

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

تحليل الانحــدار الخطي المتعدد

تحليل الانحــدار الخطي المتعدد ٥٦ تحليل الانحدار الخطي المتعدد Multple Regress Aalss الغرض من التحليل يهتم تحليل الانحدار الخطي المتعدد بدراسة وتحليل أثر عدة متغيرات مستقلة آمي ة عل ى متغي ر ت ابع آمي. نموذج الانحدار الخطي المتعدد بف

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

PowerPoint Presentation

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

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

Full Mark الفرعين : األدبي والفندقي السياحي الوحدة : األولى النهايات واالتصال إعداد وتصميم األستاذ : خالد الوحش مدرسة أبو علندا الثانوية للبنين

Full Mark الفرعين : األدبي والفندقي السياحي الوحدة : األولى النهايات واالتصال إعداد وتصميم األستاذ : خالد الوحش مدرسة أبو علندا الثانوية للبنين الفرعين : األدبي والفندقي السياحي الوحدة : األولى النهايات واالتصال إعداد وتصميم األستاذ : خالد الوحش مدرسة أبو علندا الثانوية للبنين 0798016746 http://www.youtube.com/uer/moonkaled http://khaledalwahh.wordpre.com/

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

Slide 1

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

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

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

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

المحاضرة الرابعة التكامل المحدد Integral( (Definite درسنا في المحاضرة السابقة التكامل غير المحدد التكامل المحدد لها. ألصناف عدة من التوابع وسندرس في ه

المحاضرة الرابعة التكامل المحدد Integral( (Definite درسنا في المحاضرة السابقة التكامل غير المحدد التكامل المحدد لها. ألصناف عدة من التوابع وسندرس في ه المحاضرة الرابعة التكامل المحدد Integrl( (Deinite درسنا في المحاضرة السابقة التكامل غير المحدد التكامل المحدد لها. ألصناف عدة من التوابع وسندرس في هذه المحاضرة مفهوم التكامل المحدد ليكن () تابعا مستمرا

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

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

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

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

Principles of C++ (Precedence)

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

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

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

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

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

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

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

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

المحاضرة الثانية عشر مقاييس التشتت درسنا في المحاضرة السابقة مقاييس النزعة المركزية أو المتوسطات هي مقاييس رقمية تحدد موقع أو مركز التوزيع أو البيانات

المحاضرة الثانية عشر مقاييس التشتت درسنا في المحاضرة السابقة مقاييس النزعة المركزية أو المتوسطات هي مقاييس رقمية تحدد موقع أو مركز التوزيع أو البيانات المحاضرة الثانية عشر مقاييس التشتت درسنا في المحاضرة السابقة مقاييس النزعة المركزية أو المتوسطات هي مقاييس رقمية تحدد موقع أو مركز التوزيع أو البيانات وهي مهمة في حالة المقارنة بين التوزيعات المختلفة وكان

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

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 يرجى اتباع الخطوات التالية

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

الفصل الثاني

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

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

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

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

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

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

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

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

easy - translation

easy - translation From: http://ar.miraath.net/audio/5030/01 Shaikh Ahmad Bazmool Http://ar.miraath.net/audio/download/5030/usool_us_sunnah_01.mp3 أما األمر األول فھو أنه يظن أن ھذا العلم ثقيل وال يفھمه فھذا خطأ فھذا خطأ

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

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 الا س م التخص ص المو ه ل العم ل البل د اله اتف البري د الص فحة يوسف

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

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

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

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

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

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

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

doc11

doc11 الجزء األول من الكتاب المدرسي (3 ع ت 3 ت ر ر ( التطورات الزمنية الرتيبة تطور جملة كيميائية نحو حالة التوازن الوحدة 4 DAHEL MT Lycée benalioui salah SETIF ***********************************************************

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

مدرسة هارون الرشيد الثانوية للبنين المهارات العملية / تكنولوجيا المعلومات ( الثاني عشر) إعداد/ أ. خالد الح

مدرسة هارون الرشيد الثانوية للبنين المهارات العملية / تكنولوجيا المعلومات ( الثاني عشر) إعداد/ أ. خالد الح املهارات العملية / تكنولوجيا املعلومات )Appinventor )بزنامج :on line من خالل االنترنت مباشرة App inventor خطوات تشعيل برنامج الدخول إلى حساب ج م ل.Gmail ثم رابط الموقع App inventor عبر متصفح االنترنت http://appinventor.mit.edu/explore/

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

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

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

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

صفوت مصطفي حميد ضهير مدرسة الدوحة الثانوية ب أي خطأ طباعي أو إثناء التحويل من صيغة آلخري يرجي إبالغي به والخطأ مني ومن الشيطان أما توفيقي فمن هللا عرف

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

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

متطلبات النظام متطلبات جهاز الكمبيوتر الشخصي معالج 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

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

مكونات الحاسب الآلي

مكونات الحاسب الآلي تطبيقات محاسبية بالحاسوب 465 حسب المدخل لبرنامج الجداول اإللكترونية )برنامج األكسل( أ.هناء المغامس Company LOGO ما هو برنامج األكسل : يستخدم برنامج Excel في كافة التطبيقات التي تحتاج إلى تنظيم البيانات

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

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

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

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

Microsoft PowerPoint - Session 7 - LIBYA - MOH.pptx

Microsoft PowerPoint - Session 7 - LIBYA - MOH.pptx دولة ليبيا وزارة الصحة مركز المعلومات والتوثيق 1 إعداد : محمد إبراھيم صالح مدير مركز المعلومات والتوثيق 2 المحتويات. المؤسسات المسئولة في مجال االحوال المدنية واإلحصاءات الحيوية. االطار القانوني لتسجيل.

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

حقيبة الدورة التدريبية التخزين السحابي Google Drive حقيبة المتدربة إعداد املدربة : عزة علي آل كباس Twitter 1438 ه

حقيبة الدورة التدريبية التخزين السحابي Google Drive حقيبة المتدربة إعداد املدربة : عزة علي آل كباس Twitter 1438 ه حقيبة الدورة التدريبية حقيبة المتدربة إعداد املدربة : عزة علي آل كباس Twitter : @azzahkabbas azzahkabbas@gmail.com 1438 ه الهدف العام : إكساب املتدربات املعرفة بأساسيات الحوسبة السحابية وتطبيقاتها بشكل

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

م ارجعة عامة في مادة التكنولوجيا لمصف السادس األساسي الفصل الد ارسي لمعام األول م. السؤال األول :: ضع عالمة ) ( أو عالمة ) ( لما أت : ( ) تس

م ارجعة عامة في مادة التكنولوجيا لمصف السادس األساسي الفصل الد ارسي لمعام األول م. السؤال األول :: ضع عالمة ) ( أو عالمة ) ( لما أت : ( ) تس السؤال األول :: ضع عالمة ) ( أو عالمة ) ( لما أت : ( ) تستخدم التكنولوجيا في جميع مجاالت الحياة 2 ( ) استخدم اإلنسان العجالت الخشبية في بداية األمر 1 البكرة المتحركة لها محور دو ارن ثابت ال يتحرك ) ( 3

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

برنامج المساعدات المادية الذكي خطوات التقديم للمساعدة المادية...2 خطوات رفع المستندات المرفوضة...10 خطوات التاكد من حالة الطلب

برنامج المساعدات المادية الذكي خطوات التقديم للمساعدة المادية...2 خطوات رفع المستندات المرفوضة...10 خطوات التاكد من حالة الطلب برنامج المساعدات المادية الذكي خطوات التقديم للمساعدة المادية...2 خطوات رفع المستندات المرفوضة...10 خطوات التاكد من حالة الطلب... 13 1 خطوات التقديم للمساعدة المادية قبل البدء باستخدام البرنامج الرجاء:

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

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

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

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

جامعة حضرموت

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

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

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

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

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

الفرق بين البرمجة الإجرائية و البرمجة المسيرة بالأحداث :

الفرق بين البرمجة الإجرائية و البرمجة المسيرة بالأحداث : طرق كتابة HTML محرر النصوص Text Editor مثل Notepad محرر بطريقة واجهة المستخدم الرسومية GUI Editor وهو محرر يكتب كود بلغة Dream تلقائيا باستخدام القوائم الموجودة فيه مثل برنامج Weaver 8.0 HTML 2 انواع محررات

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

بسم هللا الرحمن الرحيم االسئلة المتوقعه لمادة الحاسوب م 3 شتوية 2016 االستاذ نور الدين بني عطا االسئلة المتوقعه على مادة الحفظ سؤال 1 : وضح

بسم هللا الرحمن الرحيم االسئلة المتوقعه لمادة الحاسوب م 3 شتوية 2016 االستاذ نور الدين بني عطا االسئلة المتوقعه على مادة الحفظ سؤال 1 : وضح بسم هللا الرحمن الرحيم االسئلة المتوقعه لمادة الحاسوب م 3 شتوية 2016 االستاذ نور الدين بني عطا 0775226286 االسئلة المتوقعه على مادة الحفظ سؤال 1 : وضح المقصود بكل من : 1( االقتصاد المعرفي : هو االقتصاد

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

مكونات الحاسب الآلي

مكونات الحاسب الآلي تطبيقات محاسبية بالحاسوب 465 حسب مقدمة في التطور التقني ألجهزة الحاسب اآللي والبرامج التطبيقية Company LOGO أ.هناء المغامس المحتويات : 1. مقدمة الحاسب اآللي. مكونات الحاسب اآللي )المادية و البرمجية(..2

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

وزارة الرتبية الوطنية امتحان بكالوراي التعليم الثانوي الشعبة: تقين رايضي اختبار يف مادة: الرايضيات اجلمهورية اجلزائرية الدميقراطية الشعبية الديوان الو

وزارة الرتبية الوطنية امتحان بكالوراي التعليم الثانوي الشعبة: تقين رايضي اختبار يف مادة: الرايضيات اجلمهورية اجلزائرية الدميقراطية الشعبية الديوان الو وزارة الرتبية الوطنية امتحان بكالوراي التعليم الثانوي الشعبة: تقين رايضي اختبار يف مادة: الرايضيات اجلمهورية اجلزائرية الدميقراطية الشعبية الديوان الوطين لالمتحاانت واملسابقات 710 املدة: دورة: 10 د و 01

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

SP-1101W/SP-2101W eciug niitallatini kciuq 1.0v /

SP-1101W/SP-2101W eciug niitallatini kciuq 1.0v / SP-1101W/SP-2101W eciug niitallatini kciuq 1.0v / 1014-05 1 I. معلومات حول المنتج 1-1. محتويات العبوة مؤتمر نزع السالح مع دليل التثبيت السريع مفتاح القابس الذكي دليل التثبيت السريع 1-2. اللوحة األمامية

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

التحليل 4 دكتور املادة: هدى الشماط احملاضرة السابعة عشر )األخرية( عنوان احملاضرة :متارين و تطبيقات احملتوى العلمي : أهال بكم أصدقائي, سندرس محاضرتنا األخيرة النهايات و قابلية االشتقاق و إيجاد المشتقات

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

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

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

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

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

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

أساسيات البرمجة بلغة الجافا

أساسيات البرمجة بلغة الجافا أساسيات البرمجة بلغة الجافا كتاب أساسيات البرمجة بلغة الجافا يتكون الكتاب من سبعة فصول تشرح الجوانب االساسية في لغة الجافا في الفصل االول من الكتاب نشرح مميزات لغة الجافا والمتغيرات في الفصل الثاني نوضح

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

ammarimaths collège

ammarimaths collège 1/5 مدخل الى الدال : 1) الدال الحددية: (2 تمثيلها المبياني مستقيم يمر من x) )=ax تعرفنا في السنات الماضية على الدال الخطية هي الدال التي تكتب على شكل تمثيلها المبياني مستقيم ل b+ x) )=ax أصل المعلم تعرفنا

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

1

1 1 " ق ل إ ن ص ال ت ي و ن س ك ي و م ح ي اي و م م ات ي ل ل ه ر ب ال ع ال م ني ال ش ر يك ل ه و ب ذ ل ك أ م ر ت و أ ن ا أ و ال م س ل م ني " 2 إهدإء إلى والدى ر حم ة إلله عليهما.. و إلى إخوتى الدين لا يدخ رون

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

Microsoft Word - dériv sc maths.doc

Microsoft Word - dériv sc maths.doc الاشتقاق تطبيقاته دراسة الدال الثانية سلك بكالريا ع ف ع ح أ - الاشتقاق في نقطة- الدالة المشتقة ( A أنشطة نشاط باستعمال التعريف ادرس اشتقاق الدالة في حدد العدد المشتق في إن جد ثم حدد معادلة المماس أ نصف

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

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 - Question Bank-II Sem. BA Arabic Core Course, Informatics with DTP

Microsoft Word - Question Bank-II Sem. BA Arabic Core Course, Informatics with DTP UNIVERSITY OF CALICUT SCHOOL OF DISTANCE EDUCATION B.A ARABIC (2011 Admn. onwards) SECOND SEMESTER Core Course INFORMATICS WITH D.T.P. QUESTION BANK من إخترع "الصفر" (العرب الا وربيون الفرنسيون الا لمانيون)

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

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

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

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

I تفريغ مكثف في وشيعة. 1 التركيب التجريبي: L = 40mH وشيعة معامل تحريضها C = 1μF مكثف سعته E = 6V العدة: مولد قوته الكهرمحركة ومقاومتها الداخلية r = 10

I تفريغ مكثف في وشيعة. 1 التركيب التجريبي: L = 40mH وشيعة معامل تحريضها C = 1μF مكثف سعته E = 6V العدة: مولد قوته الكهرمحركة ومقاومتها الداخلية r = 10 I تفريغ مكثف في وشيعة. التركيب التجريبي: = 4H وشيعة معامل تحريضها = μf مكثف سعته = 6V العدة: مولد قوته الكهرمحركة ومقاومتها الداخلية r = Ω وموصل أومي مقاومته.R = 3Ω يشحن المكثف عند وضع قاطع التيار K في

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

الشريحة 1

الشريحة 1 2 األشكال الثالثية األبعاد 4 الف ص ل السادس 5 6 ن 2 : املئ الجدول بالرقم المناسب عدد أضالع القاعدة 4 ن 3 8 عدد أحرف المجس م 6 كانت إذا قاعدة الهرم مثلثة الشكل ذ فكم عدد أضالعها كم حرف ا كانت إذا للهرم

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

النشرة األسبوعية للواجبات المدرسية الصف: االول أ ب ج د ه و النشرة رقم : 6 اليوم والتاريخ المادة الواجبات اختبار بالدرس الثالث حرف الباء من صفحة 23 إلى

النشرة األسبوعية للواجبات المدرسية الصف: االول أ ب ج د ه و النشرة رقم : 6 اليوم والتاريخ المادة الواجبات اختبار بالدرس الثالث حرف الباء من صفحة 23 إلى الصف: االول أ ب ج د ه و اختبار بالدرس الثالث حرف الباء من صفحة 23 إلى صفحة 23 المراجعة + ورقة العمل رياضيات تسليم ورقة العمل تربية وطنية وحياتية تسليم ورقة العمل + عمل نشاط أسرتي سعيدة صفحة 23 + Reading

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

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

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

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

Microsoft Word - Sample Weights.doc

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

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

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

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

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

ص)أ( المملكة العرب ة السعود ة وزارة التعل م اإلدارة العامة للتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول انفترة انثانثت العام

ص)أ( المملكة العرب ة السعود ة وزارة التعل م اإلدارة العامة للتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول انفترة انثانثت العام ص)أ( المملكة العرب ة السعود ة وزارة التعل م اإلدارة العامة للتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول انفترة انثانثت العام الدراس - 8 المعلمة المرحلة الصف المادة وفاء المالكي

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

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

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

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

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

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

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

آذار 2017 B الص ف الث اني م ساب ق ة ال لغاز الد و لي ة في الر ياض ي ات االسم ال شخصي: اسم العا ئل ة: الص ف : اسم المدرسة: بلد ة اسم المدرسة: عنوان مكا

آذار 2017 B الص ف الث اني م ساب ق ة ال لغاز الد و لي ة في الر ياض ي ات االسم ال شخصي: اسم العا ئل ة: الص ف : اسم المدرسة: بلد ة اسم المدرسة: عنوان مكا الص ف الث اني م ساب ق ة ال لغاز الد و لي ة في الر ياض ي ات االسم ال شخصي: اسم العا ئل ة: الص ف : اسم المدرسة: بلد ة اسم المدرسة: عنوان مكان إقامتك: الت الميذ ا لع ز اء أها ل وسها ل بكم في مسابق ة اللغاز

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

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

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

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

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

عرض تقديمي في PowerPoint كود التدريب KSH7TDB19 google يتم البحث عنه في متصفح sway يكون ضمن البرامج الموجودة من الموقع للتسجيل في hot mail او الدخول على البريد االلكتروني من : khulood.sairafi ضمن البرامج الموجودة hot mail للتسجيل

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

مقدمة عن الاوناش

مقدمة عن الاوناش مقدمة عن االوناش مهندس اعداد / ناصر محمود احمد االوناش Cranes هي نوع من المعدات تستخدم لرفع وخفض ونقل االحمال الكبيرة. المبادئ الميكانيكية االساسية لالوناش:- قدرة الونش علي رفع الحمولة. 1. عدم سقوط الونش

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

دبلوم متوسط برمجة تطبيقات الهواتف الذكية

دبلوم متوسط برمجة تطبيقات الهواتف الذكية دبلوم متوسط برمجة تطبيقات الهواتف الذكية الهواتف الذكية عدد مرات تنزيل التطبيقات توقع ارتفاع عدد مرات تنزيل التطبيقات 178B 2017 258B 2020 66% 54% عدد مستخدمي 3,8B االجهزة الذكية 4/2018 استخدام التطبيقات

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

Microsoft Word - 55

Microsoft Word - 55 بطاقة الوصف الوظيفي (مدير داي رة العلاقات العامة) ا و لا معلومات خاصة بالوظيفة: المسمى الوظيفي الغرض الري يسي من الوظيفة الفي ة الموقع التنظيمي للوظيفة الجهة المسي ولة عن الوظيفة العلاقة مع الوظاي ف الا

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

طبيعة بحته و أرصاد جوية

طبيعة بحته و أرصاد جوية طبيعة بحته و أرصاد جوية 3 206-2007 الضوء محاضرة 3 قوانين األنعكاس واألنكسار المرايا العدسات التلسكوب الفلكي قوانين األنعكاس و األنكسار عند سقوط شعاع ضوئي علي سطح فاصل بين وسطين ينعكس جزء منة و ينكسر جزء

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

التحكم في الجهاز عن بعد باستخدام نظام VNC

التحكم في الجهاز عن بعد باستخدام نظام VNC التحكم بالجهاز عن بعد باستخدام نظام VNC ا عداد : صالح عباس. w w w. a n a b i s h. c o m 2 هذا الملف من ا نتاج موقع ا نابيش وكافة حقوق التا ليف والنشر والتوزيع محفوظة للموقع ولا يجوز بيعه ا و تا جيره با

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

المكونات

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

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

ثنائي القطب ثنائي القطب س 4 مادة العلوم الفيزيائية الكهرباء مميزات بعض ثنائيات القطب غير النشيطة الجذع المشترك الفيزياء جزء الكهرباء مميزات بعض ثنائيا

ثنائي القطب ثنائي القطب س 4 مادة العلوم الفيزيائية الكهرباء مميزات بعض ثنائيات القطب غير النشيطة الجذع المشترك الفيزياء جزء الكهرباء مميزات بعض ثنائيا ثنائي القطب ثنائي القطب س 4 الجذع المشترك الفيزياء جزء الكهرباء مميزات بعض ثنائيات القطب غري النشيطة Caractéristiques de quelques dipôles passifs 1- ثنائيات القطب : -1-1 نشاط : صل مربطي كل ثنائي قطب بجهاز

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

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

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

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

الشريحة 1

الشريحة 1 1 4 > < فيما سبق درست حل معادالت خطية باجلمع والطرح. اآلن.. أحل متباينات خطية باجلمع أحل متباينات خطية بالطرح المفردات الصفة املميزة للمجموعة. . لماذا تبين المعلومات الواردة في الجدول أدناه أن المخصصات

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

الصف السادس االبتدائي الفصل الدراسي االول بسم هللا الرحمن الرحيم الصفحة محتويات الفصل الدراسي األول الموضو

الصف السادس االبتدائي الفصل الدراسي االول بسم هللا الرحمن الرحيم الصفحة محتويات الفصل الدراسي األول الموضو بسم هللا الرحمن الرحيم الصفحة 2 3 4 5 6 7 9 11 11 13 14 16 16 17 11 19 22 محتويات الفصل الدراسي األول الموضوع اختيار دولة محددة تغيير نمط عرض التاريخ لالرقام تغيير نمط عرض التاريخ )هجري - ميالدي( تغيير

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

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

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

How To Install Oracle Forms & Reports 6i

How To Install Oracle Forms & Reports 6i بسم االله الرحمن الرحيم How To Install Oracle Form & Report 6i آيف تعد وتثبت أوراآل فورم و ريبورت الا صدارة 6i الا س م التخص ص المو ه ل العم ل البل د اله اتف البري د الص فحة يوسف عثمان ناصر الشفيع مطور

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

Our Landing Page

Our Landing Page نظام البرمجة SIMATIC S7 PLC وفقا للمستوى الا ساس ف الا صدارة S7-1500 الصفحة 1 من 6 يقد م هذه الدورة التدريبية مدر ب من شركة الهندسية (مجموعة دي و) متخصص ف إصدارات سيمنز. لمحة عامة الهدف الري يس لهذه الدورة

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

شرح برنامج استعادة الملفات المحذوفة Recover my files من اعداد : رافاييل يوسف مقدمة: آلنا يعلم ان اجهزة الكومبيوتر قادرة على حفظ الملفات على قرصها الصل

شرح برنامج استعادة الملفات المحذوفة Recover my files من اعداد : رافاييل يوسف مقدمة: آلنا يعلم ان اجهزة الكومبيوتر قادرة على حفظ الملفات على قرصها الصل شرح برنامج استعادة الملفات المحذوفة Recover my files من اعداد : رافاييل يوسف مقدمة: آلنا يعلم ان اجهزة الكومبيوتر قادرة على حفظ الملفات على قرصها الصلب على شكل موج ات آهرومغناطيسية و اننا نعلم باننا نستطيع

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

Microsoft Word - e.doc

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

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