K7H Code
192 subscribers
40 photos
1 file
17 links
تعلم البرمجة والتقنية بطريقة بسيطة وعملية.
البرمجة سهله ولكن لا احد علمك بطريقة سهله. هدفي ان اجعل البرمجة اسهل وابسط
Code • Design •
Learn smarter. Build faster. Stay consistent.
https://t.me/questionsk7h قناة الاسئله
@k7hcode_bot بوت القناة للتواصل
Download Telegram
1. ما المطلوب من البرنامج؟
فكرة البرنامج هي:
إدخال 3 أعداد، حساب متوسطها، ثم معرفة هل المتوسط أكبر من أو يساوي 50 أم لا.
إذا كان المتوسط:
>= 50
فالنتيجة:
Successful → ناجح
أما إذا كان المتوسط:
< 50
فالنتيجة:
Residual / Unsuccessful → راسب
ــــــــــــــــــــــــــــــــــــــــــــ
2. كيف أعرف المدخلات؟
هذه من أهم المهارات في حل المسائل.
نسأل أنفسنا:
ما المعلومات التي يحتاجها البرنامج من المستخدم؟
في المخطط لدينا:
Enter num1, num2, num3
إذن المدخلات هي:
num1
num2
num3
أي أن البرنامج يحتاج إلى 3 أعداد.
ــــــــــــــــــــــــــــــــــــــــــــ
سؤال: كيف عرفت أن عدد المدخلات 3؟
لأن لدينا ثلاث قيم مختلفة:
num1
num2
num3
كل واحدة منها تمثل قيمة يدخلها المستخدم.
إذن:
عدد المدخلات = 3
ــــــــــــــــــــــــــــــــــــــــــــ
سؤال مهم: هل num1, num2, num3 تعتبر متغيرات؟
نعم.
كل واحد منها متغير يخزن قيمة:
num1 → العدد الأول
num2 → العدد الثاني
num3 → العدد الثالث
ــــــــــــــــــــــــــــــــــــــــــــ
3. كيف أحدد أسماء المتغيرات؟
يمكنك اختيار أسماء واضحة تدل على محتوى المتغير.
مثلًا:
num1
num2
num3
وهي اختصار لـ:
number 1
number 2
number 3
ويمكن أيضًا أن نسميها:
A
B
C
لكن:
num1, num2, num3
أوضح للمبتدئ ولأي شخص يقرأ البرنامج.
ــــــــــــــــــــــــــــــــــــــــــــ
4. ماذا يحدث بعد إدخال الأعداد؟
بعد أن نحصل على الأعداد الثلاثة، نحتاج إلى حساب المتوسط.
المخطط يستخدم:
Avg = (num1 + num2 + num3) / 3
وهذه تسمى:
عملية معالجة Process
لأن البرنامج يقوم بعملية حسابية على البيانات التي أدخلها المستخدم.
ــــــــــــــــــــــــــــــــــــــــــــ
5. لماذا جمعنا الأعداد؟
لأن قانون المتوسط الحسابي هو:
أي:
نجمع القيم ثم نقسم المجموع على عدد القيم.
لدينا 3 أعداد، لذلك نقسم على:
3
ــــــــــــــــــــــــــــــــــــــــــــ
مثال
لو أدخل المستخدم:
num1 = 60
num2 = 70
num3 = 80
نحسب:
Avg = (60 + 70 + 80) / 3
أولًا:
60 + 70 + 80 = 210
ثم:
210 / 3 = 70
إذن:
Avg = 70
ــــــــــــــــــــــــــــــــــــــــــــ
6. لماذا استخدمنا المتغير Avg؟
لأننا نحتاج إلى الاحتفاظ بنتيجة المتوسط حتى نستخدمها في الشرط.
لذلك لدينا:
Avg
وهو اختصار:
Average
أي:
المتوسط
فلدينا الآن:
المدخلات:
num1
num2
num3
المتغير الناتج:
Avg
ــــــــــــــــــــــــــــــــــــــــــــ
7. لماذا لا نقارن الأعداد الثلاثة مباشرة؟
قد يخطر في بالك سؤال:
لماذا لا نقول إن num1 يجب أن يكون أكبر من 50 وnum2 أكبر من 50 وnum3 أكبر من 50؟
لأن المطلوب في هذا المثال هو متوسط الأعداد الثلاثة.
نحن لا نحكم على كل عدد بشكل منفصل.
بل نحسب:
Avg
ثم نحكم على المتوسط.
ــــــــــــــــــــــــــــــــــــــــــــ
8. ما الشرط الموجود في المخطط؟
بعد حساب المتوسط، نصل إلى شكل القرار:
Avg >= 50
هذا يعني:
هل قيمة المتوسط أكبر من أو تساوي 50؟
وهنا البرنامج يحتاج إلى اتخاذ قرار.
لذلك استخدمنا:
Decision
ويمثله الشكل:
المعين ♦
ــــــــــــــــــــــــــــــــــــــــــــ
9. ماذا يعني >=؟
الرمز:
>=
يتكون من:
> → أكبر من
= → أو يساوي
إذن:
Avg >= 50
تعني:
المتوسط أكبر من أو يساوي 50.
ــــــــــــــــــــــــــــــــــــــــــــ
10. لماذا لم نستخدم > فقط؟
لو كتبنا:
Avg > 50
فهذا يعني:
يجب أن يكون المتوسط أكبر من 50 فقط.
لكن ماذا لو كان المتوسط بالضبط:
50
بحسب هذا الشرط سيكون:
50 > 50
وهذا خطأ.
بينما المطلوب في المخطط هو اعتبار 50 نجاحًا.
لذلك نستخدم:
>=
حتى يشمل:
50
وكل شيء أكبر منه.
ــــــــــــــــــــــــــــــــــــــــــــ
11. ماذا يحدث إذا كانت الإجابة Yes؟
إذا كان:
Avg >= 50
صحيحًا، نذهب إلى:
Yes
ثم:
Print Successful
أي:
اطبع ناجح.
ــــــــــــــــــــــــــــــــــــــــــــ
مثال
لدينا:
60
70
80
المتوسط:
70
نفحص:
70 >= 50
صحيح.
إذن:
Yes → Successful
ــــــــــــــــــــــــــــــــــــــــــــ
12. ماذا يحدث إذا كانت الإجابة No؟
إذا كان:
Avg >= 50
خطأ.
هذا يعني أن:
Avg < 50
وبالتالي نذهب إلى:
No
ثم:
Print Residual
أي حسب المقصود من المخطط:
راسب / غير ناجح.
ــــــــــــــــــــــــــــــــــــــــــــ
مثال
لدينا:
30
40
20
نحسب:
Avg = (30 + 40 + 20) / 3
Avg = 90 / 3
Avg = 30
ثم:
30 >= 50
خطأ.
إذن:
No → Residual
ــــــــــــــــــــــــــــــــــــــــــــ
13. كيف أعرف المخرجات؟
اسأل نفسك:
ماذا يريد السؤال أن يظهر للمستخدم في النهاية؟
هنا لدينا نتيجتان محتملتان:
Successful
أو:
Residual
إذن لدينا مخرجان محتملان، لكن البرنامج سيطبع واحدًا فقط.
ــــــــــــــــــــــــــــــــــــــــــــ
14. هل المخرج هو Avg أيضًا؟
يمكن أن يكون كذلك إذا طلب السؤال طباعة المتوسط.
لكن في المخطط الموجود أمامنا، المخرج النهائي هو حالة النجاح أو الرسوب.
أي:
Successful
أو:
Residual
إذا أردنا عرض المتوسط أيضًا، يمكن أن نضيف:
Print Avg
ثم نطبع حالة الطالب.
ــــــــــــــــــــــــــــــــــــــــــــ
15. كيف أعرف متى أستخدم الشرط؟
اسأل نفسك:
هل يوجد أكثر من نتيجة محتملة؟
هنا لدينا:
إذا كان المتوسط >= 50 → ناجح.
وإذا لم يكن كذلك → راسب.
إذن نحتاج إلى Decision.
ــــــــــــــــــــــــــــــــــــــــــــ
16. لماذا يوجد Yes و No؟
لأن الشرط:
Avg >= 50
له نتيجتان:
Yes
يعني:
الشرط صحيح.
No
يعني:
الشرط خطأ.
ــــــــــــــــــــــــــــــــــــــــــــ
17. كيف أعرف أي طريق أختار؟
لا تختار الطريق عشوائيًا.
احسب الشرط.
مثلاً:
Avg = 65
نختبر:
65 >= 50
صحيح.
إذن:
Yes
ــــــــــــــــــــــــــــــــــــــــــــ
أما:
Avg = 40
نختبر:
40 >= 50
خطأ.
إذن:
No
ــــــــــــــــــــــــــــــــــــــــــــ
18. ماذا عن المتوسط = 50 بالضبط؟
هذه حالة مهمة جدًا.
لدينا:
Avg = 50
والشرط:
Avg >= 50
نحسب:
50 >= 50
النتيجة:
True
إذن:
Yes → Successful
وهذا يوضح لنا لماذا استخدمنا >= وليس >.
ــــــــــــــــــــــــــــــــــــــــــــ
19. سؤال مهم جدًا: ماذا لو كان أحد الأعداد سالبًا؟
رياضيًا يمكن أن نحسب المتوسط بشكل طبيعي.
مثلاً:
-10
60
70
المتوسط:
(-10 + 60 + 70) / 3
= 120 / 3
= 40
إذن:
40 >= 50
خطأ.
فالنتيجة:
No → راسب
ــــــــــــــــــــــــــــــــــــــــــــ
20. كيف أحول السؤال إلى خطوات؟
وهذه أهم مهارة أريدك أن تتعلمها.
بدل أن تبدأ مباشرة برسم المخطط، حوّل السؤال إلى خطوات بسيطة:
ــــــــــــــــــــــــــــــــــــــــــــ
الخطوة 1:
حدد المدخلات.
لدينا:
num1, num2, num3
ــــــــــــــــــــــــــــــــــــــــــــ
الخطوة 2:
حدد العملية الحسابية.
لدينا:
Avg = (num1 + num2 + num3) / 3
ــــــــــــــــــــــــــــــــــــــــــــ
الخطوة 3:
حدد السؤال الذي يحتاج إلى قرار.
لدينا:
Avg >= 50
ــــــــــــــــــــــــــــــــــــــــــــ
الخطوة 4:
حدد نتيجة Yes.
Successful
ــــــــــــــــــــــــــــــــــــــــــــ
الخطوة 5:
حدد نتيجة No.
Residual
ــــــــــــــــــــــــــــــــــــــــــــ
21. كيف أعرف أشكال المخطط؟
هنا نبدأ بربط التفكير بالأشكال:
Start / End
→ الشكل البيضاوي.
ــــــــــــــــــــــــــــــــــــــــــــ
Enter
→ متوازي الأضلاع.
ــــــــــــــــــــــــــــــــــــــــــــ
Calculation
مثل:
Avg = ...
→ المستطيل.
ــــــــــــــــــــــــــــــــــــــــــــ
Condition
مثل:
Avg >= 50
→ المعين.
ــــــــــــــــــــــــــــــــــــــــــــ
Print
→ متوازي الأضلاع.
ــــــــــــــــــــــــــــــــــــــــــــ
22. كيف أقرأ المخطط كاملًا؟
اقرأه من الأعلى إلى الأسفل:
Start
↓
أدخل 3 أعداد:
num1, num2, num3
↓
احسب المتوسط:
Avg = (num1 + num2 + num3) / 3
↓
اسأل:
Avg >= 50
↓
إذا Yes
→ Successful
↓
إذا No
→ Residual
↓
يلتقي المساران
↓
End
ــــــــــــــــــــــــــــــــــــــــــــ
23. كيف أعرف أن المخطط صحيح؟
استخدم طريقة اسمها:
Dry Run
أي:
التجربة اليدوية.
اختر أرقامًا بنفسك وتتبع المخطط خطوة بخطوة.
مثلاً:
num1 = 80
num2 = 60
num3 = 70
نحسب:
Avg = (80 + 60 + 70) / 3
Avg = 210 / 3
Avg = 70
ثم:
70 >= 50
صحيح.
إذن:
Successful
إذا وصلت إلى النتيجة الصحيحة، فهذا مؤشر قوي أن منطق الحل يعمل لهذه الحالة.
ــــــــــــــــــــــــــــــــــــــــــــ
24. جرب حالة ثانية
أدخل:
20
30
40
المتوسط:
(20 + 30 + 40) / 3
= 90 / 3
= 30
ثم:
30 >= 50
خطأ.
إذن:
Residual
ــــــــــــــــــــــــــــــــــــــــــــ
25. جرب أهم حالة: 50
أدخل:
50
50
50
المتوسط:
50
الشرط:
50 >= 50
صحيح.
إذن:
Successful
وهذه الحالة مهمة جدًا لأنها تكشف لنا هل استخدمنا:
>=
أم استخدمنا بالخطأ:
>
ــــــــــــــــــــــــــــــــــــــــــــ
الخلاصة التي أريدك أن تتعلمها
عندما يأتيك أي سؤال برمجي، لا تبدأ بالرسم مباشرة.
امشِ بهذه الأسئلة:
ــــــــــــــــــــــــــــــــــــــــــــ
1. ماذا يريد مني السؤال؟
↓
2. ما البيانات التي أحتاجها؟
↓
3. كم عدد المدخلات؟
↓
4. ما أسماء المدخلات؟
↓
5. ما العمليات التي سأجريها؟
↓
6. ما المتغيرات التي أحتاجها لتخزين النتائج؟
↓
7. هل يوجد قرار أو شرط؟
↓
8. ما السؤال الذي سأضعه داخل القرار؟
↓
9. ماذا يحدث إذا كانت الإجابة Yes؟
↓
10. ماذا يحدث إذا كانت الإجابة No؟
↓
11. ما المخرجات؟
↓
12. هل توجد حالات خاصة يجب اختبارها؟
مثل:
50
0
الأعداد السالبة، والقيم الكبيرة، وغيرها.
ــــــــــــــــــــــــــــــــــــــــــــ
قاعدة مهمة جدًا للمبتدئ:
Input → Process → Decision → Output
وفي هذا المثال:
Input
num1, num2, num3
↓
Process
Avg = (num1 + num2 + num3) / 3
↓
Decision
Avg >= 50
↙ ↘
Yes No
↓ ↓
Successful Residual
إذا فهمت هذه الطريقة، فأنت لا تتعلم حل هذا السؤال فقط؛ بل تبدأ في تعلم الطريقة التي تستخدمها لتحليل أي مسألة برمجية جديدة.


