0% found this document useful (0 votes)
9 views89 pages

Revision

Uploaded by

Remon Naguib
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views89 pages

Revision

Uploaded by

Remon Naguib
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 89

By: Remon Naguib

Examples:
Examples:
Machine languages

◼ Machine languages are the lowest level of computer


languages. Programs written in machine language
consist of 1s and 0s.

◼ Programs in machine language can control directly


to the computer’s hardware.

◼ Example:
00101010 000000000001 000000000010
10011001 000000000010 000000000011

opcode address parts

Programming Fundamentals 8
Machine languages (cont.)

◼ A machine language instruction consists of two


parts: an instruction part and an address part.

◼ The instruction part (opcode) tells the computer the


operation to be performed.

◼ The address part specifies the memory address of


the data to be used in the instruction.

Programming Fundamentals 9
Assembly languages

◼ Assembly languages perform the same tasks as


machine languages, but use symbolic names for
opcodes and operands instead of 1s and 0s.

LOAD BASEPAY
ADD OVERPAY
STORE GROSSPAY

◼ An assembly language program must be translated


into a machine language program before it can be
executed on a computer.

Programming Fundamentals 10
Programming languages levels
Application and System Software
◼ Two types of computer programs are: application
software and system software.

◼ Application software consists of those programs


written to perform particular tasks required by the
users.

◼ System software is the collection of programs that


must be available to any computer system for it to
operate.

Programming Fundamentals 12
Common basics
Example
Start

Input Name,
Hours, Rate

Calculate Note: Name, Hours


Pay  Hours  Rate and Pay are variables
in the program.

Dislay
Name, Pay

End

Programming Fundamentals 19
Loops Note:
1. Loop is a very important
Start
concept in programming.
NUM  4 2. NUM  NUM + 1 means
old value of NUM + 1
SQNUM  NUM2
becomes new value of NUM.
The algorithm can be described
Print
NUM, SQNUM
in pseudocode as follows:
NUM  4
NUM  NUM + 1 do
SQNUM NUM2
No
NUM> 9?
Print NUM, SQNUM
Yes
NUM  NUM + 1

STOP while (NUM <= 9)

Programming Fundamentals 20
‫‪Assignment‬‬

‫‪ -‬أكتب خوارزمية لحل المسائل البرمجية التالية‪:‬‬

‫❑ إيجاد الوسط الحسابي ألربعة أرقام‬


‫❑ حساب مساحة الدائرة باستخدام ‪AREA= Pi*R²‬‬

‫* مع رسم مخطط التدفق‬


‫أمثله أخرى‪:‬‬
‫أمثله أخرى‪:‬‬
‫أمثله أخرى‪:‬‬
‫ي‬ ‫ي‬‫ح‬‫ص‬
‫أى العثارأت الثالية حة وأ ا اطية‪:‬‬
‫خ‬ ‫ه‬

‫خطأ‬ ‫ترتبط البرامج المكتوبة بلغات عالية المستوى بالعتاديات‬


‫خطأ‬ ‫تكون كتابة البرامج بلغات عالية المستوى أصعب من كتابتها بلغات ذات مستوى منخفض‬
‫صحيح‬ ‫يكون تشغيل البرامج المكتوبة بلغات عالية المستوى أبطأ من البرامج المكتوبة بلغات منخفضة‬
‫المستوى‬
‫صحيح‬ ‫يكون تصحيح برامج اللغات عالية المستوى أسهل من برامج اللغات منخفضة المستوى‬
‫صحيح‬ ‫يتحكم نظام التشغيل بالموارد‬
‫خطأ‬ ‫يعد نظام التشغيل جزءا ً من العتاد‬
‫خطأ‬ ‫ان نظام التشغيل هو ‪ Windows‬فقط‬
‫صحيح‬ ‫يمكن تحميل أكثر من برنامج في الذاكرة في آن واحد‬
‫صحيح‬ ‫يمكن تشغيل وتنفيذ أكثر من برنامج في آن واحد‬
‫صحيح‬ ‫يمكن أن تستخدم عدة البرامج ذات المورد (الطابعة مثلً) في آن واحد‬
‫مرأخل أعدأد البرنامج‪:‬‬
‫نالحظ أن احلصول عىل نتاجئ من أي برانمج يتطلب اخلطوات التالية‪:‬‬
‫‪ -1‬مرحةل اعداد الربانمج بلغة عالية املس توى ويسمى هذا الربانمج ابملصدر ‪ ، Source Code‬مث يمت ختزينه‬
‫‪ -2‬مرحةل ترمجة الربانمج ‪ Compilation‬وفهيا يمت حتويل الربانمج اىل لغة الآةل ‪ Machine language‬بعد‬
‫التأكد من خلوه من الخطاء اللغوية حسب قواعد اللغة املس تخدمة‬
‫‪ -3‬مرحةل التنفيذ ‪ Execution‬وفهيا يمت ادخال البياانت املطلوبة مث تنفيذ تعلاميت الربانمج‬
‫‪Code‬‬

