SlideShare a Scribd company logo
1 of 201
Download to read offline
2
3
‫تعلم‬
‫البرمج‬
‫ة‬
‫بالعربي‬
‫لغة‬
‫اإلحتراف‬ ‫إلي‬ ‫الصفر‬ ‫من‬ ‫السي‬
4
‫الفهرس‬
‫الفصل‬
‫العنوان‬
‫الصفحة‬
‫األول‬
‫عن‬
‫اللغة‬
‫التطوير‬ ‫البيئة‬ ‫و‬
5
‫الثانى‬
‫المتغيرات‬
41
‫الثالث‬
‫الشرطية‬ ‫الجمل‬
55
‫الرابع‬
‫التكرارية‬ ‫الحلقات‬
54
‫الخامس‬
‫المصفوفات‬
66
‫السادس‬
‫النصية‬ ‫المتغيرات‬
55
‫السابع‬
‫المؤشرات‬
441
‫ا‬
‫لثامن‬
‫الدوال‬
415
‫التاسع‬
‫الملفات‬ ‫مع‬ ‫التعامل‬
411
5
‫األول‬ ‫الفصل‬
‫البيئ‬‫و‬ ‫اللغة‬ ‫عن‬
‫ه‬
‫التطويرية‬
.
‫هذا‬ ‫نهاية‬ ‫فى‬ ‫تعلمته‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ‫ما‬
‫؟‬ ‫الفصل‬

‫اللغة‬ ‫عيوب‬‫و‬ ‫ات‬‫ز‬‫ممي‬
.

‫للغة‬ ‫التطبيقية‬ ‫المجاالت‬
.

‫التطويرية‬ ‫البيئة‬ ‫على‬ ‫التعرف‬
.