#خوارزميات_من_الصفر
7⃣ اكتب خوارزميه لبرنامج يقوم بادخال عددين و من ثم طباعة العدد الاكبر
شرح المخطط الانسيابي: مقارنة عددين A و B
المطلوب من البرنامج هو:
إدخال عددين A و B، ثم معرفة هل هما متساويان، وإذا لم يكونا متساويين نحدد أيهما أكبر.
يعني عندنا ثلاث نتائج محتملة:
الحالة الأولى:
A يساوي B
النتيجة:
Equal
━━━━━━━━━━━━━━━━━━━━
الحالة الثانية:
A أكبر من B
النتيجة:
Print A
━━━━━━━━━━━━━━━━━━━━
الحالة الثالثة:
A أصغر من B
النتيجة:
Print B
━━━━━━━━━━━━━━━━━━━━
أول سؤال: كيف أعرف المطلوب من السؤال؟
هذه من أهم المهارات في البرمجة.
قبل أن ترسم أي مخطط، لا تبدأ مباشرة بالأشكال.
اسأل نفسك:
ما الذي يدخل إلى البرنامج؟
ما الذي يجب أن يفعله البرنامج؟
ما الذي يجب أن يخرجه البرنامج؟
هذه الأسئلة الثلاثة تساعدك على تحويل السؤال من كلام عادي إلى خوارزمية.
━━━━━━━━━━━━━━━━━━━━
1. كيف أعرف المدخلات؟
في الصورة يوجد:
Enter A, B
أي:
أدخل A و B
إذن البرنامج يحتاج إلى قيمتين.
القيمة الأولى:
A
والقيمة الثانية:
B
إذن عدد المدخلات = 2
━━━━━━━━━━━━━━━━━━━━
سؤال مهم: كيف عرفت أن عدد المدخلات اثنان؟
لأن السؤال يحتاج إلى عددين حتى نقارنهما.
مثلاً لو قلت لك:
اكتب برنامجًا يحدد العدد الأكبر بين عددين.
فكر:
هل أستطيع معرفة الأكبر بدون وجود عددين؟
لا.
نحتاج:
العدد الأول → A
العدد الثاني → B
إذن لدينا مدخلان.
━━━━━━━━━━━━━━━━━━━━
2. هل A و B مدخلات أم متغيرات؟
هنا توجد نقطة مهمة جدًا للمبتدئ.
A و B هما متغيران، وهما أيضًا يمثلان المدخلات التي سيدخلها المستخدم.
مثلاً المستخدم يدخل:
A = 10
B = 7
فالبرنامج يخزن:
10 داخل A
و
7 داخل B
ثم يبدأ البرنامج بالمقارنة.
━━━━━━━━━━━━━━━━━━━━
3. لماذا سمينا المتغيرات A و B؟
ليس هناك شرط أن نسميها A و B.
يمكن أن نسميها:
num1
num2
أو:
firstNumber
secondNumber
أو حتى:
X
Y
لكننا اخترنا:
A و B
لأنهما قصيران وسهلان.
إذن أسماء المتغيرات لا تأتي من السماء.
أنت تختارها حسب معنى البيانات التي تخزنها.
━━━━━━━━━━━━━━━━━━━━
4. ماذا يحدث في بداية المخطط؟
أول شكل هو:
Start
وهذا يعني:
بداية تنفيذ الخوارزمية.
كل مخطط انسيابي يحتاج إلى نقطة بداية واضحة.
━━━━━━━━━━━━━━━━━━━━
5. ماذا يأتي بعد Start؟
السهم يتجه إلى:
Enter A,B
وهذا يعني:
اطلب من المستخدم إدخال قيمتين A و B.
مثلاً:
Enter A = 20
Enter B = 15
الآن أصبحت لدينا البيانات التي نحتاجها.
━━━━━━━━━━━━━━━━━━━━
6. لماذا شكل Enter هو متوازي الأضلاع؟
في الـ Flowchart توجد أشكال لها معانٍ محددة.
متوازي الأضلاع يستخدم عادةً مع:
Input / Output
أي:
إدخال / إخراج
لذلك:
Enter A,B
موجود داخل متوازي الأضلاع لأنه يمثل إدخال البيانات.
وكذلك:
Print Equal
يكون متوازي أضلاع لأنه يمثل إخراج النتيجة.
━━━━━━━━━━━━━━━━━━━━
7. بعد إدخال A و B، ماذا نريد أن نعرف؟
الآن لدينا:
A
B
ونريد أن نعرف:
هل A يساوي B؟
لذلك وضعنا أول سؤال داخل شكل القرار:
A == B
━━━━━━━━━━━━━━━━━━━━
8. ما معنى == ؟
هذه من أهم النقاط.
==
تعني:
هل يساوي؟
أي أننا نسأل عن المساواة.
مثلاً:
5 == 5
النتيجة:
Yes
لأن 5 يساوي 5.
لكن:
5 == 3
النتيجة:
No
لأن 5 لا يساوي 3.
━━━━━━━━━━━━━━━━━━━━
9. لماذا لم نستخدم = ؟
لأن:
=
و
==
ليسا نفس الشيء.
في أغلب لغات البرمجة:
A = 10
تعني:
ضع القيمة 10 داخل A.
أما:
A == 10
فتعني:
هل قيمة A تساوي 10؟
إذن:
= → إسناد قيمة
== → مقارنة
━━━━━━━━━━━━━━━━━━━━
10. ماذا يحدث إذا كانت A == B ؟
إذا كان:
A == B
صحيحًا، نذهب في مسار:
Yes
ثم:
Print Equal
أي:
اطبع أن العددين متساويان.
مثال:
A = 10
B = 10
نختبر:
10 == 10
الإجابة:
Yes
إذن:
Print Equal
━━━━━━━━━━━━━━━━━━━━
11. ماذا يحدث إذا كانت A != B ؟
إذا كانت:
A == B
خطأ، نذهب إلى:
No
وهذا يعني:
A و B غير متساويين.
لكن هنا لم نعرف بعد أيهما أكبر.
وهنا تأتي الخطوة التالية.
━━━━━━━━━━━━━━━━━━━━
12. لماذا نحتاج سؤالًا ثانيًا؟
لأن:
A == B
أعطانا معلومة واحدة فقط.
إذا كانت الإجابة:
Yes
انتهى الأمر.
لكن إذا كانت:
No
فهذا يعني فقط:
A لا يساوي B
لكن ما زلنا لا نعرف:
هل:
A > B
أم:
A < B
لذلك نحتاج إلى سؤال آخر.
━━━━━━━━━━━━━━━━━━━━
13. ما السؤال الثاني؟
في الصورة يوجد:
A > B
أي:
هل A أكبر من B؟
وهذا هو القرار الثاني.
━━━━━━━━━━━━━━━━━━━━
14. ماذا يعني > ؟
الرمز:
>
يعني:
أكبر من
مثلاً:
10 > 5
صحيحة.
لأن 10 أكبر من 5.
أما:
5 > 10
فهي خاطئة.
━━━━━━━━━━━━━━━━━━━━
15. ماذا يحدث إذا كانت A > B ؟
إذا كانت الإجابة:
Yes
فهذا يعني:
A أكبر من B.
إذن نذهب إلى:
Print A
أي:
اطبع A.
مثال:
A = 20
B = 10
السؤال الأول:
20 == 10
No
نذهب للسؤال الثاني:
20 > 10
Yes
إذن:
Print A
والنتيجة:
20
━━━━━━━━━━━━━━━━━━━━
16. ماذا يحدث إذا كانت A > B = No ؟
إذا كان:
A > B
والإجابة:
No
فهذا يعني أن A ليست أكبر من B.
ونحن نعرف مسبقًا من السؤال الأول أن:
A != B
إذن لا يمكن أن يكونا متساويين.
فما الاحتمال المتبقي؟
أن:
A < B
لذلك نذهب إلى:
Print B
أي:
B هو الأكبر.
━━━━━━━━━━━━━━━━━━━━
مثال كامل
لنفترض أن المستخدم أدخل:
A = 8
B = 15
نبدأ.
━━━━━━━━━━━━━━━━━━━━
Start
↓
Enter A,B
↓
القيم:
A = 8
B = 15
↓
السؤال:
A == B
أي:
8 == 15
النتيجة:
No
↓
ننتقل للسؤال الثاني:
A > B
أي:
8 > 15
النتيجة:
No
↓
إذن B هو الأكبر.
فننفذ:
Print B
والنتيجة:
15
━━━━━━━━━━━━━━━━━━━━
مثال آخر
A = 20
B = 7
السؤال الأول:
20 == 7
No
نذهب للسؤال الثاني:
20 > 7
Yes
إذن:
Print A
النتيجة:
20
━━━━━━━━━━━━━━━━━━━━
مثال ثالث: العددان متساويان
A = 12
B = 12
السؤال:
12 == 12
Yes
إذن:
Print Equal
ولا نحتاج إلى السؤال الثاني.
━━━━━━━━━━━━━━━━━━━━
سؤال مهم جدًا: كيف أعرف عدد القرارات؟
لا توجد قاعدة تقول:
كل برنامج يحتاج قرارين.
بل تنظر إلى الحالات المحتملة.
هنا لدينا ثلاث حالات:
A = B
A > B
A < B
لذلك احتجنا إلى قرارات تكفي لتمييز هذه الحالات.
القرار الأول:
A == B
إذا كان Yes انتهينا.
إذا كان No نحتاج معرفة من الأكبر.
لذلك القرار الثاني:
A > B
وهكذا غطينا الحالات الثلاث.
━━━━━━━━━━━━━━━━━━━━
سؤال مهم: كيف أعرف ما هي العمليات المطلوبة؟
انظر إلى المطلوب.
المطلوب ليس حساب شيء.
المطلوب:
مقارنة عددين.
إذن العملية الأساسية هي المقارنة.
نستخدم:
==
و:
>
ومن خلالهما نستنتج الحالة الثالثة:
A < B
━━━━━━━━━━━━━━━━━━━━
سؤال مهم: هل نحتاج متغيرًا ثالثًا؟
لا.
لماذا؟
لأننا نستطيع حل المشكلة باستخدام:
A
B
فقط.
نحن لا نحتاج إلى تخزين نتيجة إضافية.
يمكننا مباشرةً مقارنة A و B.
━━━━━━━━━━━━━━━━━━━━
سؤال مهم: هل نحتاج متغيرًا اسمه أكبر؟
ليس ضروريًا.
يمكن أن نصمم الحل بدون:
max
لأننا لا نحتاج إلى تخزين الأكبر.
عندما نعرف أن A أكبر:
Print A
وعندما نعرف أن B أكبر:
Print B
━━━━━━━━━━━━━━━━━━━━
سؤال مهم: لماذا لم نكتب A < B في القرار الثاني؟
يمكننا فعل ذلك.
مثلاً بعد:
A == B
إذا كانت No، يمكن أن نسأل:
A > B
وهذا ما في الصورة.
أو يمكن أن نسأل:
A < B
والحل سيظل صحيحًا.
لكن اختيار:
A > B
مريح لأننا إذا كانت الإجابة Yes نطبع A، وإذا كانت No نطبع B.
━━━━━━━━━━━━━━━━━━━━
سؤال مهم: هل يمكن أن تكون A أكبر من B و B أكبر من A في نفس الوقت؟
لا.
مثلاً:
A = 10
B = 5
صحيح:
A > B
لكن:
B > A
خطأ.
وهذا منطق المقارنة بين الأعداد.
━━━━━━━━━━━━━━━━━━━━
سؤال مهم: ماذا لو أدخل المستخدم أعدادًا سالبة؟
المخطط يستطيع التعامل معها.
مثلاً:
A = -5
B = -10
نختبر:
-5 == -10
No
ثم:
-5 > -10
Yes
إذن:
Print A
والنتيجة:
-5
━━━━━━━━━━━━━━━━━━━━
سؤال مهم: ماذا لو أدخل المستخدم صفرًا؟
أيضًا لا توجد مشكلة.
مثلاً:
A = 0
B = 5
نختبر:
0 == 5
No
ثم:
0 > 5
No
إذن:
Print B
━━━━━━━━━━━━━━━━━━━━
الآن نفهم المخطط كاملًا
يمكن قراءته كقصة بسيطة:
Start
ابدأ البرنامج.
↓
Enter A,B
أدخل العددين A و B.
↓
A == B ؟
هل العددان متساويان؟
↓
إذا Yes:
Print Equal
اطبع أن العددين متساويان.
↓
إذا No:
انتقل إلى السؤال الثاني.
↓
A > B ؟
هل A أكبر من B؟
↓
إذا Yes:
Print A
اطبع A.
↓
إذا No:
معنى ذلك أن B أكبر.
↓
Print B
اطبع B.
↓
End
انتهى البرنامج.
━━━━━━━━━━━━━━━━━━━━
كيف أفكر في أي سؤال مشابه؟
احفظ هذه الطريقة، لأنها أهم من حفظ المخطط نفسه.
عندما يأتيك أي سؤال، اسأل نفسك بالترتيب:
السؤال الأول:
ما البيانات التي سيعطيها المستخدم؟
هذه هي:
Input
━━━━━━━━━━━━━━━━━━━━
السؤال الثاني:
كم عدد المدخلات؟
عدّ البيانات المطلوبة.
مثلاً:
أدخل الطول والعرض.
إذن:
2 Inputs
━━━━━━━━━━━━━━━━━━━━
السؤال الثالث:
ما الذي سأفعله بهذه البيانات؟
هل سأجمع؟
أطرح؟
أضرب؟
أقسم؟
أقارن؟
أحسب متوسطًا؟
━━━━━━━━━━━━━━━━━━━━
السؤال الرابع:
هل يوجد شرط أو قرار؟
ابحث عن كلمات مثل:
إذا
في حالة
أكبر من
أصغر من
يساوي
إذا كان العدد موجبًا
إذا نجح الطالب
إذا كان العمر أكبر من 18
هذه غالبًا تعني أنك تحتاج إلى Decision.
━━━━━━━━━━━━━━━━━━━━
السؤال الخامس:
ما النتائج الممكنة؟
اسأل:
ماذا يمكن أن يحدث بعد تنفيذ الشرط؟
في مثالنا:
Equal
A أكبر
B أكبر
لدينا ثلاث نتائج.
━━━━━━━━━━━━━━━━━━━━
السؤال السادس:
ما الذي سأطبعه في النهاية؟
هذا هو:
Output
في مثالنا:
Equal
A
B
━━━━━━━━━━━━━━━━━━━━
أهم شيء يجب أن تتعلمه من هذا المثال
لا تحفظ المخطط هكذا:
Start
↓
Enter A,B
↓
A==B
↓
A>B
بل تعلم طريقة التفكير:
المطلوب → المدخلات → العمليات → الشروط → الحالات → المخرجات
وهذه الطريقة ستساعدك في بناء مخططات انسيابية جديدة بنفسك، حتى لو تغير السؤال بالكامل.
━━━━━━━━━━━━━━━━━━━━
ملخص سريع جدًا
Input:
A , B
عدد المدخلات:
2
القرار الأول:
A == B
إذا Yes:
Print Equal
إذا No:
ننتقل للقرار الثاني.
القرار الثاني:
A > B
إذا Yes:
Print A
إذا No:
Print B
النهاية:
End
━━━━━━━━━━━━━━━━━━━━
قاعدة ذهبية للمبتدئ:
قبل أن ترسم أي Flowchart، لا تسأل نفسك "أي شكل أستخدم؟" أولًا.
اسأل نفسك:
ما المدخلات؟
كم عددها؟
ما المتغيرات التي أحتاجها؟
ما المطلوب حسابه أو فحصه؟
هل يوجد شرط؟
كم حالة يمكن أن تحدث؟
ما المخرجات المطلوبة؟
ثم بعد ذلك حوّل الإجابات إلى أشكال المخطط الانسيابي.