‫‪Code‬‬
‫‪Tool‬‬
‫‪Source‬‬ ‫‪Compiler‬‬ ‫‪Object‬‬
‫مرأخل أعدأد البرنامج‪:‬‬

‫قبل تنفيذ الربانمج املس هتدف جيب أن يزتود الربانمج ببعض ادلوال اليت حيتاهجا أثناء التنفيذ‪ ،‬وهذه‬
‫ادلوال توجد فامي يسمى ابملكتبة ‪ Library‬وىه عبارة عن ملف حيتوى عىل تعاريف لهذه ادلوال‪ .‬ذلكل‬
‫حنتاج اىل برانمج يسمى الرابط ‪ Linker‬يقوم بربط الربانمج املس هتدف هبذه املكتبة‪.‬‬
‫أي أن الرابط يقوم ابلبحث يف املكتبة عن أي داةل يمت اس تدعاءها فاذا وجدها يمت تنفيذ الربانمج واذا مل‬
‫جيدها فانه يظهر رساةل خطأ ‪ Error message‬ويسمى اخلطأ يف هذه احلاةل من نوع خطأ الربط ‪Linker‬‬
‫‪ Error‬أي أن هناك نوعني من الخطاء قد يظهرا قبل تنفيذ الربانمج وهام‪:‬‬
‫‪ -‬اخلطأ اللغوى ‪ : Compiler Error‬يمت تصحيحه واعادة الرتمجة‬
‫‪ -‬خطأ الربط ‪ : Linker Error‬يمت التأكد من كتابة امس ادلاةل بشلك حصيح‬
‫مرأخل أعدأد البرنامج‪:‬‬
‫ع‬ ‫ث‬‫ل‬‫ا‬ ‫ث‬‫م‬ ‫ل‬‫ا‬
‫الثوأبت و رأت و ل ن‬
‫ي‬ ‫ي‬ ‫م‬‫ج‬ ‫ب‬ ‫ع‬

‫يف هذه ادلاةل جند مجهل واحدة فقط يه ‪:‬‬


