خوارزميات و مباديء برمجة
Download
Report
Transcript خوارزميات و مباديء برمجة
خوارزميات و مباديء برمجة
بلغة جافا
األسبـوع الثالث
المحاضرة الخامسـة :مفهوم البرمجـة
إعداد و تدريس /محمود رفيـق الف َّـرا
2011-2010
في هذه المحاضرة
تدريبات سريعة حول الخوارزميات
أجزاء الحاسوب وعالقتها بعمل البرامج
الحاسوب و البرمجة
أنواع البرمجيـات
لغات البرمجة و عالقتها بلغة اآللة
أنوع لغات البرمجة ؟
من هو المبرمج ؟
مراحل البرمجة؟
بناء البرامج
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
أجزاء الحاسوب وعالقتها بعمل البرامج
وحدة اإلدخال :هي الوحـدة المسـلولة عـن اسـت بال البيانـات مـن المسـتخدم .ومـن أهـ
األمثلة عليها لوحة المفاتيح ,و الماوس ,والمايكروفون ...الخ.
وحدة اإلخراج :وهي المسلولة عـن إخـراج البيانـات للمسـتخدم .ومـن وحـدات اإلخـراج
الشاشة ,والطابعة ,والسماعات.
وحدة الذاكرة :وهي نوعين الذاكرة الرئيسية والتي تستخدم لتخزين البيانـات والعمليـات
علــا البيانــات (البـرامج) بشــكل متقــن أ نــاء إجـراء عمليــات المعالجــة عليهـا ,والــذاكرة
الثانوية المستخدمة في تخزين البرامج والبيانات بشكل دائ في حـال عـدم اسـتخدامها
من قبل باقي الوحدات.
أجزاء الحاسوب وعالقتها بعمل البرامج
وحدة المعالجة المركزية : CPUويتكون من وحدة الحساب والمنطق وهي
المسلولة عن إجراء العمليات الحسابية والمنط ية علا البيانات ,ووحدة التحك وهي
المسلولة عن إدارة والتنسيق بين باقي الوحدات.
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
الحاسوب و البرمجـة
دعونا نتذكر سويا معنا البرمجة من خالل الرس التالي:
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
الحاسوب و البرمجـة
ومن أه مزايا الحاسوب التي يستفيد منها المبرمج في حل المشكالت:
السرعة :يستطيع الحاسوب إنجاز العمليات في وقن قصـير جـدام م ارنـة بالوقـن الـذي
يحتاجه اإلنسان إلنجاز هذه العمليات بنفسه.
التكرار :يتميز الحاسـوب بال ـدرة علـا تنفيـذ العمليـات أو األوامـر لعـدة مـرات يحـددها
المبرمج وتستفيد من الميزة األولا إلتمامها بسرعة.
الدقة :فالحاسوب يستطيع تنفيذ العمليات الحسابية المع دة بدقة متناهية.
التخ ـزين :قــدرة الحاســوب علــا تخ ـزين البيانــات فســترجاعها فــي وقــن فح ـق ,ويتميــز
بحج البيانات الكبير ال ادر علا تخزينه والسرعة والدقة في استرجاعها.
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
الحاسوب و البرمجـة
واألوامر والتعليمات المكونة للبرنامج تن س إلا أربعة أنواع:
تعليمات ل راءة البيانات من وحدات اإلدخال.
تعليمات إلجراء العمليات الحسابية والمنط ية علا البيانات.
تعليمات إلخراج البيانات علا وحدات اإلخراج.
تعليمات لتخزين البيانات في الذاكرة الرئيسية أو الثانوية.
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
الحاسوب و البرمجـة
للوصول إلا الهدف وهو كتابة البرنـامج يجـأ أن نمـر فـي المراحـل األولـا أي التعـرف
علا المشكلة المراد حلها
إيجاد طري ة الحل وأخيرام كتابة البرنامج.
فــي المحاض ـرات الســاب ة تعرضــنا لكتابــة الخوارزميــات و هــي تعتبــر الم ـرحلتين اللت ـين
تســب ان كتابــة البرنــامج ....فــاليوم نبــدأ مــع أولــا الخطــوات الفعليــة لكتابــة البرنــامج و
يت ذلك باستخدام احدى لغات البرمجة.
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
أنواع البرمجيـات
البرمجيـات ( )Softwareهي التي للمستخدم استخدام المكونات الماديـة
( )Hardwareبكفاءة و راحــة.
و يمكن ت سي البرمجيات إلا ال ـة أنواع رئيسيـة و هي:
.1برامج التشغيـل ()Operating System
.2برامج التطبي ات ()Application Programs
.3لغات البرمجـة ( )Programming Languages
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
لغات البرمجة
هناك العديد من لغات الربجمة املستخدمة يف كتابة الربامج ,واالختالف بني
هذه اللغات هو فقط يف طريقة التعبري عن كل نوع من أنواع األوامر والتعليمات
السابقة .ومن األمثلة على لغات الربجمة املختلفة:
• Visual Basic
• Java
• C++
• C#
• Delphi
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
برمجيات الترجمة
هي برجميات تستخدم لتفسري (ترمجة) الربامج من لغة اإلنسان إىل لغة اآللة ,و
تعرف باسم املرتجم .Compiler
اجملمع :Compilerهو جزء من لغة الربجمة املختص يف حتويل األوامر من
طريقة تعبري اللغة عن التعليمات واألوامر إىل لغة نظام التشغيل وجتميعها يف
ملف واحد يطلق عليه امللف التطبيقي (اهلدف) . EXE
البرنامج المصدر
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
المترج
البرنامج
الهدف
وحدة المعالجة
أنوع لغات البرمجة ؟
لغات البرمجة من حيث المستوي
لغات برمجة متدنية
المستوي
Low Level Languages
2.1
واجبـــــــ
لغات برمجة عالية
المستوي
High Level Languages
في صفحة واحدة اكتب تقرير حول الفارق بين لغات البرمجة عالية المستوى و
متدنية المستوى
لغات البرمجة متدنية المستوى
تكتأ اوامرها باستخدام لغة الحاسوب الثنائية ( )1,0
تتخاطأ مع ال Hardwareمباشرة
من اللغات صعبة التعل حتا بالنسبة للمبرمجين انفسه
تسما لغة اآللة Machine Language
لماذا لغات البرمجة عالية المستوى؟
نظ ـرا لصــعوبة التعامــل مــع لغــة اآللــة ف ــد طــور المبرمجــون لغــة اآللــة الــا لغ ـة تســتخدم
الكلمات افنجليزية للتعبير عن العمليات البسيطة مثل افمر addللتعبير عـن الجمـع
و افمر Subللتعبير عن الطرح و افمر endللتعبير عـن النهايـة و هكـذا و سـمين
هذه اللغة بلغة . Assembly
في ذاك الوقن كانن لغة Assemblyانجازا إف انها ل تكن سهلة و ف مريحة
بال در المطلوب و لذلك عمل المبرمجون علا تطويرها الا ما سمي فح ا بلغات
البرمجة عالية المستوى .
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
لماذا لغات البرمجة عالية المستوى؟
تكتأ بأوامر شبيهة بلغة افنسان مثل ()open, if..else ,write
تستخدم العالقات و العمليات الحسابية المتعارف عليها ( / , * , - , +
)< , > ,
لذلك فهي سهلة الفه و التعل .
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
مـن هـو المبـرمـ ــج؟
المبرمج هو شخص قادر علا كتابة اوامر للحاسوب لجعله قادرا علا تنفيذ مهمة
معينة.
وعليه يجأ التفريق بين مستخدم الحاسوب و المبرمج حيث ان المستخدم يعتمد و
يستفيد مما ينتجه له المبرمج من برامج تطبي ية او برامج ترفيهية او تعليمية او حتا
برامج إلدارة امور الدولة
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
مـراحــل البرمج ـ ــة
تت عملية البرمجة علا عدة مراحل ,مرتبـة ترتيبـما له معنـا و تأ ير ،بعض هذه المراحل
يت انجازها بواسطة الحاسوب و منها ما يت انجازها من خالل المبرمج
للتوضيح انظر الشكل التالي ...
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
مراحل
البرمجة
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
بناء البرامج
الكتابة
1
Writing
الترجمة
2
املخرجات
Output
Compiling
التنفيذ
Executing
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
3
4
شك مـرا إلنصاتك
لنبدأ الن اش فنستفيـد...
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
إيمانك × ميزانكـ
قال اهلل تعالا:
ك مع الَّ ِ
ِ
ين يَ ْدعُو َن َربَّـ ُه ْ بِالْغَ َد ِاة َوال َْع ِشي يُ ِري ُدو َن َو ْج َه ُه
ذ
س
ف
ـ
ن
ر
ْ
َ
َ
َو ْ
اصب ْ َ َ َ َ
ْحيَ ِاة ُّ
الدنْـيَا َوَف تُ ِط ْع َم ْن أَ ْغ َفلْنَا
َوَف تَـ ْع ُد َع ْيـنَ َ
اك َع ْنـ ُه ْ تُ ِري ُد ِزينَةَ ال َ
قَـلْبَهُ َع ْن ِذ ْك ِرنَا َواتَّـبَ َع َه َواهُ َوَكا َن أ َْم ُرهُ فُـ ُرطما
خوارزميات و مباديء برمجة
بلغة جافا
األسبـوع الثالث
المحاضرة السادسـة :مكونات لغات البرمجة و األخطاء البرمجيـة
شعبـة الطالبات
إعداد و تدريس /محمود رفيـق الف َّـرا
2011-2010
في هذه المحاضرة
تدريبات سريعة حول الخوارزميات
أهمية المفاهي األساسيـة للغة البرمجة
مكونات لغة البرمجة
أنواع األخطاء في البرمجـة
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
أهمية المفاهي األساسيـة للغة البرمجة
في كافة لغات البرمجة يوجد مفـاهي أساسـية تتعلـق بأبسـم المكونـات التـي مـن خاللهـا
قادرا علا كتابة برنامج ـما و لو بسي ـط ـما.
تكون م
هذه المفاهي ـ تكون مشت ــركة و لكن طري ة كتابتها و تعريفها للمترج قد تختلف.
هــذه المفــاهي تعتبــر كأنهــا شــيفرة متعــارف عليهــا بــين المبــرمج و المت ـرج ليــت إيصــال
الم صود للغة اآللة و التي بدورها ت وم بتفعيل المكونات المادية.
المكونات
المادية
لغة اآللة
المترج
البرنامج
المبرمج
مكونات لغة البرمجة
و أي لغة البرمجـة له مجموعة مكونات قد تختلف طبيعة تمثيلها من لغة إلا أخرى,
إف أنها كأصناف ابتـة و ه :
• عالمات الترقي )(Punctuators
• الكلمات المحجوزة )(Reserved words
• الثوابن )(Constants
• النصوص )(String Constants
• األسماء التعريفية )(Identifiers
• المعامالت الحسابيـة و المنط يـة )(Operators
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
عالمات الترقي )(Punctuators
من المعروف عند كتابة أي لغة استخدام ما يسما Punctuatorsأو عالمات
الترقي .
الهدف منها هو
•
تحديد بداية أو نهاية بعض الجمل.
• فصل الجمل عن بعضها حتا وإن كتبن في سطر واحد.
و هناك 6أنواع من عالمات الترقي نستعرضه في الجدول التالي:
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
عالمات الترقي )(Punctuators
العالمة
;
}{
اسمها
الفاصلة المن وطة
استخدامها
تستخدم لتحديد نهاية الجمل التي هي عبارة عن أوامر
أو تعليمات للمترج
أقواس الجمل المترابطة تعبر عن بداية ونهاية مجموعة من الجمل المترابطة
منط يما ألداء وظيفة معينة.
لفصل المفردات في نفس الجملة وهذه ضرورية
الفراغات
()
أقواس ال ي الممرة
""
double quotations
''
singe quotations
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
تستخدم فست بال قي معينة للدوال
تستخدم لكتابة و ارسال نصوص معينة .
تستخدم لكتابة نوع معين من البيانات و هو الحروف
الثابتة
الكلمات المحجوزة (Reserved
)words
الكلمــات المحجــوزة هــي كلمــات محجــوزة لالســتخدام مــن قبــل كــل لغــة بشــكل ق ـد
منفصل عن اللغات األخرى.
هــذه الكلمــات ف يمكــن اســتخدامها أو تخصيصــها ألي وظيفــة غيــر المخصصــة لهــا
داخل المترج .
و هذه الكلمات جميعها تكتأ بحروف صغيرة (.)Small letters
تنبيه
انتبــه :لغـة الجافا تعتبر من اللغات الحساسـة لحالة األحرف فـَيعتبر المترج الكلمة
Nameمختلفة عن الكلمة .name
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
الكلمات المحجوزة (Reserved
)words
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
الثوابن Constants
وهي عبارة عن قي ابتة تستخدم في البرامج ,والم صود بثابتة أنها ف
تتغير عند تشغيل البرنامج في كل مرة ولتغييرها يجأ تعديل Code
إعادة بناء البرنامج.
الثوابن تن س إلا ال ة أنواع:
• أعداد صحيحة مثل 105 ,49- ,1
• أعداد عشرية 2.9- ,0.34 ,1.5
• حروف charactersوهذا النوع ف يمكن كتابته مباشرة ولذلك نستخدم عالمة
الترقي ' ' لتحديد هذا الحرف ,مثل ''a', 'b', '5
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
الثوابن Constants
نالحظ أنه يمكن كتابة األرقام كأحرف أو أرقام فهل تختلف في كل حالة؟
الجواب :نع ...
• فكمــا نعل ـ أن الحاســوب ي ــوم بتحويــل جميــع البيانــات إلــا م ابلهــا بالنظــام الثنــائي حتــا
يستطيع التعامل معها ,وعند كتابته كرق مثالم 5ي وم بتحويله إلـا الـرق 5بالنظـام الثنـائي
أي ,101وبالتالي يمكن إجراء عمليات الجمـع والطـرح وغيرهـا مـن العمليـات الحسـابية
عليه.
• أما عند كتابته كحرف مثل ' '5ي وم بتحويله إلـا مـا ي ابلـه بشـيفرة ASCIIوهـي عبـارة
عن شيفرة تحتـوي علـا قيمـة رقميـة بالنظـام الثنـائي م ابلـة لكـل حـرف ومـن هـذه األحـرف
طبعام األرقام ,وبالتالي ف يمكن استخدامه كرق وإجراء العمليات الحسابية عليه.
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
النصوص )(String Constant
الثوابن النصية (النصوص) وهي عبارة عن مجموعة من األحرف المتتالية التي تستخدم
للتعبير عن جملة معينة ,وأيضام حتا ف يخلم المترج بينها وبين األوامر البرمجية
يجأ وضعها بين عالمتي التنصيص "" Double Quotationsوالتي تستخدم
– كما ذكرنا ساب ام – لتحديد بداية ونهاية ابن نصي.
الثوابن النصية يمكن أن يحتوي علا أي حرف من الحروف ما عدا سطر جديد وعند
كتابته علا الشاشة يظهر كما هو.
أسماء تعريفية )(Identifiers
وهي عبارة عن أسماء تعريفية تستخدم كأسماء للمتغيرات ,الدوال ,الثوابن ...
و يتكون افس التعريفي من الحروف اإلنجليزية ( , )a-z ,A-Zو األرقـام ()0-9
و العالمات الخاصة _ $ ,
عند اختيار اس تعريفي ,يجأ مراعاة سن قواعد:
.1
.2
.3
.4
.5
.6
أن يبدأ افس بحرف.
أن ف يبدأ برق .
ف يحتوي علا مسافة فارغة.
ف يكون من األسماء المحجوزة.
يفضل أن يكون اسما معبرا عن ما ي وم به الكائن.
ف يحتوي علا أي حروف أو عالمات خاصة أخرى غير المذكورة ساب ا.
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
المتغيرات
المتغيـرات هــي مواضــع محجــوزة فــي الــذاكرة بأحجــام معينــة و مختلفــة يــت
فيها تخزين بيانات ليت معالجتهـا و افسـتفادة منهـا فـي إنجـاز عمـل معـين,
و هذه المواضع يت تسميتها باس تعريفي.
و بتســميته يســهل عليهــا التعامــل معــه و معالجــة البيانــات المخزنــة داخلــه
خالل البرنامج .
هـذه المتغيـرات لهـا أنـواع تختلـف حســأ نـوع البيانـات التـي نحتاجهـا مثــل
أرقام صحيحة ,أرقام عشرية ,نصوص ,حروف ... ,و غير ذلك.
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
المتغيرات
نستخدم المتغيرات و ن وم بتعريفها لعدة أسباب:
• ربم هذا افس (المتغير) بعنوان في الذاكرة.
• تحديـد نــوع البيانــات التــي سـيت تخزينهــا فــي هــذا المتغيـر ,وبالتــالي تحديــد حجـ الــذاكرة
الالزمة لتخزين هذه البيانات.
• ليستطيع الحاسوب التعامل مع ال ي بالصورة الصحيحة عند تحويلها للنظام الثنائي.
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
طبيعة عمل المتغيرات
سيتم تخصيص مساحة في الذاكرة سعتها 1بايت Type1 x = 28 ; //
;Type2 y
سيتم تخصيص مساحة في الذاكرة سعتها 2بايت //
بمجرد هذا التعريف يتم
تخصيص مساحة في الذاكرة
لتخزين رقم صغير بحجم
يناسب النوع املراد
مقطع من الذكرة
0
0
1
1
1
0
0
0
المعامالت الحسابيـة و المنط يـة )(Operators
وهي تتيح للمبرمج ال يام بعمليات المعالجة (الحسابية والمنط ية) وعمليات التخزين
وهي تن س إلا:
Arithmetic Operators (+, -, *, /, %).
Decrement (++, --).و Increment
Assignment Operators (=, +=, -=, *=, /=, %=).
Relational Operators (<, >, <=, >=).
Equality Operators (==, !=).
Logical Operators (!, &&, ||).
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
األخطـاء في البرمجـة
عند كتابة البرامج بأي من لغات البرمجة وتنفيذها عاد مة يظهر معنا أخطاء يتعرف
المترج علا ا نين منها و الث ف يتعرف عليه ,فهناك ال ة أنواع من األخطاء:
• ( :Syntax Errorsخطأ برمجي) وهي عبارة عن أخطاء في كتابة المفردات
وقواعد اللغة يستطيع المترج التعرف عليها ,وبالتالي ف يمكن بناء أو تشغيل
البرنامج بدون تعديلها( .يتعرف عليه المترج )
• ( :Runtime Errorsخطأ التنفيذ) وهي عبارة عن أخطاء ف يمكن
مالحظتها أ ناء كتابة البرنامج وف يستطيع المترج التعرف عليها ,وفكتشاف هذه
األخطاء يجأ تشغيل البرنامج وتجربتها حتا نتمكن من اكتشافها( .يتعرف عليه
المترج )
• ( :Logical Errorsالخطأ المنط ي) و هو خطأ ف يتعرف عليه المترج و
إنما يظهر في مرحلة افختبار ,كأن يت عكس نتائج الم ارنات أو إجراء عملية
حسابية بأولوية خاطلة
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
شك مـرا إلنصاتك
لنبدأ الن اش فنستفيـد...
إعداد /أ .محمود رفيق حمدي الفرا 2011-2010
إيمانك × ميزانكـ
قال اهلل تعالا:
ش ُرهُ يَـ ْوَم الْ ِ يَ َام ِة
ض ْن مكا َونَ ْح ُ
ض َع ْن ِذ ْك ِري فَِإ َّن لَهُ َم ِعي َ
شةم َ
َوَم ْن أَ ْع َر َ
ِ
نب ِ
ِ
َ
ص ميرا * قَا َل
ن
ك
د
ق
و
ا
م
ع
أ
ي
ن
ت
ر
ش
ح
أَ ْع َما * قَ َ
َ
ُ
ال َرب ل َ َ َ ْ َ ْ َ َ ْ ْ ُ َ
ِ
ِ
ِ
َ
سا
ن
ـ
ت
م
و
ـ
ي
ْ
ل
ا
ك
ل
ذ
ك
و
ا
ه
ـ
ت
ي
س
ن
ـ
ف
ا
ن
ـ
ت
ا
آي
ك
ت
ـ
ت
أ
ك
َ
َ
َ
ُ
ُ
َ
َك َذل َ ْ َ َ َ َ َ َ َ َ َ ْ َ ْ َ
سورة طـه