#خوارزميات_من_الصفر
هذه الفيديوهات لازم تشاهدوها لانها مهمه مهمه جداً. ارجوا من الجميع مشاهده جميع هذه الفيديوهات كامله . هذه الفيديوهات تعرفك بتخصص هندسه البرمجيات
https://youtube.com/playlist?list=PLePWW30iFqTDqvRJOYEZvaj4NZE5rf65x&si=lza8VnxRHoPLZFE8
..............
https://youtube.com/playlist?list=PLOEkz33t1rDnvnX0x57CjTN0VWWmqq3qu&si=jGwoDATOFP71bjKb
..............
https://youtube.com/playlist?list=PL08ef9eJxtJZvt5BOsT46vN6kWnflVKH4&si=OGiO6mTjcyXDc5Jf
نصيحه كيف تذاكر هذه الدروس
اول شئ حاول بنفسك حاول محاولات كثيره واذا لم تستطع بعد عده محاولات .واذا فشلت انظر للحل و ارسم الشكل في ورقه و من ثم اقرأ الشرح و نظرت الى الرسم . و تتبع الخطوات كامله


#نصيحة
9⃣ اكتب خوارزميه لحساب قيمة Y من المعادله التالية
Y=(X+3) / X (X-2)
باستخدام المخطط الانسيابي
1. Start
نبدأ تنفيذ الخوارزمية.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2. Read X
ندخل قيمة واحدة من المستخدم وهي:
X
مثال:
X = 5
كيف عرفت أن X هو المدخل؟
لأن المخطط يطلب من المستخدم قراءة وإدخال X، إذن X هو Input.
عدد المدخلات هنا = 1.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3. حساب C
نحسب قيمة C باستخدام:
C = X × (X - 2)
مثلاً إذا:
X = 5
فإن:
C = 5 × (5 - 2)
C = 5 × 3
C = 15
إذن أصبحت لدينا قيمة جديدة وهي C.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4. الشرط C == 0
الآن نسأل:
هل C تساوي 0؟
هنا يوجد احتمالان:
Yes: إذا كانت C = 0.
No: إذا كانت C ≠ 0.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
5. إذا كانت الإجابة Yes
إذا كانت:
C = 0
فلا نستطيع حساب:
Y = (X + 3) / C
لأن ذلك يعني القسمة على صفر.
لذلك نذهب مباشرة إلى:
Print No solution
أي نطبع:
No solution
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6. إذا كانت الإجابة No
إذا كانت:
C ≠ 0
فيمكننا حساب Y:
Y = (X + 3) / C
ثم نطبع:
Print Y
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
مثال عملي
إذا أدخلنا:
X = 5
نحسب:
C = 5 × (5 - 2)
C = 15
نسأل:
C == 0 ?
الإجابة:
No
لذلك نحسب:
Y = (5 + 3) / 15
Y = 8 / 15
ثم نطبع قيمة Y.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
مثال آخر
إذا أدخلنا:
X = 2
فإن:
C = 2 × (2 - 2)
C = 0
إذن:
C == 0
الإجابة Yes.
لذلك لا نحسب Y، ونطبع:
No solution
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
أسئلة قد تخطر في بالك
لماذا فحصنا C؟
لأن C هو المقام في:
Y = (X + 3) / C
ولذلك يجب التأكد أولًا من أنه ليس صفرًا.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
هل C مدخل؟
لا.
المدخل هو X، أما C فهي قيمة يتم حسابها داخل الخوارزمية.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
هل Y مدخل؟
لا.
Y هي نتيجة يتم حسابها ثم طباعتها.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
كم عدد المدخلات؟
مدخل واحد فقط:
X
كم عدد القيم التي نحسبها؟
لدينا:
C
Y
لكن Y تُحسب فقط عندما تكون C لا تساوي صفرًا.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
الخلاصة
فكرة المخطط ببساطة:
أدخل X → احسب C → افحص C → إذا كانت صفرًا اطبع No solution، وإذا لم تكن صفرًا احسب Y واطبعها.