‫;) ”‪Printf ( “HALLO‬‬
‫وىه عبارة عن أمر طباعة للكمة ‪ ،HALLO‬الحظ أن امجلةل يف لغة ‪ C‬البد لها أن تنهتىى دامئ ًا بـ ;‬
‫قد يؤدى اس تخدام مرتمج معني اىل ظهور الناجت املراد من هذا الربانمج ولكن البعض الآخر قد تتطلب‬
‫وضع التوجيه‬
‫> ‪# include < stdio.h‬‬
‫امجلةل يف لغات الربجمة ختتلف عن امجلةل يف اللغات العادية اليت يس تخدهما البرش يف التخاطب بيهنم‪ ،‬فامجلةل‬
‫يف لغات الربجمة يه عبارة عن أمر من املربمج للحاسوب بأن ينفذ مع ًال ما‪ ،‬مفث ًال‪:‬‬
‫;‪X=5‬‬
‫يه طلب تعيني القمية ‪ 5‬للمتغري ‪ ، X‬ذلكل فهى تسمى مجةل تعيني ‪Assignment Statement‬‬
‫ع‬ ‫ث‬‫ل‬‫ا‬ ‫ث‬‫م‬ ‫ل‬‫ا‬
‫الثوأبت و رأت و ل ن‬
‫ي‬ ‫ي‬ ‫م‬‫ج‬ ‫ب‬ ‫ع‬

‫;‪var = expression‬‬ ‫مجةل التعيني تأخذ الشلك العام‪:‬‬


‫حيث ‪ var‬يرمز لى متغري‪ expression ،‬رمز لى عبارة حسابية‬
‫املتغري‪ :‬هو امس يرمز ملوقع يف اذلاكرة ويتكون من مجموعة من الحرف الالتينية … ‪ A,B,C‬ومجموعه من‬
‫الرقام ‪ ،‬برشط أن يبدأ من اليسار حبرف وليس برمق كام ميكن اس تخدام الرشطة السفلية (_)‬
‫‪ underscore‬يف الامس‪ ،‬وىه تس تخدم عادة لربط لكمتني لتكوين امس واحد‪.‬‬
‫الحظ رضورة المتيزي بني بني الرشطة السفلية(_) واشارة الناقص ( ‪ ) -‬فهذه الخرية غري مسموح هبا يف‬
‫امس املتغري‬
‫* لغة ‪ C‬متزي بني احلرف الصغري واحلرف الكبري‪ ،‬مفث ًال املتغري ‪ cBook‬ال ياكىفء املتغري ‪cbook‬‬
‫مثال‪student_name :‬‬
‫‪Sum_of_x‬‬
‫ث‬‫م‬ ‫ل‬‫ا‬
‫تع ترف توع ر‬
‫ب‬ ‫ع‬

‫املقصود بتعريف نوع املتغري هو حتديد ما اذا اكن مث ًال من النوع الصحيح ‪ int‬أو الكرسي ‪ float‬أو الرمزي‬
‫‪ ... char‬والسبب يف حتديد النوع من البداية هو رضورة معرفة احلزي اذلى حيتاجه هذا املتغري يف ذاكرة‬
‫احلاسوب وطريقة متثيل القمي اليت س توضع هل يف ذكل احلزي‪.‬‬
‫لاحظ أن‪:‬‬
‫ي‬‫ح‬‫ال الص‬
‫ثوع ح ‪int‬‬
‫الثوع العائم ‪Float‬‬
‫الثوع العائم ‪Float‬‬
‫لاحظ أن‪:‬‬
‫لاحظ أن‪:‬‬
‫م‬ ‫ن‬ ‫لب‬‫ا‬ ‫ث‬‫س‬ ‫ن‬‫ت‬
‫توضيح و ق را ج‪:‬‬
‫ق‬‫ث‬‫ل‬ ‫ع‬‫ث‬‫ال‬
‫ات‪:‬‬
‫‪Assignment:‬‬

‫صمم برنامجا ً يحسب مساحة الدائرة بصورة عامة‪ ،‬أي أن نصف قطر الدائرة‬
‫غير محدد بل يتم إدخاله أثناء التنفيذ‬
‫الكل ال حم‬
‫مات جورة‪:‬‬
‫ق‬ ‫ج‬ ‫صم م ً ل‬
‫سوال‪ :‬م برنا جا مع رمين‬
:)Conditions( ‫الشروط‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬
‫رمور ألاخرأج وألادخال‪:‬‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬
‫ك‬‫ث‬‫ل‬
‫ا ات رأ ترة(‪:)Loops‬‬
‫ا‬ ‫لق‬ ‫ج‬‫ل‬
‫ناتع‪:‬‬
‫الثكرأر توأسطة ‪: While‬‬
‫الثكرأر توأسطة ‪: While‬‬
‫الثكرأر توأسطة ‪: While‬‬
‫ناتع‪:‬‬
: Functions ‫الدوال‬
‫ناتع‪:‬‬
‫حل‬‫ل‬ ‫ي‬‫ل‬‫ا‬ ‫ث‬‫ي‬ ‫ط‬ ‫ت‬
)‫( جونل من الدولار يية‬:‫مثال قي‬
#include <stdio.h>

// ‫دالة التحويل من الدوالر إلى الجنيه المصري‬


double conversion(double usd) {
const double conversionRate = 30.85; // )‫معدل التحويل (قم بتحديثه وفقا ً للسوق‬
return usd * conversionRate;
}

int main() {
double usdAmount, egpAmount;

printf(";)" :‫أدخل المبلغ بالدوالر األمريكي‬


scanf("%lf", &usdAmount);

// ‫استدعاء الدالة لتحويل المبلغ‬


egpAmount = conversion(usdAmount);

printf("2.% :‫المبلغ بالجنيه المصري‬f\n", egpAmount);

return 0;
}
‫الحدأول ‪: Arrays‬‬
‫م خل‬
‫ص‪:‬‬
‫ناتع‪:‬‬
‫• جيب مالحظة أن القوامئ ختتلف عن الصفوف حيث أن القامئة قابةل للتغيري بيامن الصف ليس‬
‫كذكل ‪ ،‬مع الخذ يف الاعتبار أن مصفوفات ‪ Tuple‬يف لغة البايثون ميكن جتزئهتا‬
‫السلاسل النصية (‪:)Strings‬‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬
‫الثاتثون ‪:Python‬‬
‫ناتع‪:‬‬

‫ابالجامل ‪ ..‬ميكن القول بأن ابيثون يه لغة برجمة حتتوى عىل اكئنات‬
‫ووحدات وخيوط واس تثناءات وادارة ذاكرة تلقائية‪ .‬وتمتثل فوائد ابيثون يف‬
‫أهنا بس يطة وسهةل‪ ،‬وقابةل للنقل‪ ،‬وقابةل التوس يع‪ .‬وحتتوى عىل بنية بياانت‬
‫مدجمة‪ ،‬وىه مفتوحة املصدر‬
‫ما ألاحطاء التي ئمكن حدويها؟‬
‫ناتع‪:‬‬

‫هناك أيضا ً أخطاء أخرى مثل ‪:‬‬


‫‪ -1‬األخطاء الحسابية‪ :‬وهى فئة أساسية لجميع االستثناءات‬
‫الحسابية‬
‫‪ -2‬أخطاء االستيراد‪ :‬تظهر عند محاولة استيراد وحدة نمطية‬
‫غير موجودة‬
‫‪ -3‬خطأ الفهرس‪ :‬يظهر الخطأ ‪ Index error‬عند محاولة‬
‫إحالة تسلسل خارج النطاق‬
‫ط‬ ‫ص‬ ‫م‬‫ت ال‬
‫عص لجات‪:‬‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬
‫ب‬ ‫ع‬ ‫ث‬‫م‬ ‫ل‬‫ا‬
‫رأت‪:‬‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬

‫كل اسم يتم تقديمه له مكان يعيش فيه ويمكن ربطه به‪ ،‬يعرف هذا‬
‫باسم مساحة األسماء‪.‬‬
‫انها مثل المربع حيث يتم تعيين اسم المتغير الى الكائن الموضوع‪،‬‬
‫وكلما تم البحث عن المتغير سيتم البحث في هذا المربع للحصول على‬
‫الكائن المقابل‬
‫ط‬ ‫ش‬
‫د ر ي ‪: If statement‬‬‫ل‬‫ا‬ ‫ي‬ ‫ف‬‫ث‬‫ي‬ ‫ل‬‫ا‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬
:Functions ‫الدوال‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬
‫ناتع‪:‬‬
‫لاحظ أن‪:‬‬

‫‪ :PEP8‬هو عبارة عن اتفاقية ترمزي ومجموعة من التوصيات حول كيفية كتابة كود ملف ‪ Python‬بطريقة أكرث قابلية للقراءة‬
‫‪ : PyChecker‬هو أداة الكتشاف الخطاء كام أن ‪ Pylint‬هو الداة اليت من خاللها يمت التحقق من تلبية معيار الرتمزي‬

‫هناك ما يعرف بفهم الامالء والقامئة‪ :‬وهو عباره عن انشاءات تركيبية لتسهيل انشاء قاموس أو قامئة بناءاً عىل‬
‫العنارص القابةل للتكرار املوجودة‬
‫لاحظ أن‪:‬‬

‫• يمكن نسخ كائن في ‪ Python‬باستخدام الدالة )(‪copy.copy‬‬


‫أو )(‪copy.deepcopy‬‬

‫* يمكن عكس المصفوفة في ‪ Python‬باستخدام الدالة )(‪reverse‬‬


‫لاحظ أن‪:‬‬

‫‪ Python‬مثلها كأي لغة تحوى التكرارات (يقصد بالتكرارات تكرار‬


‫مجموعة من العناصر) ومثال ذلك‪ :‬الحاويات‬

‫يوجد في ‪ Python‬ما يعرف بنماذج ‪ Lambda‬وهى تستخدم في انشاء‬


‫كائن دالة جديد ثم اعادته في وقت التشغيل‬
‫ولذلك فهو ال يحوى أي عباراتؤ‬
‫لاحظ أن‪:‬‬

‫من الممكن حذف عنصر من المصفوفة حسب‬


‫القيمة وبعد الحذف يتم إعادة ترتيب عناصر‬
‫المصفوفة وإعادة تعيين الفهارس‬
‫ويكون بناء الجملة كالتالي‪:‬‬
‫)‪arrayName.remove(value‬‬
Thanks

You might also like