‫لغة‬ ‫بإستخدام‬ ‫لك‬ ‫برنامج‬ ‫أول‬ ‫عمل‬
.‫السى‬
6
‫اللغة‬ ‫مميزات‬
،‫اإلطالق‬ ‫على‬ ‫اللغات‬ ‫أقوى‬ ‫من‬ ‫السى‬ ‫لغة‬ ‫تعتبر‬
ً
‫نسبيا‬ ‫الحديثة‬ ‫اللغات‬ ‫من‬ ‫العديد‬ ‫عنها‬ ‫ورت‬
ُ
‫ط‬ ‫و‬
‫مثل‬
C#
‫و‬ ‫جافا‬‫و‬
C++
‫لغة‬ ‫هى‬ ‫و‬ ،
high-level
،
‫ـ‬‫ل‬‫ا‬ ‫خصائص‬ ‫بعض‬ ‫على‬ ‫تحتوى‬ ‫ولكنها‬
low-
level
‫الغالب‬ ‫فى‬ ‫عليها‬ ‫يطلق‬ ‫لذا‬ ،
middle-
level language
‫سن‬ ‫و‬ ،
‫بعض‬
ً
‫معا‬ ‫ستعرض‬
‫و‬ ‫الرواج‬ ‫بذلك‬ ‫تحظى‬ ‫جعلتها‬ ‫التى‬ ‫اللغة‬ ‫ات‬‫ز‬‫ممي‬
‫القوة‬ ‫بتلك‬
.
‫اللغة‬ ‫أن‬ ‫إلى‬ ‫يرجع‬ ‫هذا‬ ‫و‬ ، ‫الكفاءة‬
low-level
‫بعض‬ ‫من‬ ‫تحتويه‬ ‫لما‬ ، ‫األخرى‬ ‫باللغات‬ ‫مقارنة‬
‫مثل‬ ‫الهاردوير‬ ‫مع‬ ‫مباشرة‬ ‫تتعامل‬ ‫التى‬ ‫الخصائص‬
‫ات‬‫ر‬‫المؤش‬
-
pointers
‫قريبة‬ ‫أنها‬ ‫يعنى‬ ‫مما‬ ،
‫لغة‬ ‫من‬
ً
‫جدا‬
‫تقوم‬ ‫أنها‬ ‫يعنى‬ ‫بدوره‬ ‫هذا‬ ‫و‬ ، ‫اآللة‬
‫تنفيذ‬ ‫سرعة‬ ‫و‬ ، ‫أسرع‬ ‫بشكل‬ ‫امج‬‫ر‬‫الب‬ ‫بتنفيذ‬
.‫اللغة‬ ‫قوة‬ ‫تحديد‬ ‫فى‬
ً
‫مهما‬
ً
‫عامال‬ ‫عد‬
ُ
‫ت‬ ‫امج‬‫ر‬‫الب‬
‫أنها‬ ‫إال‬ ‫السى‬ ‫لغة‬ ‫صغر‬ ‫من‬ ‫الرغم‬ ‫على‬ ‫و‬ ، ‫القوة‬
‫ـ‬‫ل‬‫ا‬ ‫من‬ ‫قوتها‬ ‫تستمد‬
standard library
‫التى‬ ‫الدوال‬ ‫مئات‬ ‫تحوى‬ ‫التى‬ ‫و‬ ،‫بها‬ ‫الخاصة‬
‫بعمليا‬ ‫تقوم‬
‫المئات‬ ‫كتابة‬ ‫عن‬ ‫فتغنيك‬ ،‫كثيرة‬ ‫ت‬
‫تمدك‬ ‫فهى‬ ، ‫معينة‬ ‫بعملية‬ ‫للقيام‬ ‫األسطر‬ ‫من‬
.‫واحد‬‫سطر‬ ‫فى‬ ‫العملية‬ ‫بتلك‬ ‫تقوم‬ ‫بدالة‬
7
Portability
‫تمت‬ ‫الذى‬ ‫البرنامج‬ ‫أن‬ ‫تعنى‬ ‫و‬ ,
‫الحاسب‬ ‫أجهزة‬ ‫مختلف‬ ‫على‬ ‫يعمل‬ ‫باللغة‬ ‫كتابته‬
ً
‫إنتهاءا‬ ‫و‬ ‫الشخصى‬ ‫الحاسب‬ ‫من‬ ‫بداية‬ ‫اآللى‬
‫العمالقة‬ ‫بالحاسبات‬
.
‫المبرمج‬ ‫تحد‬ ‫ال‬ ‫بأنها‬ ‫اللغة‬ ‫تتميز‬ ، ‫المرونة‬
‫بإستخدام‬ ‫األمر‬ ‫يتعلق‬ ‫عندما‬ ‫صارمة‬ ‫بحدود‬
‫من‬ ‫العديد‬ ‫عن‬ ‫يميزها‬ ‫هذا‬ ‫و‬ ‫اللغة‬ ‫خواص‬
‫مشهورة‬ ‫قاعدة‬ ‫على‬ ‫بنيت‬ ‫السى‬ ‫فلغة‬ ،‫اللغات‬
‫فهناك‬ ، (( ‫يفعل‬ ‫ما‬ ‫يعلم‬ ‫المبرمج‬ )) ‫بأن‬ ‫تقول‬
‫تعتبرها‬ ‫ال‬ ‫و‬ ‫اللغة‬ ‫بها‬ ‫تسمح‬ ‫العمليات‬ ‫بعض‬
‫ل‬ ‫و‬ ‫كخطأ‬
‫يتم‬ ‫ال‬ ‫أخرى‬ ‫برمجية‬ ‫لغات‬ ‫فى‬ ‫كن‬
‫النوع‬ ‫من‬ ‫متغير‬ ‫جمع‬ ‫يمكنك‬
ً
‫فمثال‬ ، ‫بها‬ ‫السماح‬
char
‫النوع‬ ‫من‬ ‫آخر‬ ‫على‬
int
‫أو‬
float
‫أى‬ ‫دون‬
‫و‬ ، ‫بذلك‬ ‫تسمح‬ ‫ال‬ ‫أخرى‬ ‫لغات‬ ‫هناك‬ ، ‫مشكلة‬
‫لك‬ ‫سيتضح‬ ‫و‬ ‫كثيرة‬ ‫العمليات‬ ‫تلك‬ ‫على‬ ‫األمثلة‬
‫هذه‬ ‫لكن‬ ‫و‬ ، ‫اللغة‬ ‫مع‬ ‫تعاملك‬ ‫خالل‬ ‫منها‬ ‫الكثير‬
‫ق‬ ‫المرونة‬
‫فى‬ ‫المشاكل‬ ‫بعض‬ ‫فى‬ ‫لك‬ ‫تتسبب‬ ‫د‬
‫امجك‬‫ر‬‫ب‬
–
bugs
.
‫التشغيل‬ ‫نظام‬ ‫مع‬ ‫التكامل‬
Linux
‫هذا‬ ‫و‬ ،
‫فيما‬ ‫خاصة‬ ‫و‬ ‫الكثير‬ ‫اللغة‬ ‫إلى‬ ‫أضاف‬ ‫التكامل‬
‫ـ‬‫ل‬‫با‬ ‫يتعلق‬
Portability
.
8
‫اللغة‬ ‫عيوب‬
،‫العيوب‬ ‫من‬ ‫كذلك‬ ‫السى‬ ‫تخلو‬ ‫ال‬ ،‫برمجة‬ ‫لغة‬ ‫كأى‬‫و‬
:
ً
‫معا‬ ‫بعضها‬ ‫نستعرض‬
‫لألخطا‬ ‫اكثر‬ ‫عرضة‬
‫أن‬ ‫إلى‬ ‫يرجع‬ ‫هذا‬ ‫و‬ ،‫البرمجية‬ ‫ء‬
‫األخطاء‬ ‫بعض‬ ‫يكتشف‬ ‫ال‬ ‫باللغة‬ ‫الخاص‬ ‫المترجم‬
‫فى‬ ‫مثلها‬ ‫إكتشف‬ ‫يتم‬ ‫قد‬ ‫التى‬ ‫و‬ ‫الترجمة‬ ‫عملية‬ ‫أثناء‬
‫تنفيذ‬ ‫وقت‬ ‫فى‬ ‫تظهر‬ ‫األخطاء‬ ‫فمعظم‬ ،‫أخرى‬ ‫لغات‬
‫السلبي‬ ‫األثر‬ ‫هو‬ ‫هذا‬ ‫و‬ .‫ترجمته‬ ‫ليس‬ ‫و‬ ‫البرنامج‬
.‫اللغة‬ ‫بها‬‫تتميز‬ ‫التى‬ ‫للمرونة‬
‫الكود‬ ‫فهم‬ ‫صعوبة‬
‫السى‬ ‫لغة‬ ‫صغر‬ ‫من‬ ‫الرغم‬ ‫فعلى‬،
‫ـ‬‫ل‬‫ا‬ ‫من‬ ‫تكتسبها‬ ‫عديدة‬ ‫خصائص‬ ‫على‬ ‫تحتوى‬ ‫أنها‬ ‫إال‬
standard library
، ‫قبل‬ ‫من‬ ‫ذكرنا‬ ‫كما‬‫بها‬ ‫الخاصة‬
‫احل‬‫ر‬‫الم‬ ‫فى‬
ً
‫معا‬ ‫الخصائص‬ ‫هذه‬ ‫مزج‬ ‫عند‬ ‫و‬
‫أكثر‬ ‫االمور‬ ‫تصبح‬ ،‫اللغة‬ ‫اف‬‫ر‬‫إحت‬ ‫من‬ ‫المتقدمة‬
.‫صعوبة‬
‫الضخمة‬ ‫ـع‬‫ـ‬‫ـ‬‫ـ‬‫ي‬‫المشار‬ ‫فى‬ ،‫الكود‬ ‫تعديل‬ ‫صعوبة‬
‫المطو‬
‫أخرى‬ ‫مرة‬ ‫تعديلها‬ ‫عليك‬ ‫يصعب‬ ‫السى‬ ‫بلغة‬ ‫رة‬
‫على‬ ‫تساعد‬ ‫التى‬ ‫الخصائص‬ ‫بعض‬ ‫تدعم‬ ‫ال‬ ‫السى‬ ‫ألن‬
‫ـ‬‫ل‬‫ا‬ ‫مثل‬ ‫تنظيمه‬ ‫و‬ ‫البرنامج‬ ‫تجزئة‬
classes
‫ـ‬‫ل‬‫ا‬ ‫و‬
packages
.
9
‫للغة‬ ‫التطبيقية‬ ‫المجاالت‬ ‫أهم‬
‫التشغيل‬ ‫نظم‬ ‫تطوير‬
–
operating systems
‫تعد‬ ‫و‬ ،
‫فمع‬ ، ‫للغة‬ ‫التطبيقية‬ ‫المجاالت‬ ‫أهم‬
‫التشغيل‬ ‫نظم‬ ‫ظم‬
‫مطور‬ ‫المحمولة‬ ‫هواتفنا‬ ‫على‬ ‫حتى‬
ً
‫يوميا‬ ‫نستخدمها‬ ‫التى‬
.‫السى‬ ‫بلغة‬ ‫منها‬ ‫كبير‬‫جزء‬
‫المدمجة‬ ‫األنظمة‬
–
embedded systems
‫يتم‬ ،
، ‫األحيان‬ ‫أغلب‬ ‫فى‬ ‫السى‬ ‫بلغة‬ ‫المدمجة‬ ‫األنظمة‬ ‫برمجة‬
، ‫المجال‬ ‫هذا‬ ‫فى‬ ‫األشهر‬ ‫اللغة‬ ‫هى‬ ‫و‬
‫فبرمجة‬
‫المتحكمات‬
‫الدقيقية‬
–
microcontrollers
‫أو‬ ‫السى‬ ‫بلغة‬ ‫تتم‬
‫األردوينو‬ ‫فمثال‬ ،‫السى‬ ‫لغة‬ ‫من‬ ‫معظمها‬ ‫كون‬ ُ‫ُم‬ ‫بلغة‬
‫تسمى‬ ‫به‬ ‫خاصة‬ ‫لغة‬ ‫يستخدم‬
Arduino C
‫لغة‬ ‫هى‬ ‫و‬
‫ـ‬‫ل‬‫ا‬ ‫تسمى‬ ‫أخرى‬ ‫لغة‬ ‫مع‬ ‫أساسى‬ ‫بشكل‬ ‫السى‬ ‫من‬ ‫مطورة‬
Processing
.
‫تطوير‬
compilers
‫المترجم‬ ‫و‬ ، ‫أخرى‬ ‫للغات‬
–
compiler
‫إل‬ ‫الكود‬ ‫يترجم‬ ‫برنامج‬ ‫هو‬
.‫اآللة‬ ‫لغة‬ ‫ى‬
‫البيانات‬ ‫قواعد‬ ‫فى‬ ‫تستخدم‬
–
databases
‫كذلك‬ ‫و‬ ،
‫ـ‬‫ل‬‫ا‬ ‫تطوير‬ ‫فى‬ ‫تستخدم‬
text editors
‫ـ‬‫ل‬‫ا‬ ‫مثل‬
word
.
01
‫و‬ ‫اللغة‬ ‫ات‬‫ز‬‫ممي‬ ‫عن‬ ‫التحدث‬ ‫من‬ ‫القدر‬ ‫بهذا‬ ‫نكتفى‬ ‫هنا‬ ‫و‬
‫حاجتك‬ ‫تحدد‬ ‫أن‬ ‫اآلن‬ ‫تستطيع‬ ‫بأنك‬ ‫أعتقد‬ ‫و‬ ،‫تطبيقاتها‬
‫اآلن‬ ‫ننتقل‬ ‫و‬ ،‫عدمها‬ ‫من‬ ‫اللغة‬ ‫تعلم‬ ‫إلى‬
‫الثانى‬ ‫الجزء‬ ‫إلى‬
‫التطويرية‬ ‫البيئة‬ ‫على‬ ‫فيه‬ ‫سنتعرف‬ ‫الذى‬ ‫الفصل‬ ‫هذا‬ ‫من‬
‫بلغة‬ ‫برنامج‬ ‫أول‬ ‫بكتابة‬ ‫سنقوم‬ ‫و‬ ‫سنستخدمها‬ ‫التى‬
.‫السى‬
‫التطويرية‬ ‫البيئة‬
-
IDE
‫التطويرية‬ ‫البيئة‬ ‫سنستخدم‬ ‫الكتاب‬ ‫هذا‬ ‫فى‬
‫البرامج‬ ‫لتطوير‬
‫تحميلها‬ ‫يمكنك‬ ً ‫مجانا‬ ‫متوفرة‬ ‫البيئة‬ ‫وهذه‬ ، ‫السى‬ ‫بلغة‬
‫من‬
:‫التالى‬ ‫الرابط‬
http://sourceforge.net/projects/codebl
ocks/files/Binaries/13.12/Windows/cod
eblocks-
13.12mingwsetup.exe/download
00
‫بمترجم‬ ‫مصحوبة‬ ‫البرنامج‬ ‫من‬ ‫النسخة‬ ‫هذه‬ ‫و‬
GNU
GCC Compiler
‫بتنصيبه‬ ‫قم‬ ‫البرنامج‬ ‫تنزيل‬ ‫بعد‬ .
‫اإل‬ ‫فى‬ ً‫ا‬‫شيئ‬ ‫تغير‬ ‫ال‬ ‫و‬ ‫سهولة‬ ‫بكل‬
‫اآلن‬ ‫و‬ . ‫القياسية‬ ‫عدادات‬
.‫التطويرية‬ ‫البيئة‬ ‫مع‬ ‫التعامل‬ ‫كيفية‬ ‫معكم‬ ‫سأتناول‬
‫برنامج‬
‫و‬ ، ‫شرح‬ ‫أى‬ ‫قبل‬ ‫البداية‬ ‫فى‬ ‫بسيط‬ ‫برنامج‬ ‫بكتابة‬ ‫سنبدأ‬
‫بعض‬ ‫تستكشف‬ ‫و‬ ‫بها‬ ‫تعمل‬ ‫التى‬ ‫البيئة‬ ‫لتألف‬ ‫ذلك‬
.‫برنامج‬ ‫أى‬ ‫فى‬ ‫الثابتة‬ ‫األساسيات‬
‫البرن‬ ‫شرح‬
‫امج‬
02
‫لغة‬ ‫فى‬ ‫كومنت‬ ‫عمل‬ ‫يمكن‬ ‫و‬ ، ‫تعليق‬ ‫أو‬ ‫كومنت‬ ‫يسمى‬
‫و‬ ، /* ‫كتابته‬ ‫المراد‬ ‫الكومنت‬ */ ‫بإستخدام‬ ‫السى‬
‫و‬ ‫البرنامج‬ ‫أوامر‬ ‫لتوضيح‬ ‫يستخدم‬ ‫الكومنت‬
.‫البرنامج‬ ‫عمل‬ ‫على‬ ‫يؤثر‬ ‫ال‬ ‫و‬ ، ‫أجزاءه‬
‫تستخدم‬
include
‫لداخل‬ ‫ملفات‬ ‫إلستيراد‬ #
‫منها‬ ‫دوال‬ ‫إلستخدام‬، ‫برنامجك‬
‫هذا‬ ‫فى‬ ‫و‬ ،
‫ملف‬ ‫إستيراد‬ ‫تم‬ ‫المثال‬
stdio.h
‫الـ‬ ‫من‬
standard library
‫الملف‬ ‫هذا‬ ‫يختص‬ ‫و‬ ،
‫مثل‬ ‫اإلخراج‬ ‫و‬ ‫اإلدخال‬ ‫بدوال‬
printf
‫و‬ ، ‫خرج‬ ‫لطباعة‬
scanf
‫بيانات‬ ‫إلستقبال‬
.‫المستخدم‬ ‫من‬
‫يبدأ‬ ‫و‬ ، ‫للبرنامج‬ ‫الرئيسية‬ ‫الدالة‬ ‫هى‬ ‫هذه‬
‫يحت‬ ‫أن‬ ‫يجب‬ ‫برنامج‬ ‫أى‬ ‫و‬ ، ‫منها‬ ‫التنفيذ‬
‫وى‬
‫بداخلها‬ ‫األوامر‬ ‫إحتواء‬ ‫يتم‬ ‫و‬ ،‫عليها‬
‫بشكل‬ ‫الدوال‬ ‫دراسة‬ ‫سيتم‬ ‫و‬، }{ ‫بإستخدام‬
.‫لها‬ ‫المخصص‬ ‫الباب‬ ‫فى‬ ً‫ا‬‫وضوح‬ ‫أكثر‬
03
‫دالة‬
printf
‫يتم‬ ‫و‬ ، ‫للطباعة‬ ‫تستخدم‬
‫عالمتين‬ ‫بين‬ ‫طباعتها‬ ‫المراد‬ ‫الجملة‬ ‫وضع‬
ً‫ا‬‫الحق‬ ‫سنتاولها‬ ‫و‬ ، ‫المثال‬ ‫فى‬ ‫كما‬ ‫تنصيص‬
.‫التفصيل‬ ‫من‬ ‫بشىء‬
‫بأن‬ ‫المشغل‬ ‫النظام‬ ‫تخطر‬ ‫الجملة‬ ‫هذه‬
‫دون‬ ‫صحيحة‬ ‫بطريقة‬ ‫تنفيذه‬ ‫تم‬ ‫البرنامج‬
.‫متوقعة‬ ‫غير‬ ‫مشاكل‬ ‫أى‬ ‫حدوث‬
‫كود‬ ‫أول‬ ‫فهم‬ ‫و‬ ‫كتابة‬ ‫من‬ ‫إنتهيت‬ ‫قد‬ ‫تكون‬ ‫هنا‬
‫تحمست‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫أتمنى‬ ،‫السى‬ ‫لغة‬ ‫فى‬ ‫لك‬
‫هنا‬ ‫نكون‬ ‫و‬ ، ‫اللغة‬ ‫عن‬ ‫المزيد‬ ‫لمعرفة‬ ‫أكثر‬
‫هذ‬ ‫فى‬ ‫األول‬ ‫الفصل‬ ‫من‬ ‫انتهينا‬ ‫قد‬
. ‫الكتاب‬ ‫ا‬
‫عن‬ ‫القادم‬ ‫الفصل‬ ‫فى‬ ‫الله‬ ‫بإذن‬ ‫حديثنا‬ ‫سيكون‬
.‫المتغيرات‬
04
‫الثانى‬ ‫الفصل‬
‫الحسابية‬ ‫العمليات‬‫و‬ ‫ات‬‫ر‬‫المتغي‬
‫هذا‬ ‫نهاية‬ ‫فى‬ ‫تعلمته‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ‫ما‬
‫؟‬ ‫الفصل‬

‫؟‬ ‫السى‬ ‫لغة‬ ‫فى‬ ‫ات‬‫ر‬‫المتغي‬ ‫أنواع‬ ‫هى‬ ‫ما‬

‫قيم‬ ‫إعطائها‬ ‫و‬ ‫ات‬‫ر‬‫المتغي‬ ‫تعريف‬ ‫كيفية‬
.‫إبتدائية‬

‫الحس‬ ‫العمليات‬
.‫ابية‬

‫اج‬‫ر‬‫اإلخ‬‫و‬ ‫اإلدخال‬ ‫دالتى‬ ‫إستخدام‬ ‫طريقة‬
printf - scanf
.

‫ـ‬‫ل‬‫ا‬ ‫إستخدام‬ ‫يتم‬ ‫كيف‬
placeholders
‫فى‬
.‫اج‬‫ر‬‫اإلخ‬‫و‬ ‫اإلدخال‬
05
‫المتغيرات‬ ‫أنواع‬
‫السى‬ ‫لغة‬ ‫فى‬ ‫المتغيرات‬ ‫أنواع‬ ‫على‬ ‫بالتعرف‬ ‫مباشرة‬ ‫نبدأ‬
–
ً‫ا‬‫سلف‬ ‫المتغيرات‬ ‫بماهية‬ ‫دراية‬ ‫على‬ ‫تكون‬ ‫أن‬ ‫المفترض‬ ‫من‬
.
، ‫المتغيرات‬ ‫أنواع‬ ‫من‬ ‫مجموعة‬ ‫على‬ ‫السى‬ ‫لغة‬ ‫تحتوى‬
.‫يلى‬ ‫ما‬ ‫أهمها‬
‫حرف‬ ‫صحيحة‬ ‫الغير‬ ‫األرقام‬ ‫الصحيحة‬ ‫األرقام‬
char float int
double long
long double long long
‫نصى‬ ‫متغير‬ ‫نوع‬ ‫على‬ ‫تحتوى‬ ‫ال‬ ‫اللغة‬
String
‫لكن‬ ‫و‬ ،
‫النوع‬ ‫من‬ ‫العناصر‬ ‫من‬ ‫مصفوفة‬ ‫إستخدام‬ ‫يتم‬
char
‫و‬ ،
‫فى‬ ‫بالتفصيل‬ ‫النصية‬ ‫المتغيرات‬ ‫و‬ ‫المصفوفات‬ ً‫ا‬‫مع‬ ‫سنتناول‬
.‫لهما‬ ‫المخصصين‬ ‫الفصلين‬
‫يعتبر‬ ‫فهو‬ ‫نقطة‬ " . " ‫على‬ ‫يحتوى‬ ‫رقم‬ ‫كل‬ ‫الحقيقة‬ ‫فى‬
ً‫ال‬‫فمث‬ ً‫ا‬‫صحيح‬ ‫كان‬ ‫إن‬ ‫و‬ ‫صحيح‬ ‫غير‬
9
.
0
‫يعتبر‬ ‫الرقم‬ ‫هذا‬
‫الغير‬ ‫و‬ ‫الصحيح‬ ‫الرقم‬ ‫بين‬ ‫فالفارق‬ ، ً‫ا‬‫صحيح‬ ‫غير‬ ً‫ا‬‫رقم‬
06
‫النقطة‬ ‫وجود‬ ‫هو‬ ‫صحيح‬
‫غير‬ ‫العدد‬ ‫كان‬ ‫وجدت‬ ‫متى‬ ،
.ً‫ا‬‫صحيح‬
) ‫مثال‬ ‫الواحد‬ ‫النوع‬ ‫من‬ ‫المتغيرات‬ ‫أنواع‬ ‫بين‬ ‫الفرق‬
int
‫و‬
long
‫و‬
long long
‫يتم‬ ‫التى‬ ‫الذاكرة‬ ‫مساحة‬ ‫هى‬ (
‫النوع‬ ‫من‬ ‫المتغير‬ ‫يشغل‬ ‫الغالب‬ ‫ففى‬ ، ‫المتغير‬ ‫لهذا‬ ‫حجزها‬
int
‫مساحة‬
4
‫و‬ ، ‫الذاكرة‬ ‫من‬ ‫بايت‬
long
‫مساحة‬
8
‫ه‬ ‫و‬، ‫الذاكرة‬ ‫من‬ ‫بايت‬
‫النظام‬ ‫نوع‬ ‫على‬ ‫تعتمد‬ ‫األرقام‬ ‫ذه‬
.‫آخر‬ ‫إلى‬ ‫مشغل‬ ‫نظام‬ ‫من‬ ‫تختلف‬ ‫فهى‬ ، ‫المشغل‬
‫المتغيرات‬ ‫تعريف‬
‫ثم‬ ‫أوال‬ ‫المتغير‬ ‫نوع‬ ‫كتابة‬ ‫طريق‬ ‫عن‬ ‫المتغير‬ ‫تعريف‬ ‫يتم‬
‫من‬ ‫األنواع‬ ‫مختلفة‬ ‫مجموعة‬ ‫تعريف‬ ‫هذا‬. ‫المتغير‬ ‫إسم‬
.‫كمثال‬ ‫المتغيرات‬
07
‫ال‬ ‫الجديد‬ ‫للمتغير‬ ‫إسم‬ ‫أى‬ ‫إختيار‬ ‫يمكن‬
‫و‬ ، ‫بتعريفه‬ ‫تقوم‬ ‫ذى‬
:‫بشروط‬ ‫لكن‬
‫مثل‬ ‫محجوز‬ ‫كلمة‬ ‫يكون‬ ‫أال‬
int
‫أو‬
include
.ً‫ال‬‫مث‬
‫مثال‬ ‫خاص‬ ‫رمز‬ ‫على‬ ‫يحتوى‬ ‫أال‬
–
،

، ‫إلخ‬ & ، / ،
_ ‫إستخدام‬ ‫يمكن‬ ‫لكن‬ ‫و‬
underscore
.
‫نستخدم‬ ‫فإننا‬ ‫ثابت‬ ‫متغير‬ ‫بتعريف‬ ‫نقوم‬ ‫أن‬ ‫أردنا‬ ‫إذا‬ ‫أما‬
‫كلمة‬
const
‫أو‬ ، ‫التعريف‬ ‫قبل‬
‫إستخدام‬ ‫طريق‬ ‫عن‬
.
‫كاآلتى‬
، #define
‫إسمه‬ ‫ثابت‬ ‫متغير‬ ‫بتعريف‬ ‫يقوم‬ ‫السابقين‬ ‫األمرين‬ ‫من‬ ‫أى‬
MAX
‫النوع‬ ‫من‬
int
.
‫لمتغير‬ ‫إبتدائية‬ ‫قيمة‬ ‫إعطاء‬
‫بإعطائهم‬ ‫قمنا‬ ، ‫الثابتة‬ ‫المتغيرات‬ ‫على‬ ‫السابق‬ ‫المثال‬ ‫فى‬
‫الت‬ ‫أمر‬ ‫نفس‬ ‫فى‬ ‫إبتدائية‬ ‫قيمة‬
‫بأكثر‬ ‫بذلك‬ ‫نقوم‬ ‫قد‬ ‫و‬ ، ‫عريف‬
.‫للتوضيح‬ ‫اآلتية‬ ‫األمثلة‬ ، ‫طريقة‬ ‫من‬
08
‫النوع‬ ‫من‬ ‫للمتغير‬ ‫إبتدائية‬ ‫قيمة‬ ‫إعطاء‬ ‫حالة‬ ‫فى‬ ‫أنه‬ ‫الحظ‬
float
‫أو‬
double
‫الرقم‬ ‫فى‬ ‫نقطة‬ " . " ‫وضع‬ ‫يجب‬ ،
‫يوضع‬ ‫أن‬ ‫يجب‬ ‫و‬ ، ً‫ا‬‫صحيح‬ ‫كان‬ ‫إن‬ ‫و‬ ‫حتى‬
“
f
‫فى‬ "
‫النوع‬ ‫من‬ ‫القيمة‬ ‫نهاية‬
float
‫ي‬ ‫ال‬ ‫لكى‬ ،
‫غير‬ ‫مشاكل‬ ‫حدث‬
‫فى‬ ‫حسابية‬ ‫عمليات‬ ‫فى‬ ‫القيمة‬ ‫هذه‬ ‫إستخدام‬ ‫عند‬ ‫متوقعة‬
.‫البرنامج‬
‫آلخر‬ ‫متغير‬ ‫من‬ ‫بيانات‬ ‫نقل‬ ‫عملية‬
‫الـ‬ ‫عملية‬
assignment
‫من‬ ‫البيانات‬ ‫نقل‬ ‫عملية‬ ‫هى‬
‫آخر‬ ‫متغير‬ ‫إلى‬ ‫حسابىة‬ ‫عملية‬ ‫ناتج‬ ‫نقل‬ ‫أو‬ ، ‫آلخر‬ ‫متغير‬
‫عملية‬ ‫أى‬ ‫فى‬ ‫عامة‬ ‫بصورة‬.
assignment
‫نقل‬ ‫يتم‬ ،
‫كانت‬ ً‫ا‬‫أي‬ ‫األيمن‬ ‫الطرف‬ ‫عنها‬ ‫يعبر‬ ‫التى‬ ‫القيمة‬
–
‫سواء‬
‫حسابية‬ ‫عملية‬ ‫ناتج‬ ‫أو‬ ‫لمتغير‬ ‫قيمة‬
–
‫األيسر‬ ‫الطرف‬ ‫إلى‬
.
:‫اآلتية‬ ‫بالعملية‬ ‫قمنا‬ ‫إذا‬ ً‫ال‬‫فمث‬
09
:‫الجمع‬ ‫عملية‬ ‫بعد‬ ‫البيانات‬ ‫لنقل‬ ‫توضيحية‬ ‫صورة‬
‫بالمتغيرا‬ ‫الخاصة‬ ‫األساسية‬ ‫القواعد‬ ‫من‬ ‫انتهينا‬ ‫قد‬ ‫و‬ ‫اآلن‬
‫ت‬
‫نتبعها‬ ‫ثم‬ ‫الحسابية‬ ‫العمليات‬ ‫دراسة‬ ‫نبدأ‬ ، ‫السى‬ ‫لغة‬ ‫فى‬
‫و‬ ‫المتغيرات‬ ‫على‬ ‫عملية‬ ‫تمارين‬ ‫و‬ ، ‫مشروحة‬ ‫بأمثلة‬
.‫الحسابية‬ ‫العمليات‬
‫الحسابية‬ ‫العمليات‬
‫التى‬ ‫الرياضية‬ ‫العمليات‬ ‫من‬ ‫مجموعة‬ ‫السى‬ ‫لغة‬ ‫تضمن‬
‫الجدول‬ ‫و‬ ، ‫الخاصة‬ ‫برامجنا‬ ‫فى‬ ‫مستمر‬ ‫بشكل‬ ‫نستخدمها‬
‫يحتو‬ ‫التالى‬
:‫المستخدم‬ ‫العمليات‬ ‫على‬ ‫ى‬
21
‫العملية‬ ‫الرمز‬
‫الجمع‬ +
‫الطرح‬ -
‫الضرب‬ *
‫القسمة‬ /
‫باقى‬
‫القسمة‬
%
‫ليكن‬ ‫و‬ ‫متغيرين‬ ‫لدينا‬ ‫أن‬ ‫نفترض‬
i
‫و‬
j
‫النوع‬ ‫من‬
int
،
‫حفظ‬ ‫و‬ ‫عليهم‬ ‫الحسابية‬ ‫العمليات‬ ‫هذه‬ ‫جميع‬ ‫إجراء‬ ‫نريد‬ ‫و‬
‫ب‬ ‫سنقوم‬ ، ‫جديد‬ ‫متغير‬ ‫فى‬ ‫عملية‬ ‫كل‬ ‫ناتج‬
‫العملية‬ ‫هذه‬
.‫كاآلتى‬
‫كال‬ ‫يكون‬ ‫أن‬ ‫يجب‬ % ‫بإستخدام‬ ‫القسمة‬ ‫باقى‬ ‫إيجاد‬ ‫عملية‬
‫من‬ ‫العملية‬ ‫طرفى‬
int
‫على‬ ‫العملية‬ ‫هذه‬ ‫إجراء‬ ‫يمكن‬ ‫ال‬ ‫و‬ ،
‫النوع‬ ‫من‬ ‫متغير‬
float
، ‫هذا‬ ‫على‬ ‫التغلب‬ ‫يمكن‬ ‫لكن‬ ‫و‬ .
20
‫الـ‬ ‫يسمى‬ ‫ما‬ ‫بإستخدام‬
casting
‫تحويل‬ ‫عملية‬ ‫هو‬ ‫و‬ ،
. ‫آخر‬ ‫إلى‬ ‫نوع‬ ‫من‬ ‫إجبارى‬
‫مثال‬
‫النوع‬ ‫من‬ ‫متغيرين‬ ‫على‬ % ‫إستخدام‬ ‫تم‬ ‫هنا‬
float
،
.‫اآلتى‬ ‫الخطأ‬ ‫لك‬ ‫سيظهر‬ ‫لذلك‬
)‫المترجم‬ ‫يقوم‬ ‫هنا‬
compiler
، ‫خطأ‬ ‫بوجود‬ ‫بإخطارك‬ (
‫النوع‬ ‫من‬ ‫متغيرين‬ ‫مع‬ % ‫إستخدام‬ ‫هو‬ ‫و‬
float
‫للتغلب‬.
ً‫ا‬‫إجباري‬ ‫المتغيرين‬ ‫من‬ ً‫ال‬‫ك‬ ‫تحويل‬ ‫يتم‬ ‫المشكلة‬ ‫هذه‬ ‫على‬
‫إلى‬
int
‫الـ‬ ‫طريق‬ ‫عن‬
casting
.‫كاآلتى‬ ،
‫الـ‬ ‫عملية‬ ‫فى‬ ‫أنه‬ ‫الحظ‬
casting
‫كسر‬ ‫أى‬ ‫إهمال‬ ‫سيتم‬
.‫المتغيرين‬ ‫فى‬ ‫موجود‬
22
‫مع‬ ‫إستخدامه‬ ‫عند‬ ‫طبيعية‬ ‫بصورة‬ ‫يعمل‬ / ‫القسمة‬ ‫عامل‬
‫النوع‬ ‫مع‬ ‫إستخدامه‬ ‫تم‬ ‫إذا‬ ‫أما‬ ، ‫صحيحة‬ ‫غير‬ ‫أعداد‬
int
‫يكون‬ ‫أن‬ ‫و‬ ‫بد‬ ‫ال‬ ‫الناتج‬ ‫فإن‬
int
‫يتم‬ ‫إنه‬ ‫أى‬ ،
‫أى‬ ‫إهمال‬
‫ناتج‬ ً‫ال‬‫فمث‬ ، ‫العملية‬ ‫عن‬ ‫ناتج‬ ‫كسر‬
0
.
2
/
5
.
0
‫يساوى‬
2
.
5
‫ناتج‬ ‫أما‬ ،
5
/
2
‫يساوى‬
2
‫إهمال‬ ‫تم‬ ‫أنه‬ ‫الحظ‬ .
‫القسمة‬ ‫عملية‬ ‫إجراء‬ ‫عند‬ ً‫ا‬‫جيد‬ ‫اإلنتباه‬ ‫عليك‬ ‫لذا‬ .‫الكسر‬
.‫سليمة‬ ‫نتائج‬ ‫على‬ ‫تحصل‬ ‫لكى‬ ‫الصحيحة‬ ‫األعداد‬ ‫على‬
، ‫الحسابية‬ ‫للعمليات‬ ‫اإلختصارات‬ ‫بعض‬ ‫هناك‬
‫يمكننا‬ ً‫ال‬‫فمث‬
‫العملية‬ ‫هذه‬ ‫إستبدال‬
‫بهذه‬
‫العملية‬ ‫هذه‬ ‫أو‬
‫بهذه‬
‫بالـ‬ ‫األخيرة‬ ‫العملية‬ ‫تعرف‬
increment
‫الـ‬ ‫و‬
decrement
‫أو‬ ‫المتغير‬ ‫قيمة‬ ‫على‬ ‫واحد‬ ‫زيادة‬ ‫أى‬
.‫المتغير‬ ‫قيمة‬ ‫من‬ ‫واحد‬ ‫إنقاص‬
23
‫اإلخراج‬ ‫و‬ ‫اإلدخال‬ ‫دوال‬
‫الذاكر‬ ‫فى‬ ‫معين‬ ‫متغير‬ ‫فى‬ ‫بيانات‬ ‫حفظ‬ ‫يمكن‬
‫ة‬
‫قيمة‬ ‫المتغير‬ ‫هذا‬ ‫إعطاء‬ ‫يتم‬ ‫أن‬ ‫األولى‬ ، ‫بطريقتين‬
‫الـ‬ ‫طريق‬ ‫عن‬ ‫مباشرة‬
assignment
‫عن‬ ‫أو‬ ،
‫فى‬ ‫حفظها‬ ‫و‬ ‫المستخدم‬ ‫من‬ ‫بيانات‬ ‫إستقبال‬ ‫طريق‬
‫دوال‬ ‫إستخدام‬ ‫طريق‬ ‫عن‬ ‫بهذا‬ ‫نقوم‬ ‫و‬ ، ‫المتغير‬ ‫هذا‬
‫منها‬ ‫لواحدة‬ ‫تعرضنا‬ ‫قد‬ ‫و‬ ، ‫اإلخراج‬ ‫و‬ ‫اإلدخال‬
‫دالة‬ ‫هى‬ ‫و‬ ً‫ا‬‫سلف‬
printf
‫أنه‬ ‫قلنا‬ ‫و‬
‫لطباعة‬ ‫تستخدم‬ ‫ا‬
‫دوال‬ ‫من‬ ‫الكثير‬ ‫يوجد‬ ‫و‬ ، ‫للمستخدم‬ ‫معينة‬ ‫بيانات‬
‫دالة‬ ‫غرار‬ ‫على‬ ‫اإلخراج‬
printf
‫هذه‬ ‫كل‬ ‫و‬ ،
)‫ملف‬ ‫فى‬ ‫موجودة‬ ‫الدوال‬
stdio.h
‫تعرضنا‬ ‫الذى‬ (
‫دالة‬ ‫اآلن‬ ‫سنستعرض‬ ‫و‬ ،ً‫ا‬‫سابق‬ ‫له‬
printf
‫دالة‬ ‫و‬
scanf
–
‫من‬ ‫بيانات‬ ‫إدخال‬ ‫لعملية‬ ‫تستخدم‬
‫المستخدم‬
–
.‫التفصيل‬ ‫من‬ ‫بشىء‬
‫دالة‬
printf
‫جملة‬ ‫أو‬ ‫للمستخدم‬ ‫متغير‬ ‫أى‬ ‫قيمة‬ ‫بعرض‬ ‫نقوم‬ ‫أن‬ ‫أردنا‬ ‫إذا‬
‫نستخدم‬ ‫أن‬ ‫علينا‬ ‫فيجب‬ ، ‫نصية‬
printf
.‫اآلتى‬ ‫كالمثال‬ ،
24
‫مثال‬
‫بإستخدام‬ " ‫على‬ " ‫إسمه‬ ‫شخص‬ ‫عمر‬ ‫بطباعة‬ ‫سنقوم‬
printf
.
‫الطباعة‬ ‫جملة‬ ‫تكوين‬ ‫الحظ‬
printf
‫و‬ ، ‫الدالة‬ ‫إسم‬ ‫هى‬
‫يكون‬ ً‫ا‬‫دائم‬ ‫األول‬ ‫المعامل‬
‫و‬ ، ‫مزدوج‬ ‫تنصيص‬ ‫عالمتى‬ ‫بين‬ ‫يوضع‬ ‫نصى‬ ‫معامل‬
‫بالـ‬ ‫يسمى‬ ‫ما‬ ‫على‬ ‫بداخله‬ ‫يحتوى‬
placeholder
‫أى‬ ،
‫سيأتى‬ ‫الذى‬ ‫المتغير‬ ‫عن‬ ‫ينوب‬ ‫ألنه‬ ‫كذلك‬ ‫مى‬ ُُ ُ‫س‬ ‫و‬ ‫النائب‬
، ‫للمستخدم‬ ‫الجملة‬ ‫هذه‬ ‫طباعة‬ ‫فعند‬ ، ‫الثانى‬ ‫المعامل‬ ‫فى‬
‫قيمة‬ ‫ستظهر‬
age
‫الـ‬ ‫مكان‬
placeholder
‫بذلك‬ ‫فهو‬ ،
‫و‬ ، ‫المطبوعة‬ ‫الجملة‬ ‫فى‬ ‫المتغير‬ ‫قيمة‬ ‫وضع‬ ‫مكان‬ ‫يحدد‬
25
‫يوجد‬ ‫هنا‬
placeholder
‫واحد‬ ‫معامل‬ ‫أتى‬ ‫لذلك‬ ، ‫واحد‬
‫إثنين‬ ‫هناك‬ ‫كان‬ ‫إذا‬ ‫و‬ ، ‫النصى‬ ‫المعامل‬ ‫بعد‬
placeholder
‫النصى‬ ‫المعامل‬ ‫بعد‬ ‫معاملين‬ ‫فسيأتى‬
‫الـ‬ ‫إستبدال‬ ‫سيتم‬ ‫قيم‬ ‫على‬ ‫يحتويان‬
placeholder
‫بهم‬
، ‫هكذا‬ ‫و‬
‫الـ‬ ‫فأن‬ ‫لذلك‬
placeholder
‫عدد‬ ً‫ا‬‫أيض‬ ‫يحدد‬
. ‫بعده‬ ‫ستأتى‬ ‫التى‬ ‫المتغيرات‬ ‫أو‬ ‫المعامالت‬
‫المثال‬ ‫خرج‬
‫عمل‬ ‫عند‬
run
.‫كاآلتى‬ ‫الخرج‬ ‫سيكون‬ ، ‫البرنامج‬ ‫لهذا‬
‫مثال‬
‫أعمار‬ ‫طباعة‬
3
.‫مختلفين‬ ‫أشخاص‬
26
‫الـ‬ ‫أن‬ ‫الحظ‬
placeholder
‫عنه‬ ‫التعويض‬ ‫سيتم‬ ‫األول‬
‫بقيمة‬
age1
)
‫الـ‬ ‫و‬ ، ( ‫النصى‬ ‫المعامل‬ ‫بعد‬ ‫معامل‬ ‫أول‬
placeholder
‫بقيمة‬ ‫عنه‬ ‫التعويض‬ ‫سيتم‬ ‫الثانى‬
age2
‫كذلك‬ ‫و‬ ، (‫النصى‬ ‫المعامل‬ ‫بعد‬ ‫معامل‬ ‫ثانى‬ )
.‫للثالث‬ ‫بالنسبة‬
‫البرنامج‬ ‫خرج‬
.‫كاآلتى‬ ‫البرنامج‬ ‫خرج‬ ‫يكون‬ ‫الحالة‬ ‫هذه‬ ‫فى‬
placeholders
‫الـ‬ ‫يبدأ‬ ‫ما‬ ً‫ا‬‫دائم‬
placeholder
‫األمثلة‬ ‫فى‬ ‫و‬ ، % ‫بـ‬
‫إستخدمنا‬ ً‫ا‬‫دائم‬ ‫السابقة‬
%d
‫من‬ ‫متغير‬ ‫عن‬ ‫ينوب‬ ‫كان‬ ‫ألنه‬
‫النوع‬
int
‫يكون‬ ‫ال‬ ‫لكنه‬ ‫و‬ ،
%d
‫إنما‬ ، ‫الحاالت‬ ‫كل‬ ‫فى‬
‫الـ‬ ‫يوضح‬ ‫جدول‬ ‫هذا‬ ‫و‬ ، ‫المتغير‬ ‫نوع‬ ‫بتغير‬ ‫يتغير‬
placeholder
‫المتغيرات‬ ‫أنواع‬ ‫بأكثر‬ ‫الخاص‬
.ً‫ا‬‫إستخدام‬
placeholder ‫المتغير‬ ‫نوع‬ ‫معها‬ ‫المستخدم‬ ‫الدالة‬
27
%c char printf / scanf
%d int printf / scanf
%f double printf
%lf double scanf
%ld long printf / scanf
%f float printf / scanf
‫دالة‬
scanf
‫تقوم‬ ‫و‬ ‫المستخدم‬ ‫من‬ ‫المدخلة‬ ‫البيانات‬ ‫تستقبل‬ ‫الدالة‬ ‫هذه‬
‫اآل‬ ‫كالمثال‬ ، ‫متغير‬ ‫فى‬ ‫بحفظها‬
.‫تى‬
‫مثال‬
‫حفظه‬ ‫و‬ ‫المستخدم‬ ‫من‬ ‫رقم‬ ‫بإستقبال‬ ‫سيقوم‬ ‫البرنامج‬ ‫هذا‬
.‫أخرى‬ ‫مرة‬ ‫طباعته‬ ‫ثم‬ ، ‫متغير‬ ‫فى‬
28
‫الدالة‬ ‫اسم‬ ‫من‬ ‫البيانات‬ ‫إستقبال‬ ‫أمر‬ ‫يتكون‬
scanf
‫دالة‬ ‫فى‬ ‫األول‬ ‫للمعامل‬ ‫مشابه‬ ‫األول‬ ‫المعامل‬ ‫و‬ ،
printf
‫على‬ ‫يحتوى‬ ‫نصى‬ ‫معامل‬ ‫عن‬ ‫عبارة‬
placeholder
‫يحدد‬
‫التى‬ ‫المتغيرات‬ ‫نوع‬ ‫و‬ ‫عدد‬
‫هو‬ ‫الثانى‬ ‫المعامل‬ ‫و‬ ، ‫فيهم‬ ‫البيانات‬ ‫إستقبال‬ ‫سيتم‬
.‫فيه‬ ‫البيانات‬ ‫تخزين‬ ‫سيتم‬ ‫الذى‬ ‫المتغير‬
‫تسمى‬ ‫و‬ & ‫عالمة‬ ‫وضع‬ ‫تم‬ ‫أنه‬ ‫الحظ‬
address
of operator
‫و‬ ، ‫بالعنوان‬ ‫يأتى‬ ‫الذى‬ ‫العامل‬ ‫أى‬
‫يعنى‬ ‫فإنه‬ ‫الجملة‬ ‫هذه‬ ‫فى‬ ‫كما‬ ‫متغير‬ ‫قبل‬ ‫وضعه‬ ‫عند‬
‫بإ‬ ‫يقوم‬ ‫أنه‬
‫دالة‬ ‫إلخبار‬ ‫المتغير‬ ‫هذا‬ ‫عنوان‬ ‫حضار‬
scanf
‫اسمه‬ ‫الذى‬ ‫المتغير‬ ‫بعنوان‬
num
‫فى‬
.‫فيه‬ ‫المدخلة‬ ‫القيمة‬ ‫وضع‬ ‫ليتم‬ ‫الذاكرة‬
‫البرنامج‬ ‫خرج‬
.‫كاآلتى‬ ، ‫السابق‬ ‫البرنامج‬ ‫ناتج‬ ‫يكون‬ ‫و‬
29
‫تطبيقى‬ ‫برنامج‬
‫توظيف‬ ‫يتم‬ ‫فيها‬ ‫و‬ ، ‫الكتاب‬ ‫فقرات‬ ‫أهم‬ ‫من‬ ‫تعد‬ ‫الفقرة‬ ‫هذه‬
‫درا‬ ‫تم‬ ‫ما‬
‫كيف‬ ‫لتتعلم‬ ‫هذا‬ ‫و‬ ، ً‫ا‬‫نسبي‬ ‫كبير‬ ‫برنامج‬ ‫فى‬ ‫سته‬
‫يتم‬ ‫كما‬ ، ‫الخاصة‬ ‫برامجك‬ ‫عمل‬ ‫فى‬ ‫تعلمته‬ ‫ما‬ ‫توظف‬
.‫البرنامج‬ ‫شرح‬ ‫خالل‬ ‫الهامة‬ ‫المعلومات‬ ‫من‬ ‫المزيد‬ ‫عرض‬
‫بنفسك‬ ‫بتنفيذه‬ ‫القيام‬ ‫ثم‬ ، ً‫ا‬‫جيد‬ ‫الكود‬ ‫فهم‬ ‫يتم‬ ‫أن‬ ‫يفضل‬ ‫و‬
.‫القصوى‬ ‫للضرورة‬ ‫إال‬ ‫بالكتاب‬ ‫اإلستعانة‬ ‫دون‬
‫برنام‬ ‫اكتب‬
‫معينة‬ ‫مالية‬ ‫قيمة‬ ‫إدخال‬ ‫المستخدم‬ ‫من‬ ‫يطلب‬ ً‫ا‬‫ج‬
‫عدد‬ ‫أقل‬ ‫طريق‬ ‫عن‬ ‫المبلغ‬ ‫هذا‬ ‫دفع‬ ‫كيفية‬ ‫بعرض‬ ‫قم‬ ‫ثم‬ ،
‫بقيمة‬ ‫الفواتير‬ ‫من‬
22
‫و‬، ‫جنيه‬
12
، ‫خمسه‬ ‫و‬ ، ‫جنيهات‬
‫بقيمة‬ ‫مالى‬ ‫مبلغ‬ ‫المستخدم‬ ‫أدخل‬ ‫إذا‬ ً‫ال‬‫فمث‬.‫وواحد‬
112
: ‫كاآلتى‬ ‫الخرج‬ ‫يكون‬ ، ‫جنيه‬
31
20L.E bills = 5
10 L.E bills =1
5 L.E bills = 0
1 L.E bills = 2
30
‫البرنامج‬ ‫شرح‬
‫خالل‬ ‫سنستخدمها‬ ‫التى‬ ‫المتغيرات‬ ‫بتعريف‬ ‫نقوم‬ ً‫ال‬‫أو‬
‫سنستخدم‬ ‫البرنامج‬ ‫هذا‬ ‫فى‬ ‫و‬ ، ‫البرنامج‬
5
‫متغيرات‬
‫و‬، ‫المدخلة‬ ‫للقيمة‬ ‫واحدة‬
4
‫الفواتير‬ ‫من‬ ‫نوع‬ ‫كل‬ ‫عدد‬ ‫لحفظ‬
.‫باآلتى‬ ‫فنقوم‬ ،
‫ثم‬ ‫المستخدم‬ ‫من‬ ‫المبلغ‬ ‫قيمة‬ ‫إدخال‬ ‫طلب‬ ‫نريد‬ ً‫ا‬‫ثاني‬
‫طريق‬ ‫عن‬ ‫بهذا‬ ‫القيام‬ ‫يمكننا‬ ‫و‬ ، ‫متغير‬ ‫فى‬ ‫إستقبالها‬
.‫اآلتية‬ ‫األوامر‬
‫لسداد‬ ‫المستخدمة‬ ‫الفواتير‬ ‫من‬ ‫عدد‬ ‫أقل‬ ‫حساب‬ ‫نريد‬ ‫اآلن‬ ‫و‬
‫القمية‬ ‫ذات‬ ‫الفواتير‬ ‫عدد‬ ‫حساب‬ ‫يتم‬ ً‫ال‬‫أو‬ ، ‫المبلغ‬ ‫هذا‬
22
،
‫المبلغ‬ ‫بقسمة‬ ‫ذلك‬ ‫و‬
‫على‬
22
‫متغير‬ ‫فى‬ ‫الناتج‬ ‫حفظ‬ ‫و‬ ،
‫النوع‬ ‫من‬
int
‫فى‬ ‫مثال‬ ، ‫الباقى‬ ‫سيهمل‬ ‫أنه‬ ‫يعنى‬ ‫هذا‬ ‫و‬ ،
‫ناتج‬ ‫المذكور‬ ‫المثال‬
112
/
20
‫سيكون‬
5
‫بهذا‬ ‫و‬ ، ‫فقط‬
‫القيمة‬ ‫ذات‬ ‫الفواتير‬ ‫عدد‬ ‫حسبنا‬ ‫قد‬ ‫نكون‬
22
‫نحتاجها‬ ‫التى‬
.
32
‫على‬ ‫المبلغ‬ ‫قسمة‬ ‫من‬ ‫المتبقى‬ ‫على‬ ‫الحصول‬ ‫يجب‬ ‫اآلن‬
22
‫بذلك‬ ‫نقوم‬ ‫و‬ ،
‫اآلتى‬ ‫التعبير‬ ‫طريق‬ ‫عن‬
112
%
20
‫يكون‬
‫الناتج‬
12
‫الفواتير‬ ‫عدد‬ ‫حساب‬ ‫فى‬ ‫الناتج‬ ‫بإستخدام‬ ‫نقوم‬ ،
‫القمية‬ ‫ذات‬
-
12
‫على‬ ‫المبلغ‬ ‫بقسمة‬ ‫ذلك‬ ‫و‬ ،
12
‫حفظ‬ ‫و‬ ،
‫النوع‬ ‫من‬ ‫متغير‬ ‫فى‬ ‫الناتج‬
int
‫الكود‬ ‫فيكون‬ .. ‫هكذا‬ ‫و‬ ،
.‫الشكل‬ ‫بهذا‬ ‫المستخدم‬
‫ك‬ ‫من‬ ‫الفواتير‬ ‫عدد‬ ‫بطباعة‬ ‫نقوم‬ ‫اآلن‬
‫للمستخدم‬ ‫نوع‬ ‫ل‬
.‫كاآلتى‬ ‫ذلك‬ ‫و‬ ‫مناسب‬ ‫بشكل‬
‫من‬ ‫أكثر‬ ‫فى‬ ‫طباعتها‬ ‫تريد‬ ‫جملة‬ ‫كتابة‬ ‫أردت‬ ‫إذا‬ ‫أنك‬ ‫الحظ‬
‫على‬ ‫سطر‬ ‫كل‬ ‫على‬ ‫التنصيص‬ ‫بإغالق‬ ‫تقوم‬ ‫الكود‬ ‫من‬ ‫سطر‬
‫أثناء‬ ‫التنصيص‬ ‫عالمات‬ ‫من‬ ‫سيتخلص‬ ‫المترجم‬ ‫و‬ ‫حدة‬
‫فى‬ ‫التنصيص‬ ‫عالمتى‬ ‫بدون‬ ‫كتابتها‬ ‫يمكنك‬ ‫ال‬ ‫و‬، ‫الترجمة‬
33
‫الجمل‬ ‫نهاية‬
،‫الثانية‬ ‫الجملة‬ ‫بداية‬ ‫فى‬ ‫بدونها‬ ‫أو‬ ‫األولى‬ ‫ة‬
‫جزء‬ ‫الثانى‬ ‫السطر‬ ‫فى‬ ‫الموجودة‬ ‫الجملة‬ ‫أن‬ ‫يعتبر‬ ‫لن‬ ‫ألنه‬
. ‫األولى‬ ‫الجملة‬ ‫من‬
‫اآلتى‬ ‫التعبير‬ ‫نالحظ‬ ً‫ا‬‫أيض‬ ‫هنا‬ ‫و‬
n

‫لبدء‬ ‫يستخدم‬ ‫هو‬ ‫و‬ ،
‫بالـ‬ ‫التعبيرات‬ ‫هذه‬ ‫تسمى‬ ‫و‬ ، ‫جديد‬ ‫سطر‬
escape
sequence
ً‫ا‬‫إستخدم‬ ‫أكثرها‬ ‫إليك‬ ‫و‬ ،
.
‫فى‬ ‫تطبيقى‬ ‫برنامج‬ ‫أول‬ ‫تنفيذ‬ ‫من‬ ‫إنتهينا‬ ‫قد‬ ‫نكون‬ ‫اآلن‬ ‫و‬
‫للغة‬ ‫دراستنا‬ ‫فى‬ ‫أكثر‬ ‫لمواضيع‬ ‫نتطرق‬ ‫عندما‬ ، ‫الكتاب‬ ‫هذا‬
‫ستك‬ ،
‫أتركك‬ ‫اآلن‬ . ‫عملية‬ ‫أكثر‬ ‫لنا‬ ‫التطبيقية‬ ‫البرامج‬ ‫ون‬
.‫التمارين‬ ‫مع‬
‫التمارين‬
Escape sequence ‫العمل‬
/n ‫جديد‬ ‫سطر‬ ‫بدء‬
/r ‫السطر‬ ‫بداية‬ ‫إلى‬ ‫العودة‬
/t ‫مسافة‬
tab
// , /’ , /? , /” / ‫الـ‬ ‫بعد‬ ‫ما‬ ‫طباعة‬
34
‫هو‬ ،‫برمجة‬ ‫لغة‬ ‫أى‬ ‫اتقان‬ ‫فى‬ ‫النجاح‬ ‫عوامل‬ ‫أهم‬ ‫من‬
‫لذا‬ ،‫المختلفة‬ ‫البرامج‬ ‫كتابة‬ ‫على‬ ‫المستمر‬ ‫العملى‬ ‫التدريب‬
‫نهايته‬ ‫فى‬ ً‫ا‬‫مصحوب‬ ‫الكتاب‬ ‫هذا‬ ‫فى‬ ‫موضوع‬ ‫كل‬ ‫سيكون‬
‫متدر‬ ‫التمارين‬ ‫من‬ ‫جيدة‬ ‫بمجموعة‬
‫يجب‬ ‫التى‬ ،‫الصعوبة‬ ‫جة‬
.‫تمرين‬ ‫أول‬ ‫مع‬ ‫أترككم‬ .. ‫بنفسك‬ ‫بتنفيذها‬ ‫تقوم‬ ‫أن‬
1
(
‫األسبوعى‬ ‫راتبه‬ ‫المستخدم‬ ‫من‬ ‫يستقبل‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
‫اليومية‬ ‫عمله‬ ‫ساعات‬ ‫عدد‬ ‫كذلك‬ ‫و‬ ، ‫المصرى‬ ‫بالجنيه‬
-
‫النوع‬ ‫من‬ ‫كقيم‬
float
-
‫بطباعة‬ ‫البرنامج‬ ‫يقوم‬ ‫ثم‬ ،
‫الواح‬ ‫للساعة‬ ‫يتقاضاه‬ ‫الذى‬ ‫األجر‬ ‫متوسط‬
‫هيئة‬ ‫على‬ ‫دة‬
.‫قروش‬ ‫و‬ ‫جنيهات‬
2
(
‫فئة‬ ‫من‬ ‫األول‬ ، ‫المنتجات‬ ‫من‬ ‫نوعين‬ ‫لديك‬ ‫كان‬ ‫إذا‬
3
‫فئة‬ ‫من‬ ‫الثانى‬ ‫و‬ ، ‫جنيهات‬
5
ً‫ا‬‫برنامج‬ ‫اكتب‬ ، ‫جنيهات‬
‫كل‬ ‫من‬ ‫شرائها‬ ‫المراد‬ ‫القطع‬ ‫عدد‬ ‫المستخدم‬ ‫من‬ ‫يستقبل‬
.‫اإلجمالى‬ ‫الحساب‬ ‫بطباعة‬ ‫البرنامج‬ ‫يقوم‬ ‫ثم‬ ، ‫نوع‬
3
(
‫لحساب‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
‫تهذيب‬ ‫فى‬ ‫المستغرق‬ ‫الوقت‬
‫المنزل‬ ‫أبعاد‬ ‫المستخدم‬ ‫من‬ ‫اطلب‬ ، ‫المنزل‬ ‫بحديقة‬ ‫النبات‬
‫قطر‬ ‫نصف‬ ‫كذلك‬ ‫و‬ ، ‫مستطيل‬ ‫شكل‬ ‫على‬ ‫المنزل‬ ‫بأن‬ ً‫ا‬‫علم‬
، ‫دائرة‬ ‫شكل‬ ‫على‬ ‫بأنها‬ ً‫ا‬‫علم‬ ‫المنزل‬ ‫تحوى‬ ‫التى‬ ‫الحديقة‬
‫دقيقة‬ ‫كم‬ ، ‫دقيقتان‬ ‫يستغرق‬ ‫الواحد‬ ‫المربع‬ ‫المتر‬ ‫بأن‬ ً‫ا‬‫علم‬
‫حديقة‬ ‫لتهذيب‬ ‫تلزم‬
‫ا‬
.‫لمنزل‬
35
‫الثالث‬ ‫الفصل‬
‫الجــــــمـــل‬
‫ـية‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ط‬‫ـر‬‫ـ‬‫ـ‬‫ـ‬‫ش‬‫ال‬

‫تك‬ ‫أن‬ ‫يجب‬ ‫ما‬
‫الفصل‬ ‫هذا‬ ‫نهاية‬ ‫فى‬ ‫تعلمته‬ ‫قد‬ ‫ون‬
‫؟‬

‫بناء‬ ‫فى‬ ‫المقارنة‬ ‫عوامل‬ ‫إستخدام‬ ‫يتم‬ ‫كيف‬
‫؟‬ ‫الشرطية‬ ‫بالجمل‬ ‫الخاصة‬ ‫الشروط‬

‫الشرطية‬ ‫الجملة‬
if
.‫المختلفة‬ ‫أنواعها‬ ‫و‬ ،

‫الشرطية‬ ‫الجملة‬
switch case
.
36
‫البداية‬ ‫فى‬ ‫ندرس‬ ، ‫الشرطية‬ ‫الجمل‬ ‫دراسة‬ ‫فى‬ ‫البدء‬ ‫قبل‬
) ‫العوامل‬
operators
‫تكوين‬ ‫فى‬ ‫سنستخدمها‬ ‫التى‬ (
‫من‬ ‫نوعين‬ ‫هناك‬ ‫و‬ ، ‫الشرطية‬ ‫بالجمل‬ ‫الخاص‬ ‫الشرط‬
) ‫المقارنة‬ ‫عوامل‬ : ‫العوامل‬
comparison
. ( logic operators )
‫المنطقية‬ ‫العوامل‬ ‫و‬
)
operators
‫المقارنة‬ ‫عوامل‬
‫المعنى‬ ‫العامل‬
‫من‬ ‫أكبر‬ >
‫من‬ ‫أصغر‬ <
‫أو‬ ‫من‬ ‫أكبر‬
‫يساوى‬
>=
‫أو‬ ‫من‬ ‫أصغر‬
‫يساوى‬
<=
‫يساوى‬ ==
‫يساوى‬ ‫ال‬ =!
: ( ‫شائعة‬ ‫أخطاء‬ ) ‫انتبه‬
1
(
‫ليس‬ ‫و‬ == ‫نستخدم‬ ‫قيمتين‬ ‫تساوى‬ ‫اختبار‬ ‫حالة‬ ‫فى‬
. =
37
2
(
، ‫قيمتين‬ ‫بين‬ ‫متغير‬ ‫قيمة‬ ‫وجود‬ ‫اختبار‬ ‫أردت‬ ‫إذا‬
‫ف‬
ً‫ال‬‫مث‬ ‫هكذا‬ ‫يكتب‬ ‫الشرط‬
( 1 < x && x > 5 )
‫و‬ ،
‫الصورة‬ ‫هذه‬ ‫على‬ ‫ليس‬
( 1 < x < 5 )
‫الصورة‬ ‫فهذه‬ ،
.‫خاطئة‬
‫المنطقية‬ ‫العوامل‬
‫المعنى‬ ‫المعامل‬
‫قيمته‬ ‫المعامل‬ ‫كان‬ ‫إذا‬ ، ‫فقط‬ ‫واحد‬ ‫معامل‬ ‫مع‬ ‫يستخدم‬
true
‫بـ‬ ‫يعود‬
false
.‫العكس‬ ‫و‬ ،
!
‫يشترط‬ ‫و‬ ، ‫معاملين‬ ‫مع‬ ‫يستخدم‬
ً‫ا‬‫مع‬ ‫تحققهما‬
-
‫كالهما‬ ‫أن‬ ‫أى‬
true
-
.‫الشرط‬ ‫جواب‬ ‫بتنفيذ‬ ‫يقوم‬ ‫لكى‬
&&
.‫األقل‬ ‫على‬ ‫منهم‬ ً‫ا‬‫واحد‬ ‫تحقق‬ ‫يشترط‬ ‫و‬ ، ‫معاملين‬ ‫مع‬ ‫يستخدم‬ ||
‫خالل‬ ‫من‬ ‫المعامالت‬ ‫تلك‬ ‫إستخدام‬ ‫كيفية‬ ‫أكثر‬ ‫لنا‬ ‫سيتبين‬
.‫القادمة‬ ‫األمثلة‬
‫جملة‬
if
‫الشرطية‬
‫الم‬ ‫العوامل‬ ‫أنواع‬ ‫تناولنا‬ ‫أن‬ ‫بعد‬
‫جملة‬ ‫بناء‬ ‫فى‬ ‫ستخدمة‬
‫الجمل‬ ‫أنواع‬ ‫من‬ ‫نوع‬ ‫أول‬ ‫بناء‬ ‫نستعرض‬ ، ‫الشرط‬
. if statement
‫هو‬ ‫و‬ ‫الشرطية‬
38
‫تتكون‬
if
‫مجموعة‬ ‫و‬ ‫واحد‬ ‫شرط‬ ‫من‬ ‫صورها‬ ‫أبسط‬ ‫فى‬
. ‫الشرط‬ ‫هذا‬ ‫تحقق‬ ‫عند‬ ‫تنفيذهم‬ ‫يتم‬ ‫األوامر‬ ‫من‬
.‫كاآلتى‬
‫عندما‬ ‫الموضحة‬ ‫الجملة‬ ‫بطباعة‬ ‫تقوم‬ ‫الشرطية‬ ‫الجملة‬ ‫هذه‬
‫تكون‬
‫المتغير‬ ‫قيمة‬
num
‫من‬ ‫أكبر‬
2
‫الـ‬ ‫من‬ ‫أقل‬ ‫و‬
5
‫و‬ ،
if
‫تسمى‬ ‫الحالة‬ ‫هذه‬ ‫فى‬
simple if
‫شرط‬ ‫هناك‬ ‫ألن‬
.‫واحد‬
‫يتم‬ ‫الشرط‬ ‫تحقق‬ ‫عند‬ ‫نفذ‬ُ‫ي‬ ‫أمر‬ ‫من‬ ‫أكثر‬ ‫وجود‬ ‫حالة‬ ‫فى‬
‫األوامر‬ ‫مجموعة‬ ‫لتحتوى‬ }{ ‫النوع‬ ‫من‬ ‫أقواس‬ ‫إستخدام‬
.‫كاآلتى‬ .‫الشرط‬ ‫تحقق‬ ‫عند‬ ‫تنفيذها‬ ‫المراد‬
‫يمكنن‬ ‫و‬
‫طريق‬ ‫عن‬ ‫شرط‬ ‫من‬ ‫أكثر‬ ‫اختبار‬ ‫ا‬
if
‫المتعددة‬
.‫كاآلتى‬ ‫الشروط‬
39
‫هذه‬ ‫و‬ ، ‫السابقة‬ ‫الشرطية‬ ‫الجملة‬ ‫بين‬ ‫الفرق‬ ‫ما‬ ‫لكن‬ ‫و‬
‫؟‬ ‫الشرطية‬ ‫الجملة‬
‫الثانى‬ ‫الشرط‬ ‫يختبر‬ ‫ال‬ ‫األولى‬ ‫الحالة‬ ‫فى‬ ‫البرنامج‬ ‫أن‬ ‫الفرق‬
‫يختبر‬ ‫الثانية‬ ‫الحالة‬ ‫فى‬ ‫بينما‬ ، ‫األول‬ ‫الشرط‬ ‫تحقق‬ ‫إذا‬
‫الثان‬ ‫الشرط‬
‫يبدو‬ ‫هذا‬ ‫و‬ ، ‫يتحقق‬ ‫لم‬ ‫أم‬ ‫األول‬ ‫تحقق‬ ‫سواء‬ ‫ى‬
‫من‬ ‫أحدهما‬ ‫تنفيذ‬ ‫يؤثر‬ ‫ال‬ ‫منفصلتين‬ ‫الجملتين‬ ‫ألن‬ ً‫ا‬‫عقالني‬
.‫اآلخر‬ ‫على‬ ‫عدمه‬
‫عدم‬ ‫حال‬ ‫فى‬ ‫األوامر‬ ‫من‬ ‫مجموعة‬ ‫بتنفيذ‬ ‫تقوم‬ ‫أن‬ ‫ويمكنك‬
‫بإستخدام‬ ‫الشرطية‬ ‫الجلة‬ ‫شروط‬ ‫من‬ ‫أى‬ ‫تحقق‬
else
:‫كاآلتى‬
41
‫كلمة‬ ‫تطبع‬ ‫الجملة‬ ‫فهذه‬
ERROR
‫ف‬
‫قيمة‬ ‫أن‬ ‫حالة‬ ‫ى‬
‫المتغير‬
x
‫تساوى‬ ‫ال‬
5
‫تساوى‬ ‫ال‬ ‫و‬
6
.‫كذلك‬
‫جملة‬
if
‫المتداخلة‬
‫عليها‬ ‫يطلق‬
Nested if
‫شرطية‬ ‫جملة‬ ‫عن‬ ‫عبارة‬ ‫هى‬ ‫و‬
‫كالمثال‬ ، ‫أكثر‬ ‫أو‬ ‫أخرى‬ ‫شرطية‬ ‫جملة‬ ‫بداخلها‬ ‫تحتوى‬
.‫اآلتى‬
‫األول‬ ‫الشرط‬ ‫تحقق‬ ‫عند‬ ‫األولى‬ ‫الطباعة‬ ‫جملة‬ ‫تنفذ‬
(x==5)
‫ا‬ ‫جملة‬ ‫و‬ ،
‫تحقق‬ ‫عند‬ ‫إال‬ ‫تنفذ‬ ‫ال‬ ‫الثانية‬ ‫لطباعة‬
‫األول‬ ‫الشرط‬
(x==5)
‫الثانى‬ ‫و‬
(y==5)
.
40
‫مثال‬
‫بين‬ ‫من‬ ‫األكبر‬ ‫الرقم‬ ‫بطباعة‬ ‫يقوم‬ ‫برنامج‬
3
‫يقوم‬ ‫أرقام‬
‫بإستخدام‬ ) ‫المستخدم‬ ‫بإدخالها‬
nested if
.(
42
‫بإستخدام‬ ‫كلها‬ ‫البيانات‬ ‫إستقبال‬ ‫هنا‬ ‫تعمدت‬
scanf
‫دالة‬ ‫أن‬ ‫لك‬ ‫ألبين‬ ، ‫واحدة‬
scanf
‫ذكية‬ ‫دالة‬
‫أكثر‬ ‫فى‬ ‫تخزينها‬ ‫و‬ ‫قيمة‬ ‫من‬ ‫أكثر‬ ‫استقبال‬ ‫يمكنها‬
‫بين‬ ‫يفصل‬ ‫أن‬ ‫على‬ ، ‫واحدة‬ ‫جملة‬ ‫فى‬ ‫متغير‬ ‫من‬
‫مسافة‬ ‫أو‬ ‫بمسافة‬ ‫المدخلة‬ ‫القيم‬
tab
‫أو‬
enter
،
‫إدخالها‬ ‫فيجب‬ ‫معادلة‬ ‫إدخال‬ ‫المستخدم‬ ‫أراد‬ ‫فإذا‬
: ‫التالى‬ ‫بالشكل‬
2
+
10
‫ث‬ ،
‫يضغط‬ ‫م‬
Enter
‫القيم‬ ‫بين‬ ‫المسافات‬ ‫على‬ ‫يحافظ‬ ‫أن‬ ‫على‬ ، ‫لإلدخال‬
.‫المدخلة‬
‫كان‬ ‫إذا‬ ‫عما‬ ‫تختبر‬ ‫الخارجية‬ ‫الشرطية‬ ‫الجملة‬
x
‫من‬ ‫أكبر‬
y
‫أن‬ ‫إحتمالين‬ ‫هناك‬ ‫الحالة‬ ‫هذه‬ ‫فى‬ ،
x
‫أو‬ ‫األرقام‬ ‫أكبر‬ ‫هى‬
z
‫استخدمنا‬ ‫لذا‬ ، ‫األكبر‬ ‫هى‬
‫كان‬ ‫إذا‬ ‫ما‬ ‫تختبر‬ ‫داخلية‬ ‫شرطية‬ ‫جملة‬
x
‫من‬ ‫أكبر‬
z
‫حي‬
‫تكون‬ ‫نها‬
x
، ‫للمستخدم‬ ‫طباعتها‬ ‫فيتم‬ ‫األكبر‬ ‫هى‬
‫ذلك‬ ‫غير‬ ‫أو‬
(else)
‫أن‬ ‫أى‬
z
‫من‬ ‫أكبر‬
x
‫حينها‬ ‫و‬
‫طباعة‬ ‫يتم‬
z
‫تكن‬ ‫لم‬ ‫اذا‬ ‫أما‬ ،
x
‫من‬ ‫أكبر‬
y
)
else
‫هنا‬ ‫فيوجد‬ ، ‫الخارجية‬ ‫الشرطية‬ ‫للجملة‬ (
‫تكون‬ ‫أن‬ ، ‫احتمالين‬
y
‫من‬ ‫أكبر‬
z
‫طباعة‬ ‫فيتم‬ ،
y
‫أن‬ ‫أو‬ ،
z
‫من‬ ‫أكبر‬
y
‫طب‬ ‫فيتم‬
‫اعة‬
z
.
43
Switch Case
‫جملة‬ ‫على‬ ‫تعرفنا‬ ‫أن‬ ‫بعد‬ ‫و‬
if
‫اآلن‬ ‫نستعرض‬ ، ‫الشرطية‬
‫جملة‬ ‫هى‬ ‫و‬ ، ‫الشرطية‬ ‫الجمل‬ ‫أنواع‬ ‫ثانى‬
Switch
case
.‫كاآلتى‬ ‫العام‬ ‫البنائى‬ ‫شكلها‬ ،‫الشرطية‬
44
:‫أن‬ ‫الحظ‬
. if
‫جملة‬ ‫فى‬
else
‫عمل‬
default
‫تعمل‬
)1
2
(
‫ت‬
‫ستخدم‬
switch case
‫النوع‬ ‫مع‬
char
‫و‬
int
‫النوع‬ ‫مع‬ ‫تعمل‬ ‫ال‬ ‫و‬ ، ‫فقط‬
double
.
3
(
‫بإستخدام‬ ‫معين‬ ‫مدى‬ ‫إختبار‬ ‫يمكن‬ ‫ال‬
switch
case
‫نقول‬ ‫أن‬ ‫يمكن‬ ‫ال‬ ‫أى‬ ،
case x<5:
.
4
(
‫وضع‬ ‫يجب‬ ‫أنه‬ ‫الحظ‬
break
‫كل‬ ‫آخر‬ ‫فى‬
‫جملة‬ ‫من‬ ‫الخروج‬ ‫ليتم‬ ، ‫حالة‬
Switch case
‫األو‬ ‫تنفيذ‬ ‫بعد‬ ‫كاملة‬
‫فى‬ ‫وضعها‬ ‫يجب‬ ‫ال‬ ‫و‬ ، ‫امر‬
‫الـ‬ ‫حالة‬ ‫آخر‬
default
‫التى‬ ‫و‬ ‫الجمل‬ ‫آخر‬ ‫ألن‬ ،
‫من‬ ‫الخروج‬ ‫سيتم‬
Switch case
‫اإلنتهاء‬ ‫بعد‬
.‫منها‬
45
‫مثال‬
‫على‬ ‫و‬ ، ‫المستخدم‬ ‫من‬ ً‫ا‬‫رقم‬ ‫نستقبل‬ ‫المثال‬ ‫هذا‬ ‫فى‬
.‫معينة‬ ‫جملة‬ ‫نطبع‬ ‫الرقم‬ ‫حسب‬
46
‫الحاالت‬ ‫أغلب‬ ‫فى‬
‫إستخدام‬ ‫يتم‬
if
‫الجمل‬ ‫بناء‬ ‫فى‬
‫استخدام‬ ‫يفضل‬ ‫قليلة‬ ‫حاالت‬ ‫هناك‬ ‫لكن‬ ‫و‬ ، ‫الشرطية‬
switch case
‫نختبر‬ ‫الذى‬ ‫المتغير‬ ‫كان‬ ‫إذا‬ ً‫ال‬‫مث‬
) ‫القيم‬ ‫من‬ ‫محدود‬ ‫مدى‬ ‫له‬ ‫الشروط‬ ‫عليه‬
12
‫أو‬ ‫قيم‬
‫من‬ ‫يكون‬ ‫و‬ ( ‫أقل‬
. int
‫أو‬
char
‫النوع‬
‫تطبيقى‬ ‫برنامج‬
‫يقو‬ ، ‫الحاسبة‬ ‫آلة‬ ‫برنامج‬
‫الجمع‬ ) ‫التالية‬ ‫بالعمليات‬ ‫م‬
‫على‬ ، (‫القسمة‬ ‫باقى‬ ، ‫القسمة‬ ، ‫الضرب‬ ، ‫الطرح‬ ،
‫بها‬ ‫القيام‬ ‫يريد‬ ‫التى‬ ‫العملية‬ ‫المستخدم‬ ‫من‬ ‫تستقبل‬ ‫أن‬
.‫عليهما‬ ‫العملية‬ ‫إجراء‬ ‫المراد‬ ‫العددين‬ ‫كذلك‬ ‫و‬
47
‫البرنامج‬ ‫شرح‬
‫سنستخ‬ ‫التى‬ ‫المتغيرات‬ ‫بتعريف‬ ‫نقوم‬ ً‫ال‬‫أو‬
‫خالل‬ ‫دمها‬
، ‫البرنامج‬
3
‫النوع‬ ‫من‬ ‫متغيرات‬
float
‫لتخزين‬
‫النوع‬ ‫من‬ ‫متغير‬ ‫و‬ .‫الناتج‬ ‫و‬ ، ‫العددين‬
char
.‫العملية‬ ‫نوع‬ ‫لتخزين‬
48
‫من‬ ‫المطلوبة‬ ‫البيانات‬ ‫إستقبال‬ ‫و‬ ‫بطلب‬ ‫نقوم‬ ‫ثم‬
.‫المستخدم‬
ً‫ا‬‫وبناء‬ ،‫المطلوبة‬ ‫العملية‬ ‫نوع‬ ‫بإختبار‬ ‫هنا‬ ‫قمنا‬ ‫ثم‬
‫بإجرا‬ ‫نقوم‬ ‫المستخدم‬ ‫طلب‬ ‫على‬
‫الحسابية‬ ‫العملية‬ ‫ء‬
‫العددين‬ ‫من‬ ً‫ال‬ً‫ك‬ ‫بتحويل‬ ‫قمنا‬ ‫أننا‬ ‫الحظ‬ .‫المناسبة‬
‫إلى‬
int
‫ال‬ ‫ألنه‬ % ‫المعامل‬ ‫إستخدمنا‬ ‫عندما‬
‫النوع‬ ‫على‬ ‫يستخدم‬
float
‫النهاية‬ ‫فى‬ ‫نقوم‬ ‫ثم‬ ، ،
. ‫العملية‬ ‫ناتج‬ ‫بعرض‬
49
‫فى‬ ‫الشرطية‬ ‫الجمل‬ ‫شرح‬ ‫من‬ ‫انتهينا‬ ‫قد‬ ‫نكون‬ ‫هنا‬
‫تعلم‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ، ‫السى‬ ‫لغة‬
‫إستخدام‬ ‫كيفية‬ ‫ت‬
‫خالل‬ ‫من‬ ‫و‬ ، ‫الصور‬ ‫أبسط‬ ‫فى‬ ‫الشرطية‬ ‫الجمل‬
‫بالتأكيد‬ ‫التى‬ ‫القادمة‬ ‫المواضيع‬ ‫فى‬ ‫البرامج‬ ‫و‬ ‫األمثلة‬
‫ستألف‬ ، ‫الشرطية‬ ‫الجمل‬ ‫من‬ ‫الكثير‬ ‫فيها‬ ‫سنستخدم‬
‫برامجك‬ ‫فى‬ ‫توظيفها‬ ‫كيفية‬ ‫و‬ ‫معها‬ ‫العمل‬ ‫كيفية‬ ‫أكثر‬
‫مع‬ ‫اآلن‬ ‫أتركك‬ .. ‫السهولة‬ ‫بمنتهى‬ ‫الخاصة‬
. ‫التمارين‬
‫تمارين‬
1
(
‫منتج‬ ‫من‬ ‫المشتريات‬ ‫قيمة‬ ‫لحساب‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
‫منه‬ ‫الواحدة‬ ‫القطعة‬ ‫قيمة‬ ‫معين‬
12
‫و‬ ،‫جنيهات‬
‫من‬ ‫اكثر‬ ‫كمية‬ ‫أى‬ ‫على‬ ‫تخفيض‬ ‫يوجد‬
52
‫قطعة‬
‫يبلغ‬
12
%
‫من‬ ‫أكثر‬ ‫كمية‬ ‫أى‬ ‫على‬ ‫و‬
122
‫قطعة‬
‫يبلغ‬
22
%
‫شرائها‬ ‫المراد‬ ‫الكمية‬ ‫استقبل‬ ،‫تنسى‬ ‫ال‬ ،
‫قيمة‬ ‫بطباعة‬ ‫قم‬ ‫ثم‬ ‫المستخدم‬ ‫من‬
‫بعد‬ ‫المشتريات‬
.‫المناسب‬ ‫التخفيض‬
51
2
(
‫فى‬ ‫الطالب‬ ‫درجة‬ ‫بإستقبال‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
‫حيث‬ ) ‫حرفية‬ ‫صورة‬ ‫فى‬ ‫يطبعها‬ ‫ثم‬ ‫رقمية‬ ‫صورة‬
:
.) F = 0 – 50 ، D = 65 – 50 ، C = 75
– 65 ، B = 85 – 75 ، A = 85 - 100
3
(
‫بإستخدام‬ ‫حاسبة‬ ‫آلة‬ ‫برنامج‬ ‫اكتب‬
Switch
case
.
4
(
‫على‬ ‫نقطة‬ ‫المستخدم‬ ‫من‬ ‫يستقبل‬ ‫برنامجأ‬ ‫اكتب‬
‫المستوى‬
x-y
‫كانت‬ ‫إذا‬ ‫عما‬ ‫بطباعة‬ ‫يقوم‬ ‫ثم‬ ،
‫من‬ ‫ربع‬ ‫فى‬ ‫تقع‬ ‫أم‬ ‫المحورين‬ ‫أحد‬ ‫على‬ ‫تقع‬ ‫النقطة‬
.‫تقع‬ ‫ربع‬ ‫أى‬ ‫فى‬ ‫و‬ ‫األربعة‬ ‫األرباع‬
5
(
‫من‬ ‫التاريخ‬ ‫بإستقبال‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
‫هيئة‬ ‫على‬ ‫المستخدم‬
3
،‫اليوم‬ ‫األول‬ ،‫صحيحة‬ ‫أرقام‬
‫هذا‬ ‫بطباعة‬ ‫يقوم‬ ‫ثم‬ .‫السنة‬ ‫الثالث‬ ‫و‬،‫الشهر‬ ‫الثانى‬ ‫و‬
‫الهيئة‬ ‫هذه‬ ‫على‬ ‫التاريخ‬
October 1993 8
th
‫الدخل‬ ‫كان‬ ‫إذا‬
8
10
1993
‫الحظ‬ ) .
nd
, 2
st
1
rd
, 23
nd
, 22
st
, 21
rd
, 3
‫يأخذ‬ ‫الباقى‬ ‫و‬
th
‫مثل‬
4
th
, 5
th
.‫هكذا‬ ‫و‬ ,
50
‫الرابع‬ ‫الفصل‬
‫الـــتـــكــ‬ ‫الحــــلــقـــات‬
‫ـراريـــة‬
‫؟‬ ‫الفصل‬ ‫هذا‬ ‫نهاية‬ ‫فى‬ ‫تعلمته‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ‫ما‬

‫التكرارية‬ ‫الحلقة‬
while
.

‫التكرارية‬ ‫الحلقة‬
do-while
.

‫التكرارية‬ ‫الحلقة‬
for

‫األمرين‬
.
. continue break
‫؟‬ ‫التكرارية‬ ‫الحلقات‬ ‫نستخدم‬ ‫لماذا‬
‫جملة‬ ‫طباعة‬ ‫أمر‬ ‫ليكن‬ ‫و‬ ‫معين‬ ‫أمر‬ ‫بتنفيذ‬ ‫تقوم‬ ‫أن‬ ‫أردت‬ ‫إذا‬
‫م‬
‫عينة‬
12
‫بكتابة‬ ‫ستقوم‬ .. ‫؟‬ ‫ستفعل‬ ‫ماذا‬ ، ‫مرات‬
12
‫جمل‬
‫طباعتها‬ ‫أردت‬ ‫إذا‬ .. ‫؟‬ ‫طباعة‬
122
‫سيصبح‬ .. ‫؟‬ ‫مرة‬
‫هذا‬ ‫الطباعة‬ ‫جملة‬ ‫كتابة‬ ‫فى‬ ‫استمريت‬ ‫إذا‬ ً‫ا‬‫سخيف‬ ‫األمر‬
‫أن‬ ‫يمكنها‬ ‫التكرارية‬ ‫الحلقات‬ .‫المرات‬ ‫من‬ ‫الكبير‬ ‫العدد‬
‫معينة‬ ‫مجموعة‬ ‫بتكرار‬ ‫تقوم‬ ‫فهى‬ ، ‫المشكلة‬ ‫هذه‬ ‫مع‬ ‫تتعامل‬
‫م‬
‫أو‬ ‫المرات‬ ‫من‬ ‫محدد‬ ‫عدد‬ ‫سواء‬ ‫مرة‬ ‫من‬ ‫أكثر‬ ‫األوامر‬ ‫ن‬
.‫عنده‬ ‫التكرار‬ ‫يتوقف‬ ‫معين‬ ‫حدث‬ ‫وقوع‬ ‫حتى‬ ‫تكرارها‬
52
‫التكرارية‬ ‫الحلقة‬
while
‫بشرحها‬ ‫سنقوم‬ ‫التى‬ ‫التكرارية‬ ‫الحلقات‬ ‫من‬ ‫نوع‬ ‫أول‬ ‫هى‬
.‫كاآلتى‬ ‫العام‬ ‫بناؤها‬ ‫و‬ ، ‫الفصل‬ ‫هذا‬ ‫فى‬
‫ت‬ ‫تكرار‬ ‫سيستمر‬ ‫الشرط‬ ‫تحقق‬ ‫حالة‬ ‫فى‬
‫التى‬ ‫األوامر‬ ‫نفيذ‬
‫و‬ ‫التكرار‬ ‫عملية‬ ‫فتتوقف‬ ‫الشرط‬ ‫ينتفى‬ ‫حتى‬ ، ‫بداخلها‬
.‫التكرارية‬ ‫الحلقة‬ ‫بعد‬ ‫من‬ ‫البرنامج‬ ‫تنفيذ‬ ‫ستكمل‬ُ‫ي‬
‫مثال‬
‫الشرط‬ ‫إختبار‬ ‫يتم‬ ‫التكرارية‬ ‫الحلقة‬ ‫هذه‬ ‫فى‬
i < 10
‫كل‬ ‫فى‬
‫قيمة‬ ‫تكون‬ ‫البداية‬ ‫فى‬ ‫و‬ ، ‫الطباعة‬ ‫جملة‬ ‫تنفيذ‬ ‫ليتم‬ ‫مرة‬
i
= 0
‫يعنى‬ ‫هذا‬ ‫و‬
‫الطباعة‬ ‫جملة‬ ‫تنفيذ‬ ‫فيتم‬ ، ‫الشرط‬ ‫تحقق‬
53
‫قيمة‬ ‫تزداد‬ ‫ثم‬
i
‫األمر‬ ‫على‬ ً‫ا‬‫بناء‬ ‫واحد‬ ‫بمقدار‬
i++
)
‫الشرط‬ ‫إختبار‬ ‫من‬ ‫جديد‬ ‫من‬ ‫الحلقة‬ ‫تبدأ‬ ‫ثم‬ ، ( ‫العداد‬
‫ألن‬ ‫الشرط‬ ‫سيتحقق‬ ‫وحينها‬
i = 1
‫من‬ ‫أقل‬ ‫أنها‬ ‫أى‬
10
‫تكون‬ ‫حتى‬ ‫هكذا‬ ‫و‬ ‫الطباعة‬ ‫جملة‬ ‫تنفيذ‬ ‫فيتم‬
i = 10
‫و‬
‫ال‬ ‫يتحقق‬ ‫ال‬ ‫حينها‬
‫الموجودة‬ ‫األوامر‬ ‫تنفيذ‬ ‫يتم‬ ‫فال‬ ‫شرط‬
. ‫الحلقة‬ ‫بداخل‬
‫المثال‬ ‫خرج‬
‫بـ‬ ‫الخاص‬ ‫العداد‬ ‫أن‬ ‫الحظ‬
while loop
‫باقى‬ ‫مع‬ ‫يكتب‬
‫المتغير‬ ‫تعريف‬ ‫أن‬ ً‫ا‬‫أيض‬ ‫حظ‬ ‫ال‬ ‫و‬ ، ‫الحلقة‬ ‫بداخل‬ ‫األوامر‬
i
‫فى‬ ‫البدء‬ ‫قبل‬ ‫بخارجها‬ ‫تعريفه‬ ‫تم‬ ‫الحلقة‬ ‫فى‬ ‫المستخدم‬
.‫التكرارية‬ ‫الحلقة‬
‫ال‬ ‫الحلقة‬
‫تكرارية‬
do while
‫على‬ ‫تعرفنا‬ ‫أن‬ ‫بعد‬ ‫و‬
while loop
‫على‬ ‫اآلن‬ ‫نتعرف‬
‫وهو‬ ‫منها‬ ‫خاص‬ ‫نوع‬
do-while loop
‫فى‬ ‫تتخذ‬ ‫و‬ ،
.‫اآلتى‬ ‫الشكل‬ ‫العام‬ ‫بنائها‬
54
‫حلقة‬ ‫به‬ ‫تقوم‬ ‫ما‬ ‫بنفس‬ ‫تقوم‬ ‫الحلقة‬ ‫هذه‬
while loop
،
‫و‬ ، ‫الشرط‬ ‫إختبار‬ ‫قبل‬ ‫واحدة‬ ‫مرة‬ ‫األمر‬ ‫بتنفيذ‬ ‫تقوم‬ ‫لكنها‬ ‫و‬
‫إلى‬ ‫انتبه‬
‫فى‬ ‫موجودة‬ ‫غير‬ ‫ألنها‬ ‫الشرط‬ ‫بعد‬ ; ‫وجود‬
while loop
.
‫تستخدم‬
do-while loop
‫بـ‬ ‫مقارنة‬ ً‫ا‬‫نادر‬
while
loop
‫و‬
for loop
‫الحلقة‬ ‫لهذه‬ ‫إستخدام‬ ‫أشهر‬ ‫و‬ ،
‫من‬ ‫مجموعة‬ ‫تكرر‬ ‫أن‬ ‫تريد‬ ‫عندما‬ ‫إستخدامها‬ ‫هو‬ ‫التكرارية‬
.‫واحدة‬ ‫مرة‬ ‫األقل‬ ‫على‬ ‫األوامر‬
‫مثال‬
‫و‬ ‫السابق‬ ‫المثال‬ ‫نفس‬
‫بإستخدام‬ ‫لكن‬
do while
55
‫التكرارية‬ ‫الحلقة‬
for
‫إستخدام‬ ‫المبرمجين‬ ‫من‬ ‫كثير‬ ‫يفضل‬
for loop
‫اغلب‬ ‫فى‬
‫فى‬ ‫المستخدم‬ ‫المتغير‬ ‫تعريف‬ ‫يتم‬ ‫ببساطة‬ ‫ألنه‬ ، ‫األحيان‬
‫هو‬ ‫و‬ ، ‫فقط‬ ‫واحد‬ ‫سطر‬ ‫فى‬ ‫العداد‬ ‫و‬ ‫الشرط‬ ‫تحديد‬ ‫و‬ ‫الحلقة‬
‫البناء‬ ‫هو‬ ‫هذا‬ ‫و‬ .‫المبرمج‬ ‫على‬ ً‫ا‬‫كثير‬ ‫يسهل‬ ‫ما‬
‫لـ‬ ‫العام‬
for
loop
.
‫مثال‬
‫بإستخدام‬ ‫لكن‬ ‫و‬ ‫السابقين‬ ‫المثالين‬ ‫نفس‬
for
‫و‬، ‫السابقة‬ ‫الحلقات‬ ‫به‬ ‫قامت‬ ‫بما‬ ‫تقوم‬ ً‫ا‬‫أيض‬ ‫الحلقة‬ ‫هذه‬
‫لـ‬ ً‫ا‬‫تمام‬ ‫المختلف‬ ‫التكوين‬ ‫الحظ‬ ‫لكن‬
for loop
‫الحظ‬ ‫و‬ ،
‫إنه‬ ‫ألذكرك‬ }{ ‫وضع‬ ‫عدم‬ ‫هنا‬ ‫تعمدت‬ ‫و‬ .‫تركيبها‬ ‫بساطة‬
‫كان‬ ‫حال‬ ‫فى‬ ‫وضعها‬ ‫عدم‬ ‫يمكن‬
‫أمر‬ ‫تنفيذها‬ ‫المراد‬ ‫األوامر‬ ‫ت‬
‫جملة‬ ‫فى‬ ‫سواء‬ ‫واحد‬
if
‫الحلقات‬ ‫من‬ ‫أى‬ ‫فى‬ ‫أو‬ ‫الشرطية‬
.‫التكرارية‬
‫تعريف‬ ) ‫الثالثة‬ ‫المعامالت‬ ‫من‬ ‫أى‬ ‫عن‬ ‫اإلستغناء‬ ‫يمكن‬
‫عنهم‬ ‫اإلستغناء‬ ‫يمكن‬ ‫أو‬ ( ‫العداد‬ ‫و‬ ‫الشرط‬ ‫و‬ ‫المتغير‬
56
‫ينتج‬ ‫لن‬ ‫و‬ ، ‫ذلك‬ ‫أردت‬ ‫ما‬ ‫إذا‬ ‫فارغين‬ ‫تركهم‬ ‫و‬ ً‫ا‬‫جميع‬
‫أى‬ ‫عن‬ ‫هذا‬
.‫التالى‬ ‫بالشكل‬ ‫يكون‬ ‫أن‬ ‫يجب‬ ‫لكن‬ ‫و‬ ‫أخطاء‬
‫األمران‬
continue
‫و‬
break
‫الحلقات‬ ‫مع‬ ‫األحيان‬ ‫أغلب‬ ‫فى‬ ‫األمران‬ ‫هذان‬ ‫يستخدم‬
.‫اآلخر‬ ‫عن‬ ‫أحدهما‬ ‫عمل‬ ‫يختلف‬ ‫و‬ ، ‫التكرارية‬
break
‫األمر‬
‫و‬ ، ً‫ا‬‫فور‬ ‫التكرارية‬ ‫الحلقة‬ ‫من‬ ‫بالخروج‬ ‫األمر‬ ‫هذا‬ ‫يقوم‬
‫إست‬ ‫يتم‬ ‫ما‬ ً‫ا‬‫غالب‬
‫تنفيذ‬ ‫يتم‬ ، ‫تحققه‬ ‫تم‬ ‫إذا‬ ‫معين‬ ‫شرط‬ ‫خدام‬
‫األمر‬
break
.‫التكرارية‬ ‫الحلقة‬ ‫من‬ ‫الخروج‬ ‫و‬
57
‫مثال‬
‫األعداد‬ ‫بطباعة‬ ‫يقوم‬ ‫البرنامج‬ ‫هذا‬ ‫أن‬ ‫المفترض‬ ‫من‬
‫من‬ ‫الصحيحة‬
1
‫إلى‬
9
‫جملة‬ ‫بإدخال‬ ‫قمنا‬ ‫لكننا‬ ‫و‬ ،
‫أمر‬ ‫بتفيذ‬ ‫تقوم‬ ‫شرطية‬
break
‫تكون‬ ‫عندما‬
i
‫تساوى‬
5
‫م‬ ‫الخروج‬ ‫سيتم‬ ‫و‬ ،
، ‫الحال‬ ‫فى‬ ً‫ا‬‫تمام‬ ‫التكرارية‬ ‫الحلقة‬ ‫ن‬
‫رقم‬ ‫بطباعة‬ ‫ستقوم‬ ‫التى‬ ‫الطباعة‬ ‫جملة‬ ‫تنفيذ‬ ‫يتم‬ ‫فال‬
5
‫و‬ ،
.‫تكرارات‬ ‫من‬ ‫بعدها‬ ‫ما‬
‫المثال‬ ‫خرج‬
.‫كاآلتى‬ ‫السابق‬ ‫المثال‬ ‫خرج‬ ‫فيكون‬
58
‫األمر‬
continue
‫األمر‬ ‫يقوم‬
continue
‫ما‬ ‫تنفيذ‬ ‫بعدم‬ ‫تنفيذه‬ ‫عند‬
‫ا‬ ‫أوامر‬ ‫من‬ ‫تبقى‬
‫و‬ ، ‫فقط‬ ‫الحالية‬ ‫التكرارية‬ ‫لحلقة‬
.‫طبيعية‬ ‫بصورة‬ ‫تليها‬ ‫التى‬ ‫الحلقات‬ ‫باقى‬ ‫بتنفيذ‬ ‫يقوم‬
‫مثال‬
‫األمر‬ ‫إستبدال‬ ‫تم‬ ‫لكن‬ ‫و‬ ‫السابق‬ ‫المثال‬ ‫نفس‬
break
‫باألمر‬
continue
.
‫تكون‬ ‫عندما‬ ‫الحالة‬ ‫هذه‬ ‫فى‬
i
‫تساوى‬
5
‫سيقوم‬ ،
‫األمر‬ ‫بتنفيذ‬ ‫البرنامج‬
continue
‫سيتم‬ ‫و‬ ،
59
‫ا‬
‫بعدها‬ ‫تأتى‬ ‫أوامر‬ ‫أى‬ ‫عن‬ ‫لتغاضى‬
–
‫جملة‬
‫الرقم‬ ‫بطباعة‬ ‫تقوم‬ ‫التى‬ ‫الطباعة‬
5
-
‫لكن‬ ‫و‬
‫بعدها‬ ‫طبيعى‬ ‫بشكل‬ ‫عملها‬ ‫التكرارية‬ ‫الحلقة‬ ‫ستكمل‬
‫رقم‬ ‫طباعة‬ ‫فيتم‬
6
‫و‬
7
‫و‬
8
‫و‬
9
.
‫المثال‬ ‫خرج‬
‫الرقم‬ ‫طباعة‬ ‫يتم‬ ‫لم‬ ‫أنه‬ ‫هنا‬ ‫الحظ‬
5
.
‫تطبيقى‬ ‫برنامج‬
‫تخم‬ ‫لعبة‬ ‫بتصميم‬ ‫سنقوم‬
‫سأختار‬ ‫أنى‬ ‫بمعنى‬ ، ‫ين‬
‫هذا‬ ‫تخمين‬ ‫المستخدم‬ ‫على‬ ‫و‬ ، ‫محدد‬ ‫مدى‬ ‫فى‬ ً‫ا‬‫رقم‬
‫لديه‬ ‫و‬ ‫صحيحة‬ ‫بصورة‬ ‫الرقم‬
3
‫متاحة‬ ‫محاوالت‬
‫نفاذ‬ ‫قبل‬ ً‫ا‬‫صحيح‬ ‫الرقم‬ ‫يخمن‬ ‫أن‬ ‫عليه‬ ‫فقط‬
.‫محاوالته‬
61
60
‫الشرح‬
.‫سنستخدمها‬ ‫التى‬ ‫المتغيرات‬ ‫بتعريف‬ ‫نقوم‬
‫متغي‬ ‫نعرف‬
‫و‬ ‫إبتدائية‬ ‫قيمة‬ ‫نعطيه‬ ‫و‬ ‫نختاره‬ ‫الذى‬ ‫للرقم‬ ‫ر‬
‫ليكن‬
4
‫بتخمينه‬ ‫سيقوم‬ ‫الذى‬ ‫الرقم‬ ‫إلستقبال‬ ‫متغير‬ ‫و‬ ،
.‫المستخدم‬
‫جمل‬ ‫طباعة‬ ‫و‬ ، ‫للبرنامج‬ ‫العام‬ ‫الشكل‬ ‫برسم‬ ‫نقوم‬
.‫كاآلتى‬ ، ‫اللعبة‬ ‫فكرة‬ ‫توضح‬ ‫للمستخدم‬
‫بعمل‬ ‫نقوم‬ ‫ثم‬
for loop
‫للمستخدم‬ ‫تتيح‬
3
‫فقط‬ ‫محاوالت‬
‫يتم‬ ‫و‬،
، ‫خطأ‬ ‫أم‬ ً‫ا‬‫صحيح‬ ‫المدخل‬ ‫الرقم‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫إختبار‬
)‫المحدد‬ ‫المدى‬ ‫بداخل‬ ‫هو‬ ‫هل‬ ‫خطأ‬ ‫كان‬ ‫إذا‬ ‫و‬
20
–
1
‫أم‬ (
.‫كاآلتى‬ ،‫خارحه‬
62
‫قيمة‬ ‫المحاوالت‬ ‫لعدد‬ ‫أعطينا‬ ‫أننا‬ ‫هنا‬ ‫فنالحظ‬
‫إبتدائية‬
3
‫أن‬ ‫الشرط‬ ‫و‬ ‫واحد‬ ‫مرة‬ ‫كل‬ ‫يقل‬ ‫العداد‬ ‫و‬
‫عن‬ ‫تقل‬ ‫ال‬ ‫المحاوالت‬
1
‫ستكرر‬ ‫الحلقة‬ ‫أن‬ ‫أى‬ ،
‫نف‬
‫سها‬
3
‫نقوم‬ ،‫حلقة‬ ‫كل‬ ‫بداية‬ ‫فى‬.‫أقصى‬ ‫كحد‬ ‫مرات‬
‫من‬ ‫نطلب‬ ‫و‬ ‫المتبقية‬ ‫المحاوالت‬ ‫عدد‬ ‫بطباعة‬
.‫المدخل‬ ‫الرقم‬ ‫نستقبل‬ ‫ثم‬ ‫الرقم‬ ‫إدخال‬ ‫المستخدم‬
‫بها‬ ‫الثانى‬ ‫النوع‬ ‫محدد‬ ، ‫األولى‬ ‫الطباعة‬ ‫جملة‬
%s
‫سيكون‬ ‫القادم‬ ‫الثانى‬ ‫المعامل‬ ‫ان‬ ‫أى‬
string
‫و‬ ،
‫الجملة‬ ‫هذه‬ ‫ما‬ ‫لكن‬
tries == 1 ? “try”:
“tries”
ً‫ا‬‫تمام‬ ‫تساوى‬ ‫هذه‬
if (tries == 1)
“try” else “tries”
‫عدد‬ ‫كانت‬ ‫إذا‬ ‫أنه‬ ‫أى‬ ،
‫طباعة‬ ‫فيتم‬ ‫واحدة‬ ‫المحاوالت‬
try
‫غير‬ ‫كان‬ ‫إذا‬ ‫و‬
63
‫فأطبع‬ ‫أكبر‬ ‫أى‬ ‫ذلك‬
tries
‫التى‬ ‫الجملة‬ ‫فهذه‬ ،
‫لـ‬ ‫اختصار‬ ‫مجرد‬ ‫رأيتها‬
if
.
‫إ‬ ، ‫ال‬ ‫أم‬ ً‫ا‬‫صحيح‬ ‫الرقم‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫بإختبار‬ ‫قمنا‬ ‫ثم‬
‫كان‬ ‫ذا‬
‫تخمينه‬ ‫بأن‬ ‫المستخدم‬ ‫تخبر‬ ‫جملة‬ ‫بطباعة‬ ‫نقوم‬ ً‫ا‬‫صحيح‬
‫االمر‬ ‫طريق‬ ‫عن‬ ‫البرنامج‬ ‫ننهى‬ ‫ثم‬ ً‫ا‬‫صحيح‬ ‫كان‬
return
0
‫من‬ ‫المدى‬ ‫فى‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫فنختبره‬ ‫خطأ‬ ‫كان‬ ‫إذا‬ ‫أما‬ ،
1
‫إلى‬
20
‫أن‬ ‫المستخدم‬ ‫أخبرنا‬ ،‫المدى‬ ‫فى‬ ‫كان‬ ‫إذا‬ . ‫ال‬ ‫أم‬
‫أخ‬ ‫المدى‬ ‫غير‬ ‫فى‬ ‫كان‬ ‫إذا‬ ‫و‬ ،‫صحيح‬ ‫غير‬ ‫اختياره‬
‫أن‬ ‫برناه‬
.‫المدى‬ ‫خارج‬ ‫خمنه‬ ‫الذى‬ ‫الرقم‬
‫بالرقم‬ ‫المستخدم‬ ‫يأتى‬ ‫لم‬ ‫و‬ ‫محاوالت‬ ‫الثالث‬ ‫انتهت‬ ‫فإذا‬
‫الـ‬ ‫تنتهى‬ ‫الصحيح‬
for loop
‫الـ‬ ‫بعد‬ ‫فنطبع‬ ،
loop
،‫الثالثة‬ ‫محاوالته‬ ‫استنفذ‬ ‫قد‬ ‫أنه‬ ‫المستخدم‬ ‫تخبر‬ ‫جملة‬
.‫كاآلتى‬
64
‫البرنامج‬ ‫اختبار‬
‫لنت‬ ‫البرنامج‬ ‫نجرب‬ ‫اآلن‬ ‫و‬
،‫الصحيح‬ ‫بالشكل‬ ‫يعمل‬ ‫إنه‬ ‫أكد‬
‫خارجه‬ ‫أخرى‬ ‫و‬ ‫المدى‬ ‫داخل‬ ‫فى‬ ‫خاطئة‬ ‫قيمة‬ ‫له‬ ‫ندخل‬
.‫كاآلتى‬ ‫متوقع‬ ‫هو‬ ‫كما‬ ‫الخرج‬ ‫فيكون‬ .‫صحيحة‬ ‫وأخيرة‬
‫تمارين‬
1
-
‫و‬ ‫الكبرى‬ ‫القيمة‬ ‫بحساب‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
‫األرقام‬ ‫من‬ ‫مجموعة‬ ‫بين‬ ‫من‬ ‫الصغرى‬ ‫القيمة‬
‫مدى‬ ‫بطباعة‬ ‫يقوم‬ ‫و‬، ‫المستخدم‬ ‫بإدخالها‬ ‫يقوم‬
‫من‬ ‫المدخلة‬ ‫القيم‬ ‫تلك‬ ‫عدد‬ ‫استقبل‬ .‫القيم‬ ‫هذه‬
.ً‫ال‬‫أو‬ ‫المستخدم‬
65
2
-
‫مجموعة‬ ‫متوسط‬ ‫بحساب‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
‫كذلك‬ ‫و‬ ،‫المستخدم‬ ‫من‬ ‫إستقبالها‬ ‫يتم‬ ‫األرقام‬ ‫من‬
‫اإلنحراف‬ ‫حساب‬ ‫و‬ ،‫القيم‬ ‫هذه‬ ‫مربعات‬ ‫مجموع‬
‫المعيارى‬ ‫اإلنحراف‬ ‫بأن‬ ً‫ا‬‫علم‬. ‫لهم‬ ‫المعيارى‬
‫جذر‬ ‫يساوى‬
«
‫مقسوم‬ ‫المربعات‬ ‫مجموع‬
‫على‬ ً‫ا‬
‫المتوسط‬ ‫مربع‬ ‫من‬ ً‫ا‬‫مطروح‬ ‫ثم‬ ‫القيم‬ ‫عدد‬
.»
‫بـ‬ ‫اسعتن‬
math.h
‫بإستخدام‬ ‫الجذر‬ ‫لحساب‬
‫دالة‬
sqrt()
.
3
-
‫المشترك‬ ‫القاسم‬ ‫بحساب‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
.‫بإدخالهم‬ ‫المستخدم‬ ‫يقوم‬ ‫رقمين‬ ‫بين‬ ‫األكبر‬
4
-
‫يتيح‬ ‫بحيث‬ ، ‫التخمين‬ ‫لعبة‬ ‫برنامج‬ ‫عدل‬
‫يل‬ ‫أن‬ ‫يريد‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫اختيار‬ ‫للمستخدم‬
‫عب‬
‫اختار‬ ‫إذا‬ ، ‫ال‬ ‫أم‬ ‫اللعبة‬ ‫إنتهاء‬ ‫بعد‬ ‫أخرى‬ ‫مرة‬
‫فى‬ ‫اللعبة‬ ‫تبدأ‬ ‫أن‬ ‫يجب‬ ‫أخرى‬ ‫مرة‬ ‫يلعب‬ ‫أن‬
.‫جديد‬ ‫من‬ ‫العمل‬
5
-
‫أول‬ ‫بطباعة‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
52
‫فى‬ ‫عدد‬
‫المتتابعة‬ ‫هذه‬ ‫بأن‬ ً‫ا‬‫علم‬ ، ‫فيبوناتشى‬ ‫متتابعة‬
‫مجموع‬ ‫من‬ ‫عدد‬ ‫كل‬ ‫فيها‬ ‫يتكون‬ ‫الحسابية‬
‫ثان‬ ‫و‬ ‫أول‬ ‫و‬ ، ‫له‬ ‫السابقين‬ ‫العددين‬
‫فى‬ ‫رقم‬ ‫ى‬
‫يساوى‬ ‫السلسلة‬
1
.
.(
…
8
,
5
,
3
,
2
,
1
,
1
.‫هكذا‬ ‫و‬ )
66
‫الخامس‬ ‫الفصل‬
‫ـات‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ف‬‫ـو‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ف‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ص‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫م‬‫ال‬
‫هذا‬ ‫نهاية‬ ‫فى‬ ‫تعلمته‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ‫ما‬
‫؟‬ ‫الفصل‬
‫يتم‬ ‫لماذا‬ ‫و‬ ، ‫المصفوفات‬ ‫هى‬ ‫ما‬
.‫إستخدامها‬
.‫المصفوفات‬ ‫تعريف‬ ‫كيفية‬
‫المصفوفا‬
‫الثنائية‬ ‫ت‬
.
.‫المصفوفات‬ ‫على‬ ‫العمليات‬ ‫أشهر‬
67
‫؟‬ ‫المصفوفات‬ ‫إستخدام‬ ‫يتم‬ ‫لماذا‬
‫إستخدام‬ ‫أردت‬ ‫إذا‬
3
‫النوع‬ ‫من‬ ً‫ال‬‫مث‬ ‫متغيرات‬
int
‫ماذا‬ ،
‫حدة‬ ‫على‬ ‫منهم‬ ‫واحد‬ ‫كل‬ ‫بتعريف‬ ‫ستقوم‬ .. ‫؟‬ ‫ستفعل‬
‫بتعريف‬ ‫تقوم‬ ‫أن‬ ‫أردت‬ ‫أنك‬ ‫نفرض‬ .‫العادية‬ ‫بالطريقة‬
122
‫يص‬ ‫هنا‬ .. ‫؟‬ ‫متغير‬
‫يتم‬ ‫لذلك‬ ، ‫مستحيل‬ ‫شبه‬ ‫األمر‬ ‫بح‬
‫من‬ ‫مجموعة‬ ‫بداخلها‬ ‫لتحتوى‬ ‫المصفوفات‬ ‫إستخدام‬
.‫النوع‬ ‫نفس‬ ‫من‬ ‫العناصر‬
‫؟‬ ‫المصفوفات‬ ‫هى‬ ‫ما‬
) ‫البيانات‬ ‫هياكل‬ ‫أنواع‬ ‫أشهر‬ ‫هى‬ ‫المصفوفات‬
data
structure
(
–
‫تجمعها‬ ‫البيانات‬ ‫من‬ ‫مجموعة‬ ‫هى‬ ‫و‬
‫معينة‬ ‫صفة‬
-
‫المصف‬ ‫عناصر‬ ‫تجمع‬ ‫التى‬ ‫الصفة‬ ‫و‬ ،
‫وفة‬
. ‫النوع‬ ‫نفس‬ ‫من‬ ‫أنهم‬ ‫هى‬
‫المصفوفات‬ ‫تعريف‬
‫قوسين‬ ‫زيادة‬ ‫مع‬ ، ‫آخر‬ ‫متغير‬ ‫كأى‬ ‫المصفوفة‬ ‫تعريف‬ ‫يتم‬
‫عدد‬ ‫وضع‬ ‫يتم‬ ‫بداخله‬ ‫و‬ ‫المتغير‬ ‫إسم‬ ‫بعد‬ ] [ ‫النوع‬ ‫من‬
‫من‬ ‫مصفوفة‬ ‫تعريف‬ ‫يتم‬ ً‫ال‬‫فمث‬ .‫المصفوفة‬ ‫تلك‬ ‫عناصر‬
‫النوع‬
int
‫عناصرها‬ ‫عدد‬
12
.‫كاآلتى‬
68
‫لهذه‬ ‫نضع‬ ‫أن‬ ‫يمكننا‬ ‫و‬
‫التى‬ ‫اإلبتدائية‬ ‫القيم‬ ‫المصفوفة‬
‫عدد‬ ‫وضع‬ ‫عن‬ ‫اإلستغناء‬ ‫يمكن‬ ‫أنه‬ ‫الحظ‬ ‫و‬ ، ‫تحملها‬
‫أثناء‬ ‫إبتدائية‬ ‫قيم‬ ‫لها‬ ‫وضع‬ ‫تم‬ ‫إذا‬ ‫المصفوفة‬ ‫عناصر‬
. ‫اآلتى‬ ‫بالشكل‬ ‫كما‬ .‫التعريف‬
‫الذاكرة‬ ‫فى‬ ‫مصفوفة‬ ‫شكل‬ ‫تخيل‬ ‫يمكنك‬ ‫و‬
-
‫عناصرها‬
16
{
,
8
,
4
,
2
,
1
}
-
.‫بالشكل‬ ‫كما‬
‫رتبة‬ ‫أن‬ ‫الحظ‬
‫ليس‬ ‫و‬ ‫صفر‬ ‫من‬ ‫تبدأ‬ ‫العناصر‬
1
‫كان‬ ‫لذلك‬ ،
‫و‬ ،‫بواحد‬ ‫المصفوفة‬ ‫عناصر‬ ‫عدد‬ ‫من‬ ‫أقل‬ ‫عنصر‬ ‫آخر‬ ‫رتبة‬
‫رتبته‬ ‫طريق‬ ‫عن‬ ‫المصفوفة‬ ‫فى‬ ‫عنصر‬ ‫ألى‬ ‫الوصول‬ ‫يمكننا‬
‫تعاملنا‬ ‫آخر‬ ‫متغير‬ ‫أى‬ ‫مثل‬ ‫مثله‬ ‫عملية‬ ‫أى‬ ‫فى‬ ‫استخدامه‬ ‫ثم‬
‫و‬ ‫األول‬ ‫العنصر‬ ‫نجمع‬ ‫أن‬ ‫أردنا‬ ‫لو‬ ً‫ال‬‫فمث‬ ، ‫قبل‬ ‫من‬ ‫معه‬
‫هذ‬ ‫فى‬ ‫األخير‬
، ‫آخر‬ ‫متغير‬ ‫فى‬ ‫نحفظهم‬ ‫و‬ ‫المصفوفة‬ ‫ه‬
.‫كاآلتى‬ ‫بذلك‬ ‫سنقوم‬
69
، ‫البعد‬ ‫أحادية‬ ‫السابقة‬ ‫الحاالت‬ ‫فى‬ ‫المصفوفات‬ ‫على‬ ‫يطلق‬
‫يتم‬ ‫و‬ ،‫أكثر‬ ‫أو‬ ‫ثالثة‬ ‫أو‬ ‫بعدين‬ ‫ذات‬ ‫مصفوفات‬ ‫هناك‬ ‫لكن‬ ‫و‬
‫مثال‬ ‫فى‬ ‫ذلك‬ ‫سنرى‬ ‫كما‬ ‫إبتدائية‬ ‫قيم‬ ‫إعطائهم‬ ‫و‬ ‫تعريفهم‬
‫الصفوف‬ ‫عدد‬ .‫البعدين‬ ‫ذات‬ ‫المصفوفات‬ ‫مع‬
‫فى‬ ‫يكتب‬
‫األقواس‬ ‫فى‬ ‫يكتب‬ ‫األعمدة‬ ‫عدد‬ ‫و‬، ‫األولى‬ ][ ‫األقواس‬
.‫الثانية‬
‫مصفوفة‬ ‫التالية‬ ‫المصفوفة‬
3
*
4
‫من‬ ‫مكونة‬ ‫أى‬ ،
3
‫و‬ ‫صفوف‬
4
‫الذاكرة‬ ‫فى‬ ‫شكلها‬ ‫تخيل‬ ‫يمكنك‬ ‫و‬، ‫أعمدة‬
.‫كاآلتى‬
71
‫على‬ ‫معينة‬ ‫عمليات‬ ‫إجراء‬ ‫أردنا‬ ‫لو‬ ‫ماذا‬ ‫لكن‬ ‫و‬
‫أر‬ ‫إذا‬ ً‫ال‬‫مث‬ ، ‫كلها‬ ‫المصفوفة‬ ‫عناصر‬
‫نطبع‬ ‫أن‬ ‫دنا‬
‫نقوم‬ ‫أو‬ ‫كلها‬ ‫نجمعها‬ ‫أو‬ ‫المصفوفة‬ ‫عناصر‬ ‫كل‬
‫إستخدام‬ ‫طريق‬ ‫عن‬ ‫بذلك‬ ‫سنقوم‬ .. ‫؟‬ ‫بترتيبها‬
‫مثال‬ . ‫التكرارية‬ ‫الحلقات‬
.‫المصفوفة‬ ‫عناصر‬ ‫جميع‬ ‫طباعة‬
‫مثال‬
.‫المستخدم‬ ‫من‬ ‫المصفوفة‬ ‫عناصر‬ ‫إستقبال‬
70
‫مثال‬
‫المستخدم‬ ‫من‬ ‫المصفوفة‬ ‫عناصر‬ ‫بإستقبال‬ ‫نقوم‬
‫ثم‬ ،
‫طباعة‬ ‫ثم‬ ،‫المصفوفة‬ ‫عناصر‬ ‫مجموع‬ ‫على‬ ‫نحصل‬
.‫الناتج‬
‫عن‬ ‫البحث‬ ‫المصفوفات‬ ‫على‬ ‫العمليات‬ ‫أشهر‬ ‫من‬ ‫و‬
‫ترتيب‬ ‫كذلك‬ ‫و‬ ، ‫معينة‬ ‫قيمة‬ ‫له‬ ‫عنصر‬ ‫رتبة‬
‫النوعين‬ ‫لكال‬ ‫سنتعرض‬ ‫و‬ ، ‫المصفوفات‬ ‫عناصر‬
.‫ألهميتهم‬ ‫العمليات‬ ‫من‬
72
‫مثال‬
، ‫معينة‬ ‫قيمة‬ ‫ذو‬ ‫عنصر‬ ‫رتبة‬ ‫عن‬ ‫البحث‬
‫ك‬ ‫نوضح‬
‫بالمثال‬ ‫العملية‬ ‫بتلك‬ ‫القيام‬ ‫يفية‬
.‫اآلتى‬
73
‫مثال‬
‫المثال‬ ‫هذا‬ ‫فى‬ ‫و‬ ، ‫المصفوفة‬ ‫عناصر‬ ‫ترتيب‬
ً‫ا‬‫تصاعدي‬ ‫المصفوفة‬ ‫عناصر‬ ‫بترتيب‬ ‫نقوم‬
74
‫فى‬ ‫عنصر‬ ‫كل‬ ‫مقارنة‬ ‫يتم‬ ‫المثال‬ ‫هذا‬ ‫فى‬
‫يليه‬ ‫بما‬ ‫األول‬ ‫العنصر‬ ‫من‬ ً‫ا‬‫إبتداء‬ ‫المصفوفة‬
‫الع‬ ‫من‬
‫العناصر‬ ‫تلك‬ ‫أحد‬ ‫كان‬ ‫فإذا‬ ، ‫ناصر‬
‫العنصرين‬ ‫قيمتى‬ ‫تبديل‬ ‫يتم‬ ‫منه‬ ‫أصغر‬
‫ثم‬ ، ‫الترتيب‬ ‫فى‬ ‫األول‬ ‫هو‬ ‫األصغر‬ ‫ليصبح‬
‫و‬ ‫المصفوفة‬ ‫فى‬ ‫الثانى‬ ‫العنصر‬ ‫إلى‬ ‫االنتقال‬
‫الحلقتين‬ ‫فى‬ ‫فنجد‬ .‫هكذا‬ ‫و‬ ‫بعده‬ ‫بما‬ ‫مقارنته‬
‫بالمرور‬ ‫تقوم‬ ‫األولى‬ ‫الحلقة‬ ، ‫التكراريتين‬
‫لتضع‬ ‫المصفوفة‬ ‫فى‬ ‫عنصر‬ ‫كل‬ ‫على‬
‫تحت‬ ‫ه‬
‫بعده‬ ‫عنصر‬ ‫كل‬ ‫على‬ ‫تمر‬ ‫الثانية‬ ‫و‬ ،‫اإلختبار‬
‫تم‬ ‫أنه‬ ‫الحظ‬ ‫و‬ ، ‫العنصر‬ ‫لهذا‬ ‫بالنسبة‬ ‫لتختبره‬
، ‫األخير‬ ‫عدا‬ ‫المصفوفة‬ ‫عناصر‬ ‫جميع‬ ‫إختبار‬
. ‫بعده‬ ‫عناصر‬ ‫يوجد‬ ‫ال‬ ‫ألنه‬
75
‫تطبيقى‬ ‫برنامج‬
‫لعبة‬ ‫تصميم‬
«
o
–
x
»
.‫العبان‬ ‫فيها‬ ‫يشترك‬
76
77
‫البرنامج‬ ‫شرح‬
‫عن‬ ‫لنعرض‬ ‫البعد‬ ‫ثنائية‬ ‫مصفوفة‬ ‫هو‬ ‫هنا‬ ‫نحتاجه‬ ‫ما‬ ‫أول‬
‫بتعريف‬ ً‫بداية‬ ‫سنقوم‬ ‫لذلك‬ ،‫للعبة‬ ‫المعهود‬ ‫الشكل‬ ‫طريقها‬
‫فى‬ ‫لالعبين‬ ‫إظهارها‬ ‫ليتم‬ ‫إبتدائية‬ ‫قيم‬ ‫إعطائها‬ ‫و‬ ‫مصفوفة‬
.‫كاآلتى‬ ،‫اللعبة‬ ‫بداية‬
‫المتغير‬ ‫بتعريف‬ ‫نقوم‬ ‫ثم‬
‫كتابة‬ ‫أثناء‬ ‫سنحتاجها‬ ‫التى‬ ‫ات‬
.‫البرنامج‬
‫المتغير‬
plays
‫التى‬ ‫اللعبات‬ ‫عدد‬ ‫لتخزين‬ ‫سنستخدمه‬
‫و‬ ، ‫اآلن‬ ‫حتى‬ ‫لعبت‬
slot
‫الالعب‬ ‫اختاره‬ ‫الذى‬ ‫المربع‬ ‫لرقم‬
،
row
‫و‬
column
‫للمربع‬ ‫العمود‬ ‫و‬ ‫الصف‬ ‫لتخزين‬
.‫الالعب‬ ‫قبل‬ ‫من‬ ‫إختياره‬ ‫تم‬ ‫الذى‬
‫اللعبة‬ ‫بداية‬ ‫شكل‬ ‫بعرض‬ ‫نقوم‬ ‫ثم‬
‫هذه‬ ‫طريق‬ ‫عن‬ ،
.‫المتداخلة‬ ‫التكرارية‬ ‫الحلقات‬
78
ً‫ا‬‫كثير‬ ‫ذلك‬ ‫قبل‬ ‫تعاملنا‬ ‫أننا‬ ‫إذ‬ ‫الكود‬ ‫فهم‬ ‫تستطيع‬ ‫أنك‬ ‫أظن‬ ‫و‬
‫الكود‬ ‫هذا‬ ‫و‬ ،‫عملها‬ ‫طريقة‬ ‫فهمنا‬ ‫و‬ ‫التكرارية‬ ‫الحلقات‬ ‫مع‬
.‫اآلتى‬ ‫الشكل‬ ‫بطباعة‬ ‫يقوم‬
‫و‬ ‫الالعب‬ ‫يختاره‬ ‫الذى‬ ‫المربع‬ ‫رقم‬ ‫إدخال‬ ‫بطلب‬ ‫اآلن‬ ‫سنقوم‬
‫ا‬ ‫فى‬ ‫حفظه‬
‫المخصص‬ ‫لمتغير‬
slot
‫بحساب‬ ‫نقوم‬ ‫ثم‬ ،
‫المتغيرين‬ ‫فى‬ ‫المختار‬ ‫بالمربع‬ ‫الخاص‬ ‫العمود‬ ‫و‬ ‫الصف‬
row
‫و‬
column
.‫كاآلتى‬ ,
79
‫و‬ ‫األول‬ ‫الالعب‬ ‫بين‬ ‫نميز‬ ‫إننا‬ ‫تالحظ‬ ‫الطباعة‬ ‫جملة‬ ‫فى‬
‫المتغير‬ ‫طريق‬ ‫عن‬ ‫الثانى‬ ‫الالعب‬
plays
ً‫ا‬‫فردي‬ ‫كان‬ ‫إذا‬
‫و‬ ،‫الحالية‬ ‫اللعبة‬ ‫صاحب‬ ‫هو‬ ‫األول‬ ‫الالعب‬ ‫كان‬
‫كان‬ ‫لو‬
‫الخاصة‬ ‫العالمة‬ ‫نطبع‬ ‫و‬ ،‫الثانى‬ ‫الالعب‬ ‫كان‬ ً‫ا‬‫زوجي‬
‫سواء‬
X
‫أو‬
O
‫الصف‬ ‫رقم‬ ‫لتحديد‬ ‫بالنسبة‬ ‫أما‬.‫منهم‬ ‫بكل‬
‫الرقم‬ ‫من‬ ‫واحد‬ ‫طرح‬ ‫طريق‬ ‫عن‬ ‫هذا‬ ‫فيمكننا‬ ، ‫العمود‬ ‫و‬
‫من‬ ‫تبدأ‬ ‫المصفوفة‬ ‫أن‬ ‫إذ‬ ‫المدخل‬
2
‫من‬ ‫ليس‬ ‫و‬
1
‫كما‬
‫المستخدم‬ ‫يدخله‬ ‫رقم‬ ‫أى‬ ‫فأن‬ ‫لذلك‬ ،‫للمستخدم‬ ‫يظهر‬
‫أكبر‬ ‫يكون‬
‫هذا‬ ‫بطرح‬ ‫نقوم‬ ‫لذا‬ ، ‫الحقيقى‬ ‫من‬ ‫بواحد‬
‫على‬ ‫بالقسمة‬ ‫نقوم‬ ‫ثم‬ ، ‫الواحد‬
3
‫الحصول‬ ‫أردنا‬ ‫إذا‬
‫على‬ ‫القسمة‬ ‫باقى‬ ‫إيجاد‬ ‫و‬ ، ‫الصفوف‬ ‫عدد‬ ‫على‬
3
‫إذا‬
‫تجربتها‬ ‫يمكنك‬ ‫و‬ ،‫األعمدة‬ ‫عدد‬ ‫على‬ ‫الحصول‬ ‫أردنا‬
.‫بنفسك‬
‫أدخلها‬ ‫التى‬ ‫العالمة‬ ‫المصفوفة‬ ‫فى‬ ‫نحفظ‬ ‫أن‬ ‫نريد‬ ‫اآلن‬
‫ا‬ ‫المربع‬ ‫فى‬ ‫الالعب‬
‫الجديد‬ ‫الشكل‬ ‫طباعة‬ ‫قم‬ ‫إختار‬ ‫لذى‬
‫التى‬ ‫التكرارية‬ ‫الحلقات‬ ‫نفس‬ ‫طريق‬ ‫عن‬ ‫بهذا‬ ‫نقوم‬ ‫و‬،
‫مع‬ ‫لكن‬ ‫و‬ ‫للعبة‬ ‫اإلبتدائى‬ ‫الشكل‬ ‫عرض‬ ‫فى‬ ‫إستخدمناها‬
‫الرقم‬ ‫من‬ ً‫ال‬ً‫د‬‫ب‬ ‫المدخلة‬ ‫العالمة‬ ‫لتظهر‬ ‫بسيط‬ ‫تغيير‬
.‫كاآلتى‬ ،‫المختار‬
81
‫أحد‬ ‫فاز‬ ‫قد‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫إختبار‬ ‫يجب‬ ‫اآلن‬ ‫و‬
‫أم‬ ‫الالعبين‬
‫مجموعة‬ ‫إختار‬ ‫عن‬ ‫بذلك‬ ‫نقوم‬ ‫و‬ . ‫ال‬
‫قد‬ ‫يكون‬ ‫أن‬ ‫يجب‬ ‫الفائز‬ ‫بأن‬ ‫تقضى‬ ‫الشروط‬ ‫من‬
ً‫ال‬‫كام‬ ً‫ا‬ً‫قطر‬ ‫أو‬ ً‫ال‬‫كام‬ ً‫ا‬ً‫د‬‫عمو‬ ‫أو‬ ً‫ال‬‫كام‬ ً‫ا‬‫صف‬ ‫أكمل‬
.‫كاآلتى‬ ‫اإلختبار‬ ‫بهذا‬ ‫نقوم‬ ‫و‬ ،‫الخاصة‬ ‫بعالمته‬
80
‫قطر‬ ‫إكتمال‬ ‫إختبرنا‬ ‫األولى‬ ‫الشرطية‬ ‫الجملة‬ ‫فى‬
‫التكر‬ ‫الحلقة‬ ‫فى‬ ‫و‬ ،‫عدمه‬ ‫من‬
‫الثانى‬ ‫الشرط‬ ‫و‬ ‫ارية‬
‫فى‬ ‫و‬ ،‫عدمه‬ ‫من‬ ‫عمود‬ ‫أو‬ ‫صف‬ ‫إكتمال‬ ‫إختربنا‬
‫الفائز‬ ‫إسم‬ ‫طباعة‬ ‫يتم‬ ‫الشرطين‬ ‫من‬ ‫أى‬ ‫تحقق‬ ‫حال‬
.‫البرنامج‬ ‫إنهاء‬ ‫ثم‬
‫كتبناها‬ ‫التى‬ ‫األوامر‬ ‫هذه‬ .. ‫؟‬ ً‫ا‬‫شيئ‬ ‫الحظت‬ ‫هل‬
‫مرة‬ ‫فكل‬ ، ‫اللعب‬ ‫أدوار‬ ‫فى‬ ‫مرة‬ ‫كل‬ ‫تتكرر‬ ‫أن‬ ‫يجب‬
‫ن‬ ‫ثم‬ ، ‫جديد‬ ‫مربع‬ ‫إدخال‬ ‫نطلب‬ ‫أن‬ ‫علينا‬ ‫يجب‬
‫حفظ‬
‫الشكل‬ ‫طباعة‬ ‫ثم‬ ، ‫المربع‬ ‫ذلك‬ ‫فى‬ ‫الخاصة‬ ‫العالمة‬
.‫فاز‬ ‫قد‬ ‫الالعبان‬ ‫أحد‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫إختبار‬ ‫ثم‬ ،‫الجديد‬
‫و‬ ، ‫األوامر‬ ‫هذه‬ ‫تضم‬ ‫تكرارية‬ ‫حلقة‬ ‫إلى‬ ‫سنحتاج‬ ً‫ا‬‫إذ‬
‫؟‬ ‫نظرك‬ ‫وجهة‬ ‫من‬ ‫األنسب‬ ‫الحلقة‬ ‫ما‬ ‫لكن‬
82
‫إنها‬ ‫نعم‬ ، ‫صحيحة‬ ‫إجابتك‬
do-while
‫ألننا‬ ،
‫أن‬ ‫حالة‬ ‫فى‬ ‫بإستخدامها‬ ‫نقوم‬
‫مجموعة‬ ‫تنفيذ‬ ‫نريد‬ ‫نا‬
‫حال‬ ‫واقع‬ ‫هذا‬ ‫و‬ ‫واحدة‬ ‫مرة‬ ‫األقل‬ ‫على‬ ‫األوامر‬ ‫من‬
‫شرط‬ ‫سيكون‬ ‫و‬ ، ‫اآلن‬ ‫معها‬ ‫نتعامل‬ ‫التى‬ ‫اللعبة‬
‫تكون‬ ‫أن‬ ‫هو‬ ‫الحلقة‬ ‫إستمرار‬
plays
‫أو‬ ‫من‬ ‫أقل‬
‫يساوى‬
9
‫هو‬ ‫للعبات‬ ‫عدد‬ ‫أقصى‬ ‫أن‬ ‫إذ‬
9
‫عدد‬
‫العداد‬ ‫نزيد‬ ‫أن‬ ‫ننسى‬ ‫ال‬ ،‫المربعات‬
–
plays
–
‫فى‬
.‫واحد‬ ‫بمقدار‬ ‫مرة‬ ‫كل‬
‫هى‬ ‫و‬ ‫المتاحة‬ ‫األدوار‬ ‫عدد‬ ‫إنتهت‬ ‫لو‬ ‫و‬
9
‫يفز‬ ‫لم‬ ‫و‬
‫التكرارية‬ ‫الحلقة‬ ‫وانتهت‬ ‫أحد‬
do-while
‫يجب‬
‫دون‬ ‫انتهت‬ ‫الللعبة‬ ‫بأن‬ ‫الالعبين‬ ‫تخطر‬ ‫جملة‬ ‫طباعة‬
. ‫كاآلتى‬ ،‫منهما‬ ‫أى‬ ‫فوز‬
83
‫التمارين‬
1
(
‫المستخدم‬ ‫من‬ ‫يستقبل‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
5
‫من‬ ‫قيم‬
‫النوع‬
float
‫م‬ ‫فى‬ ‫يخزنهم‬
‫بإنشاء‬ ‫يقوم‬ ‫ثم‬ ،‫صفوفة‬
‫المصفوفة‬ ‫عناصر‬ ‫فيها‬ ‫يخزن‬ ‫جديدة‬ ‫مصفوفة‬
‫األس‬ ‫إلى‬ ‫مرفوعة‬ ‫األولى‬
5
‫يطبع‬ ‫و‬ ‫يطبعها‬ ‫ثم‬ ،
.‫كذلك‬ ‫عناصرها‬ ‫مجموع‬
2
(
‫عموده‬ ‫مكون‬ ‫جدول‬ ‫بطباعة‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
‫من‬ ‫األرقام‬ ‫من‬ ‫األول‬
1
‫إلى‬
2
‫زيادة‬ ‫مع‬
1
,
2
‫فى‬
‫مرة‬ ‫كل‬
‫ه‬ ‫مضاعفات‬ ‫هو‬ ‫الثانى‬ ‫العمود‬ ‫يكون‬ ‫و‬ ،
،‫األرقام‬ ‫ذه‬
‫أس‬ ‫إلى‬ ‫مرفوعة‬ ‫األرقام‬ ‫هذه‬ ‫هو‬ ‫الثالث‬ ‫و‬
3
، ...
‫أس‬ ‫حتى‬ ‫هكذا‬ ‫و‬
5
.
3
(
‫صف‬ ‫كل‬ ‫مجموع‬ ‫بطباعة‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
‫المصفوفة‬ ‫عناصر‬ ، ‫عمود‬ ‫كل‬ ‫كذلك‬ ‫و‬ ‫حدة‬ ‫على‬
.‫المصفوفة‬ ‫أبعاد‬ ‫كذلك‬ ‫و‬ ‫المستخدم‬ ‫بإدخالها‬ ‫يقوم‬
4
(
‫يعرف‬ ‫ما‬ ‫بطباعة‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬
‫السح‬ ‫بالمصفوفة‬
‫ثنائية‬ ‫مربعة‬ ‫مصفوفة‬ ‫هى‬ ‫و‬ ‫رية‬
‫و‬ ‫عمود‬ ‫أى‬ ‫مجموع‬ ‫و‬ ‫صف‬ ‫أى‬ ‫مجموع‬ ‫فيها‬ ‫البعد‬
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf
سي بالعربي.pdf

More Related Content

Similar to سي بالعربي.pdf

مكونات البرمجية
مكونات البرمجيةمكونات البرمجية
مكونات البرمجيةguest98ae80
 
صياغة البرامج ولغات البرمجة
صياغة البرامج ولغات البرمجةصياغة البرامج ولغات البرمجة
صياغة البرامج ولغات البرمجةguest98ae80
 
Programming languages concepts
Programming languages conceptsProgramming languages concepts
Programming languages conceptsFataho Ali
 
خوازميات و مباديء برمجــة (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة  (3) مفهوم البرمجـةخوازميات و مباديء برمجــة  (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة (3) مفهوم البرمجـةMahmoud Alfarra
 
مقدمة في البرمجة..الباب الثاني
مقدمة في البرمجة..الباب الثانيمقدمة في البرمجة..الباب الثاني
مقدمة في البرمجة..الباب الثانيtahanisaad
 
عرض الوحدة الاولى
عرض الوحدة الاولىعرض الوحدة الاولى
عرض الوحدة الاولىNadoosh Nadoosh
 
مقدمة في البرمجة..
مقدمة في البرمجة..مقدمة في البرمجة..
مقدمة في البرمجة..tahanisaad
 
Ayaspell alesco2010 arabic spellchecker
Ayaspell alesco2010 arabic spellcheckerAyaspell alesco2010 arabic spellchecker
Ayaspell alesco2010 arabic spellcheckerlinuxscout
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1jadalkinani1
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1jadalkinani1
 
صياغة البرامج ولغات البرمجه
صياغة البرامج ولغات البرمجهصياغة البرامج ولغات البرمجه
صياغة البرامج ولغات البرمجهmohamed hamed
 
عرض البرمجة بلغة فيجول بيسك 04
عرض البرمجة بلغة فيجول بيسك 04عرض البرمجة بلغة فيجول بيسك 04
عرض البرمجة بلغة فيجول بيسك 04نوافذ حاسوبية
 
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحترافالبرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحترافMohamed E. Saleh
 

Similar to سي بالعربي.pdf (20)

مكونات البرمجية
مكونات البرمجيةمكونات البرمجية
مكونات البرمجية
 
لغه ال c+
لغه ال c+لغه ال c+
لغه ال c+
 
صياغة البرامج ولغات البرمجة
صياغة البرامج ولغات البرمجةصياغة البرامج ولغات البرمجة
صياغة البرامج ولغات البرمجة
 
عرض مقدمة في البرمجة 01
عرض مقدمة في البرمجة 01عرض مقدمة في البرمجة 01
عرض مقدمة في البرمجة 01
 
Programming languages concepts
Programming languages conceptsProgramming languages concepts
Programming languages concepts
 
Perl tutorial
Perl tutorial Perl tutorial
Perl tutorial
 
خوازميات و مباديء برمجــة (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة  (3) مفهوم البرمجـةخوازميات و مباديء برمجــة  (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة (3) مفهوم البرمجـة
 
مقدمة في البرمجة..الباب الثاني
مقدمة في البرمجة..الباب الثانيمقدمة في البرمجة..الباب الثاني
مقدمة في البرمجة..الباب الثاني
 
عرض الوحدة الاولى
عرض الوحدة الاولىعرض الوحدة الاولى
عرض الوحدة الاولى
 
مقدمة في البرمجة..
مقدمة في البرمجة..مقدمة في البرمجة..
مقدمة في البرمجة..
 
المحاضرة الثالثة لغات البرمجة
المحاضرة الثالثة  لغات البرمجةالمحاضرة الثالثة  لغات البرمجة
المحاضرة الثالثة لغات البرمجة
 
Ayaspell alesco2010 arabic spellchecker
Ayaspell alesco2010 arabic spellcheckerAyaspell alesco2010 arabic spellchecker
Ayaspell alesco2010 arabic spellchecker
 
01 Introduction in C++
01 Introduction in C++01 Introduction in C++
01 Introduction in C++
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1
 
C++ &amp; python
C++ &amp; pythonC++ &amp; python
C++ &amp; python
 
صياغة البرامج ولغات البرمجه
صياغة البرامج ولغات البرمجهصياغة البرامج ولغات البرمجه
صياغة البرامج ولغات البرمجه
 
عرض البرمجة بلغة فيجول بيسك 04
عرض البرمجة بلغة فيجول بيسك 04عرض البرمجة بلغة فيجول بيسك 04
عرض البرمجة بلغة فيجول بيسك 04
 
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحترافالبرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
 
الدرس 1.pdf
الدرس 1.pdfالدرس 1.pdf
الدرس 1.pdf
 

More from ssuser536c36

Section #4 Computer ports.pdf
Section #4 Computer ports.pdfSection #4 Computer ports.pdf
Section #4 Computer ports.pdfssuser536c36
 
Windows 10 Module 1.pdf
Windows 10 Module 1.pdfWindows 10 Module 1.pdf
Windows 10 Module 1.pdfssuser536c36
 
Command line in Windows.pptx
Command line in Windows.pptxCommand line in Windows.pptx
Command line in Windows.pptxssuser536c36
 
Windows 10 Module 2.pdf
Windows 10 Module 2.pdfWindows 10 Module 2.pdf
Windows 10 Module 2.pdfssuser536c36
 
Computer Intro Lab 1.pptx.pdf
Computer Intro Lab 1.pptx.pdfComputer Intro Lab 1.pptx.pdf
Computer Intro Lab 1.pptx.pdfssuser536c36
 

More from ssuser536c36 (8)

Section #4 Computer ports.pdf
Section #4 Computer ports.pdfSection #4 Computer ports.pdf
Section #4 Computer ports.pdf
 
Windows 10 Module 1.pdf
Windows 10 Module 1.pdfWindows 10 Module 1.pdf
Windows 10 Module 1.pdf
 
lab2.pptx.pdf
lab2.pptx.pdflab2.pptx.pdf
lab2.pptx.pdf
 
Command line in Windows.pptx
Command line in Windows.pptxCommand line in Windows.pptx
Command line in Windows.pptx
 
Windows 10 Module 2.pdf
Windows 10 Module 2.pdfWindows 10 Module 2.pdf
Windows 10 Module 2.pdf
 
Computer Intro Lab 1.pptx.pdf
Computer Intro Lab 1.pptx.pdfComputer Intro Lab 1.pptx.pdf
Computer Intro Lab 1.pptx.pdf
 
Intro IT.pdf
Intro IT.pdfIntro IT.pdf
Intro IT.pdf
 
DLD1.pdf
DLD1.pdfDLD1.pdf
DLD1.pdf
 

سي بالعربي.pdf

  • 1. 2
  • 3. 4 ‫الفهرس‬ ‫الفصل‬ ‫العنوان‬ ‫الصفحة‬ ‫األول‬ ‫عن‬ ‫اللغة‬ ‫التطوير‬ ‫البيئة‬ ‫و‬ 5 ‫الثانى‬ ‫المتغيرات‬ 41 ‫الثالث‬ ‫الشرطية‬ ‫الجمل‬ 55 ‫الرابع‬ ‫التكرارية‬ ‫الحلقات‬ 54 ‫الخامس‬ ‫المصفوفات‬ 66 ‫السادس‬ ‫النصية‬ ‫المتغيرات‬ 55 ‫السابع‬ ‫المؤشرات‬ 441 ‫ا‬ ‫لثامن‬ ‫الدوال‬ 415 ‫التاسع‬ ‫الملفات‬ ‫مع‬ ‫التعامل‬ 411
  • 4. 5 ‫األول‬ ‫الفصل‬ ‫البيئ‬‫و‬ ‫اللغة‬ ‫عن‬ ‫ه‬ ‫التطويرية‬ . ‫هذا‬ ‫نهاية‬ ‫فى‬ ‫تعلمته‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ‫ما‬ ‫؟‬ ‫الفصل‬  ‫اللغة‬ ‫عيوب‬‫و‬ ‫ات‬‫ز‬‫ممي‬ .  ‫للغة‬ ‫التطبيقية‬ ‫المجاالت‬ .  ‫التطويرية‬ ‫البيئة‬ ‫على‬ ‫التعرف‬ .  ‫لغة‬ ‫بإستخدام‬ ‫لك‬ ‫برنامج‬ ‫أول‬ ‫عمل‬ .‫السى‬
  • 5. 6 ‫اللغة‬ ‫مميزات‬ ،‫اإلطالق‬ ‫على‬ ‫اللغات‬ ‫أقوى‬ ‫من‬ ‫السى‬ ‫لغة‬ ‫تعتبر‬ ً ‫نسبيا‬ ‫الحديثة‬ ‫اللغات‬ ‫من‬ ‫العديد‬ ‫عنها‬ ‫ورت‬ ُ ‫ط‬ ‫و‬ ‫مثل‬ C# ‫و‬ ‫جافا‬‫و‬ C++ ‫لغة‬ ‫هى‬ ‫و‬ ، high-level ، ‫ـ‬‫ل‬‫ا‬ ‫خصائص‬ ‫بعض‬ ‫على‬ ‫تحتوى‬ ‫ولكنها‬ low- level ‫الغالب‬ ‫فى‬ ‫عليها‬ ‫يطلق‬ ‫لذا‬ ، middle- level language ‫سن‬ ‫و‬ ، ‫بعض‬ ً ‫معا‬ ‫ستعرض‬ ‫و‬ ‫الرواج‬ ‫بذلك‬ ‫تحظى‬ ‫جعلتها‬ ‫التى‬ ‫اللغة‬ ‫ات‬‫ز‬‫ممي‬ ‫القوة‬ ‫بتلك‬ . ‫اللغة‬ ‫أن‬ ‫إلى‬ ‫يرجع‬ ‫هذا‬ ‫و‬ ، ‫الكفاءة‬ low-level ‫بعض‬ ‫من‬ ‫تحتويه‬ ‫لما‬ ، ‫األخرى‬ ‫باللغات‬ ‫مقارنة‬ ‫مثل‬ ‫الهاردوير‬ ‫مع‬ ‫مباشرة‬ ‫تتعامل‬ ‫التى‬ ‫الخصائص‬ ‫ات‬‫ر‬‫المؤش‬ - pointers ‫قريبة‬ ‫أنها‬ ‫يعنى‬ ‫مما‬ ، ‫لغة‬ ‫من‬ ً ‫جدا‬ ‫تقوم‬ ‫أنها‬ ‫يعنى‬ ‫بدوره‬ ‫هذا‬ ‫و‬ ، ‫اآللة‬ ‫تنفيذ‬ ‫سرعة‬ ‫و‬ ، ‫أسرع‬ ‫بشكل‬ ‫امج‬‫ر‬‫الب‬ ‫بتنفيذ‬ .‫اللغة‬ ‫قوة‬ ‫تحديد‬ ‫فى‬ ً ‫مهما‬ ً ‫عامال‬ ‫عد‬ ُ ‫ت‬ ‫امج‬‫ر‬‫الب‬ ‫أنها‬ ‫إال‬ ‫السى‬ ‫لغة‬ ‫صغر‬ ‫من‬ ‫الرغم‬ ‫على‬ ‫و‬ ، ‫القوة‬ ‫ـ‬‫ل‬‫ا‬ ‫من‬ ‫قوتها‬ ‫تستمد‬ standard library ‫التى‬ ‫الدوال‬ ‫مئات‬ ‫تحوى‬ ‫التى‬ ‫و‬ ،‫بها‬ ‫الخاصة‬ ‫بعمليا‬ ‫تقوم‬ ‫المئات‬ ‫كتابة‬ ‫عن‬ ‫فتغنيك‬ ،‫كثيرة‬ ‫ت‬ ‫تمدك‬ ‫فهى‬ ، ‫معينة‬ ‫بعملية‬ ‫للقيام‬ ‫األسطر‬ ‫من‬ .‫واحد‬‫سطر‬ ‫فى‬ ‫العملية‬ ‫بتلك‬ ‫تقوم‬ ‫بدالة‬
  • 6. 7 Portability ‫تمت‬ ‫الذى‬ ‫البرنامج‬ ‫أن‬ ‫تعنى‬ ‫و‬ , ‫الحاسب‬ ‫أجهزة‬ ‫مختلف‬ ‫على‬ ‫يعمل‬ ‫باللغة‬ ‫كتابته‬ ً ‫إنتهاءا‬ ‫و‬ ‫الشخصى‬ ‫الحاسب‬ ‫من‬ ‫بداية‬ ‫اآللى‬ ‫العمالقة‬ ‫بالحاسبات‬ . ‫المبرمج‬ ‫تحد‬ ‫ال‬ ‫بأنها‬ ‫اللغة‬ ‫تتميز‬ ، ‫المرونة‬ ‫بإستخدام‬ ‫األمر‬ ‫يتعلق‬ ‫عندما‬ ‫صارمة‬ ‫بحدود‬ ‫من‬ ‫العديد‬ ‫عن‬ ‫يميزها‬ ‫هذا‬ ‫و‬ ‫اللغة‬ ‫خواص‬ ‫مشهورة‬ ‫قاعدة‬ ‫على‬ ‫بنيت‬ ‫السى‬ ‫فلغة‬ ،‫اللغات‬ ‫فهناك‬ ، (( ‫يفعل‬ ‫ما‬ ‫يعلم‬ ‫المبرمج‬ )) ‫بأن‬ ‫تقول‬ ‫تعتبرها‬ ‫ال‬ ‫و‬ ‫اللغة‬ ‫بها‬ ‫تسمح‬ ‫العمليات‬ ‫بعض‬ ‫ل‬ ‫و‬ ‫كخطأ‬ ‫يتم‬ ‫ال‬ ‫أخرى‬ ‫برمجية‬ ‫لغات‬ ‫فى‬ ‫كن‬ ‫النوع‬ ‫من‬ ‫متغير‬ ‫جمع‬ ‫يمكنك‬ ً ‫فمثال‬ ، ‫بها‬ ‫السماح‬ char ‫النوع‬ ‫من‬ ‫آخر‬ ‫على‬ int ‫أو‬ float ‫أى‬ ‫دون‬ ‫و‬ ، ‫بذلك‬ ‫تسمح‬ ‫ال‬ ‫أخرى‬ ‫لغات‬ ‫هناك‬ ، ‫مشكلة‬ ‫لك‬ ‫سيتضح‬ ‫و‬ ‫كثيرة‬ ‫العمليات‬ ‫تلك‬ ‫على‬ ‫األمثلة‬ ‫هذه‬ ‫لكن‬ ‫و‬ ، ‫اللغة‬ ‫مع‬ ‫تعاملك‬ ‫خالل‬ ‫منها‬ ‫الكثير‬ ‫ق‬ ‫المرونة‬ ‫فى‬ ‫المشاكل‬ ‫بعض‬ ‫فى‬ ‫لك‬ ‫تتسبب‬ ‫د‬ ‫امجك‬‫ر‬‫ب‬ – bugs . ‫التشغيل‬ ‫نظام‬ ‫مع‬ ‫التكامل‬ Linux ‫هذا‬ ‫و‬ ، ‫فيما‬ ‫خاصة‬ ‫و‬ ‫الكثير‬ ‫اللغة‬ ‫إلى‬ ‫أضاف‬ ‫التكامل‬ ‫ـ‬‫ل‬‫با‬ ‫يتعلق‬ Portability .
  • 7. 8 ‫اللغة‬ ‫عيوب‬ ،‫العيوب‬ ‫من‬ ‫كذلك‬ ‫السى‬ ‫تخلو‬ ‫ال‬ ،‫برمجة‬ ‫لغة‬ ‫كأى‬‫و‬ : ً ‫معا‬ ‫بعضها‬ ‫نستعرض‬ ‫لألخطا‬ ‫اكثر‬ ‫عرضة‬ ‫أن‬ ‫إلى‬ ‫يرجع‬ ‫هذا‬ ‫و‬ ،‫البرمجية‬ ‫ء‬ ‫األخطاء‬ ‫بعض‬ ‫يكتشف‬ ‫ال‬ ‫باللغة‬ ‫الخاص‬ ‫المترجم‬ ‫فى‬ ‫مثلها‬ ‫إكتشف‬ ‫يتم‬ ‫قد‬ ‫التى‬ ‫و‬ ‫الترجمة‬ ‫عملية‬ ‫أثناء‬ ‫تنفيذ‬ ‫وقت‬ ‫فى‬ ‫تظهر‬ ‫األخطاء‬ ‫فمعظم‬ ،‫أخرى‬ ‫لغات‬ ‫السلبي‬ ‫األثر‬ ‫هو‬ ‫هذا‬ ‫و‬ .‫ترجمته‬ ‫ليس‬ ‫و‬ ‫البرنامج‬ .‫اللغة‬ ‫بها‬‫تتميز‬ ‫التى‬ ‫للمرونة‬ ‫الكود‬ ‫فهم‬ ‫صعوبة‬ ‫السى‬ ‫لغة‬ ‫صغر‬ ‫من‬ ‫الرغم‬ ‫فعلى‬، ‫ـ‬‫ل‬‫ا‬ ‫من‬ ‫تكتسبها‬ ‫عديدة‬ ‫خصائص‬ ‫على‬ ‫تحتوى‬ ‫أنها‬ ‫إال‬ standard library ، ‫قبل‬ ‫من‬ ‫ذكرنا‬ ‫كما‬‫بها‬ ‫الخاصة‬ ‫احل‬‫ر‬‫الم‬ ‫فى‬ ً ‫معا‬ ‫الخصائص‬ ‫هذه‬ ‫مزج‬ ‫عند‬ ‫و‬ ‫أكثر‬ ‫االمور‬ ‫تصبح‬ ،‫اللغة‬ ‫اف‬‫ر‬‫إحت‬ ‫من‬ ‫المتقدمة‬ .‫صعوبة‬ ‫الضخمة‬ ‫ـع‬‫ـ‬‫ـ‬‫ـ‬‫ي‬‫المشار‬ ‫فى‬ ،‫الكود‬ ‫تعديل‬ ‫صعوبة‬ ‫المطو‬ ‫أخرى‬ ‫مرة‬ ‫تعديلها‬ ‫عليك‬ ‫يصعب‬ ‫السى‬ ‫بلغة‬ ‫رة‬ ‫على‬ ‫تساعد‬ ‫التى‬ ‫الخصائص‬ ‫بعض‬ ‫تدعم‬ ‫ال‬ ‫السى‬ ‫ألن‬ ‫ـ‬‫ل‬‫ا‬ ‫مثل‬ ‫تنظيمه‬ ‫و‬ ‫البرنامج‬ ‫تجزئة‬ classes ‫ـ‬‫ل‬‫ا‬ ‫و‬ packages .
  • 8. 9 ‫للغة‬ ‫التطبيقية‬ ‫المجاالت‬ ‫أهم‬ ‫التشغيل‬ ‫نظم‬ ‫تطوير‬ – operating systems ‫تعد‬ ‫و‬ ، ‫فمع‬ ، ‫للغة‬ ‫التطبيقية‬ ‫المجاالت‬ ‫أهم‬ ‫التشغيل‬ ‫نظم‬ ‫ظم‬ ‫مطور‬ ‫المحمولة‬ ‫هواتفنا‬ ‫على‬ ‫حتى‬ ً ‫يوميا‬ ‫نستخدمها‬ ‫التى‬ .‫السى‬ ‫بلغة‬ ‫منها‬ ‫كبير‬‫جزء‬ ‫المدمجة‬ ‫األنظمة‬ – embedded systems ‫يتم‬ ، ، ‫األحيان‬ ‫أغلب‬ ‫فى‬ ‫السى‬ ‫بلغة‬ ‫المدمجة‬ ‫األنظمة‬ ‫برمجة‬ ، ‫المجال‬ ‫هذا‬ ‫فى‬ ‫األشهر‬ ‫اللغة‬ ‫هى‬ ‫و‬ ‫فبرمجة‬ ‫المتحكمات‬ ‫الدقيقية‬ – microcontrollers ‫أو‬ ‫السى‬ ‫بلغة‬ ‫تتم‬ ‫األردوينو‬ ‫فمثال‬ ،‫السى‬ ‫لغة‬ ‫من‬ ‫معظمها‬ ‫كون‬ ُ‫ُم‬ ‫بلغة‬ ‫تسمى‬ ‫به‬ ‫خاصة‬ ‫لغة‬ ‫يستخدم‬ Arduino C ‫لغة‬ ‫هى‬ ‫و‬ ‫ـ‬‫ل‬‫ا‬ ‫تسمى‬ ‫أخرى‬ ‫لغة‬ ‫مع‬ ‫أساسى‬ ‫بشكل‬ ‫السى‬ ‫من‬ ‫مطورة‬ Processing . ‫تطوير‬ compilers ‫المترجم‬ ‫و‬ ، ‫أخرى‬ ‫للغات‬ – compiler ‫إل‬ ‫الكود‬ ‫يترجم‬ ‫برنامج‬ ‫هو‬ .‫اآللة‬ ‫لغة‬ ‫ى‬ ‫البيانات‬ ‫قواعد‬ ‫فى‬ ‫تستخدم‬ – databases ‫كذلك‬ ‫و‬ ، ‫ـ‬‫ل‬‫ا‬ ‫تطوير‬ ‫فى‬ ‫تستخدم‬ text editors ‫ـ‬‫ل‬‫ا‬ ‫مثل‬ word .
  • 9. 01 ‫و‬ ‫اللغة‬ ‫ات‬‫ز‬‫ممي‬ ‫عن‬ ‫التحدث‬ ‫من‬ ‫القدر‬ ‫بهذا‬ ‫نكتفى‬ ‫هنا‬ ‫و‬ ‫حاجتك‬ ‫تحدد‬ ‫أن‬ ‫اآلن‬ ‫تستطيع‬ ‫بأنك‬ ‫أعتقد‬ ‫و‬ ،‫تطبيقاتها‬ ‫اآلن‬ ‫ننتقل‬ ‫و‬ ،‫عدمها‬ ‫من‬ ‫اللغة‬ ‫تعلم‬ ‫إلى‬ ‫الثانى‬ ‫الجزء‬ ‫إلى‬ ‫التطويرية‬ ‫البيئة‬ ‫على‬ ‫فيه‬ ‫سنتعرف‬ ‫الذى‬ ‫الفصل‬ ‫هذا‬ ‫من‬ ‫بلغة‬ ‫برنامج‬ ‫أول‬ ‫بكتابة‬ ‫سنقوم‬ ‫و‬ ‫سنستخدمها‬ ‫التى‬ .‫السى‬ ‫التطويرية‬ ‫البيئة‬ - IDE ‫التطويرية‬ ‫البيئة‬ ‫سنستخدم‬ ‫الكتاب‬ ‫هذا‬ ‫فى‬ ‫البرامج‬ ‫لتطوير‬ ‫تحميلها‬ ‫يمكنك‬ ً ‫مجانا‬ ‫متوفرة‬ ‫البيئة‬ ‫وهذه‬ ، ‫السى‬ ‫بلغة‬ ‫من‬ :‫التالى‬ ‫الرابط‬ http://sourceforge.net/projects/codebl ocks/files/Binaries/13.12/Windows/cod eblocks- 13.12mingwsetup.exe/download
  • 10. 00 ‫بمترجم‬ ‫مصحوبة‬ ‫البرنامج‬ ‫من‬ ‫النسخة‬ ‫هذه‬ ‫و‬ GNU GCC Compiler ‫بتنصيبه‬ ‫قم‬ ‫البرنامج‬ ‫تنزيل‬ ‫بعد‬ . ‫اإل‬ ‫فى‬ ً‫ا‬‫شيئ‬ ‫تغير‬ ‫ال‬ ‫و‬ ‫سهولة‬ ‫بكل‬ ‫اآلن‬ ‫و‬ . ‫القياسية‬ ‫عدادات‬ .‫التطويرية‬ ‫البيئة‬ ‫مع‬ ‫التعامل‬ ‫كيفية‬ ‫معكم‬ ‫سأتناول‬ ‫برنامج‬ ‫و‬ ، ‫شرح‬ ‫أى‬ ‫قبل‬ ‫البداية‬ ‫فى‬ ‫بسيط‬ ‫برنامج‬ ‫بكتابة‬ ‫سنبدأ‬ ‫بعض‬ ‫تستكشف‬ ‫و‬ ‫بها‬ ‫تعمل‬ ‫التى‬ ‫البيئة‬ ‫لتألف‬ ‫ذلك‬ .‫برنامج‬ ‫أى‬ ‫فى‬ ‫الثابتة‬ ‫األساسيات‬ ‫البرن‬ ‫شرح‬ ‫امج‬
  • 11. 02 ‫لغة‬ ‫فى‬ ‫كومنت‬ ‫عمل‬ ‫يمكن‬ ‫و‬ ، ‫تعليق‬ ‫أو‬ ‫كومنت‬ ‫يسمى‬ ‫و‬ ، /* ‫كتابته‬ ‫المراد‬ ‫الكومنت‬ */ ‫بإستخدام‬ ‫السى‬ ‫و‬ ‫البرنامج‬ ‫أوامر‬ ‫لتوضيح‬ ‫يستخدم‬ ‫الكومنت‬ .‫البرنامج‬ ‫عمل‬ ‫على‬ ‫يؤثر‬ ‫ال‬ ‫و‬ ، ‫أجزاءه‬ ‫تستخدم‬ include ‫لداخل‬ ‫ملفات‬ ‫إلستيراد‬ # ‫منها‬ ‫دوال‬ ‫إلستخدام‬، ‫برنامجك‬ ‫هذا‬ ‫فى‬ ‫و‬ ، ‫ملف‬ ‫إستيراد‬ ‫تم‬ ‫المثال‬ stdio.h ‫الـ‬ ‫من‬ standard library ‫الملف‬ ‫هذا‬ ‫يختص‬ ‫و‬ ، ‫مثل‬ ‫اإلخراج‬ ‫و‬ ‫اإلدخال‬ ‫بدوال‬ printf ‫و‬ ، ‫خرج‬ ‫لطباعة‬ scanf ‫بيانات‬ ‫إلستقبال‬ .‫المستخدم‬ ‫من‬ ‫يبدأ‬ ‫و‬ ، ‫للبرنامج‬ ‫الرئيسية‬ ‫الدالة‬ ‫هى‬ ‫هذه‬ ‫يحت‬ ‫أن‬ ‫يجب‬ ‫برنامج‬ ‫أى‬ ‫و‬ ، ‫منها‬ ‫التنفيذ‬ ‫وى‬ ‫بداخلها‬ ‫األوامر‬ ‫إحتواء‬ ‫يتم‬ ‫و‬ ،‫عليها‬ ‫بشكل‬ ‫الدوال‬ ‫دراسة‬ ‫سيتم‬ ‫و‬، }{ ‫بإستخدام‬ .‫لها‬ ‫المخصص‬ ‫الباب‬ ‫فى‬ ً‫ا‬‫وضوح‬ ‫أكثر‬
  • 12. 03 ‫دالة‬ printf ‫يتم‬ ‫و‬ ، ‫للطباعة‬ ‫تستخدم‬ ‫عالمتين‬ ‫بين‬ ‫طباعتها‬ ‫المراد‬ ‫الجملة‬ ‫وضع‬ ً‫ا‬‫الحق‬ ‫سنتاولها‬ ‫و‬ ، ‫المثال‬ ‫فى‬ ‫كما‬ ‫تنصيص‬ .‫التفصيل‬ ‫من‬ ‫بشىء‬ ‫بأن‬ ‫المشغل‬ ‫النظام‬ ‫تخطر‬ ‫الجملة‬ ‫هذه‬ ‫دون‬ ‫صحيحة‬ ‫بطريقة‬ ‫تنفيذه‬ ‫تم‬ ‫البرنامج‬ .‫متوقعة‬ ‫غير‬ ‫مشاكل‬ ‫أى‬ ‫حدوث‬ ‫كود‬ ‫أول‬ ‫فهم‬ ‫و‬ ‫كتابة‬ ‫من‬ ‫إنتهيت‬ ‫قد‬ ‫تكون‬ ‫هنا‬ ‫تحمست‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫أتمنى‬ ،‫السى‬ ‫لغة‬ ‫فى‬ ‫لك‬ ‫هنا‬ ‫نكون‬ ‫و‬ ، ‫اللغة‬ ‫عن‬ ‫المزيد‬ ‫لمعرفة‬ ‫أكثر‬ ‫هذ‬ ‫فى‬ ‫األول‬ ‫الفصل‬ ‫من‬ ‫انتهينا‬ ‫قد‬ . ‫الكتاب‬ ‫ا‬ ‫عن‬ ‫القادم‬ ‫الفصل‬ ‫فى‬ ‫الله‬ ‫بإذن‬ ‫حديثنا‬ ‫سيكون‬ .‫المتغيرات‬
  • 13. 04 ‫الثانى‬ ‫الفصل‬ ‫الحسابية‬ ‫العمليات‬‫و‬ ‫ات‬‫ر‬‫المتغي‬ ‫هذا‬ ‫نهاية‬ ‫فى‬ ‫تعلمته‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ‫ما‬ ‫؟‬ ‫الفصل‬  ‫؟‬ ‫السى‬ ‫لغة‬ ‫فى‬ ‫ات‬‫ر‬‫المتغي‬ ‫أنواع‬ ‫هى‬ ‫ما‬  ‫قيم‬ ‫إعطائها‬ ‫و‬ ‫ات‬‫ر‬‫المتغي‬ ‫تعريف‬ ‫كيفية‬ .‫إبتدائية‬  ‫الحس‬ ‫العمليات‬ .‫ابية‬  ‫اج‬‫ر‬‫اإلخ‬‫و‬ ‫اإلدخال‬ ‫دالتى‬ ‫إستخدام‬ ‫طريقة‬ printf - scanf .  ‫ـ‬‫ل‬‫ا‬ ‫إستخدام‬ ‫يتم‬ ‫كيف‬ placeholders ‫فى‬ .‫اج‬‫ر‬‫اإلخ‬‫و‬ ‫اإلدخال‬
  • 14. 05 ‫المتغيرات‬ ‫أنواع‬ ‫السى‬ ‫لغة‬ ‫فى‬ ‫المتغيرات‬ ‫أنواع‬ ‫على‬ ‫بالتعرف‬ ‫مباشرة‬ ‫نبدأ‬ – ً‫ا‬‫سلف‬ ‫المتغيرات‬ ‫بماهية‬ ‫دراية‬ ‫على‬ ‫تكون‬ ‫أن‬ ‫المفترض‬ ‫من‬ . ، ‫المتغيرات‬ ‫أنواع‬ ‫من‬ ‫مجموعة‬ ‫على‬ ‫السى‬ ‫لغة‬ ‫تحتوى‬ .‫يلى‬ ‫ما‬ ‫أهمها‬ ‫حرف‬ ‫صحيحة‬ ‫الغير‬ ‫األرقام‬ ‫الصحيحة‬ ‫األرقام‬ char float int double long long double long long ‫نصى‬ ‫متغير‬ ‫نوع‬ ‫على‬ ‫تحتوى‬ ‫ال‬ ‫اللغة‬ String ‫لكن‬ ‫و‬ ، ‫النوع‬ ‫من‬ ‫العناصر‬ ‫من‬ ‫مصفوفة‬ ‫إستخدام‬ ‫يتم‬ char ‫و‬ ، ‫فى‬ ‫بالتفصيل‬ ‫النصية‬ ‫المتغيرات‬ ‫و‬ ‫المصفوفات‬ ً‫ا‬‫مع‬ ‫سنتناول‬ .‫لهما‬ ‫المخصصين‬ ‫الفصلين‬ ‫يعتبر‬ ‫فهو‬ ‫نقطة‬ " . " ‫على‬ ‫يحتوى‬ ‫رقم‬ ‫كل‬ ‫الحقيقة‬ ‫فى‬ ً‫ال‬‫فمث‬ ً‫ا‬‫صحيح‬ ‫كان‬ ‫إن‬ ‫و‬ ‫صحيح‬ ‫غير‬ 9 . 0 ‫يعتبر‬ ‫الرقم‬ ‫هذا‬ ‫الغير‬ ‫و‬ ‫الصحيح‬ ‫الرقم‬ ‫بين‬ ‫فالفارق‬ ، ً‫ا‬‫صحيح‬ ‫غير‬ ً‫ا‬‫رقم‬
  • 15. 06 ‫النقطة‬ ‫وجود‬ ‫هو‬ ‫صحيح‬ ‫غير‬ ‫العدد‬ ‫كان‬ ‫وجدت‬ ‫متى‬ ، .ً‫ا‬‫صحيح‬ ) ‫مثال‬ ‫الواحد‬ ‫النوع‬ ‫من‬ ‫المتغيرات‬ ‫أنواع‬ ‫بين‬ ‫الفرق‬ int ‫و‬ long ‫و‬ long long ‫يتم‬ ‫التى‬ ‫الذاكرة‬ ‫مساحة‬ ‫هى‬ ( ‫النوع‬ ‫من‬ ‫المتغير‬ ‫يشغل‬ ‫الغالب‬ ‫ففى‬ ، ‫المتغير‬ ‫لهذا‬ ‫حجزها‬ int ‫مساحة‬ 4 ‫و‬ ، ‫الذاكرة‬ ‫من‬ ‫بايت‬ long ‫مساحة‬ 8 ‫ه‬ ‫و‬، ‫الذاكرة‬ ‫من‬ ‫بايت‬ ‫النظام‬ ‫نوع‬ ‫على‬ ‫تعتمد‬ ‫األرقام‬ ‫ذه‬ .‫آخر‬ ‫إلى‬ ‫مشغل‬ ‫نظام‬ ‫من‬ ‫تختلف‬ ‫فهى‬ ، ‫المشغل‬ ‫المتغيرات‬ ‫تعريف‬ ‫ثم‬ ‫أوال‬ ‫المتغير‬ ‫نوع‬ ‫كتابة‬ ‫طريق‬ ‫عن‬ ‫المتغير‬ ‫تعريف‬ ‫يتم‬ ‫من‬ ‫األنواع‬ ‫مختلفة‬ ‫مجموعة‬ ‫تعريف‬ ‫هذا‬. ‫المتغير‬ ‫إسم‬ .‫كمثال‬ ‫المتغيرات‬
  • 16. 07 ‫ال‬ ‫الجديد‬ ‫للمتغير‬ ‫إسم‬ ‫أى‬ ‫إختيار‬ ‫يمكن‬ ‫و‬ ، ‫بتعريفه‬ ‫تقوم‬ ‫ذى‬ :‫بشروط‬ ‫لكن‬ ‫مثل‬ ‫محجوز‬ ‫كلمة‬ ‫يكون‬ ‫أال‬ int ‫أو‬ include .ً‫ال‬‫مث‬ ‫مثال‬ ‫خاص‬ ‫رمز‬ ‫على‬ ‫يحتوى‬ ‫أال‬ – ، ، ‫إلخ‬ & ، / ، _ ‫إستخدام‬ ‫يمكن‬ ‫لكن‬ ‫و‬ underscore . ‫نستخدم‬ ‫فإننا‬ ‫ثابت‬ ‫متغير‬ ‫بتعريف‬ ‫نقوم‬ ‫أن‬ ‫أردنا‬ ‫إذا‬ ‫أما‬ ‫كلمة‬ const ‫أو‬ ، ‫التعريف‬ ‫قبل‬ ‫إستخدام‬ ‫طريق‬ ‫عن‬ . ‫كاآلتى‬ ، #define ‫إسمه‬ ‫ثابت‬ ‫متغير‬ ‫بتعريف‬ ‫يقوم‬ ‫السابقين‬ ‫األمرين‬ ‫من‬ ‫أى‬ MAX ‫النوع‬ ‫من‬ int . ‫لمتغير‬ ‫إبتدائية‬ ‫قيمة‬ ‫إعطاء‬ ‫بإعطائهم‬ ‫قمنا‬ ، ‫الثابتة‬ ‫المتغيرات‬ ‫على‬ ‫السابق‬ ‫المثال‬ ‫فى‬ ‫الت‬ ‫أمر‬ ‫نفس‬ ‫فى‬ ‫إبتدائية‬ ‫قيمة‬ ‫بأكثر‬ ‫بذلك‬ ‫نقوم‬ ‫قد‬ ‫و‬ ، ‫عريف‬ .‫للتوضيح‬ ‫اآلتية‬ ‫األمثلة‬ ، ‫طريقة‬ ‫من‬
  • 17. 08 ‫النوع‬ ‫من‬ ‫للمتغير‬ ‫إبتدائية‬ ‫قيمة‬ ‫إعطاء‬ ‫حالة‬ ‫فى‬ ‫أنه‬ ‫الحظ‬ float ‫أو‬ double ‫الرقم‬ ‫فى‬ ‫نقطة‬ " . " ‫وضع‬ ‫يجب‬ ، ‫يوضع‬ ‫أن‬ ‫يجب‬ ‫و‬ ، ً‫ا‬‫صحيح‬ ‫كان‬ ‫إن‬ ‫و‬ ‫حتى‬ “ f ‫فى‬ " ‫النوع‬ ‫من‬ ‫القيمة‬ ‫نهاية‬ float ‫ي‬ ‫ال‬ ‫لكى‬ ، ‫غير‬ ‫مشاكل‬ ‫حدث‬ ‫فى‬ ‫حسابية‬ ‫عمليات‬ ‫فى‬ ‫القيمة‬ ‫هذه‬ ‫إستخدام‬ ‫عند‬ ‫متوقعة‬ .‫البرنامج‬ ‫آلخر‬ ‫متغير‬ ‫من‬ ‫بيانات‬ ‫نقل‬ ‫عملية‬ ‫الـ‬ ‫عملية‬ assignment ‫من‬ ‫البيانات‬ ‫نقل‬ ‫عملية‬ ‫هى‬ ‫آخر‬ ‫متغير‬ ‫إلى‬ ‫حسابىة‬ ‫عملية‬ ‫ناتج‬ ‫نقل‬ ‫أو‬ ، ‫آلخر‬ ‫متغير‬ ‫عملية‬ ‫أى‬ ‫فى‬ ‫عامة‬ ‫بصورة‬. assignment ‫نقل‬ ‫يتم‬ ، ‫كانت‬ ً‫ا‬‫أي‬ ‫األيمن‬ ‫الطرف‬ ‫عنها‬ ‫يعبر‬ ‫التى‬ ‫القيمة‬ – ‫سواء‬ ‫حسابية‬ ‫عملية‬ ‫ناتج‬ ‫أو‬ ‫لمتغير‬ ‫قيمة‬ – ‫األيسر‬ ‫الطرف‬ ‫إلى‬ . :‫اآلتية‬ ‫بالعملية‬ ‫قمنا‬ ‫إذا‬ ً‫ال‬‫فمث‬
  • 18. 09 :‫الجمع‬ ‫عملية‬ ‫بعد‬ ‫البيانات‬ ‫لنقل‬ ‫توضيحية‬ ‫صورة‬ ‫بالمتغيرا‬ ‫الخاصة‬ ‫األساسية‬ ‫القواعد‬ ‫من‬ ‫انتهينا‬ ‫قد‬ ‫و‬ ‫اآلن‬ ‫ت‬ ‫نتبعها‬ ‫ثم‬ ‫الحسابية‬ ‫العمليات‬ ‫دراسة‬ ‫نبدأ‬ ، ‫السى‬ ‫لغة‬ ‫فى‬ ‫و‬ ‫المتغيرات‬ ‫على‬ ‫عملية‬ ‫تمارين‬ ‫و‬ ، ‫مشروحة‬ ‫بأمثلة‬ .‫الحسابية‬ ‫العمليات‬ ‫الحسابية‬ ‫العمليات‬ ‫التى‬ ‫الرياضية‬ ‫العمليات‬ ‫من‬ ‫مجموعة‬ ‫السى‬ ‫لغة‬ ‫تضمن‬ ‫الجدول‬ ‫و‬ ، ‫الخاصة‬ ‫برامجنا‬ ‫فى‬ ‫مستمر‬ ‫بشكل‬ ‫نستخدمها‬ ‫يحتو‬ ‫التالى‬ :‫المستخدم‬ ‫العمليات‬ ‫على‬ ‫ى‬
  • 19. 21 ‫العملية‬ ‫الرمز‬ ‫الجمع‬ + ‫الطرح‬ - ‫الضرب‬ * ‫القسمة‬ / ‫باقى‬ ‫القسمة‬ % ‫ليكن‬ ‫و‬ ‫متغيرين‬ ‫لدينا‬ ‫أن‬ ‫نفترض‬ i ‫و‬ j ‫النوع‬ ‫من‬ int ، ‫حفظ‬ ‫و‬ ‫عليهم‬ ‫الحسابية‬ ‫العمليات‬ ‫هذه‬ ‫جميع‬ ‫إجراء‬ ‫نريد‬ ‫و‬ ‫ب‬ ‫سنقوم‬ ، ‫جديد‬ ‫متغير‬ ‫فى‬ ‫عملية‬ ‫كل‬ ‫ناتج‬ ‫العملية‬ ‫هذه‬ .‫كاآلتى‬ ‫كال‬ ‫يكون‬ ‫أن‬ ‫يجب‬ % ‫بإستخدام‬ ‫القسمة‬ ‫باقى‬ ‫إيجاد‬ ‫عملية‬ ‫من‬ ‫العملية‬ ‫طرفى‬ int ‫على‬ ‫العملية‬ ‫هذه‬ ‫إجراء‬ ‫يمكن‬ ‫ال‬ ‫و‬ ، ‫النوع‬ ‫من‬ ‫متغير‬ float ، ‫هذا‬ ‫على‬ ‫التغلب‬ ‫يمكن‬ ‫لكن‬ ‫و‬ .
  • 20. 20 ‫الـ‬ ‫يسمى‬ ‫ما‬ ‫بإستخدام‬ casting ‫تحويل‬ ‫عملية‬ ‫هو‬ ‫و‬ ، . ‫آخر‬ ‫إلى‬ ‫نوع‬ ‫من‬ ‫إجبارى‬ ‫مثال‬ ‫النوع‬ ‫من‬ ‫متغيرين‬ ‫على‬ % ‫إستخدام‬ ‫تم‬ ‫هنا‬ float ، .‫اآلتى‬ ‫الخطأ‬ ‫لك‬ ‫سيظهر‬ ‫لذلك‬ )‫المترجم‬ ‫يقوم‬ ‫هنا‬ compiler ، ‫خطأ‬ ‫بوجود‬ ‫بإخطارك‬ ( ‫النوع‬ ‫من‬ ‫متغيرين‬ ‫مع‬ % ‫إستخدام‬ ‫هو‬ ‫و‬ float ‫للتغلب‬. ً‫ا‬‫إجباري‬ ‫المتغيرين‬ ‫من‬ ً‫ال‬‫ك‬ ‫تحويل‬ ‫يتم‬ ‫المشكلة‬ ‫هذه‬ ‫على‬ ‫إلى‬ int ‫الـ‬ ‫طريق‬ ‫عن‬ casting .‫كاآلتى‬ ، ‫الـ‬ ‫عملية‬ ‫فى‬ ‫أنه‬ ‫الحظ‬ casting ‫كسر‬ ‫أى‬ ‫إهمال‬ ‫سيتم‬ .‫المتغيرين‬ ‫فى‬ ‫موجود‬
  • 21. 22 ‫مع‬ ‫إستخدامه‬ ‫عند‬ ‫طبيعية‬ ‫بصورة‬ ‫يعمل‬ / ‫القسمة‬ ‫عامل‬ ‫النوع‬ ‫مع‬ ‫إستخدامه‬ ‫تم‬ ‫إذا‬ ‫أما‬ ، ‫صحيحة‬ ‫غير‬ ‫أعداد‬ int ‫يكون‬ ‫أن‬ ‫و‬ ‫بد‬ ‫ال‬ ‫الناتج‬ ‫فإن‬ int ‫يتم‬ ‫إنه‬ ‫أى‬ ، ‫أى‬ ‫إهمال‬ ‫ناتج‬ ً‫ال‬‫فمث‬ ، ‫العملية‬ ‫عن‬ ‫ناتج‬ ‫كسر‬ 0 . 2 / 5 . 0 ‫يساوى‬ 2 . 5 ‫ناتج‬ ‫أما‬ ، 5 / 2 ‫يساوى‬ 2 ‫إهمال‬ ‫تم‬ ‫أنه‬ ‫الحظ‬ . ‫القسمة‬ ‫عملية‬ ‫إجراء‬ ‫عند‬ ً‫ا‬‫جيد‬ ‫اإلنتباه‬ ‫عليك‬ ‫لذا‬ .‫الكسر‬ .‫سليمة‬ ‫نتائج‬ ‫على‬ ‫تحصل‬ ‫لكى‬ ‫الصحيحة‬ ‫األعداد‬ ‫على‬ ، ‫الحسابية‬ ‫للعمليات‬ ‫اإلختصارات‬ ‫بعض‬ ‫هناك‬ ‫يمكننا‬ ً‫ال‬‫فمث‬ ‫العملية‬ ‫هذه‬ ‫إستبدال‬ ‫بهذه‬ ‫العملية‬ ‫هذه‬ ‫أو‬ ‫بهذه‬ ‫بالـ‬ ‫األخيرة‬ ‫العملية‬ ‫تعرف‬ increment ‫الـ‬ ‫و‬ decrement ‫أو‬ ‫المتغير‬ ‫قيمة‬ ‫على‬ ‫واحد‬ ‫زيادة‬ ‫أى‬ .‫المتغير‬ ‫قيمة‬ ‫من‬ ‫واحد‬ ‫إنقاص‬
  • 22. 23 ‫اإلخراج‬ ‫و‬ ‫اإلدخال‬ ‫دوال‬ ‫الذاكر‬ ‫فى‬ ‫معين‬ ‫متغير‬ ‫فى‬ ‫بيانات‬ ‫حفظ‬ ‫يمكن‬ ‫ة‬ ‫قيمة‬ ‫المتغير‬ ‫هذا‬ ‫إعطاء‬ ‫يتم‬ ‫أن‬ ‫األولى‬ ، ‫بطريقتين‬ ‫الـ‬ ‫طريق‬ ‫عن‬ ‫مباشرة‬ assignment ‫عن‬ ‫أو‬ ، ‫فى‬ ‫حفظها‬ ‫و‬ ‫المستخدم‬ ‫من‬ ‫بيانات‬ ‫إستقبال‬ ‫طريق‬ ‫دوال‬ ‫إستخدام‬ ‫طريق‬ ‫عن‬ ‫بهذا‬ ‫نقوم‬ ‫و‬ ، ‫المتغير‬ ‫هذا‬ ‫منها‬ ‫لواحدة‬ ‫تعرضنا‬ ‫قد‬ ‫و‬ ، ‫اإلخراج‬ ‫و‬ ‫اإلدخال‬ ‫دالة‬ ‫هى‬ ‫و‬ ً‫ا‬‫سلف‬ printf ‫أنه‬ ‫قلنا‬ ‫و‬ ‫لطباعة‬ ‫تستخدم‬ ‫ا‬ ‫دوال‬ ‫من‬ ‫الكثير‬ ‫يوجد‬ ‫و‬ ، ‫للمستخدم‬ ‫معينة‬ ‫بيانات‬ ‫دالة‬ ‫غرار‬ ‫على‬ ‫اإلخراج‬ printf ‫هذه‬ ‫كل‬ ‫و‬ ، )‫ملف‬ ‫فى‬ ‫موجودة‬ ‫الدوال‬ stdio.h ‫تعرضنا‬ ‫الذى‬ ( ‫دالة‬ ‫اآلن‬ ‫سنستعرض‬ ‫و‬ ،ً‫ا‬‫سابق‬ ‫له‬ printf ‫دالة‬ ‫و‬ scanf – ‫من‬ ‫بيانات‬ ‫إدخال‬ ‫لعملية‬ ‫تستخدم‬ ‫المستخدم‬ – .‫التفصيل‬ ‫من‬ ‫بشىء‬ ‫دالة‬ printf ‫جملة‬ ‫أو‬ ‫للمستخدم‬ ‫متغير‬ ‫أى‬ ‫قيمة‬ ‫بعرض‬ ‫نقوم‬ ‫أن‬ ‫أردنا‬ ‫إذا‬ ‫نستخدم‬ ‫أن‬ ‫علينا‬ ‫فيجب‬ ، ‫نصية‬ printf .‫اآلتى‬ ‫كالمثال‬ ،
  • 23. 24 ‫مثال‬ ‫بإستخدام‬ " ‫على‬ " ‫إسمه‬ ‫شخص‬ ‫عمر‬ ‫بطباعة‬ ‫سنقوم‬ printf . ‫الطباعة‬ ‫جملة‬ ‫تكوين‬ ‫الحظ‬ printf ‫و‬ ، ‫الدالة‬ ‫إسم‬ ‫هى‬ ‫يكون‬ ً‫ا‬‫دائم‬ ‫األول‬ ‫المعامل‬ ‫و‬ ، ‫مزدوج‬ ‫تنصيص‬ ‫عالمتى‬ ‫بين‬ ‫يوضع‬ ‫نصى‬ ‫معامل‬ ‫بالـ‬ ‫يسمى‬ ‫ما‬ ‫على‬ ‫بداخله‬ ‫يحتوى‬ placeholder ‫أى‬ ، ‫سيأتى‬ ‫الذى‬ ‫المتغير‬ ‫عن‬ ‫ينوب‬ ‫ألنه‬ ‫كذلك‬ ‫مى‬ ُُ ُ‫س‬ ‫و‬ ‫النائب‬ ، ‫للمستخدم‬ ‫الجملة‬ ‫هذه‬ ‫طباعة‬ ‫فعند‬ ، ‫الثانى‬ ‫المعامل‬ ‫فى‬ ‫قيمة‬ ‫ستظهر‬ age ‫الـ‬ ‫مكان‬ placeholder ‫بذلك‬ ‫فهو‬ ، ‫و‬ ، ‫المطبوعة‬ ‫الجملة‬ ‫فى‬ ‫المتغير‬ ‫قيمة‬ ‫وضع‬ ‫مكان‬ ‫يحدد‬
  • 24. 25 ‫يوجد‬ ‫هنا‬ placeholder ‫واحد‬ ‫معامل‬ ‫أتى‬ ‫لذلك‬ ، ‫واحد‬ ‫إثنين‬ ‫هناك‬ ‫كان‬ ‫إذا‬ ‫و‬ ، ‫النصى‬ ‫المعامل‬ ‫بعد‬ placeholder ‫النصى‬ ‫المعامل‬ ‫بعد‬ ‫معاملين‬ ‫فسيأتى‬ ‫الـ‬ ‫إستبدال‬ ‫سيتم‬ ‫قيم‬ ‫على‬ ‫يحتويان‬ placeholder ‫بهم‬ ، ‫هكذا‬ ‫و‬ ‫الـ‬ ‫فأن‬ ‫لذلك‬ placeholder ‫عدد‬ ً‫ا‬‫أيض‬ ‫يحدد‬ . ‫بعده‬ ‫ستأتى‬ ‫التى‬ ‫المتغيرات‬ ‫أو‬ ‫المعامالت‬ ‫المثال‬ ‫خرج‬ ‫عمل‬ ‫عند‬ run .‫كاآلتى‬ ‫الخرج‬ ‫سيكون‬ ، ‫البرنامج‬ ‫لهذا‬ ‫مثال‬ ‫أعمار‬ ‫طباعة‬ 3 .‫مختلفين‬ ‫أشخاص‬
  • 25. 26 ‫الـ‬ ‫أن‬ ‫الحظ‬ placeholder ‫عنه‬ ‫التعويض‬ ‫سيتم‬ ‫األول‬ ‫بقيمة‬ age1 ) ‫الـ‬ ‫و‬ ، ( ‫النصى‬ ‫المعامل‬ ‫بعد‬ ‫معامل‬ ‫أول‬ placeholder ‫بقيمة‬ ‫عنه‬ ‫التعويض‬ ‫سيتم‬ ‫الثانى‬ age2 ‫كذلك‬ ‫و‬ ، (‫النصى‬ ‫المعامل‬ ‫بعد‬ ‫معامل‬ ‫ثانى‬ ) .‫للثالث‬ ‫بالنسبة‬ ‫البرنامج‬ ‫خرج‬ .‫كاآلتى‬ ‫البرنامج‬ ‫خرج‬ ‫يكون‬ ‫الحالة‬ ‫هذه‬ ‫فى‬ placeholders ‫الـ‬ ‫يبدأ‬ ‫ما‬ ً‫ا‬‫دائم‬ placeholder ‫األمثلة‬ ‫فى‬ ‫و‬ ، % ‫بـ‬ ‫إستخدمنا‬ ً‫ا‬‫دائم‬ ‫السابقة‬ %d ‫من‬ ‫متغير‬ ‫عن‬ ‫ينوب‬ ‫كان‬ ‫ألنه‬ ‫النوع‬ int ‫يكون‬ ‫ال‬ ‫لكنه‬ ‫و‬ ، %d ‫إنما‬ ، ‫الحاالت‬ ‫كل‬ ‫فى‬ ‫الـ‬ ‫يوضح‬ ‫جدول‬ ‫هذا‬ ‫و‬ ، ‫المتغير‬ ‫نوع‬ ‫بتغير‬ ‫يتغير‬ placeholder ‫المتغيرات‬ ‫أنواع‬ ‫بأكثر‬ ‫الخاص‬ .ً‫ا‬‫إستخدام‬ placeholder ‫المتغير‬ ‫نوع‬ ‫معها‬ ‫المستخدم‬ ‫الدالة‬
  • 26. 27 %c char printf / scanf %d int printf / scanf %f double printf %lf double scanf %ld long printf / scanf %f float printf / scanf ‫دالة‬ scanf ‫تقوم‬ ‫و‬ ‫المستخدم‬ ‫من‬ ‫المدخلة‬ ‫البيانات‬ ‫تستقبل‬ ‫الدالة‬ ‫هذه‬ ‫اآل‬ ‫كالمثال‬ ، ‫متغير‬ ‫فى‬ ‫بحفظها‬ .‫تى‬ ‫مثال‬ ‫حفظه‬ ‫و‬ ‫المستخدم‬ ‫من‬ ‫رقم‬ ‫بإستقبال‬ ‫سيقوم‬ ‫البرنامج‬ ‫هذا‬ .‫أخرى‬ ‫مرة‬ ‫طباعته‬ ‫ثم‬ ، ‫متغير‬ ‫فى‬
  • 27. 28 ‫الدالة‬ ‫اسم‬ ‫من‬ ‫البيانات‬ ‫إستقبال‬ ‫أمر‬ ‫يتكون‬ scanf ‫دالة‬ ‫فى‬ ‫األول‬ ‫للمعامل‬ ‫مشابه‬ ‫األول‬ ‫المعامل‬ ‫و‬ ، printf ‫على‬ ‫يحتوى‬ ‫نصى‬ ‫معامل‬ ‫عن‬ ‫عبارة‬ placeholder ‫يحدد‬ ‫التى‬ ‫المتغيرات‬ ‫نوع‬ ‫و‬ ‫عدد‬ ‫هو‬ ‫الثانى‬ ‫المعامل‬ ‫و‬ ، ‫فيهم‬ ‫البيانات‬ ‫إستقبال‬ ‫سيتم‬ .‫فيه‬ ‫البيانات‬ ‫تخزين‬ ‫سيتم‬ ‫الذى‬ ‫المتغير‬ ‫تسمى‬ ‫و‬ & ‫عالمة‬ ‫وضع‬ ‫تم‬ ‫أنه‬ ‫الحظ‬ address of operator ‫و‬ ، ‫بالعنوان‬ ‫يأتى‬ ‫الذى‬ ‫العامل‬ ‫أى‬ ‫يعنى‬ ‫فإنه‬ ‫الجملة‬ ‫هذه‬ ‫فى‬ ‫كما‬ ‫متغير‬ ‫قبل‬ ‫وضعه‬ ‫عند‬ ‫بإ‬ ‫يقوم‬ ‫أنه‬ ‫دالة‬ ‫إلخبار‬ ‫المتغير‬ ‫هذا‬ ‫عنوان‬ ‫حضار‬ scanf ‫اسمه‬ ‫الذى‬ ‫المتغير‬ ‫بعنوان‬ num ‫فى‬ .‫فيه‬ ‫المدخلة‬ ‫القيمة‬ ‫وضع‬ ‫ليتم‬ ‫الذاكرة‬ ‫البرنامج‬ ‫خرج‬ .‫كاآلتى‬ ، ‫السابق‬ ‫البرنامج‬ ‫ناتج‬ ‫يكون‬ ‫و‬
  • 28. 29 ‫تطبيقى‬ ‫برنامج‬ ‫توظيف‬ ‫يتم‬ ‫فيها‬ ‫و‬ ، ‫الكتاب‬ ‫فقرات‬ ‫أهم‬ ‫من‬ ‫تعد‬ ‫الفقرة‬ ‫هذه‬ ‫درا‬ ‫تم‬ ‫ما‬ ‫كيف‬ ‫لتتعلم‬ ‫هذا‬ ‫و‬ ، ً‫ا‬‫نسبي‬ ‫كبير‬ ‫برنامج‬ ‫فى‬ ‫سته‬ ‫يتم‬ ‫كما‬ ، ‫الخاصة‬ ‫برامجك‬ ‫عمل‬ ‫فى‬ ‫تعلمته‬ ‫ما‬ ‫توظف‬ .‫البرنامج‬ ‫شرح‬ ‫خالل‬ ‫الهامة‬ ‫المعلومات‬ ‫من‬ ‫المزيد‬ ‫عرض‬ ‫بنفسك‬ ‫بتنفيذه‬ ‫القيام‬ ‫ثم‬ ، ً‫ا‬‫جيد‬ ‫الكود‬ ‫فهم‬ ‫يتم‬ ‫أن‬ ‫يفضل‬ ‫و‬ .‫القصوى‬ ‫للضرورة‬ ‫إال‬ ‫بالكتاب‬ ‫اإلستعانة‬ ‫دون‬ ‫برنام‬ ‫اكتب‬ ‫معينة‬ ‫مالية‬ ‫قيمة‬ ‫إدخال‬ ‫المستخدم‬ ‫من‬ ‫يطلب‬ ً‫ا‬‫ج‬ ‫عدد‬ ‫أقل‬ ‫طريق‬ ‫عن‬ ‫المبلغ‬ ‫هذا‬ ‫دفع‬ ‫كيفية‬ ‫بعرض‬ ‫قم‬ ‫ثم‬ ، ‫بقيمة‬ ‫الفواتير‬ ‫من‬ 22 ‫و‬، ‫جنيه‬ 12 ، ‫خمسه‬ ‫و‬ ، ‫جنيهات‬ ‫بقيمة‬ ‫مالى‬ ‫مبلغ‬ ‫المستخدم‬ ‫أدخل‬ ‫إذا‬ ً‫ال‬‫فمث‬.‫وواحد‬ 112 : ‫كاآلتى‬ ‫الخرج‬ ‫يكون‬ ، ‫جنيه‬
  • 29. 31 20L.E bills = 5 10 L.E bills =1 5 L.E bills = 0 1 L.E bills = 2
  • 30. 30 ‫البرنامج‬ ‫شرح‬ ‫خالل‬ ‫سنستخدمها‬ ‫التى‬ ‫المتغيرات‬ ‫بتعريف‬ ‫نقوم‬ ً‫ال‬‫أو‬ ‫سنستخدم‬ ‫البرنامج‬ ‫هذا‬ ‫فى‬ ‫و‬ ، ‫البرنامج‬ 5 ‫متغيرات‬ ‫و‬، ‫المدخلة‬ ‫للقيمة‬ ‫واحدة‬ 4 ‫الفواتير‬ ‫من‬ ‫نوع‬ ‫كل‬ ‫عدد‬ ‫لحفظ‬ .‫باآلتى‬ ‫فنقوم‬ ، ‫ثم‬ ‫المستخدم‬ ‫من‬ ‫المبلغ‬ ‫قيمة‬ ‫إدخال‬ ‫طلب‬ ‫نريد‬ ً‫ا‬‫ثاني‬ ‫طريق‬ ‫عن‬ ‫بهذا‬ ‫القيام‬ ‫يمكننا‬ ‫و‬ ، ‫متغير‬ ‫فى‬ ‫إستقبالها‬ .‫اآلتية‬ ‫األوامر‬ ‫لسداد‬ ‫المستخدمة‬ ‫الفواتير‬ ‫من‬ ‫عدد‬ ‫أقل‬ ‫حساب‬ ‫نريد‬ ‫اآلن‬ ‫و‬ ‫القمية‬ ‫ذات‬ ‫الفواتير‬ ‫عدد‬ ‫حساب‬ ‫يتم‬ ً‫ال‬‫أو‬ ، ‫المبلغ‬ ‫هذا‬ 22 ، ‫المبلغ‬ ‫بقسمة‬ ‫ذلك‬ ‫و‬ ‫على‬ 22 ‫متغير‬ ‫فى‬ ‫الناتج‬ ‫حفظ‬ ‫و‬ ، ‫النوع‬ ‫من‬ int ‫فى‬ ‫مثال‬ ، ‫الباقى‬ ‫سيهمل‬ ‫أنه‬ ‫يعنى‬ ‫هذا‬ ‫و‬ ، ‫ناتج‬ ‫المذكور‬ ‫المثال‬ 112 / 20 ‫سيكون‬ 5 ‫بهذا‬ ‫و‬ ، ‫فقط‬ ‫القيمة‬ ‫ذات‬ ‫الفواتير‬ ‫عدد‬ ‫حسبنا‬ ‫قد‬ ‫نكون‬ 22 ‫نحتاجها‬ ‫التى‬ .
  • 31. 32 ‫على‬ ‫المبلغ‬ ‫قسمة‬ ‫من‬ ‫المتبقى‬ ‫على‬ ‫الحصول‬ ‫يجب‬ ‫اآلن‬ 22 ‫بذلك‬ ‫نقوم‬ ‫و‬ ، ‫اآلتى‬ ‫التعبير‬ ‫طريق‬ ‫عن‬ 112 % 20 ‫يكون‬ ‫الناتج‬ 12 ‫الفواتير‬ ‫عدد‬ ‫حساب‬ ‫فى‬ ‫الناتج‬ ‫بإستخدام‬ ‫نقوم‬ ، ‫القمية‬ ‫ذات‬ - 12 ‫على‬ ‫المبلغ‬ ‫بقسمة‬ ‫ذلك‬ ‫و‬ ، 12 ‫حفظ‬ ‫و‬ ، ‫النوع‬ ‫من‬ ‫متغير‬ ‫فى‬ ‫الناتج‬ int ‫الكود‬ ‫فيكون‬ .. ‫هكذا‬ ‫و‬ ، .‫الشكل‬ ‫بهذا‬ ‫المستخدم‬ ‫ك‬ ‫من‬ ‫الفواتير‬ ‫عدد‬ ‫بطباعة‬ ‫نقوم‬ ‫اآلن‬ ‫للمستخدم‬ ‫نوع‬ ‫ل‬ .‫كاآلتى‬ ‫ذلك‬ ‫و‬ ‫مناسب‬ ‫بشكل‬ ‫من‬ ‫أكثر‬ ‫فى‬ ‫طباعتها‬ ‫تريد‬ ‫جملة‬ ‫كتابة‬ ‫أردت‬ ‫إذا‬ ‫أنك‬ ‫الحظ‬ ‫على‬ ‫سطر‬ ‫كل‬ ‫على‬ ‫التنصيص‬ ‫بإغالق‬ ‫تقوم‬ ‫الكود‬ ‫من‬ ‫سطر‬ ‫أثناء‬ ‫التنصيص‬ ‫عالمات‬ ‫من‬ ‫سيتخلص‬ ‫المترجم‬ ‫و‬ ‫حدة‬ ‫فى‬ ‫التنصيص‬ ‫عالمتى‬ ‫بدون‬ ‫كتابتها‬ ‫يمكنك‬ ‫ال‬ ‫و‬، ‫الترجمة‬
  • 32. 33 ‫الجمل‬ ‫نهاية‬ ،‫الثانية‬ ‫الجملة‬ ‫بداية‬ ‫فى‬ ‫بدونها‬ ‫أو‬ ‫األولى‬ ‫ة‬ ‫جزء‬ ‫الثانى‬ ‫السطر‬ ‫فى‬ ‫الموجودة‬ ‫الجملة‬ ‫أن‬ ‫يعتبر‬ ‫لن‬ ‫ألنه‬ . ‫األولى‬ ‫الجملة‬ ‫من‬ ‫اآلتى‬ ‫التعبير‬ ‫نالحظ‬ ً‫ا‬‫أيض‬ ‫هنا‬ ‫و‬ n ‫لبدء‬ ‫يستخدم‬ ‫هو‬ ‫و‬ ، ‫بالـ‬ ‫التعبيرات‬ ‫هذه‬ ‫تسمى‬ ‫و‬ ، ‫جديد‬ ‫سطر‬ escape sequence ً‫ا‬‫إستخدم‬ ‫أكثرها‬ ‫إليك‬ ‫و‬ ، . ‫فى‬ ‫تطبيقى‬ ‫برنامج‬ ‫أول‬ ‫تنفيذ‬ ‫من‬ ‫إنتهينا‬ ‫قد‬ ‫نكون‬ ‫اآلن‬ ‫و‬ ‫للغة‬ ‫دراستنا‬ ‫فى‬ ‫أكثر‬ ‫لمواضيع‬ ‫نتطرق‬ ‫عندما‬ ، ‫الكتاب‬ ‫هذا‬ ‫ستك‬ ، ‫أتركك‬ ‫اآلن‬ . ‫عملية‬ ‫أكثر‬ ‫لنا‬ ‫التطبيقية‬ ‫البرامج‬ ‫ون‬ .‫التمارين‬ ‫مع‬ ‫التمارين‬ Escape sequence ‫العمل‬ /n ‫جديد‬ ‫سطر‬ ‫بدء‬ /r ‫السطر‬ ‫بداية‬ ‫إلى‬ ‫العودة‬ /t ‫مسافة‬ tab // , /’ , /? , /” / ‫الـ‬ ‫بعد‬ ‫ما‬ ‫طباعة‬
  • 33. 34 ‫هو‬ ،‫برمجة‬ ‫لغة‬ ‫أى‬ ‫اتقان‬ ‫فى‬ ‫النجاح‬ ‫عوامل‬ ‫أهم‬ ‫من‬ ‫لذا‬ ،‫المختلفة‬ ‫البرامج‬ ‫كتابة‬ ‫على‬ ‫المستمر‬ ‫العملى‬ ‫التدريب‬ ‫نهايته‬ ‫فى‬ ً‫ا‬‫مصحوب‬ ‫الكتاب‬ ‫هذا‬ ‫فى‬ ‫موضوع‬ ‫كل‬ ‫سيكون‬ ‫متدر‬ ‫التمارين‬ ‫من‬ ‫جيدة‬ ‫بمجموعة‬ ‫يجب‬ ‫التى‬ ،‫الصعوبة‬ ‫جة‬ .‫تمرين‬ ‫أول‬ ‫مع‬ ‫أترككم‬ .. ‫بنفسك‬ ‫بتنفيذها‬ ‫تقوم‬ ‫أن‬ 1 ( ‫األسبوعى‬ ‫راتبه‬ ‫المستخدم‬ ‫من‬ ‫يستقبل‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ ‫اليومية‬ ‫عمله‬ ‫ساعات‬ ‫عدد‬ ‫كذلك‬ ‫و‬ ، ‫المصرى‬ ‫بالجنيه‬ - ‫النوع‬ ‫من‬ ‫كقيم‬ float - ‫بطباعة‬ ‫البرنامج‬ ‫يقوم‬ ‫ثم‬ ، ‫الواح‬ ‫للساعة‬ ‫يتقاضاه‬ ‫الذى‬ ‫األجر‬ ‫متوسط‬ ‫هيئة‬ ‫على‬ ‫دة‬ .‫قروش‬ ‫و‬ ‫جنيهات‬ 2 ( ‫فئة‬ ‫من‬ ‫األول‬ ، ‫المنتجات‬ ‫من‬ ‫نوعين‬ ‫لديك‬ ‫كان‬ ‫إذا‬ 3 ‫فئة‬ ‫من‬ ‫الثانى‬ ‫و‬ ، ‫جنيهات‬ 5 ً‫ا‬‫برنامج‬ ‫اكتب‬ ، ‫جنيهات‬ ‫كل‬ ‫من‬ ‫شرائها‬ ‫المراد‬ ‫القطع‬ ‫عدد‬ ‫المستخدم‬ ‫من‬ ‫يستقبل‬ .‫اإلجمالى‬ ‫الحساب‬ ‫بطباعة‬ ‫البرنامج‬ ‫يقوم‬ ‫ثم‬ ، ‫نوع‬ 3 ( ‫لحساب‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ ‫تهذيب‬ ‫فى‬ ‫المستغرق‬ ‫الوقت‬ ‫المنزل‬ ‫أبعاد‬ ‫المستخدم‬ ‫من‬ ‫اطلب‬ ، ‫المنزل‬ ‫بحديقة‬ ‫النبات‬ ‫قطر‬ ‫نصف‬ ‫كذلك‬ ‫و‬ ، ‫مستطيل‬ ‫شكل‬ ‫على‬ ‫المنزل‬ ‫بأن‬ ً‫ا‬‫علم‬ ، ‫دائرة‬ ‫شكل‬ ‫على‬ ‫بأنها‬ ً‫ا‬‫علم‬ ‫المنزل‬ ‫تحوى‬ ‫التى‬ ‫الحديقة‬ ‫دقيقة‬ ‫كم‬ ، ‫دقيقتان‬ ‫يستغرق‬ ‫الواحد‬ ‫المربع‬ ‫المتر‬ ‫بأن‬ ً‫ا‬‫علم‬ ‫حديقة‬ ‫لتهذيب‬ ‫تلزم‬ ‫ا‬ .‫لمنزل‬
  • 34. 35 ‫الثالث‬ ‫الفصل‬ ‫الجــــــمـــل‬ ‫ـية‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ط‬‫ـر‬‫ـ‬‫ـ‬‫ـ‬‫ش‬‫ال‬  ‫تك‬ ‫أن‬ ‫يجب‬ ‫ما‬ ‫الفصل‬ ‫هذا‬ ‫نهاية‬ ‫فى‬ ‫تعلمته‬ ‫قد‬ ‫ون‬ ‫؟‬  ‫بناء‬ ‫فى‬ ‫المقارنة‬ ‫عوامل‬ ‫إستخدام‬ ‫يتم‬ ‫كيف‬ ‫؟‬ ‫الشرطية‬ ‫بالجمل‬ ‫الخاصة‬ ‫الشروط‬  ‫الشرطية‬ ‫الجملة‬ if .‫المختلفة‬ ‫أنواعها‬ ‫و‬ ،  ‫الشرطية‬ ‫الجملة‬ switch case .
  • 35. 36 ‫البداية‬ ‫فى‬ ‫ندرس‬ ، ‫الشرطية‬ ‫الجمل‬ ‫دراسة‬ ‫فى‬ ‫البدء‬ ‫قبل‬ ) ‫العوامل‬ operators ‫تكوين‬ ‫فى‬ ‫سنستخدمها‬ ‫التى‬ ( ‫من‬ ‫نوعين‬ ‫هناك‬ ‫و‬ ، ‫الشرطية‬ ‫بالجمل‬ ‫الخاص‬ ‫الشرط‬ ) ‫المقارنة‬ ‫عوامل‬ : ‫العوامل‬ comparison . ( logic operators ) ‫المنطقية‬ ‫العوامل‬ ‫و‬ ) operators ‫المقارنة‬ ‫عوامل‬ ‫المعنى‬ ‫العامل‬ ‫من‬ ‫أكبر‬ > ‫من‬ ‫أصغر‬ < ‫أو‬ ‫من‬ ‫أكبر‬ ‫يساوى‬ >= ‫أو‬ ‫من‬ ‫أصغر‬ ‫يساوى‬ <= ‫يساوى‬ == ‫يساوى‬ ‫ال‬ =! : ( ‫شائعة‬ ‫أخطاء‬ ) ‫انتبه‬ 1 ( ‫ليس‬ ‫و‬ == ‫نستخدم‬ ‫قيمتين‬ ‫تساوى‬ ‫اختبار‬ ‫حالة‬ ‫فى‬ . =
  • 36. 37 2 ( ، ‫قيمتين‬ ‫بين‬ ‫متغير‬ ‫قيمة‬ ‫وجود‬ ‫اختبار‬ ‫أردت‬ ‫إذا‬ ‫ف‬ ً‫ال‬‫مث‬ ‫هكذا‬ ‫يكتب‬ ‫الشرط‬ ( 1 < x && x > 5 ) ‫و‬ ، ‫الصورة‬ ‫هذه‬ ‫على‬ ‫ليس‬ ( 1 < x < 5 ) ‫الصورة‬ ‫فهذه‬ ، .‫خاطئة‬ ‫المنطقية‬ ‫العوامل‬ ‫المعنى‬ ‫المعامل‬ ‫قيمته‬ ‫المعامل‬ ‫كان‬ ‫إذا‬ ، ‫فقط‬ ‫واحد‬ ‫معامل‬ ‫مع‬ ‫يستخدم‬ true ‫بـ‬ ‫يعود‬ false .‫العكس‬ ‫و‬ ، ! ‫يشترط‬ ‫و‬ ، ‫معاملين‬ ‫مع‬ ‫يستخدم‬ ً‫ا‬‫مع‬ ‫تحققهما‬ - ‫كالهما‬ ‫أن‬ ‫أى‬ true - .‫الشرط‬ ‫جواب‬ ‫بتنفيذ‬ ‫يقوم‬ ‫لكى‬ && .‫األقل‬ ‫على‬ ‫منهم‬ ً‫ا‬‫واحد‬ ‫تحقق‬ ‫يشترط‬ ‫و‬ ، ‫معاملين‬ ‫مع‬ ‫يستخدم‬ || ‫خالل‬ ‫من‬ ‫المعامالت‬ ‫تلك‬ ‫إستخدام‬ ‫كيفية‬ ‫أكثر‬ ‫لنا‬ ‫سيتبين‬ .‫القادمة‬ ‫األمثلة‬ ‫جملة‬ if ‫الشرطية‬ ‫الم‬ ‫العوامل‬ ‫أنواع‬ ‫تناولنا‬ ‫أن‬ ‫بعد‬ ‫جملة‬ ‫بناء‬ ‫فى‬ ‫ستخدمة‬ ‫الجمل‬ ‫أنواع‬ ‫من‬ ‫نوع‬ ‫أول‬ ‫بناء‬ ‫نستعرض‬ ، ‫الشرط‬ . if statement ‫هو‬ ‫و‬ ‫الشرطية‬
  • 37. 38 ‫تتكون‬ if ‫مجموعة‬ ‫و‬ ‫واحد‬ ‫شرط‬ ‫من‬ ‫صورها‬ ‫أبسط‬ ‫فى‬ . ‫الشرط‬ ‫هذا‬ ‫تحقق‬ ‫عند‬ ‫تنفيذهم‬ ‫يتم‬ ‫األوامر‬ ‫من‬ .‫كاآلتى‬ ‫عندما‬ ‫الموضحة‬ ‫الجملة‬ ‫بطباعة‬ ‫تقوم‬ ‫الشرطية‬ ‫الجملة‬ ‫هذه‬ ‫تكون‬ ‫المتغير‬ ‫قيمة‬ num ‫من‬ ‫أكبر‬ 2 ‫الـ‬ ‫من‬ ‫أقل‬ ‫و‬ 5 ‫و‬ ، if ‫تسمى‬ ‫الحالة‬ ‫هذه‬ ‫فى‬ simple if ‫شرط‬ ‫هناك‬ ‫ألن‬ .‫واحد‬ ‫يتم‬ ‫الشرط‬ ‫تحقق‬ ‫عند‬ ‫نفذ‬ُ‫ي‬ ‫أمر‬ ‫من‬ ‫أكثر‬ ‫وجود‬ ‫حالة‬ ‫فى‬ ‫األوامر‬ ‫مجموعة‬ ‫لتحتوى‬ }{ ‫النوع‬ ‫من‬ ‫أقواس‬ ‫إستخدام‬ .‫كاآلتى‬ .‫الشرط‬ ‫تحقق‬ ‫عند‬ ‫تنفيذها‬ ‫المراد‬ ‫يمكنن‬ ‫و‬ ‫طريق‬ ‫عن‬ ‫شرط‬ ‫من‬ ‫أكثر‬ ‫اختبار‬ ‫ا‬ if ‫المتعددة‬ .‫كاآلتى‬ ‫الشروط‬
  • 38. 39 ‫هذه‬ ‫و‬ ، ‫السابقة‬ ‫الشرطية‬ ‫الجملة‬ ‫بين‬ ‫الفرق‬ ‫ما‬ ‫لكن‬ ‫و‬ ‫؟‬ ‫الشرطية‬ ‫الجملة‬ ‫الثانى‬ ‫الشرط‬ ‫يختبر‬ ‫ال‬ ‫األولى‬ ‫الحالة‬ ‫فى‬ ‫البرنامج‬ ‫أن‬ ‫الفرق‬ ‫يختبر‬ ‫الثانية‬ ‫الحالة‬ ‫فى‬ ‫بينما‬ ، ‫األول‬ ‫الشرط‬ ‫تحقق‬ ‫إذا‬ ‫الثان‬ ‫الشرط‬ ‫يبدو‬ ‫هذا‬ ‫و‬ ، ‫يتحقق‬ ‫لم‬ ‫أم‬ ‫األول‬ ‫تحقق‬ ‫سواء‬ ‫ى‬ ‫من‬ ‫أحدهما‬ ‫تنفيذ‬ ‫يؤثر‬ ‫ال‬ ‫منفصلتين‬ ‫الجملتين‬ ‫ألن‬ ً‫ا‬‫عقالني‬ .‫اآلخر‬ ‫على‬ ‫عدمه‬ ‫عدم‬ ‫حال‬ ‫فى‬ ‫األوامر‬ ‫من‬ ‫مجموعة‬ ‫بتنفيذ‬ ‫تقوم‬ ‫أن‬ ‫ويمكنك‬ ‫بإستخدام‬ ‫الشرطية‬ ‫الجلة‬ ‫شروط‬ ‫من‬ ‫أى‬ ‫تحقق‬ else :‫كاآلتى‬
  • 39. 41 ‫كلمة‬ ‫تطبع‬ ‫الجملة‬ ‫فهذه‬ ERROR ‫ف‬ ‫قيمة‬ ‫أن‬ ‫حالة‬ ‫ى‬ ‫المتغير‬ x ‫تساوى‬ ‫ال‬ 5 ‫تساوى‬ ‫ال‬ ‫و‬ 6 .‫كذلك‬ ‫جملة‬ if ‫المتداخلة‬ ‫عليها‬ ‫يطلق‬ Nested if ‫شرطية‬ ‫جملة‬ ‫عن‬ ‫عبارة‬ ‫هى‬ ‫و‬ ‫كالمثال‬ ، ‫أكثر‬ ‫أو‬ ‫أخرى‬ ‫شرطية‬ ‫جملة‬ ‫بداخلها‬ ‫تحتوى‬ .‫اآلتى‬ ‫األول‬ ‫الشرط‬ ‫تحقق‬ ‫عند‬ ‫األولى‬ ‫الطباعة‬ ‫جملة‬ ‫تنفذ‬ (x==5) ‫ا‬ ‫جملة‬ ‫و‬ ، ‫تحقق‬ ‫عند‬ ‫إال‬ ‫تنفذ‬ ‫ال‬ ‫الثانية‬ ‫لطباعة‬ ‫األول‬ ‫الشرط‬ (x==5) ‫الثانى‬ ‫و‬ (y==5) .
  • 40. 40 ‫مثال‬ ‫بين‬ ‫من‬ ‫األكبر‬ ‫الرقم‬ ‫بطباعة‬ ‫يقوم‬ ‫برنامج‬ 3 ‫يقوم‬ ‫أرقام‬ ‫بإستخدام‬ ) ‫المستخدم‬ ‫بإدخالها‬ nested if .(
  • 41. 42 ‫بإستخدام‬ ‫كلها‬ ‫البيانات‬ ‫إستقبال‬ ‫هنا‬ ‫تعمدت‬ scanf ‫دالة‬ ‫أن‬ ‫لك‬ ‫ألبين‬ ، ‫واحدة‬ scanf ‫ذكية‬ ‫دالة‬ ‫أكثر‬ ‫فى‬ ‫تخزينها‬ ‫و‬ ‫قيمة‬ ‫من‬ ‫أكثر‬ ‫استقبال‬ ‫يمكنها‬ ‫بين‬ ‫يفصل‬ ‫أن‬ ‫على‬ ، ‫واحدة‬ ‫جملة‬ ‫فى‬ ‫متغير‬ ‫من‬ ‫مسافة‬ ‫أو‬ ‫بمسافة‬ ‫المدخلة‬ ‫القيم‬ tab ‫أو‬ enter ، ‫إدخالها‬ ‫فيجب‬ ‫معادلة‬ ‫إدخال‬ ‫المستخدم‬ ‫أراد‬ ‫فإذا‬ : ‫التالى‬ ‫بالشكل‬ 2 + 10 ‫ث‬ ، ‫يضغط‬ ‫م‬ Enter ‫القيم‬ ‫بين‬ ‫المسافات‬ ‫على‬ ‫يحافظ‬ ‫أن‬ ‫على‬ ، ‫لإلدخال‬ .‫المدخلة‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫تختبر‬ ‫الخارجية‬ ‫الشرطية‬ ‫الجملة‬ x ‫من‬ ‫أكبر‬ y ‫أن‬ ‫إحتمالين‬ ‫هناك‬ ‫الحالة‬ ‫هذه‬ ‫فى‬ ، x ‫أو‬ ‫األرقام‬ ‫أكبر‬ ‫هى‬ z ‫استخدمنا‬ ‫لذا‬ ، ‫األكبر‬ ‫هى‬ ‫كان‬ ‫إذا‬ ‫ما‬ ‫تختبر‬ ‫داخلية‬ ‫شرطية‬ ‫جملة‬ x ‫من‬ ‫أكبر‬ z ‫حي‬ ‫تكون‬ ‫نها‬ x ، ‫للمستخدم‬ ‫طباعتها‬ ‫فيتم‬ ‫األكبر‬ ‫هى‬ ‫ذلك‬ ‫غير‬ ‫أو‬ (else) ‫أن‬ ‫أى‬ z ‫من‬ ‫أكبر‬ x ‫حينها‬ ‫و‬ ‫طباعة‬ ‫يتم‬ z ‫تكن‬ ‫لم‬ ‫اذا‬ ‫أما‬ ، x ‫من‬ ‫أكبر‬ y ) else ‫هنا‬ ‫فيوجد‬ ، ‫الخارجية‬ ‫الشرطية‬ ‫للجملة‬ ( ‫تكون‬ ‫أن‬ ، ‫احتمالين‬ y ‫من‬ ‫أكبر‬ z ‫طباعة‬ ‫فيتم‬ ، y ‫أن‬ ‫أو‬ ، z ‫من‬ ‫أكبر‬ y ‫طب‬ ‫فيتم‬ ‫اعة‬ z .
  • 42. 43 Switch Case ‫جملة‬ ‫على‬ ‫تعرفنا‬ ‫أن‬ ‫بعد‬ ‫و‬ if ‫اآلن‬ ‫نستعرض‬ ، ‫الشرطية‬ ‫جملة‬ ‫هى‬ ‫و‬ ، ‫الشرطية‬ ‫الجمل‬ ‫أنواع‬ ‫ثانى‬ Switch case .‫كاآلتى‬ ‫العام‬ ‫البنائى‬ ‫شكلها‬ ،‫الشرطية‬
  • 43. 44 :‫أن‬ ‫الحظ‬ . if ‫جملة‬ ‫فى‬ else ‫عمل‬ default ‫تعمل‬ )1 2 ( ‫ت‬ ‫ستخدم‬ switch case ‫النوع‬ ‫مع‬ char ‫و‬ int ‫النوع‬ ‫مع‬ ‫تعمل‬ ‫ال‬ ‫و‬ ، ‫فقط‬ double . 3 ( ‫بإستخدام‬ ‫معين‬ ‫مدى‬ ‫إختبار‬ ‫يمكن‬ ‫ال‬ switch case ‫نقول‬ ‫أن‬ ‫يمكن‬ ‫ال‬ ‫أى‬ ، case x<5: . 4 ( ‫وضع‬ ‫يجب‬ ‫أنه‬ ‫الحظ‬ break ‫كل‬ ‫آخر‬ ‫فى‬ ‫جملة‬ ‫من‬ ‫الخروج‬ ‫ليتم‬ ، ‫حالة‬ Switch case ‫األو‬ ‫تنفيذ‬ ‫بعد‬ ‫كاملة‬ ‫فى‬ ‫وضعها‬ ‫يجب‬ ‫ال‬ ‫و‬ ، ‫امر‬ ‫الـ‬ ‫حالة‬ ‫آخر‬ default ‫التى‬ ‫و‬ ‫الجمل‬ ‫آخر‬ ‫ألن‬ ، ‫من‬ ‫الخروج‬ ‫سيتم‬ Switch case ‫اإلنتهاء‬ ‫بعد‬ .‫منها‬
  • 44. 45 ‫مثال‬ ‫على‬ ‫و‬ ، ‫المستخدم‬ ‫من‬ ً‫ا‬‫رقم‬ ‫نستقبل‬ ‫المثال‬ ‫هذا‬ ‫فى‬ .‫معينة‬ ‫جملة‬ ‫نطبع‬ ‫الرقم‬ ‫حسب‬
  • 45. 46 ‫الحاالت‬ ‫أغلب‬ ‫فى‬ ‫إستخدام‬ ‫يتم‬ if ‫الجمل‬ ‫بناء‬ ‫فى‬ ‫استخدام‬ ‫يفضل‬ ‫قليلة‬ ‫حاالت‬ ‫هناك‬ ‫لكن‬ ‫و‬ ، ‫الشرطية‬ switch case ‫نختبر‬ ‫الذى‬ ‫المتغير‬ ‫كان‬ ‫إذا‬ ً‫ال‬‫مث‬ ) ‫القيم‬ ‫من‬ ‫محدود‬ ‫مدى‬ ‫له‬ ‫الشروط‬ ‫عليه‬ 12 ‫أو‬ ‫قيم‬ ‫من‬ ‫يكون‬ ‫و‬ ( ‫أقل‬ . int ‫أو‬ char ‫النوع‬ ‫تطبيقى‬ ‫برنامج‬ ‫يقو‬ ، ‫الحاسبة‬ ‫آلة‬ ‫برنامج‬ ‫الجمع‬ ) ‫التالية‬ ‫بالعمليات‬ ‫م‬ ‫على‬ ، (‫القسمة‬ ‫باقى‬ ، ‫القسمة‬ ، ‫الضرب‬ ، ‫الطرح‬ ، ‫بها‬ ‫القيام‬ ‫يريد‬ ‫التى‬ ‫العملية‬ ‫المستخدم‬ ‫من‬ ‫تستقبل‬ ‫أن‬ .‫عليهما‬ ‫العملية‬ ‫إجراء‬ ‫المراد‬ ‫العددين‬ ‫كذلك‬ ‫و‬
  • 46. 47 ‫البرنامج‬ ‫شرح‬ ‫سنستخ‬ ‫التى‬ ‫المتغيرات‬ ‫بتعريف‬ ‫نقوم‬ ً‫ال‬‫أو‬ ‫خالل‬ ‫دمها‬ ، ‫البرنامج‬ 3 ‫النوع‬ ‫من‬ ‫متغيرات‬ float ‫لتخزين‬ ‫النوع‬ ‫من‬ ‫متغير‬ ‫و‬ .‫الناتج‬ ‫و‬ ، ‫العددين‬ char .‫العملية‬ ‫نوع‬ ‫لتخزين‬
  • 47. 48 ‫من‬ ‫المطلوبة‬ ‫البيانات‬ ‫إستقبال‬ ‫و‬ ‫بطلب‬ ‫نقوم‬ ‫ثم‬ .‫المستخدم‬ ً‫ا‬‫وبناء‬ ،‫المطلوبة‬ ‫العملية‬ ‫نوع‬ ‫بإختبار‬ ‫هنا‬ ‫قمنا‬ ‫ثم‬ ‫بإجرا‬ ‫نقوم‬ ‫المستخدم‬ ‫طلب‬ ‫على‬ ‫الحسابية‬ ‫العملية‬ ‫ء‬ ‫العددين‬ ‫من‬ ً‫ال‬ً‫ك‬ ‫بتحويل‬ ‫قمنا‬ ‫أننا‬ ‫الحظ‬ .‫المناسبة‬ ‫إلى‬ int ‫ال‬ ‫ألنه‬ % ‫المعامل‬ ‫إستخدمنا‬ ‫عندما‬ ‫النوع‬ ‫على‬ ‫يستخدم‬ float ‫النهاية‬ ‫فى‬ ‫نقوم‬ ‫ثم‬ ، ، . ‫العملية‬ ‫ناتج‬ ‫بعرض‬
  • 48. 49 ‫فى‬ ‫الشرطية‬ ‫الجمل‬ ‫شرح‬ ‫من‬ ‫انتهينا‬ ‫قد‬ ‫نكون‬ ‫هنا‬ ‫تعلم‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ، ‫السى‬ ‫لغة‬ ‫إستخدام‬ ‫كيفية‬ ‫ت‬ ‫خالل‬ ‫من‬ ‫و‬ ، ‫الصور‬ ‫أبسط‬ ‫فى‬ ‫الشرطية‬ ‫الجمل‬ ‫بالتأكيد‬ ‫التى‬ ‫القادمة‬ ‫المواضيع‬ ‫فى‬ ‫البرامج‬ ‫و‬ ‫األمثلة‬ ‫ستألف‬ ، ‫الشرطية‬ ‫الجمل‬ ‫من‬ ‫الكثير‬ ‫فيها‬ ‫سنستخدم‬ ‫برامجك‬ ‫فى‬ ‫توظيفها‬ ‫كيفية‬ ‫و‬ ‫معها‬ ‫العمل‬ ‫كيفية‬ ‫أكثر‬ ‫مع‬ ‫اآلن‬ ‫أتركك‬ .. ‫السهولة‬ ‫بمنتهى‬ ‫الخاصة‬ . ‫التمارين‬ ‫تمارين‬ 1 ( ‫منتج‬ ‫من‬ ‫المشتريات‬ ‫قيمة‬ ‫لحساب‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ ‫منه‬ ‫الواحدة‬ ‫القطعة‬ ‫قيمة‬ ‫معين‬ 12 ‫و‬ ،‫جنيهات‬ ‫من‬ ‫اكثر‬ ‫كمية‬ ‫أى‬ ‫على‬ ‫تخفيض‬ ‫يوجد‬ 52 ‫قطعة‬ ‫يبلغ‬ 12 % ‫من‬ ‫أكثر‬ ‫كمية‬ ‫أى‬ ‫على‬ ‫و‬ 122 ‫قطعة‬ ‫يبلغ‬ 22 % ‫شرائها‬ ‫المراد‬ ‫الكمية‬ ‫استقبل‬ ،‫تنسى‬ ‫ال‬ ، ‫قيمة‬ ‫بطباعة‬ ‫قم‬ ‫ثم‬ ‫المستخدم‬ ‫من‬ ‫بعد‬ ‫المشتريات‬ .‫المناسب‬ ‫التخفيض‬
  • 49. 51 2 ( ‫فى‬ ‫الطالب‬ ‫درجة‬ ‫بإستقبال‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ ‫حيث‬ ) ‫حرفية‬ ‫صورة‬ ‫فى‬ ‫يطبعها‬ ‫ثم‬ ‫رقمية‬ ‫صورة‬ : .) F = 0 – 50 ، D = 65 – 50 ، C = 75 – 65 ، B = 85 – 75 ، A = 85 - 100 3 ( ‫بإستخدام‬ ‫حاسبة‬ ‫آلة‬ ‫برنامج‬ ‫اكتب‬ Switch case . 4 ( ‫على‬ ‫نقطة‬ ‫المستخدم‬ ‫من‬ ‫يستقبل‬ ‫برنامجأ‬ ‫اكتب‬ ‫المستوى‬ x-y ‫كانت‬ ‫إذا‬ ‫عما‬ ‫بطباعة‬ ‫يقوم‬ ‫ثم‬ ، ‫من‬ ‫ربع‬ ‫فى‬ ‫تقع‬ ‫أم‬ ‫المحورين‬ ‫أحد‬ ‫على‬ ‫تقع‬ ‫النقطة‬ .‫تقع‬ ‫ربع‬ ‫أى‬ ‫فى‬ ‫و‬ ‫األربعة‬ ‫األرباع‬ 5 ( ‫من‬ ‫التاريخ‬ ‫بإستقبال‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ ‫هيئة‬ ‫على‬ ‫المستخدم‬ 3 ،‫اليوم‬ ‫األول‬ ،‫صحيحة‬ ‫أرقام‬ ‫هذا‬ ‫بطباعة‬ ‫يقوم‬ ‫ثم‬ .‫السنة‬ ‫الثالث‬ ‫و‬،‫الشهر‬ ‫الثانى‬ ‫و‬ ‫الهيئة‬ ‫هذه‬ ‫على‬ ‫التاريخ‬ October 1993 8 th ‫الدخل‬ ‫كان‬ ‫إذا‬ 8 10 1993 ‫الحظ‬ ) . nd , 2 st 1 rd , 23 nd , 22 st , 21 rd , 3 ‫يأخذ‬ ‫الباقى‬ ‫و‬ th ‫مثل‬ 4 th , 5 th .‫هكذا‬ ‫و‬ ,
  • 50. 50 ‫الرابع‬ ‫الفصل‬ ‫الـــتـــكــ‬ ‫الحــــلــقـــات‬ ‫ـراريـــة‬ ‫؟‬ ‫الفصل‬ ‫هذا‬ ‫نهاية‬ ‫فى‬ ‫تعلمته‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ‫ما‬  ‫التكرارية‬ ‫الحلقة‬ while .  ‫التكرارية‬ ‫الحلقة‬ do-while .  ‫التكرارية‬ ‫الحلقة‬ for  ‫األمرين‬ . . continue break ‫؟‬ ‫التكرارية‬ ‫الحلقات‬ ‫نستخدم‬ ‫لماذا‬ ‫جملة‬ ‫طباعة‬ ‫أمر‬ ‫ليكن‬ ‫و‬ ‫معين‬ ‫أمر‬ ‫بتنفيذ‬ ‫تقوم‬ ‫أن‬ ‫أردت‬ ‫إذا‬ ‫م‬ ‫عينة‬ 12 ‫بكتابة‬ ‫ستقوم‬ .. ‫؟‬ ‫ستفعل‬ ‫ماذا‬ ، ‫مرات‬ 12 ‫جمل‬ ‫طباعتها‬ ‫أردت‬ ‫إذا‬ .. ‫؟‬ ‫طباعة‬ 122 ‫سيصبح‬ .. ‫؟‬ ‫مرة‬ ‫هذا‬ ‫الطباعة‬ ‫جملة‬ ‫كتابة‬ ‫فى‬ ‫استمريت‬ ‫إذا‬ ً‫ا‬‫سخيف‬ ‫األمر‬ ‫أن‬ ‫يمكنها‬ ‫التكرارية‬ ‫الحلقات‬ .‫المرات‬ ‫من‬ ‫الكبير‬ ‫العدد‬ ‫معينة‬ ‫مجموعة‬ ‫بتكرار‬ ‫تقوم‬ ‫فهى‬ ، ‫المشكلة‬ ‫هذه‬ ‫مع‬ ‫تتعامل‬ ‫م‬ ‫أو‬ ‫المرات‬ ‫من‬ ‫محدد‬ ‫عدد‬ ‫سواء‬ ‫مرة‬ ‫من‬ ‫أكثر‬ ‫األوامر‬ ‫ن‬ .‫عنده‬ ‫التكرار‬ ‫يتوقف‬ ‫معين‬ ‫حدث‬ ‫وقوع‬ ‫حتى‬ ‫تكرارها‬
  • 51. 52 ‫التكرارية‬ ‫الحلقة‬ while ‫بشرحها‬ ‫سنقوم‬ ‫التى‬ ‫التكرارية‬ ‫الحلقات‬ ‫من‬ ‫نوع‬ ‫أول‬ ‫هى‬ .‫كاآلتى‬ ‫العام‬ ‫بناؤها‬ ‫و‬ ، ‫الفصل‬ ‫هذا‬ ‫فى‬ ‫ت‬ ‫تكرار‬ ‫سيستمر‬ ‫الشرط‬ ‫تحقق‬ ‫حالة‬ ‫فى‬ ‫التى‬ ‫األوامر‬ ‫نفيذ‬ ‫و‬ ‫التكرار‬ ‫عملية‬ ‫فتتوقف‬ ‫الشرط‬ ‫ينتفى‬ ‫حتى‬ ، ‫بداخلها‬ .‫التكرارية‬ ‫الحلقة‬ ‫بعد‬ ‫من‬ ‫البرنامج‬ ‫تنفيذ‬ ‫ستكمل‬ُ‫ي‬ ‫مثال‬ ‫الشرط‬ ‫إختبار‬ ‫يتم‬ ‫التكرارية‬ ‫الحلقة‬ ‫هذه‬ ‫فى‬ i < 10 ‫كل‬ ‫فى‬ ‫قيمة‬ ‫تكون‬ ‫البداية‬ ‫فى‬ ‫و‬ ، ‫الطباعة‬ ‫جملة‬ ‫تنفيذ‬ ‫ليتم‬ ‫مرة‬ i = 0 ‫يعنى‬ ‫هذا‬ ‫و‬ ‫الطباعة‬ ‫جملة‬ ‫تنفيذ‬ ‫فيتم‬ ، ‫الشرط‬ ‫تحقق‬
  • 52. 53 ‫قيمة‬ ‫تزداد‬ ‫ثم‬ i ‫األمر‬ ‫على‬ ً‫ا‬‫بناء‬ ‫واحد‬ ‫بمقدار‬ i++ ) ‫الشرط‬ ‫إختبار‬ ‫من‬ ‫جديد‬ ‫من‬ ‫الحلقة‬ ‫تبدأ‬ ‫ثم‬ ، ( ‫العداد‬ ‫ألن‬ ‫الشرط‬ ‫سيتحقق‬ ‫وحينها‬ i = 1 ‫من‬ ‫أقل‬ ‫أنها‬ ‫أى‬ 10 ‫تكون‬ ‫حتى‬ ‫هكذا‬ ‫و‬ ‫الطباعة‬ ‫جملة‬ ‫تنفيذ‬ ‫فيتم‬ i = 10 ‫و‬ ‫ال‬ ‫يتحقق‬ ‫ال‬ ‫حينها‬ ‫الموجودة‬ ‫األوامر‬ ‫تنفيذ‬ ‫يتم‬ ‫فال‬ ‫شرط‬ . ‫الحلقة‬ ‫بداخل‬ ‫المثال‬ ‫خرج‬ ‫بـ‬ ‫الخاص‬ ‫العداد‬ ‫أن‬ ‫الحظ‬ while loop ‫باقى‬ ‫مع‬ ‫يكتب‬ ‫المتغير‬ ‫تعريف‬ ‫أن‬ ً‫ا‬‫أيض‬ ‫حظ‬ ‫ال‬ ‫و‬ ، ‫الحلقة‬ ‫بداخل‬ ‫األوامر‬ i ‫فى‬ ‫البدء‬ ‫قبل‬ ‫بخارجها‬ ‫تعريفه‬ ‫تم‬ ‫الحلقة‬ ‫فى‬ ‫المستخدم‬ .‫التكرارية‬ ‫الحلقة‬ ‫ال‬ ‫الحلقة‬ ‫تكرارية‬ do while ‫على‬ ‫تعرفنا‬ ‫أن‬ ‫بعد‬ ‫و‬ while loop ‫على‬ ‫اآلن‬ ‫نتعرف‬ ‫وهو‬ ‫منها‬ ‫خاص‬ ‫نوع‬ do-while loop ‫فى‬ ‫تتخذ‬ ‫و‬ ، .‫اآلتى‬ ‫الشكل‬ ‫العام‬ ‫بنائها‬
  • 53. 54 ‫حلقة‬ ‫به‬ ‫تقوم‬ ‫ما‬ ‫بنفس‬ ‫تقوم‬ ‫الحلقة‬ ‫هذه‬ while loop ، ‫و‬ ، ‫الشرط‬ ‫إختبار‬ ‫قبل‬ ‫واحدة‬ ‫مرة‬ ‫األمر‬ ‫بتنفيذ‬ ‫تقوم‬ ‫لكنها‬ ‫و‬ ‫إلى‬ ‫انتبه‬ ‫فى‬ ‫موجودة‬ ‫غير‬ ‫ألنها‬ ‫الشرط‬ ‫بعد‬ ; ‫وجود‬ while loop . ‫تستخدم‬ do-while loop ‫بـ‬ ‫مقارنة‬ ً‫ا‬‫نادر‬ while loop ‫و‬ for loop ‫الحلقة‬ ‫لهذه‬ ‫إستخدام‬ ‫أشهر‬ ‫و‬ ، ‫من‬ ‫مجموعة‬ ‫تكرر‬ ‫أن‬ ‫تريد‬ ‫عندما‬ ‫إستخدامها‬ ‫هو‬ ‫التكرارية‬ .‫واحدة‬ ‫مرة‬ ‫األقل‬ ‫على‬ ‫األوامر‬ ‫مثال‬ ‫و‬ ‫السابق‬ ‫المثال‬ ‫نفس‬ ‫بإستخدام‬ ‫لكن‬ do while
  • 54. 55 ‫التكرارية‬ ‫الحلقة‬ for ‫إستخدام‬ ‫المبرمجين‬ ‫من‬ ‫كثير‬ ‫يفضل‬ for loop ‫اغلب‬ ‫فى‬ ‫فى‬ ‫المستخدم‬ ‫المتغير‬ ‫تعريف‬ ‫يتم‬ ‫ببساطة‬ ‫ألنه‬ ، ‫األحيان‬ ‫هو‬ ‫و‬ ، ‫فقط‬ ‫واحد‬ ‫سطر‬ ‫فى‬ ‫العداد‬ ‫و‬ ‫الشرط‬ ‫تحديد‬ ‫و‬ ‫الحلقة‬ ‫البناء‬ ‫هو‬ ‫هذا‬ ‫و‬ .‫المبرمج‬ ‫على‬ ً‫ا‬‫كثير‬ ‫يسهل‬ ‫ما‬ ‫لـ‬ ‫العام‬ for loop . ‫مثال‬ ‫بإستخدام‬ ‫لكن‬ ‫و‬ ‫السابقين‬ ‫المثالين‬ ‫نفس‬ for ‫و‬، ‫السابقة‬ ‫الحلقات‬ ‫به‬ ‫قامت‬ ‫بما‬ ‫تقوم‬ ً‫ا‬‫أيض‬ ‫الحلقة‬ ‫هذه‬ ‫لـ‬ ً‫ا‬‫تمام‬ ‫المختلف‬ ‫التكوين‬ ‫الحظ‬ ‫لكن‬ for loop ‫الحظ‬ ‫و‬ ، ‫إنه‬ ‫ألذكرك‬ }{ ‫وضع‬ ‫عدم‬ ‫هنا‬ ‫تعمدت‬ ‫و‬ .‫تركيبها‬ ‫بساطة‬ ‫كان‬ ‫حال‬ ‫فى‬ ‫وضعها‬ ‫عدم‬ ‫يمكن‬ ‫أمر‬ ‫تنفيذها‬ ‫المراد‬ ‫األوامر‬ ‫ت‬ ‫جملة‬ ‫فى‬ ‫سواء‬ ‫واحد‬ if ‫الحلقات‬ ‫من‬ ‫أى‬ ‫فى‬ ‫أو‬ ‫الشرطية‬ .‫التكرارية‬ ‫تعريف‬ ) ‫الثالثة‬ ‫المعامالت‬ ‫من‬ ‫أى‬ ‫عن‬ ‫اإلستغناء‬ ‫يمكن‬ ‫عنهم‬ ‫اإلستغناء‬ ‫يمكن‬ ‫أو‬ ( ‫العداد‬ ‫و‬ ‫الشرط‬ ‫و‬ ‫المتغير‬
  • 55. 56 ‫ينتج‬ ‫لن‬ ‫و‬ ، ‫ذلك‬ ‫أردت‬ ‫ما‬ ‫إذا‬ ‫فارغين‬ ‫تركهم‬ ‫و‬ ً‫ا‬‫جميع‬ ‫أى‬ ‫عن‬ ‫هذا‬ .‫التالى‬ ‫بالشكل‬ ‫يكون‬ ‫أن‬ ‫يجب‬ ‫لكن‬ ‫و‬ ‫أخطاء‬ ‫األمران‬ continue ‫و‬ break ‫الحلقات‬ ‫مع‬ ‫األحيان‬ ‫أغلب‬ ‫فى‬ ‫األمران‬ ‫هذان‬ ‫يستخدم‬ .‫اآلخر‬ ‫عن‬ ‫أحدهما‬ ‫عمل‬ ‫يختلف‬ ‫و‬ ، ‫التكرارية‬ break ‫األمر‬ ‫و‬ ، ً‫ا‬‫فور‬ ‫التكرارية‬ ‫الحلقة‬ ‫من‬ ‫بالخروج‬ ‫األمر‬ ‫هذا‬ ‫يقوم‬ ‫إست‬ ‫يتم‬ ‫ما‬ ً‫ا‬‫غالب‬ ‫تنفيذ‬ ‫يتم‬ ، ‫تحققه‬ ‫تم‬ ‫إذا‬ ‫معين‬ ‫شرط‬ ‫خدام‬ ‫األمر‬ break .‫التكرارية‬ ‫الحلقة‬ ‫من‬ ‫الخروج‬ ‫و‬
  • 56. 57 ‫مثال‬ ‫األعداد‬ ‫بطباعة‬ ‫يقوم‬ ‫البرنامج‬ ‫هذا‬ ‫أن‬ ‫المفترض‬ ‫من‬ ‫من‬ ‫الصحيحة‬ 1 ‫إلى‬ 9 ‫جملة‬ ‫بإدخال‬ ‫قمنا‬ ‫لكننا‬ ‫و‬ ، ‫أمر‬ ‫بتفيذ‬ ‫تقوم‬ ‫شرطية‬ break ‫تكون‬ ‫عندما‬ i ‫تساوى‬ 5 ‫م‬ ‫الخروج‬ ‫سيتم‬ ‫و‬ ، ، ‫الحال‬ ‫فى‬ ً‫ا‬‫تمام‬ ‫التكرارية‬ ‫الحلقة‬ ‫ن‬ ‫رقم‬ ‫بطباعة‬ ‫ستقوم‬ ‫التى‬ ‫الطباعة‬ ‫جملة‬ ‫تنفيذ‬ ‫يتم‬ ‫فال‬ 5 ‫و‬ ، .‫تكرارات‬ ‫من‬ ‫بعدها‬ ‫ما‬ ‫المثال‬ ‫خرج‬ .‫كاآلتى‬ ‫السابق‬ ‫المثال‬ ‫خرج‬ ‫فيكون‬
  • 57. 58 ‫األمر‬ continue ‫األمر‬ ‫يقوم‬ continue ‫ما‬ ‫تنفيذ‬ ‫بعدم‬ ‫تنفيذه‬ ‫عند‬ ‫ا‬ ‫أوامر‬ ‫من‬ ‫تبقى‬ ‫و‬ ، ‫فقط‬ ‫الحالية‬ ‫التكرارية‬ ‫لحلقة‬ .‫طبيعية‬ ‫بصورة‬ ‫تليها‬ ‫التى‬ ‫الحلقات‬ ‫باقى‬ ‫بتنفيذ‬ ‫يقوم‬ ‫مثال‬ ‫األمر‬ ‫إستبدال‬ ‫تم‬ ‫لكن‬ ‫و‬ ‫السابق‬ ‫المثال‬ ‫نفس‬ break ‫باألمر‬ continue . ‫تكون‬ ‫عندما‬ ‫الحالة‬ ‫هذه‬ ‫فى‬ i ‫تساوى‬ 5 ‫سيقوم‬ ، ‫األمر‬ ‫بتنفيذ‬ ‫البرنامج‬ continue ‫سيتم‬ ‫و‬ ،
  • 58. 59 ‫ا‬ ‫بعدها‬ ‫تأتى‬ ‫أوامر‬ ‫أى‬ ‫عن‬ ‫لتغاضى‬ – ‫جملة‬ ‫الرقم‬ ‫بطباعة‬ ‫تقوم‬ ‫التى‬ ‫الطباعة‬ 5 - ‫لكن‬ ‫و‬ ‫بعدها‬ ‫طبيعى‬ ‫بشكل‬ ‫عملها‬ ‫التكرارية‬ ‫الحلقة‬ ‫ستكمل‬ ‫رقم‬ ‫طباعة‬ ‫فيتم‬ 6 ‫و‬ 7 ‫و‬ 8 ‫و‬ 9 . ‫المثال‬ ‫خرج‬ ‫الرقم‬ ‫طباعة‬ ‫يتم‬ ‫لم‬ ‫أنه‬ ‫هنا‬ ‫الحظ‬ 5 . ‫تطبيقى‬ ‫برنامج‬ ‫تخم‬ ‫لعبة‬ ‫بتصميم‬ ‫سنقوم‬ ‫سأختار‬ ‫أنى‬ ‫بمعنى‬ ، ‫ين‬ ‫هذا‬ ‫تخمين‬ ‫المستخدم‬ ‫على‬ ‫و‬ ، ‫محدد‬ ‫مدى‬ ‫فى‬ ً‫ا‬‫رقم‬ ‫لديه‬ ‫و‬ ‫صحيحة‬ ‫بصورة‬ ‫الرقم‬ 3 ‫متاحة‬ ‫محاوالت‬ ‫نفاذ‬ ‫قبل‬ ً‫ا‬‫صحيح‬ ‫الرقم‬ ‫يخمن‬ ‫أن‬ ‫عليه‬ ‫فقط‬ .‫محاوالته‬
  • 59. 61
  • 60. 60 ‫الشرح‬ .‫سنستخدمها‬ ‫التى‬ ‫المتغيرات‬ ‫بتعريف‬ ‫نقوم‬ ‫متغي‬ ‫نعرف‬ ‫و‬ ‫إبتدائية‬ ‫قيمة‬ ‫نعطيه‬ ‫و‬ ‫نختاره‬ ‫الذى‬ ‫للرقم‬ ‫ر‬ ‫ليكن‬ 4 ‫بتخمينه‬ ‫سيقوم‬ ‫الذى‬ ‫الرقم‬ ‫إلستقبال‬ ‫متغير‬ ‫و‬ ، .‫المستخدم‬ ‫جمل‬ ‫طباعة‬ ‫و‬ ، ‫للبرنامج‬ ‫العام‬ ‫الشكل‬ ‫برسم‬ ‫نقوم‬ .‫كاآلتى‬ ، ‫اللعبة‬ ‫فكرة‬ ‫توضح‬ ‫للمستخدم‬ ‫بعمل‬ ‫نقوم‬ ‫ثم‬ for loop ‫للمستخدم‬ ‫تتيح‬ 3 ‫فقط‬ ‫محاوالت‬ ‫يتم‬ ‫و‬، ، ‫خطأ‬ ‫أم‬ ً‫ا‬‫صحيح‬ ‫المدخل‬ ‫الرقم‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫إختبار‬ )‫المحدد‬ ‫المدى‬ ‫بداخل‬ ‫هو‬ ‫هل‬ ‫خطأ‬ ‫كان‬ ‫إذا‬ ‫و‬ 20 – 1 ‫أم‬ ( .‫كاآلتى‬ ،‫خارحه‬
  • 61. 62 ‫قيمة‬ ‫المحاوالت‬ ‫لعدد‬ ‫أعطينا‬ ‫أننا‬ ‫هنا‬ ‫فنالحظ‬ ‫إبتدائية‬ 3 ‫أن‬ ‫الشرط‬ ‫و‬ ‫واحد‬ ‫مرة‬ ‫كل‬ ‫يقل‬ ‫العداد‬ ‫و‬ ‫عن‬ ‫تقل‬ ‫ال‬ ‫المحاوالت‬ 1 ‫ستكرر‬ ‫الحلقة‬ ‫أن‬ ‫أى‬ ، ‫نف‬ ‫سها‬ 3 ‫نقوم‬ ،‫حلقة‬ ‫كل‬ ‫بداية‬ ‫فى‬.‫أقصى‬ ‫كحد‬ ‫مرات‬ ‫من‬ ‫نطلب‬ ‫و‬ ‫المتبقية‬ ‫المحاوالت‬ ‫عدد‬ ‫بطباعة‬ .‫المدخل‬ ‫الرقم‬ ‫نستقبل‬ ‫ثم‬ ‫الرقم‬ ‫إدخال‬ ‫المستخدم‬ ‫بها‬ ‫الثانى‬ ‫النوع‬ ‫محدد‬ ، ‫األولى‬ ‫الطباعة‬ ‫جملة‬ %s ‫سيكون‬ ‫القادم‬ ‫الثانى‬ ‫المعامل‬ ‫ان‬ ‫أى‬ string ‫و‬ ، ‫الجملة‬ ‫هذه‬ ‫ما‬ ‫لكن‬ tries == 1 ? “try”: “tries” ً‫ا‬‫تمام‬ ‫تساوى‬ ‫هذه‬ if (tries == 1) “try” else “tries” ‫عدد‬ ‫كانت‬ ‫إذا‬ ‫أنه‬ ‫أى‬ ، ‫طباعة‬ ‫فيتم‬ ‫واحدة‬ ‫المحاوالت‬ try ‫غير‬ ‫كان‬ ‫إذا‬ ‫و‬
  • 62. 63 ‫فأطبع‬ ‫أكبر‬ ‫أى‬ ‫ذلك‬ tries ‫التى‬ ‫الجملة‬ ‫فهذه‬ ، ‫لـ‬ ‫اختصار‬ ‫مجرد‬ ‫رأيتها‬ if . ‫إ‬ ، ‫ال‬ ‫أم‬ ً‫ا‬‫صحيح‬ ‫الرقم‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫بإختبار‬ ‫قمنا‬ ‫ثم‬ ‫كان‬ ‫ذا‬ ‫تخمينه‬ ‫بأن‬ ‫المستخدم‬ ‫تخبر‬ ‫جملة‬ ‫بطباعة‬ ‫نقوم‬ ً‫ا‬‫صحيح‬ ‫االمر‬ ‫طريق‬ ‫عن‬ ‫البرنامج‬ ‫ننهى‬ ‫ثم‬ ً‫ا‬‫صحيح‬ ‫كان‬ return 0 ‫من‬ ‫المدى‬ ‫فى‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫فنختبره‬ ‫خطأ‬ ‫كان‬ ‫إذا‬ ‫أما‬ ، 1 ‫إلى‬ 20 ‫أن‬ ‫المستخدم‬ ‫أخبرنا‬ ،‫المدى‬ ‫فى‬ ‫كان‬ ‫إذا‬ . ‫ال‬ ‫أم‬ ‫أخ‬ ‫المدى‬ ‫غير‬ ‫فى‬ ‫كان‬ ‫إذا‬ ‫و‬ ،‫صحيح‬ ‫غير‬ ‫اختياره‬ ‫أن‬ ‫برناه‬ .‫المدى‬ ‫خارج‬ ‫خمنه‬ ‫الذى‬ ‫الرقم‬ ‫بالرقم‬ ‫المستخدم‬ ‫يأتى‬ ‫لم‬ ‫و‬ ‫محاوالت‬ ‫الثالث‬ ‫انتهت‬ ‫فإذا‬ ‫الـ‬ ‫تنتهى‬ ‫الصحيح‬ for loop ‫الـ‬ ‫بعد‬ ‫فنطبع‬ ، loop ،‫الثالثة‬ ‫محاوالته‬ ‫استنفذ‬ ‫قد‬ ‫أنه‬ ‫المستخدم‬ ‫تخبر‬ ‫جملة‬ .‫كاآلتى‬
  • 63. 64 ‫البرنامج‬ ‫اختبار‬ ‫لنت‬ ‫البرنامج‬ ‫نجرب‬ ‫اآلن‬ ‫و‬ ،‫الصحيح‬ ‫بالشكل‬ ‫يعمل‬ ‫إنه‬ ‫أكد‬ ‫خارجه‬ ‫أخرى‬ ‫و‬ ‫المدى‬ ‫داخل‬ ‫فى‬ ‫خاطئة‬ ‫قيمة‬ ‫له‬ ‫ندخل‬ .‫كاآلتى‬ ‫متوقع‬ ‫هو‬ ‫كما‬ ‫الخرج‬ ‫فيكون‬ .‫صحيحة‬ ‫وأخيرة‬ ‫تمارين‬ 1 - ‫و‬ ‫الكبرى‬ ‫القيمة‬ ‫بحساب‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ ‫األرقام‬ ‫من‬ ‫مجموعة‬ ‫بين‬ ‫من‬ ‫الصغرى‬ ‫القيمة‬ ‫مدى‬ ‫بطباعة‬ ‫يقوم‬ ‫و‬، ‫المستخدم‬ ‫بإدخالها‬ ‫يقوم‬ ‫من‬ ‫المدخلة‬ ‫القيم‬ ‫تلك‬ ‫عدد‬ ‫استقبل‬ .‫القيم‬ ‫هذه‬ .ً‫ال‬‫أو‬ ‫المستخدم‬
  • 64. 65 2 - ‫مجموعة‬ ‫متوسط‬ ‫بحساب‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ ‫كذلك‬ ‫و‬ ،‫المستخدم‬ ‫من‬ ‫إستقبالها‬ ‫يتم‬ ‫األرقام‬ ‫من‬ ‫اإلنحراف‬ ‫حساب‬ ‫و‬ ،‫القيم‬ ‫هذه‬ ‫مربعات‬ ‫مجموع‬ ‫المعيارى‬ ‫اإلنحراف‬ ‫بأن‬ ً‫ا‬‫علم‬. ‫لهم‬ ‫المعيارى‬ ‫جذر‬ ‫يساوى‬ « ‫مقسوم‬ ‫المربعات‬ ‫مجموع‬ ‫على‬ ً‫ا‬ ‫المتوسط‬ ‫مربع‬ ‫من‬ ً‫ا‬‫مطروح‬ ‫ثم‬ ‫القيم‬ ‫عدد‬ .» ‫بـ‬ ‫اسعتن‬ math.h ‫بإستخدام‬ ‫الجذر‬ ‫لحساب‬ ‫دالة‬ sqrt() . 3 - ‫المشترك‬ ‫القاسم‬ ‫بحساب‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ .‫بإدخالهم‬ ‫المستخدم‬ ‫يقوم‬ ‫رقمين‬ ‫بين‬ ‫األكبر‬ 4 - ‫يتيح‬ ‫بحيث‬ ، ‫التخمين‬ ‫لعبة‬ ‫برنامج‬ ‫عدل‬ ‫يل‬ ‫أن‬ ‫يريد‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫اختيار‬ ‫للمستخدم‬ ‫عب‬ ‫اختار‬ ‫إذا‬ ، ‫ال‬ ‫أم‬ ‫اللعبة‬ ‫إنتهاء‬ ‫بعد‬ ‫أخرى‬ ‫مرة‬ ‫فى‬ ‫اللعبة‬ ‫تبدأ‬ ‫أن‬ ‫يجب‬ ‫أخرى‬ ‫مرة‬ ‫يلعب‬ ‫أن‬ .‫جديد‬ ‫من‬ ‫العمل‬ 5 - ‫أول‬ ‫بطباعة‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ 52 ‫فى‬ ‫عدد‬ ‫المتتابعة‬ ‫هذه‬ ‫بأن‬ ً‫ا‬‫علم‬ ، ‫فيبوناتشى‬ ‫متتابعة‬ ‫مجموع‬ ‫من‬ ‫عدد‬ ‫كل‬ ‫فيها‬ ‫يتكون‬ ‫الحسابية‬ ‫ثان‬ ‫و‬ ‫أول‬ ‫و‬ ، ‫له‬ ‫السابقين‬ ‫العددين‬ ‫فى‬ ‫رقم‬ ‫ى‬ ‫يساوى‬ ‫السلسلة‬ 1 . .( … 8 , 5 , 3 , 2 , 1 , 1 .‫هكذا‬ ‫و‬ )
  • 65. 66 ‫الخامس‬ ‫الفصل‬ ‫ـات‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ف‬‫ـو‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ف‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ص‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫م‬‫ال‬ ‫هذا‬ ‫نهاية‬ ‫فى‬ ‫تعلمته‬ ‫قد‬ ‫تكون‬ ‫أن‬ ‫يجب‬ ‫ما‬ ‫؟‬ ‫الفصل‬ ‫يتم‬ ‫لماذا‬ ‫و‬ ، ‫المصفوفات‬ ‫هى‬ ‫ما‬ .‫إستخدامها‬ .‫المصفوفات‬ ‫تعريف‬ ‫كيفية‬ ‫المصفوفا‬ ‫الثنائية‬ ‫ت‬ . .‫المصفوفات‬ ‫على‬ ‫العمليات‬ ‫أشهر‬
  • 66. 67 ‫؟‬ ‫المصفوفات‬ ‫إستخدام‬ ‫يتم‬ ‫لماذا‬ ‫إستخدام‬ ‫أردت‬ ‫إذا‬ 3 ‫النوع‬ ‫من‬ ً‫ال‬‫مث‬ ‫متغيرات‬ int ‫ماذا‬ ، ‫حدة‬ ‫على‬ ‫منهم‬ ‫واحد‬ ‫كل‬ ‫بتعريف‬ ‫ستقوم‬ .. ‫؟‬ ‫ستفعل‬ ‫بتعريف‬ ‫تقوم‬ ‫أن‬ ‫أردت‬ ‫أنك‬ ‫نفرض‬ .‫العادية‬ ‫بالطريقة‬ 122 ‫يص‬ ‫هنا‬ .. ‫؟‬ ‫متغير‬ ‫يتم‬ ‫لذلك‬ ، ‫مستحيل‬ ‫شبه‬ ‫األمر‬ ‫بح‬ ‫من‬ ‫مجموعة‬ ‫بداخلها‬ ‫لتحتوى‬ ‫المصفوفات‬ ‫إستخدام‬ .‫النوع‬ ‫نفس‬ ‫من‬ ‫العناصر‬ ‫؟‬ ‫المصفوفات‬ ‫هى‬ ‫ما‬ ) ‫البيانات‬ ‫هياكل‬ ‫أنواع‬ ‫أشهر‬ ‫هى‬ ‫المصفوفات‬ data structure ( – ‫تجمعها‬ ‫البيانات‬ ‫من‬ ‫مجموعة‬ ‫هى‬ ‫و‬ ‫معينة‬ ‫صفة‬ - ‫المصف‬ ‫عناصر‬ ‫تجمع‬ ‫التى‬ ‫الصفة‬ ‫و‬ ، ‫وفة‬ . ‫النوع‬ ‫نفس‬ ‫من‬ ‫أنهم‬ ‫هى‬ ‫المصفوفات‬ ‫تعريف‬ ‫قوسين‬ ‫زيادة‬ ‫مع‬ ، ‫آخر‬ ‫متغير‬ ‫كأى‬ ‫المصفوفة‬ ‫تعريف‬ ‫يتم‬ ‫عدد‬ ‫وضع‬ ‫يتم‬ ‫بداخله‬ ‫و‬ ‫المتغير‬ ‫إسم‬ ‫بعد‬ ] [ ‫النوع‬ ‫من‬ ‫من‬ ‫مصفوفة‬ ‫تعريف‬ ‫يتم‬ ً‫ال‬‫فمث‬ .‫المصفوفة‬ ‫تلك‬ ‫عناصر‬ ‫النوع‬ int ‫عناصرها‬ ‫عدد‬ 12 .‫كاآلتى‬
  • 67. 68 ‫لهذه‬ ‫نضع‬ ‫أن‬ ‫يمكننا‬ ‫و‬ ‫التى‬ ‫اإلبتدائية‬ ‫القيم‬ ‫المصفوفة‬ ‫عدد‬ ‫وضع‬ ‫عن‬ ‫اإلستغناء‬ ‫يمكن‬ ‫أنه‬ ‫الحظ‬ ‫و‬ ، ‫تحملها‬ ‫أثناء‬ ‫إبتدائية‬ ‫قيم‬ ‫لها‬ ‫وضع‬ ‫تم‬ ‫إذا‬ ‫المصفوفة‬ ‫عناصر‬ . ‫اآلتى‬ ‫بالشكل‬ ‫كما‬ .‫التعريف‬ ‫الذاكرة‬ ‫فى‬ ‫مصفوفة‬ ‫شكل‬ ‫تخيل‬ ‫يمكنك‬ ‫و‬ - ‫عناصرها‬ 16 { , 8 , 4 , 2 , 1 } - .‫بالشكل‬ ‫كما‬ ‫رتبة‬ ‫أن‬ ‫الحظ‬ ‫ليس‬ ‫و‬ ‫صفر‬ ‫من‬ ‫تبدأ‬ ‫العناصر‬ 1 ‫كان‬ ‫لذلك‬ ، ‫و‬ ،‫بواحد‬ ‫المصفوفة‬ ‫عناصر‬ ‫عدد‬ ‫من‬ ‫أقل‬ ‫عنصر‬ ‫آخر‬ ‫رتبة‬ ‫رتبته‬ ‫طريق‬ ‫عن‬ ‫المصفوفة‬ ‫فى‬ ‫عنصر‬ ‫ألى‬ ‫الوصول‬ ‫يمكننا‬ ‫تعاملنا‬ ‫آخر‬ ‫متغير‬ ‫أى‬ ‫مثل‬ ‫مثله‬ ‫عملية‬ ‫أى‬ ‫فى‬ ‫استخدامه‬ ‫ثم‬ ‫و‬ ‫األول‬ ‫العنصر‬ ‫نجمع‬ ‫أن‬ ‫أردنا‬ ‫لو‬ ً‫ال‬‫فمث‬ ، ‫قبل‬ ‫من‬ ‫معه‬ ‫هذ‬ ‫فى‬ ‫األخير‬ ، ‫آخر‬ ‫متغير‬ ‫فى‬ ‫نحفظهم‬ ‫و‬ ‫المصفوفة‬ ‫ه‬ .‫كاآلتى‬ ‫بذلك‬ ‫سنقوم‬
  • 68. 69 ، ‫البعد‬ ‫أحادية‬ ‫السابقة‬ ‫الحاالت‬ ‫فى‬ ‫المصفوفات‬ ‫على‬ ‫يطلق‬ ‫يتم‬ ‫و‬ ،‫أكثر‬ ‫أو‬ ‫ثالثة‬ ‫أو‬ ‫بعدين‬ ‫ذات‬ ‫مصفوفات‬ ‫هناك‬ ‫لكن‬ ‫و‬ ‫مثال‬ ‫فى‬ ‫ذلك‬ ‫سنرى‬ ‫كما‬ ‫إبتدائية‬ ‫قيم‬ ‫إعطائهم‬ ‫و‬ ‫تعريفهم‬ ‫الصفوف‬ ‫عدد‬ .‫البعدين‬ ‫ذات‬ ‫المصفوفات‬ ‫مع‬ ‫فى‬ ‫يكتب‬ ‫األقواس‬ ‫فى‬ ‫يكتب‬ ‫األعمدة‬ ‫عدد‬ ‫و‬، ‫األولى‬ ][ ‫األقواس‬ .‫الثانية‬ ‫مصفوفة‬ ‫التالية‬ ‫المصفوفة‬ 3 * 4 ‫من‬ ‫مكونة‬ ‫أى‬ ، 3 ‫و‬ ‫صفوف‬ 4 ‫الذاكرة‬ ‫فى‬ ‫شكلها‬ ‫تخيل‬ ‫يمكنك‬ ‫و‬، ‫أعمدة‬ .‫كاآلتى‬
  • 69. 71 ‫على‬ ‫معينة‬ ‫عمليات‬ ‫إجراء‬ ‫أردنا‬ ‫لو‬ ‫ماذا‬ ‫لكن‬ ‫و‬ ‫أر‬ ‫إذا‬ ً‫ال‬‫مث‬ ، ‫كلها‬ ‫المصفوفة‬ ‫عناصر‬ ‫نطبع‬ ‫أن‬ ‫دنا‬ ‫نقوم‬ ‫أو‬ ‫كلها‬ ‫نجمعها‬ ‫أو‬ ‫المصفوفة‬ ‫عناصر‬ ‫كل‬ ‫إستخدام‬ ‫طريق‬ ‫عن‬ ‫بذلك‬ ‫سنقوم‬ .. ‫؟‬ ‫بترتيبها‬ ‫مثال‬ . ‫التكرارية‬ ‫الحلقات‬ .‫المصفوفة‬ ‫عناصر‬ ‫جميع‬ ‫طباعة‬ ‫مثال‬ .‫المستخدم‬ ‫من‬ ‫المصفوفة‬ ‫عناصر‬ ‫إستقبال‬
  • 70. 70 ‫مثال‬ ‫المستخدم‬ ‫من‬ ‫المصفوفة‬ ‫عناصر‬ ‫بإستقبال‬ ‫نقوم‬ ‫ثم‬ ، ‫طباعة‬ ‫ثم‬ ،‫المصفوفة‬ ‫عناصر‬ ‫مجموع‬ ‫على‬ ‫نحصل‬ .‫الناتج‬ ‫عن‬ ‫البحث‬ ‫المصفوفات‬ ‫على‬ ‫العمليات‬ ‫أشهر‬ ‫من‬ ‫و‬ ‫ترتيب‬ ‫كذلك‬ ‫و‬ ، ‫معينة‬ ‫قيمة‬ ‫له‬ ‫عنصر‬ ‫رتبة‬ ‫النوعين‬ ‫لكال‬ ‫سنتعرض‬ ‫و‬ ، ‫المصفوفات‬ ‫عناصر‬ .‫ألهميتهم‬ ‫العمليات‬ ‫من‬
  • 71. 72 ‫مثال‬ ، ‫معينة‬ ‫قيمة‬ ‫ذو‬ ‫عنصر‬ ‫رتبة‬ ‫عن‬ ‫البحث‬ ‫ك‬ ‫نوضح‬ ‫بالمثال‬ ‫العملية‬ ‫بتلك‬ ‫القيام‬ ‫يفية‬ .‫اآلتى‬
  • 72. 73 ‫مثال‬ ‫المثال‬ ‫هذا‬ ‫فى‬ ‫و‬ ، ‫المصفوفة‬ ‫عناصر‬ ‫ترتيب‬ ً‫ا‬‫تصاعدي‬ ‫المصفوفة‬ ‫عناصر‬ ‫بترتيب‬ ‫نقوم‬
  • 73. 74 ‫فى‬ ‫عنصر‬ ‫كل‬ ‫مقارنة‬ ‫يتم‬ ‫المثال‬ ‫هذا‬ ‫فى‬ ‫يليه‬ ‫بما‬ ‫األول‬ ‫العنصر‬ ‫من‬ ً‫ا‬‫إبتداء‬ ‫المصفوفة‬ ‫الع‬ ‫من‬ ‫العناصر‬ ‫تلك‬ ‫أحد‬ ‫كان‬ ‫فإذا‬ ، ‫ناصر‬ ‫العنصرين‬ ‫قيمتى‬ ‫تبديل‬ ‫يتم‬ ‫منه‬ ‫أصغر‬ ‫ثم‬ ، ‫الترتيب‬ ‫فى‬ ‫األول‬ ‫هو‬ ‫األصغر‬ ‫ليصبح‬ ‫و‬ ‫المصفوفة‬ ‫فى‬ ‫الثانى‬ ‫العنصر‬ ‫إلى‬ ‫االنتقال‬ ‫الحلقتين‬ ‫فى‬ ‫فنجد‬ .‫هكذا‬ ‫و‬ ‫بعده‬ ‫بما‬ ‫مقارنته‬ ‫بالمرور‬ ‫تقوم‬ ‫األولى‬ ‫الحلقة‬ ، ‫التكراريتين‬ ‫لتضع‬ ‫المصفوفة‬ ‫فى‬ ‫عنصر‬ ‫كل‬ ‫على‬ ‫تحت‬ ‫ه‬ ‫بعده‬ ‫عنصر‬ ‫كل‬ ‫على‬ ‫تمر‬ ‫الثانية‬ ‫و‬ ،‫اإلختبار‬ ‫تم‬ ‫أنه‬ ‫الحظ‬ ‫و‬ ، ‫العنصر‬ ‫لهذا‬ ‫بالنسبة‬ ‫لتختبره‬ ، ‫األخير‬ ‫عدا‬ ‫المصفوفة‬ ‫عناصر‬ ‫جميع‬ ‫إختبار‬ . ‫بعده‬ ‫عناصر‬ ‫يوجد‬ ‫ال‬ ‫ألنه‬
  • 75. 76
  • 76. 77 ‫البرنامج‬ ‫شرح‬ ‫عن‬ ‫لنعرض‬ ‫البعد‬ ‫ثنائية‬ ‫مصفوفة‬ ‫هو‬ ‫هنا‬ ‫نحتاجه‬ ‫ما‬ ‫أول‬ ‫بتعريف‬ ً‫بداية‬ ‫سنقوم‬ ‫لذلك‬ ،‫للعبة‬ ‫المعهود‬ ‫الشكل‬ ‫طريقها‬ ‫فى‬ ‫لالعبين‬ ‫إظهارها‬ ‫ليتم‬ ‫إبتدائية‬ ‫قيم‬ ‫إعطائها‬ ‫و‬ ‫مصفوفة‬ .‫كاآلتى‬ ،‫اللعبة‬ ‫بداية‬ ‫المتغير‬ ‫بتعريف‬ ‫نقوم‬ ‫ثم‬ ‫كتابة‬ ‫أثناء‬ ‫سنحتاجها‬ ‫التى‬ ‫ات‬ .‫البرنامج‬ ‫المتغير‬ plays ‫التى‬ ‫اللعبات‬ ‫عدد‬ ‫لتخزين‬ ‫سنستخدمه‬ ‫و‬ ، ‫اآلن‬ ‫حتى‬ ‫لعبت‬ slot ‫الالعب‬ ‫اختاره‬ ‫الذى‬ ‫المربع‬ ‫لرقم‬ ، row ‫و‬ column ‫للمربع‬ ‫العمود‬ ‫و‬ ‫الصف‬ ‫لتخزين‬ .‫الالعب‬ ‫قبل‬ ‫من‬ ‫إختياره‬ ‫تم‬ ‫الذى‬ ‫اللعبة‬ ‫بداية‬ ‫شكل‬ ‫بعرض‬ ‫نقوم‬ ‫ثم‬ ‫هذه‬ ‫طريق‬ ‫عن‬ ، .‫المتداخلة‬ ‫التكرارية‬ ‫الحلقات‬
  • 77. 78 ً‫ا‬‫كثير‬ ‫ذلك‬ ‫قبل‬ ‫تعاملنا‬ ‫أننا‬ ‫إذ‬ ‫الكود‬ ‫فهم‬ ‫تستطيع‬ ‫أنك‬ ‫أظن‬ ‫و‬ ‫الكود‬ ‫هذا‬ ‫و‬ ،‫عملها‬ ‫طريقة‬ ‫فهمنا‬ ‫و‬ ‫التكرارية‬ ‫الحلقات‬ ‫مع‬ .‫اآلتى‬ ‫الشكل‬ ‫بطباعة‬ ‫يقوم‬ ‫و‬ ‫الالعب‬ ‫يختاره‬ ‫الذى‬ ‫المربع‬ ‫رقم‬ ‫إدخال‬ ‫بطلب‬ ‫اآلن‬ ‫سنقوم‬ ‫ا‬ ‫فى‬ ‫حفظه‬ ‫المخصص‬ ‫لمتغير‬ slot ‫بحساب‬ ‫نقوم‬ ‫ثم‬ ، ‫المتغيرين‬ ‫فى‬ ‫المختار‬ ‫بالمربع‬ ‫الخاص‬ ‫العمود‬ ‫و‬ ‫الصف‬ row ‫و‬ column .‫كاآلتى‬ ,
  • 78. 79 ‫و‬ ‫األول‬ ‫الالعب‬ ‫بين‬ ‫نميز‬ ‫إننا‬ ‫تالحظ‬ ‫الطباعة‬ ‫جملة‬ ‫فى‬ ‫المتغير‬ ‫طريق‬ ‫عن‬ ‫الثانى‬ ‫الالعب‬ plays ً‫ا‬‫فردي‬ ‫كان‬ ‫إذا‬ ‫و‬ ،‫الحالية‬ ‫اللعبة‬ ‫صاحب‬ ‫هو‬ ‫األول‬ ‫الالعب‬ ‫كان‬ ‫كان‬ ‫لو‬ ‫الخاصة‬ ‫العالمة‬ ‫نطبع‬ ‫و‬ ،‫الثانى‬ ‫الالعب‬ ‫كان‬ ً‫ا‬‫زوجي‬ ‫سواء‬ X ‫أو‬ O ‫الصف‬ ‫رقم‬ ‫لتحديد‬ ‫بالنسبة‬ ‫أما‬.‫منهم‬ ‫بكل‬ ‫الرقم‬ ‫من‬ ‫واحد‬ ‫طرح‬ ‫طريق‬ ‫عن‬ ‫هذا‬ ‫فيمكننا‬ ، ‫العمود‬ ‫و‬ ‫من‬ ‫تبدأ‬ ‫المصفوفة‬ ‫أن‬ ‫إذ‬ ‫المدخل‬ 2 ‫من‬ ‫ليس‬ ‫و‬ 1 ‫كما‬ ‫المستخدم‬ ‫يدخله‬ ‫رقم‬ ‫أى‬ ‫فأن‬ ‫لذلك‬ ،‫للمستخدم‬ ‫يظهر‬ ‫أكبر‬ ‫يكون‬ ‫هذا‬ ‫بطرح‬ ‫نقوم‬ ‫لذا‬ ، ‫الحقيقى‬ ‫من‬ ‫بواحد‬ ‫على‬ ‫بالقسمة‬ ‫نقوم‬ ‫ثم‬ ، ‫الواحد‬ 3 ‫الحصول‬ ‫أردنا‬ ‫إذا‬ ‫على‬ ‫القسمة‬ ‫باقى‬ ‫إيجاد‬ ‫و‬ ، ‫الصفوف‬ ‫عدد‬ ‫على‬ 3 ‫إذا‬ ‫تجربتها‬ ‫يمكنك‬ ‫و‬ ،‫األعمدة‬ ‫عدد‬ ‫على‬ ‫الحصول‬ ‫أردنا‬ .‫بنفسك‬ ‫أدخلها‬ ‫التى‬ ‫العالمة‬ ‫المصفوفة‬ ‫فى‬ ‫نحفظ‬ ‫أن‬ ‫نريد‬ ‫اآلن‬ ‫ا‬ ‫المربع‬ ‫فى‬ ‫الالعب‬ ‫الجديد‬ ‫الشكل‬ ‫طباعة‬ ‫قم‬ ‫إختار‬ ‫لذى‬ ‫التى‬ ‫التكرارية‬ ‫الحلقات‬ ‫نفس‬ ‫طريق‬ ‫عن‬ ‫بهذا‬ ‫نقوم‬ ‫و‬، ‫مع‬ ‫لكن‬ ‫و‬ ‫للعبة‬ ‫اإلبتدائى‬ ‫الشكل‬ ‫عرض‬ ‫فى‬ ‫إستخدمناها‬ ‫الرقم‬ ‫من‬ ً‫ال‬ً‫د‬‫ب‬ ‫المدخلة‬ ‫العالمة‬ ‫لتظهر‬ ‫بسيط‬ ‫تغيير‬ .‫كاآلتى‬ ،‫المختار‬
  • 79. 81 ‫أحد‬ ‫فاز‬ ‫قد‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫إختبار‬ ‫يجب‬ ‫اآلن‬ ‫و‬ ‫أم‬ ‫الالعبين‬ ‫مجموعة‬ ‫إختار‬ ‫عن‬ ‫بذلك‬ ‫نقوم‬ ‫و‬ . ‫ال‬ ‫قد‬ ‫يكون‬ ‫أن‬ ‫يجب‬ ‫الفائز‬ ‫بأن‬ ‫تقضى‬ ‫الشروط‬ ‫من‬ ً‫ال‬‫كام‬ ً‫ا‬ً‫قطر‬ ‫أو‬ ً‫ال‬‫كام‬ ً‫ا‬ً‫د‬‫عمو‬ ‫أو‬ ً‫ال‬‫كام‬ ً‫ا‬‫صف‬ ‫أكمل‬ .‫كاآلتى‬ ‫اإلختبار‬ ‫بهذا‬ ‫نقوم‬ ‫و‬ ،‫الخاصة‬ ‫بعالمته‬
  • 80. 80 ‫قطر‬ ‫إكتمال‬ ‫إختبرنا‬ ‫األولى‬ ‫الشرطية‬ ‫الجملة‬ ‫فى‬ ‫التكر‬ ‫الحلقة‬ ‫فى‬ ‫و‬ ،‫عدمه‬ ‫من‬ ‫الثانى‬ ‫الشرط‬ ‫و‬ ‫ارية‬ ‫فى‬ ‫و‬ ،‫عدمه‬ ‫من‬ ‫عمود‬ ‫أو‬ ‫صف‬ ‫إكتمال‬ ‫إختربنا‬ ‫الفائز‬ ‫إسم‬ ‫طباعة‬ ‫يتم‬ ‫الشرطين‬ ‫من‬ ‫أى‬ ‫تحقق‬ ‫حال‬ .‫البرنامج‬ ‫إنهاء‬ ‫ثم‬ ‫كتبناها‬ ‫التى‬ ‫األوامر‬ ‫هذه‬ .. ‫؟‬ ً‫ا‬‫شيئ‬ ‫الحظت‬ ‫هل‬ ‫مرة‬ ‫فكل‬ ، ‫اللعب‬ ‫أدوار‬ ‫فى‬ ‫مرة‬ ‫كل‬ ‫تتكرر‬ ‫أن‬ ‫يجب‬ ‫ن‬ ‫ثم‬ ، ‫جديد‬ ‫مربع‬ ‫إدخال‬ ‫نطلب‬ ‫أن‬ ‫علينا‬ ‫يجب‬ ‫حفظ‬ ‫الشكل‬ ‫طباعة‬ ‫ثم‬ ، ‫المربع‬ ‫ذلك‬ ‫فى‬ ‫الخاصة‬ ‫العالمة‬ .‫فاز‬ ‫قد‬ ‫الالعبان‬ ‫أحد‬ ‫كان‬ ‫إذا‬ ‫عما‬ ‫إختبار‬ ‫ثم‬ ،‫الجديد‬ ‫و‬ ، ‫األوامر‬ ‫هذه‬ ‫تضم‬ ‫تكرارية‬ ‫حلقة‬ ‫إلى‬ ‫سنحتاج‬ ً‫ا‬‫إذ‬ ‫؟‬ ‫نظرك‬ ‫وجهة‬ ‫من‬ ‫األنسب‬ ‫الحلقة‬ ‫ما‬ ‫لكن‬
  • 81. 82 ‫إنها‬ ‫نعم‬ ، ‫صحيحة‬ ‫إجابتك‬ do-while ‫ألننا‬ ، ‫أن‬ ‫حالة‬ ‫فى‬ ‫بإستخدامها‬ ‫نقوم‬ ‫مجموعة‬ ‫تنفيذ‬ ‫نريد‬ ‫نا‬ ‫حال‬ ‫واقع‬ ‫هذا‬ ‫و‬ ‫واحدة‬ ‫مرة‬ ‫األقل‬ ‫على‬ ‫األوامر‬ ‫من‬ ‫شرط‬ ‫سيكون‬ ‫و‬ ، ‫اآلن‬ ‫معها‬ ‫نتعامل‬ ‫التى‬ ‫اللعبة‬ ‫تكون‬ ‫أن‬ ‫هو‬ ‫الحلقة‬ ‫إستمرار‬ plays ‫أو‬ ‫من‬ ‫أقل‬ ‫يساوى‬ 9 ‫هو‬ ‫للعبات‬ ‫عدد‬ ‫أقصى‬ ‫أن‬ ‫إذ‬ 9 ‫عدد‬ ‫العداد‬ ‫نزيد‬ ‫أن‬ ‫ننسى‬ ‫ال‬ ،‫المربعات‬ – plays – ‫فى‬ .‫واحد‬ ‫بمقدار‬ ‫مرة‬ ‫كل‬ ‫هى‬ ‫و‬ ‫المتاحة‬ ‫األدوار‬ ‫عدد‬ ‫إنتهت‬ ‫لو‬ ‫و‬ 9 ‫يفز‬ ‫لم‬ ‫و‬ ‫التكرارية‬ ‫الحلقة‬ ‫وانتهت‬ ‫أحد‬ do-while ‫يجب‬ ‫دون‬ ‫انتهت‬ ‫الللعبة‬ ‫بأن‬ ‫الالعبين‬ ‫تخطر‬ ‫جملة‬ ‫طباعة‬ . ‫كاآلتى‬ ،‫منهما‬ ‫أى‬ ‫فوز‬
  • 82. 83 ‫التمارين‬ 1 ( ‫المستخدم‬ ‫من‬ ‫يستقبل‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ 5 ‫من‬ ‫قيم‬ ‫النوع‬ float ‫م‬ ‫فى‬ ‫يخزنهم‬ ‫بإنشاء‬ ‫يقوم‬ ‫ثم‬ ،‫صفوفة‬ ‫المصفوفة‬ ‫عناصر‬ ‫فيها‬ ‫يخزن‬ ‫جديدة‬ ‫مصفوفة‬ ‫األس‬ ‫إلى‬ ‫مرفوعة‬ ‫األولى‬ 5 ‫يطبع‬ ‫و‬ ‫يطبعها‬ ‫ثم‬ ، .‫كذلك‬ ‫عناصرها‬ ‫مجموع‬ 2 ( ‫عموده‬ ‫مكون‬ ‫جدول‬ ‫بطباعة‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ ‫من‬ ‫األرقام‬ ‫من‬ ‫األول‬ 1 ‫إلى‬ 2 ‫زيادة‬ ‫مع‬ 1 , 2 ‫فى‬ ‫مرة‬ ‫كل‬ ‫ه‬ ‫مضاعفات‬ ‫هو‬ ‫الثانى‬ ‫العمود‬ ‫يكون‬ ‫و‬ ، ،‫األرقام‬ ‫ذه‬ ‫أس‬ ‫إلى‬ ‫مرفوعة‬ ‫األرقام‬ ‫هذه‬ ‫هو‬ ‫الثالث‬ ‫و‬ 3 ، ... ‫أس‬ ‫حتى‬ ‫هكذا‬ ‫و‬ 5 . 3 ( ‫صف‬ ‫كل‬ ‫مجموع‬ ‫بطباعة‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ ‫المصفوفة‬ ‫عناصر‬ ، ‫عمود‬ ‫كل‬ ‫كذلك‬ ‫و‬ ‫حدة‬ ‫على‬ .‫المصفوفة‬ ‫أبعاد‬ ‫كذلك‬ ‫و‬ ‫المستخدم‬ ‫بإدخالها‬ ‫يقوم‬ 4 ( ‫يعرف‬ ‫ما‬ ‫بطباعة‬ ‫يقوم‬ ً‫ا‬‫برنامج‬ ‫اكتب‬ ‫السح‬ ‫بالمصفوفة‬ ‫ثنائية‬ ‫مربعة‬ ‫مصفوفة‬ ‫هى‬ ‫و‬ ‫رية‬ ‫و‬ ‫عمود‬ ‫أى‬ ‫مجموع‬ ‫و‬ ‫صف‬ ‫أى‬ ‫مجموع‬ ‫فيها‬ ‫البعد‬