#خوارزميات_من_الصفر
الدروس المتقدمه
نص السؤال
اكتب خوارزمية لبرنامج يقوم بايجاد اكبر(قيمه) عدد من بين ثلاث قيم مدخله.باستخدام المخطط الانسيابي
K7H Code
نص السؤال اكتب خوارزمية لبرنامج يقوم بايجاد اكبر(قيمه) عدد من بين ثلاث قيم مدخله.باستخدام المخطط الانسيابي
1. فهم السؤال
لدينا ثلاث قيم يدخلها المستخدم:
A ، B ، C
والمطلوب أن نقارن بينها، وفي النهاية نطبع أكبر قيمة.
مثلاً إذا كانت:
A = 10
B = 25
C = 15
فالنتيجة ستكون:
Max = 25
ــــــــــــــــــــــــــــــــــــــــ
2. كيف حددنا المدخلات؟
نسأل أنفسنا:
ما الأشياء التي يعطيها المستخدم للبرنامج؟
السؤال يقول:
"من بين ثلاث قيم مدخله"
إذن المستخدم سيدخل 3 قيم.
لذلك المدخلات هي:
A ، B ، C
ثم نحتاج متغيرًا إضافيًا اسمه Max حتى نحتفظ بأكبر قيمة نصل إليها أثناء المقارنة.
ــــــــــــــــــــــــــــــــــــــــ
3. نبدأ بـ Max = A
في البداية نقول:
Max = A
أي أننا نفترض مؤقتًا أن A هي الأكبر.
لماذا؟
لأننا نحتاج قيمة نبدأ المقارنة بها.
بعد ذلك نقارن Max مع B و C.
ــــــــــــــــــــــــــــــــــــــــ
4. المقارنة الأولى
في المخطط نجد:
Max == B && Max == C
أي:
هل Max تساوي B و Max تساوي C؟
إذا كانت الإجابة Yes فهذا يعني:
A = B = C
أي أن القيم الثلاث متساوية، ولذلك يذهب المخطط إلى:
All equals
ــــــــــــــــــــــــــــــــــــــــ
5. إذا لم تكن القيم الثلاث متساوية
إذا كانت الإجابة No، ننتقل إلى:
Max > B
أي:
هل Max أكبر من B؟
إذا كانت الإجابة No فهذا يعني أن B أكبر من Max، وبالتالي يجب أن تصبح:
Max = B
ثم نكمل المقارنة مع C.
ــــــــــــــــــــــــــــــــــــــــ
6. مقارنة Max مع C
بعد ذلك نجد:
Max > C
إذا كانت Yes فهذا يعني أن Max أكبر من C، وبالتالي تبقى قيمة Max كما هي.
أما إذا كانت No فهذا يعني أن C أكبر من Max، ولذلك نكتب:
Max = C
ثم في النهاية:
Print Max
أي نطبع أكبر قيمة.
ــــــــــــــــــــــــــــــــــــــــ
مثال سريع
لو أدخلنا:
A = 15
B = 20
C = 12
نبدأ:
Max = A = 15
نقارن مع B:
15 > 20 → No
إذن:
Max = B = 20
ثم نقارن مع C:
20 > 12 → Yes
إذن تبقى:
Max = 20
والنتيجة:
Print Max → 20
ــــــــــــــــــــــــــــــــــــــــ
أسئلة مهمة قد تخطر في بالك
كيف أعرف عدد المدخلات؟
من نص السؤال: قال "ثلاث قيم"، إذن لدينا 3 مدخلات.
ــــــــــــــــــــــــــــــــــــــــ
لماذا لدينا Max؟
لأننا نحتاج متغيرًا يحتفظ بأكبر قيمة وجدناها أثناء المقارنة.
ــــــــــــــــــــــــــــــــــــــــ
هل Max مدخل؟
لا.
A وB وC هي المدخلات، أما Max فهو متغير يتم حسابه داخل الخوارزمية.
ــــــــــــــــــــــــــــــــــــــــ
كيف أعرف ماذا أطبع؟
السؤال يطلب إيجاد أكبر قيمة، لذلك في النهاية نطبع Max.
ــــــــــــــــــــــــــــــــــــــــ
ماذا لو كانت القيم الثلاث متساوية؟
يظهر المسار All equals، لأن A وB وC لها نفس القيمة.
ــــــــــــــــــــــــــــــــــــــــ
الخلاصة
طريقة التفكير في هذا السؤال هي:
أدخل 3 قيم → اجعل Max تساوي A → قارنها مع B → قارنها مع C → احتفظ بالأكبر → اطبع Max.
وهذه الفكرة مهمة جدًا؛ لأنك ستستخدمها لاحقًا في مسائل إيجاد الأكبر أو الأصغر بين عدة أرقام.


#خوارزميات_من_الصفر
❤1
1⃣1️⃣ اكتب خوارزمية لبرنامج يقوم بحساب فاتورة الكهرباء حسب القواعد التالية :

١. اول خمسين كيلو الكهرباء بـ 1000 ريال

٢. ما زاد عن خمسين كيلو إلى 100 كيلو سعر الكيلو بـ 800 ريال

٣. ما زلد عن 100 كيلو سعر الكيلو بـ 750 ريال
❤1
👆👆👆
━━━━━━━━━━━━━━━━━━━
مثال: حساب فاتورة الكهرباء
نص السؤال:
اكتب خوارزمية لبرنامج يقوم بحساب فاتورة الكهرباء حسب القواعد التالية:
أول 50 كيلو الكهرباء بـ 1000 ريال.
ما زاد عن 50 كيلو إلى 100 كيلو سعر الكيلو بـ 800 ريال.
ما زاد عن 100 كيلو سعر الكيلو بـ 750 ريال.
━━━━━━━━━━━━━━━━━━━
1. فهم السؤال
المطلوب من البرنامج هو حساب قيمة فاتورة الكهرباء بناءً على عدد الكيلوات التي تم استهلاكها.
بمعنى أن المستخدم سيعطي البرنامج عدد الكيلوات، والبرنامج يحدد سعر الكيلو المناسب حسب كمية الاستهلاك، ثم يحسب قيمة الفاتورة.
لدينا ثلاث حالات:
إذا كان الاستهلاك 50 كيلو أو أقل → السعر 1000 ريال.
إذا كان الاستهلاك أكبر من 50 وحتى 100 → السعر 800 ريال.
إذا كان الاستهلاك أكبر من 100 → السعر 750 ريال.
━━━━━━━━━━━━━━━━━━━
2. تحديد المدخلات والمخرجات
المدخل Input
نسأل أنفسنا:
ما المعلومة التي يحتاج البرنامج إلى معرفتها حتى يستطيع حساب الفاتورة؟
الإجابة:
عدد الكيلوات المستهلكة.
لذلك لدينا متغير واحد:
Kilos
وهو يمثل عدد الكيلوات.
مثلاً:
Kilos = 40
أي أن المستخدم استهلك 40 كيلو.
━━━━━━━━━━━━━━━━━━━
المخرج Output
ماذا يريد البرنامج في النهاية؟
يريد معرفة قيمة الفاتورة.
لذلك نستخدم المتغير:
Cost
وهو يمثل تكلفة الكهرباء.
إذن:
Input:
Kilos
Output:
Cost
━━━━━━━━━━━━━━━━━━━
3. كيف نعرف الشروط؟
ننظر إلى نص السؤال ونبحث عن الأماكن التي تغير فيها السعر.
السؤال أعطانا ثلاث حالات:
الحالة الأولى:
50 كيلو أو أقل.
إذن:
Kilos <= 50
━━━━━━━━━━━━━━━━━━━
الحالة الثانية:
أكبر من 50 وحتى 100.
إذن:
Kilos > 50 && Kilos <= 100
━━━━━━━━━━━━━━━━━━━
الحالة الثالثة:
أكبر من 100.
إذن:
Kilos > 100
━━━━━━━━━━━━━━━━━━━
إذن نحتاج إلى شرطين داخل المخطط حتى نصل إلى الحالات الثلاث.
الشرط الأول:
Kilos <= 50
إذا كانت الإجابة No، نذهب للشرط الثاني:
Kilos > 50 && Kilos <= 100
وإذا كانت الإجابة No أيضًا، فهذا يعني تلقائيًا أن:
Kilos > 100
━━━━━━━━━━━━━━━━━━━
4. شرح الحالات
الحالة الأولى: 50 كيلو أو أقل
الشرط:
Kilos <= 50
إذا تحقق الشرط، فهذا يعني أن كمية الاستهلاك لا تتجاوز 50 كيلو.
وسعر الكيلو في هذه الحالة:
1000 ريال
لذلك:
Cost = Kilos × 1000
مثال:
إذا كان:
Kilos = 40
نحسب:
Cost = 40 × 1000
إذن:
Cost = 40000 ريال
━━━━━━━━━━━━━━━━━━━
الحالة الثانية: أكثر من 50 وحتى 100
الشرط:
Kilos > 50 && Kilos <= 100
إذا تحقق هذا الشرط، فهذا يعني أن عدد الكيلوات أكبر من 50، ولكنه لا يتجاوز 100.
في هذه الحالة سعر كل كيلو هو:
800 ريال
لذلك:
Cost = Kilos × 800
مثال:
إذا كان:
Kilos = 70
فإن:
Cost = 70 × 800
إذن:
Cost = 56000 ريال
لاحظ هنا أننا لا نحسب أول 50 بسعر 1000 ثم الباقي بسعر 800، لأن هذا السؤال يحدد سعر الكيلو كاملًا حسب الفئة التي وصلت إليها كمية الاستهلاك.
━━━━━━━━━━━━━━━━━━━
الحالة الثالثة: أكثر من 100
إذا لم يتحقق الشرط الثاني، فهذا يعني أن:
Kilos > 100
وفي هذه الحالة يصبح سعر كل كيلو:
750 ريال
لذلك:
Cost = Kilos × 750
مثال:
إذا كان:
Kilos = 120
فإن:
Cost = 120 × 750
إذن:
Cost = 90000 ريال
━━━━━━━━━━━━━━━━━━━
5. قراءة المخطط خطوة بخطوة
الآن نقرأ المخطط الموجود في الصورة من الأعلى إلى الأسفل.
نبدأ:
Start
أي بداية تنفيذ الخوارزمية.
↓
ثم:
Enter Kilos
أي ندخل عدد الكيلوات المستهلكة.
↓
بعد ذلك نصل إلى الشرط:
Kilos <= 50
━━━━━━━━━━━━━━━━━━━
إذا كانت الإجابة Yes
هذا يعني:
Kilos <= 50
إذن نستخدم:
Cost = Kilos × 1000
ثم ننتقل إلى:
Print Cost
أي طباعة قيمة الفاتورة.
↓
ثم:
End
━━━━━━━━━━━━━━━━━━━
إذا كانت الإجابة No
هذا يعني أن:
Kilos > 50
لذلك ننتقل إلى الشرط الثاني:
Kilos > 50 && Kilos <= 100
━━━━━━━━━━━━━━━━━━━
إذا كانت الإجابة Yes
هذا يعني أن الكمية أكبر من 50 ولا تتجاوز 100.
إذن:
Cost = Kilos × 800
ثم:
Print Cost
وبعد ذلك:
End
━━━━━━━━━━━━━━━━━━━
إذا كانت الإجابة No
بما أننا عرفنا مسبقًا أن:
Kilos > 50
والشرط الثاني لم يتحقق، فهذا يعني أن:
Kilos > 100
لذلك:
Cost = Kilos × 750
ثم:
Print Cost
وبعدها:
End
━━━━━━━━━━━━━━━━━━━
6. مقارنة المخطط بالسؤال
المخطط الموجود في الصورة يستخدم:
Kilos <= 50
ثم:
Kilos > 50 && Kilos <= 100
ثم:
Kilos × 750
للكمية التي تتجاوز 100.
وهذا يتوافق مع طريقة الحساب التي فهمناها من المخطط:
50 أو أقل → × 1000
أكثر من 50 وحتى 100 → × 800
أكثر من 100 → × 750

━━━━━━━━━━━━━━━━━━━
7. أسئلة المبتدئ
❤1
س: كيف عرفت أن Kilos هو المدخل؟
ج: لأن المستخدم هو الذي يعطي البرنامج عدد الكيلوات المستهلكة.
━━━━━━━━━━━━━━━━━━━
س: كيف عرفت أن Cost هو المخرج؟
ج: لأن البرنامج هو الذي يحسب قيمة الفاتورة، ثم يطبعها للمستخدم.
━━━━━━━━━━━━━━━━━━━
س: لماذا نحتاج شرطين وليس ثلاثة؟
ج: لأن الشرط الأول يقسم الحالة الأولى عن باقي الحالات، والشرط الثاني يميز الحالة الثانية عن الثالثة. لذلك نستطيع الحصول على ثلاث حالات باستخدام شرطين فقط.
━━━━━━━━━━━━━━━━━━━
س: ماذا يعني Kilos <= 50؟
ج: يعني أن عدد الكيلوات أقل من أو يساوي 50.
أي مثل:
30 أو 50
لكن ليس:
51
━━━━━━━━━━━━━━━━━━━
س: ماذا يعني Kilos > 50 && Kilos <= 100؟
ج: يعني أن الكمية يجب أن تحقق الشرطين معًا:
أكبر من 50.
وأقل من أو تساوي 100.
مثل:
51، 70، 90، 100
━━━━━━━━━━━━━━━━━━━
س: ماذا يحدث إذا كانت Kilos = 50؟
ج: تدخل في الحالة الأولى:
50 × 1000
━━━━━━━━━━━━━━━━━━━
س: ماذا يحدث إذا كانت Kilos = 100؟
ج: حسب المخطط، تدخل في الحالة الثانية لأن الشرط هو:
Kilos <= 100
وبالتالي:
100 × 800 = 80000
━━━━━━━━━━━━━━━━━━━
س: ماذا يحدث إذا كانت Kilos = 101؟
ج: تدخل في الحالة الثالثة لأن:
101 > 100
وبالتالي:
101 × 750
━━━━━━━━━━━━━━━━━━━
س: لماذا في الحالة الثانية نستخدم Kilos × 800؟
ج: لأن السؤال هنا يجعل سعر الكيلو 800 ريال عندما تكون كمية الاستهلاك ضمن هذه الفئة، لذلك نحسب كامل الكمية بسعر 800.
━━━━━━━━━━━━━━━━━━━
س: هل أحتاج إلى حفظ العمليات الحسابية؟
ج: لا. افهم أولًا كيف قسمت المسألة كمية الاستهلاك إلى ثلاث حالات، وبعد ذلك اكتب العملية حسب السعر الموجود في كل حالة.
━━━━━━━━━━━━━━━━━━━
8. الخلاصة
عندما تواجه مسألة مشابهة، لا تبدأ برسم المخطط مباشرة.
ابدأ بهذه الأسئلة:
1. ماذا سيدخل المستخدم؟
→ Kilos
2. ماذا أريد أن أخرج؟
→ Cost
3. كم حالة عندي؟
→ 3 حالات.
4. ما شروط الحالات؟
→ Kilos <= 50
→ Kilos > 50 && Kilos <= 100
→ Kilos > 100
5. ما العملية في كل حالة؟
→ Cost = Kilos × 1000
→ Cost = Kilos × 800
→ Cost = Kilos × 750
وبعد ذلك توصل كل حالة إلى:
Print Cost
ثم:
End
━━━━━━━━━━━━━━━━━━━
لا تحفظ المخطط كصورة، بل تقرأ قواعد السؤال → تحدد المدخلات والمخرجات → تستخرج الحالات → تكتب العملية لكل حالة → ثم ترسم المخطط.


#خوارزميات_من_الصفر
K7H Code
Loops
مقدمة إلى جمل الدوران (Loops) في الخوارزميات والمخططات الانسيابية
بعد أن تعلمنا في الدروس السابقة كيفية فهم المشكلة، وتحديد المدخلات والمخرجات، واستخدام الشروط، وتحويل خطوات الحل إلى خوارزمية ومخطط انسيابي، ننتقل الآن إلى مفهوم مهم جدًا في البرمجة والخوارزميات، وهو جمل الدوران أو التكرار (Loops).
━━━━━━━━━━━━━━━━━━━
ما المقصود بجمل الدوران؟
جمل الدوران هي طريقة تجعل البرنامج يكرر مجموعة من الخطوات أكثر من مرة بدلًا من كتابة الخطوات نفسها بشكل متكرر.
بمعنى أبسط:
بدل أن نقول للبرنامج:
نفذ هذه الخطوة، ثم نفذها مرة أخرى، ثم مرة أخرى، ثم مرة أخرى...
نستطيع استخدام جملة دوران تخبر البرنامج:
كرر هذه الخطوات طالما أن الشرط المطلوب متحقق.
━━━━━━━━━━━━━━━━━━━
لماذا نحتاج إلى جمل الدوران؟
أثناء حل المسائل، قد نحتاج إلى تنفيذ نفس العملية عدة مرات.
وهنا تظهر أهمية جمل الدوران؛ لأنها تساعدنا على:
تكرار العمليات بسهولة.
تقليل عدد الخطوات المكتوبة.
جعل الخوارزمية أكثر تنظيمًا.
تنفيذ عملية عددًا محددًا من المرات.
الاستمرار في التكرار طالما أن شرطًا معينًا متحقق.
━━━━━━━━━━━━━━━━━━━
كيف تعمل فكرة الدوران؟
فكرة الدوران تعتمد بشكل أساسي على ثلاثة أشياء:
بداية التكرار
نعرف من أين تبدأ العملية.
شرط التكرار
نحدد متى يستمر التكرار ومتى يتوقف.
تحديث أو تغيير الحالة
يحدث تغيير أثناء التكرار حتى لا تستمر العملية إلى ما لا نهاية.
━━━━━━━━━━━━━━━━━━━
ما علاقة الدوران بالمخطط الانسيابي؟
في المخطط الانسيابي، يظهر التكرار عندما يكون لدينا مسار يعود إلى خطوة سابقة.
وهذا المسار يجعل مجموعة من الخطوات تُنفذ مرة أخرى بدل الانتقال مباشرة إلى نهاية الخوارزمية.
لذلك عندما ترى في مخطط انسيابي مسارًا يعود إلى خطوة سابقة، فغالبًا أنت أمام عملية تكرار (Loop).
━━━━━━━━━━━━━━━━━━━
هل جميع جمل الدوران تعمل بالطريقة نفسها؟
لا.
هناك أكثر من طريقة لتنفيذ التكرار، والاختلاف بينها يكون في متى يتم فحص الشرط وكيف يبدأ التكرار ومتى يتوقف.
وسنتعرف في الدروس القادمة على أنواع جمل الدوران وكيفية استخدامها وتمثيلها داخل الخوارزميات والمخططات الانسيابية.
━━━━━━━━━━━━━━━━━━━
أسئلة قد تخطر في ذهنك
س: هل جملة الدوران تعني أن البرنامج سيكرر إلى الأبد؟
ج: لا. التكرار يجب أن يكون له طريقة واضحة للتوقف، وإلا قد تحدث حلقة لا نهائية (Infinite Loop).
━━━━━━━━━━━━━━━━━━━
س: هل أحتاج إلى حفظ أنواع جمل الدوران؟
ج: لا تبدأ بالحفظ. الأهم أن تفهم فكرة التكرار ومتى نحتاج إليه، وبعد ذلك ستصبح أنواع الحلقات أسهل في الفهم.
━━━━━━━━━━━━━━━━━━━
س: هل الدوران يستخدم في البرمجة فقط؟
ج: لا، فهو مفهوم أساسي في الخوارزميات والمخططات الانسيابية والبرمجة؛ لأن فكرة تكرار الخطوات يمكن تمثيلها قبل كتابة أي كود.
━━━━━━━━━━━━━━━━━━━
الخلاصة
جمل الدوران هي وسيلة لتكرار مجموعة من الخطوات بدل تنفيذها وكتابتها مرة بعد مرة.
وفكرة الدرس القادمة ستكون بسيطة:
متى نحتاج إلى التكرار؟
كيف نحدد عدد مرات التكرار؟
متى يستمر التكرار؟
ومتى يتوقف؟
بعد فهم هذه الفكرة، سنبدأ بدراسة أنواع جمل الدوران وكيف نمثلها في الخوارزميات والمخططات الانسيابية.
━━━━━━━━━━━━━━━━━━━
#خوارزميات_من_الصفر
اكتب خوارزمية لبرنامج يقوم بطباعه الاعداد من 1 إلى 10
❤1
K7H Code
اكتب خوارزمية لبرنامج يقوم بطباعه الاعداد من 1 إلى 10
━━━━━━━━━━━━━━━━━━━
خوارزمية طباعة الأعداد من 1 إلى 10
أولًا: فهم السؤال
السؤال يقول:
اكتب خوارزمية لبرنامج يقوم بطباعة الأعداد من 1 إلى 10.
ماذا يريد منا البرنامج؟
نريد أن تكون النتيجة:
1
2
3
4
5
6
7
8
9
10
لاحظ أن هناك شيئًا يتكرر:
نحن نطبع رقمًا، ثم ننتقل إلى الرقم الذي بعده، ونستمر في ذلك حتى نصل إلى الرقم 10.
إذن هذه المسألة مناسبة جدًا لاستخدام جملة دوران (Loop).
━━━━━━━━━━━━━━━━━━━
ثانيًا: كيف أحدد المدخلات والمخرجات؟
هل يوجد Input؟
لا.
البرنامج لا يحتاج من المستخدم أن يدخل أي رقم.
لماذا؟
لأن السؤال حدد لنا البداية والنهاية بنفسه:
البداية = 1
النهاية = 10
لذلك لا نحتاج إلى Read أو Input.
━━━━━━━━━━━━━━━━━━━
هل يوجد Output؟
نعم.
لأن السؤال يقول:
"يقوم بطباعة الأعداد من 1 إلى 10"
إذن الناتج الذي سيظهر للمستخدم هو الأعداد:
1 2 3 4 5 6 7 8 9 10
━━━━━━━━━━━━━━━━━━━
ثالثًا: ما المتغير الذي نحتاجه؟
نحتاج متغيرًا نستخدمه لتتبع الرقم الحالي.
سنسمّيه:
i
ونعطيه في البداية القيمة:
i = 1
لماذا بدأنا بـ 1؟
لأن السؤال طلب الطباعة من 1 إلى 10.
إذن أول رقم نريد طباعته هو 1.
━━━━━━━━━━━━━━━━━━━
رابعًا: كيف أعرف أنني أحتاج إلى Loop؟
هنا سؤال مهم جدًا للمبتدئ:
كيف أعرف أن المسألة تحتاج إلى جملة دوران؟
ابحث في السؤال عن شيء مطلوب أن يتكرر.
في سؤالنا نريد:
طباعة 1
طباعة 2
طباعة 3
...
طباعة 10
بدل أن نكتب أمر الطباعة عشر مرات، نستطيع أن نجعل البرنامج يكرر نفس العملية.
إذن لدينا:
تكرار + بداية + نهاية
وهذه علامة واضحة على أننا نحتاج إلى Loop.
━━━━━━━━━━━━━━━━━━━
خامسًا: كيف أحدد شرط التكرار؟
نريد أن نطبع الأعداد حتى 10.
إذن نسأل أنفسنا:
متى أستمر في التكرار؟
طالما أن الرقم الحالي أصغر من أو يساوي 10.
لذلك يكون الشرط:
i <= 10
أي:
هل قيمة i أصغر من أو تساوي 10؟
إذا كانت الإجابة نعم → نطبع الرقم.
إذا كانت الإجابة لا → نتوقف.
━━━━━━━━━━━━━━━━━━━
سادسًا: ماذا يحدث داخل التكرار؟
داخل التكرار لدينا خطوتان أساسيتان:
1. طباعة الرقم
Print i
2. زيادة الرقم
i = i + 1
لماذا نزيد i؟
لأننا إذا طبعنا الرقم ولم نغير قيمته، فستبقى قيمة i كما هي، وسيستمر البرنامج في طباعة نفس الرقم إلى ما لا نهاية.
مثلاً:
i = 1
Print i
Print i
Print i
Print i
...
سيطبع:
1
1
1
1
...
لذلك نحتاج إلى:
i = i + 1
حتى ننتقل من:
1 → 2 → 3 → 4 → ... → 10
━━━━━━━━━━━━━━━━━━━
سابعًا: قراءة المخطط الانسيابي خطوة بخطوة
الآن نقرأ المخطط الموجود في الصورة من البداية.
الخطوة 1: Start
نبدأ تنفيذ الخوارزمية.
↓
الخطوة 2: i = 1
نعطي المتغير i القيمة:
i = 1
الآن الرقم الحالي هو 1.
↓
الخطوة 3: فحص الشرط
نسأل:
i <= 10 ?
في البداية:
1 <= 10
الإجابة:
نعم.
↓
الخطوة 4: Print i
بما أن الشرط صحيح، نطبع قيمة i.
الناتج:
1
↓
الخطوة 5: i = i + 1
نزيد قيمة i بمقدار واحد:
i = 1 + 1
فتصبح:
i = 2
↓
ثم نرجع مرة أخرى إلى الشرط:
i <= 10
━━━━━━━━━━━━━━━━━━━
ثامنًا: ماذا يحدث في كل دورة؟
يمكننا تتبع البرنامج بهذا الشكل:
قيمة i
الشرط i <= 10
العملية
1
صحيح
يطبع 1
2
صحيح
يطبع 2
3
صحيح
يطبع 3
4
صحيح
يطبع 4
5
صحيح
يطبع 5
6
صحيح
يطبع 6
7
صحيح
يطبع 7
8
صحيح
يطبع 8
9
صحيح
يطبع 9
10
صحيح
يطبع 10
11
خطأ
يتوقف
لاحظ ماذا حدث:
كل مرة:
فحص الشرط
↓
طباعة الرقم
↓
زيادة الرقم
↓
العودة للشرط
وهذا هو مفهوم التكرار.
━━━━━━━━━━━━━━━━━━━
تاسعًا: ماذا يحدث عندما تصبح i = 11؟
بعد طباعة الرقم 10، يتم تنفيذ:
i = i + 1
فتصبح:
i = 11
ثم نرجع إلى الشرط:
i <= 10
أي:
11 <= 10
النتيجة:
خطأ.
لذلك لا ندخل إلى الطباعة مرة أخرى، وننتقل إلى:
End
وبذلك تنتهي الخوارزمية.
━━━━━━━━━━━━━━━━━━━
عاشرًا: الخوارزمية كاملة
Start

i = 1

While i <= 10

Print i

i = i + 1

End While

End
أو بصيغة خطوات:
1. Start
2. i = 1
3. إذا كان i <= 10
4. اطبع i
5. i = i + 1
6. ارجع إلى الخطوة 3
7. إذا كان الشرط خطأ، انتقل إلى End
8. End
━━━━━━━━━━━━━━━━━━━
أسئلة مهمة للمبتدئ
كيف عرفت أن i تبدأ من 1؟
لأن السؤال قال: من 1 إلى 10.
إذن أول رقم يجب طباعته هو 1.
━━━━━━━━━━━━━━━━━━━
كيف عرفت أن الشرط هو i <= 10؟
لأننا نريد الاستمرار في الطباعة حتى الرقم 10.
لذلك نسمح بالتكرار عندما تكون i:
1، 2، 3، ...، 10
وعندما تصبح 11 نتوقف.
━━━━━━━━━━━━━━━━━━━
لماذا استخدمنا <= وليس <؟
لو كتبنا:
i < 10
فعندما تصل i إلى 10 يصبح:
10 < 10
وهذا خطأ، وبالتالي لن تتم طباعة 10.
لذلك نستخدم:
❤1👍1