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 إلى 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
K7H Code
اكتب خوارزمية لبرنامج يقوم بطباعه الاعداد من 1 إلى 10
i <= 10
حتى يتم طباعة الرقم 10.
━━━━━━━━━━━━━━━━━━━
لماذا نستخدم i = i + 1؟
حتى ننتقل إلى الرقم التالي:
1 → 2 → 3 → 4 → ... → 10
وحتى يصل البرنامج في النهاية إلى حالة توقف.
━━━━━━━━━━━━━━━━━━━
ماذا يحدث لو نسيت i = i + 1؟
ستبقى قيمة i تساوي 1، وسيظل الشرط:
1 <= 10
صحيحًا دائمًا.
وبالتالي سيستمر البرنامج في طباعة:
1
1
1
1
1
...
وهذا يسمى تكرارًا لا نهائيًا (Infinite Loop).
━━━━━━━━━━━━━━━━━━━
الخلاصة
عندما ترى سؤالًا مثل:
"اطبع الأعداد من 1 إلى 10"
لا تحفظ المخطط كاملًا، بل فكّر بهذه الطريقة:
أين أبدأ؟
↓
1
متى أستمر؟
↓
i <= 10
ماذا أفعل؟
↓
Print i
كيف أنتقل للرقم التالي؟
↓
i = i + 1
متى أتوقف؟
↓
عندما تصبح i = 11
إذن فكرة أي تكرار بسيط هي:
بداية → شرط → تنفيذ → تحديث → العودة للشرط → توقف.
━━━━━━━━━━━━━━━━━━━
#خوارزميات_من_الصفر
حتى يتم طباعة الرقم 10.
━━━━━━━━━━━━━━━━━━━
لماذا نستخدم i = i + 1؟
حتى ننتقل إلى الرقم التالي:
1 → 2 → 3 → 4 → ... → 10
وحتى يصل البرنامج في النهاية إلى حالة توقف.
━━━━━━━━━━━━━━━━━━━
ماذا يحدث لو نسيت i = i + 1؟
ستبقى قيمة i تساوي 1، وسيظل الشرط:
1 <= 10
صحيحًا دائمًا.
وبالتالي سيستمر البرنامج في طباعة:
1
1
1
1
1
...
وهذا يسمى تكرارًا لا نهائيًا (Infinite Loop).
━━━━━━━━━━━━━━━━━━━
الخلاصة
عندما ترى سؤالًا مثل:
"اطبع الأعداد من 1 إلى 10"
لا تحفظ المخطط كاملًا، بل فكّر بهذه الطريقة:
أين أبدأ؟
↓
1
متى أستمر؟
↓
i <= 10
ماذا أفعل؟
↓
Print i
كيف أنتقل للرقم التالي؟
↓
i = i + 1
متى أتوقف؟
↓
عندما تصبح i = 11
إذن فكرة أي تكرار بسيط هي:
بداية → شرط → تنفيذ → تحديث → العودة للشرط → توقف.
━━━━━━━━━━━━━━━━━━━
#خوارزميات_من_الصفر
❤1🤝1
K7H Code
13. أكتب برنامج یقوم بحساب راتب موظف عدد ساعات عملھ 120ساعة وقیمة أجر الساعة 45ریال؟
━━━━━━━━━━━━━━━━━━━
خوارزمية حساب الراتب
المخطط الموجود أمامنا يحتوي على:
Hours = 120
Rate = 45
Salary = Hours × Rate
ثم يقوم بطباعة Salary.
إذن الفكرة ببساطة:
عدد ساعات العمل × سعر الساعة = الراتب
━━━━━━━━━━━━━━━━━━━
أولًا: فهم المطلوب
لدينا موظف عمل لمدة:
120 ساعة
وسعر الساعة الواحدة:
45
نريد حساب راتبه.
إذن نحتاج إلى إجراء عملية الضرب:
Salary = Hours × Rate
أي:
Salary = 120 × 45
والنتيجة:
Salary = 5400
إذن البرنامج سيطبع:
5400
━━━━━━━━━━━━━━━━━━━
ثانيًا: تحديد المدخلات والمخرجات
هنا يجب أن ننتبه إلى نقطة مهمة جدًا.
هل Hours و Rate مدخلات؟
في هذا المخطط تحديدًا لا يتم إدخالها من المستخدم.
لأن المخطط يحتوي مباشرة على:
Hours = 120
Rate = 45
أي أن القيم تم تحديدها داخل الخوارزمية.
لكن من ناحية منطق المسألة، فإن:
Hours تمثل عدد ساعات العمل.
Rate يمثل سعر الساعة.
ولو كان السؤال يقول:
"أدخل عدد ساعات العمل وسعر الساعة ثم احسب الراتب"
ففي هذه الحالة تصبح Hours وRate مدخلات فعلية.
أما في المخطط الحالي، فقد تم إعطاؤهما مباشرة.
━━━━━━━━━━━━━━━━━━━
ثالثًا: ما المتغيرات الموجودة؟
لدينا ثلاثة متغيرات:
1. Hours
يمثل عدد ساعات العمل:
Hours = 120
2. Rate
يمثل سعر الساعة:
Rate = 45
3. Salary
يمثل الراتب الناتج بعد إجراء العملية الحسابية:
Salary = Hours × Rate
لاحظ الفرق:
Hours وRate نحتاج قيمتهما لكي نحسب.
أما Salary فنحن نحسبه باستخدام القيمتين.
━━━━━━━━━━━━━━━━━━━
رابعًا: قراءة المخطط خطوة بخطوة
نبدأ من:
Start
ثم ننتقل إلى عملية الحساب.
━━━━━━━━━━━━━━━━━━━
الخطوة 1: تحديد عدد الساعات
المخطط يقول:
Hours = 120
إذن:
Hours
↓
120
أي أن الموظف عمل 120 ساعة.
━━━━━━━━━━━━━━━━━━━
الخطوة 2: تحديد سعر الساعة
بعد ذلك:
Rate = 45
أي أن سعر الساعة الواحدة هو 45.
━━━━━━━━━━━━━━━━━━━
الخطوة 3: حساب الراتب
الآن لدينا كل المعلومات التي نحتاجها.
نستخدم القانون:
Salary = Hours × Rate
نعوض بالقيم:
Salary = 120 × 45
فتكون النتيجة:
Salary = 5400
━━━━━━━━━━━━━━━━━━━
الخطوة 4: طباعة الراتب
بعد أن حسبنا الراتب، نصل إلى:
Print Salary
أي اطبع قيمة المتغير Salary.
وقيمة Salary أصبحت:
5400
إذن الناتج:
5400
━━━━━━━━━━━━━━━━━━━
الخطوة 5: نهاية الخوارزمية
بعد طباعة الراتب لا توجد أي عمليات أخرى.
لذلك نصل إلى:
End
وتنتهي الخوارزمية.
━━━━━━━━━━━━━━━━━━━
تتبع الخوارزمية كاملة
يمكننا تتبعها بهذه الصورة:
Start
↓
Hours = 120
↓
Rate = 45
↓
Salary = Hours × Rate
↓
Salary = 120 × 45
↓
Salary = 5400
↓
Print Salary
↓
End
━━━━━━━━━━━━━━━━━━━
كيف أعرف العملية الحسابية؟
هذه نقطة مهمة جدًا للمبتدئ.
ننظر إلى العلاقة بين المعلومات الموجودة في السؤال.
لدينا:
عدد الساعات
ولدينا:
سعر الساعة الواحدة
ونريد:
الراتب الكلي
إذا كان الموظف يحصل على مبلغ معين لكل ساعة، فإن الراتب الناتج عن الساعات يكون:
عدد الساعات × سعر الساعة
لذلك:
Salary = Hours × Rate
لا نختار الضرب عشوائيًا، وإنما نفهم معنى البيانات والعلاقة بينها.
━━━━━━━━━━━━━━━━━━━
أسئلة المبتدئ
لماذا استخدمنا Salary؟
لأننا نحتاج إلى مكان نخزن فيه نتيجة عملية الحساب.
بدلًا من أن نقول فقط:
120 × 45
نضع النتيجة في متغير اسمه:
Salary
لأن هذا المتغير يمثل الراتب.
━━━━━━━━━━━━━━━━━━━
لماذا لم نستخدم شرطًا؟
لأن المسألة الحالية لا تحتوي على حالات مختلفة.
ليس لدينا مثلًا:
إذا عمل أكثر من عدد معين من الساعات افعل كذا.
وإذا عمل أقل افعل كذا.
لدينا عملية مباشرة:
Hours × Rate
لذلك لا نحتاج إلى If.
━━━━━━━━━━━━━━━━━━━
لماذا لا نحتاج إلى Loop؟
لأن العملية تحدث مرة واحدة فقط.
نحن لا نريد تكرار الحساب عدة مرات.
لدينا:
120 × 45
ثم نطبع النتيجة وننتهي.
لذلك لا نحتاج إلى جملة دوران.
━━━━━━━━━━━━━━━━━━━
هل Salary مدخل؟
لا.
Salary مخرج محسوب.
لأننا لا نعطيه قيمة من البداية، وإنما نحسبه:
Salary = Hours × Rate
━━━━━━━━━━━━━━━━━━━
الخوارزمية كاملة
1. Start
2. Hours = 120
3. Rate = 45
4. Salary = Hours × Rate
5. Print Salary
6. End
والناتج:
5400
━━━━━━━━━━━━━━━━━━━
الخلاصة
عندما تواجه مسألة مشابهة، لا تحفظ المخطط، وإنما اسأل نفسك:
ما المعلومات الموجودة؟
Hours = عدد الساعات
Rate = سعر الساعة
ماذا أريد أن أحسب؟
Salary = الراتب
ما العلاقة بينها؟
Salary = Hours × Rate
ثم:
احسب → خزّن النتيجة → اطبعها → انتهِ
وهذا مثال على خوارزمية خطية؛ أي أن الخطوات تنفذ بالترتيب من البداية إلى النهاية دون شروط أو تكرار.
#خوارزميات_من_الصفر
خوارزمية حساب الراتب
المخطط الموجود أمامنا يحتوي على:
Hours = 120
Rate = 45
Salary = Hours × Rate
ثم يقوم بطباعة Salary.
إذن الفكرة ببساطة:
عدد ساعات العمل × سعر الساعة = الراتب
━━━━━━━━━━━━━━━━━━━
أولًا: فهم المطلوب
لدينا موظف عمل لمدة:
120 ساعة
وسعر الساعة الواحدة:
45
نريد حساب راتبه.
إذن نحتاج إلى إجراء عملية الضرب:
Salary = Hours × Rate
أي:
Salary = 120 × 45
والنتيجة:
Salary = 5400
إذن البرنامج سيطبع:
5400
━━━━━━━━━━━━━━━━━━━
ثانيًا: تحديد المدخلات والمخرجات
هنا يجب أن ننتبه إلى نقطة مهمة جدًا.
هل Hours و Rate مدخلات؟
في هذا المخطط تحديدًا لا يتم إدخالها من المستخدم.
لأن المخطط يحتوي مباشرة على:
Hours = 120
Rate = 45
أي أن القيم تم تحديدها داخل الخوارزمية.
لكن من ناحية منطق المسألة، فإن:
Hours تمثل عدد ساعات العمل.
Rate يمثل سعر الساعة.
ولو كان السؤال يقول:
"أدخل عدد ساعات العمل وسعر الساعة ثم احسب الراتب"
ففي هذه الحالة تصبح Hours وRate مدخلات فعلية.
أما في المخطط الحالي، فقد تم إعطاؤهما مباشرة.
━━━━━━━━━━━━━━━━━━━
ثالثًا: ما المتغيرات الموجودة؟
لدينا ثلاثة متغيرات:
1. Hours
يمثل عدد ساعات العمل:
Hours = 120
2. Rate
يمثل سعر الساعة:
Rate = 45
3. Salary
يمثل الراتب الناتج بعد إجراء العملية الحسابية:
Salary = Hours × Rate
لاحظ الفرق:
Hours وRate نحتاج قيمتهما لكي نحسب.
أما Salary فنحن نحسبه باستخدام القيمتين.
━━━━━━━━━━━━━━━━━━━
رابعًا: قراءة المخطط خطوة بخطوة
نبدأ من:
Start
ثم ننتقل إلى عملية الحساب.
━━━━━━━━━━━━━━━━━━━
الخطوة 1: تحديد عدد الساعات
المخطط يقول:
Hours = 120
إذن:
Hours
↓
120
أي أن الموظف عمل 120 ساعة.
━━━━━━━━━━━━━━━━━━━
الخطوة 2: تحديد سعر الساعة
بعد ذلك:
Rate = 45
أي أن سعر الساعة الواحدة هو 45.
━━━━━━━━━━━━━━━━━━━
الخطوة 3: حساب الراتب
الآن لدينا كل المعلومات التي نحتاجها.
نستخدم القانون:
Salary = Hours × Rate
نعوض بالقيم:
Salary = 120 × 45
فتكون النتيجة:
Salary = 5400
━━━━━━━━━━━━━━━━━━━
الخطوة 4: طباعة الراتب
بعد أن حسبنا الراتب، نصل إلى:
Print Salary
أي اطبع قيمة المتغير Salary.
وقيمة Salary أصبحت:
5400
إذن الناتج:
5400
━━━━━━━━━━━━━━━━━━━
الخطوة 5: نهاية الخوارزمية
بعد طباعة الراتب لا توجد أي عمليات أخرى.
لذلك نصل إلى:
End
وتنتهي الخوارزمية.
━━━━━━━━━━━━━━━━━━━
تتبع الخوارزمية كاملة
يمكننا تتبعها بهذه الصورة:
Start
↓
Hours = 120
↓
Rate = 45
↓
Salary = Hours × Rate
↓
Salary = 120 × 45
↓
Salary = 5400
↓
Print Salary
↓
End
━━━━━━━━━━━━━━━━━━━
كيف أعرف العملية الحسابية؟
هذه نقطة مهمة جدًا للمبتدئ.
ننظر إلى العلاقة بين المعلومات الموجودة في السؤال.
لدينا:
عدد الساعات
ولدينا:
سعر الساعة الواحدة
ونريد:
الراتب الكلي
إذا كان الموظف يحصل على مبلغ معين لكل ساعة، فإن الراتب الناتج عن الساعات يكون:
عدد الساعات × سعر الساعة
لذلك:
Salary = Hours × Rate
لا نختار الضرب عشوائيًا، وإنما نفهم معنى البيانات والعلاقة بينها.
━━━━━━━━━━━━━━━━━━━
أسئلة المبتدئ
لماذا استخدمنا Salary؟
لأننا نحتاج إلى مكان نخزن فيه نتيجة عملية الحساب.
بدلًا من أن نقول فقط:
120 × 45
نضع النتيجة في متغير اسمه:
Salary
لأن هذا المتغير يمثل الراتب.
━━━━━━━━━━━━━━━━━━━
لماذا لم نستخدم شرطًا؟
لأن المسألة الحالية لا تحتوي على حالات مختلفة.
ليس لدينا مثلًا:
إذا عمل أكثر من عدد معين من الساعات افعل كذا.
وإذا عمل أقل افعل كذا.
لدينا عملية مباشرة:
Hours × Rate
لذلك لا نحتاج إلى If.
━━━━━━━━━━━━━━━━━━━
لماذا لا نحتاج إلى Loop؟
لأن العملية تحدث مرة واحدة فقط.
نحن لا نريد تكرار الحساب عدة مرات.
لدينا:
120 × 45
ثم نطبع النتيجة وننتهي.
لذلك لا نحتاج إلى جملة دوران.
━━━━━━━━━━━━━━━━━━━
هل Salary مدخل؟
لا.
Salary مخرج محسوب.
لأننا لا نعطيه قيمة من البداية، وإنما نحسبه:
Salary = Hours × Rate
━━━━━━━━━━━━━━━━━━━
الخوارزمية كاملة
1. Start
2. Hours = 120
3. Rate = 45
4. Salary = Hours × Rate
5. Print Salary
6. End
والناتج:
5400
━━━━━━━━━━━━━━━━━━━
الخلاصة
عندما تواجه مسألة مشابهة، لا تحفظ المخطط، وإنما اسأل نفسك:
ما المعلومات الموجودة؟
Hours = عدد الساعات
Rate = سعر الساعة
ماذا أريد أن أحسب؟
Salary = الراتب
ما العلاقة بينها؟
Salary = Hours × Rate
ثم:
احسب → خزّن النتيجة → اطبعها → انتهِ
وهذا مثال على خوارزمية خطية؛ أي أن الخطوات تنفذ بالترتيب من البداية إلى النهاية دون شروط أو تكرار.
#خوارزميات_من_الصفر
❤1
K7H Code
15. أكتب برنامج لحساب راتب موظف بمعلومیة عدد ساعات عمل الموظف وقیمة أجر الساعة ؟
━━━━━━━━━━━━━━━━━━━
مثال: حساب راتب موظف
نص السؤال:
"اكتب برنامج لحساب راتب موظف بمعلومية عدد ساعات عمل الموظف وقيمة أجر الساعة."
━━━━━━━━━━━━━━━━━━━
أولًا: فهم السؤال
قبل أن نرسم أي مخطط أو نكتب أي خوارزمية، نحتاج نفهم المطلوب.
السؤال يخبرنا أن لدينا موظفًا، ونريد حساب راتبه.
لكي نحسب الراتب، أعطانا السؤال معلومتين:
عدد ساعات عمل الموظف.
قيمة أجر الساعة.
وبعد أن نحصل على هاتين القيمتين، نستطيع حساب الراتب.
العلاقة بينهما هي:
الراتب = عدد ساعات العمل × أجر الساعة
━━━━━━━━━━━━━━━━━━━
ثانيًا: كيف أعرف المدخلات؟
هذه من أهم الأشياء التي يجب أن تتعلمها في الخوارزميات.
اسأل نفسك:
ما المعلومات التي سيعطيها المستخدم للبرنامج؟
السؤال يقول:
"بمعلومية عدد ساعات عمل الموظف وقيمة أجر الساعة"
إذن المستخدم سيعطي البرنامج:
Hours = عدد ساعات العمل
Rate = أجر الساعة
إذن لدينا مدخلان:
Hours
Rate
ولهذا نجد في المخطط:
Read Hours, Rate
أي:
أدخل عدد ساعات العمل وأجر الساعة.
━━━━━━━━━━━━━━━━━━━
ثالثًا: لماذا لدينا مدخلان وليس مدخلًا واحدًا؟
لأننا نحتاج معلومتين مختلفتين حتى نستطيع حساب الراتب.
مثلًا، لو قال لك شخص:
الموظف عمل 120 ساعة.
هل تستطيع معرفة راتبه؟
لا.
لأنك لا تعرف كم يحصل على الساعة.
ولو قال لك:
أجر الساعة 45.
هل تستطيع معرفة الراتب؟
أيضًا لا.
لأنك لا تعرف عدد الساعات التي عملها.
إذن نحتاج:
عدد الساعات + أجر الساعة
وبعدها نستطيع حساب الراتب.
━━━━━━━━━━━━━━━━━━━
رابعًا: تحديد المخرجات
الآن نسأل:
ماذا يريد السؤال في النهاية؟
السؤال يقول:
"حساب راتب موظف"
إذن الناتج المطلوب هو:
Salary
أي:
راتب الموظف.
ولهذا نجد في المخطط:
Print Salary
أي:
اطبع الراتب.
━━━━━━━━━━━━━━━━━━━
خامسًا: كيف أعرف العملية الحسابية؟
الآن أصبح لدينا:
Hours = عدد ساعات العمل
Rate = أجر الساعة
Salary = الراتب
كيف نحسب الراتب؟
إذا كان الموظف يعمل عددًا معينًا من الساعات، ويحصل على مبلغ معين مقابل كل ساعة، فإن:
Salary = Hours × Rate
إذن العملية المطلوبة هي الضرب.
وهذه الخطوة موجودة في المخطط:
Salary = Hours * Rate
━━━━━━━━━━━━━━━━━━━
سادسًا: قراءة المخطط خطوة بخطوة
الآن نقرأ المخطط من البداية إلى النهاية.
الخطوة 1: Start
نبدأ تنفيذ البرنامج.
↓
الخطوة 2: إدخال البيانات
المخطط يحتوي على:
Read Hours, Rate
أي نطلب من المستخدم إدخال:
Hours
Rate
مثلًا، لو أدخل المستخدم:
Hours = 120
Rate = 45
↓
الخطوة 3: حساب الراتب
ننتقل إلى:
Salary = Hours * Rate
نعوض بالقيم:
Salary = 120 × 45
إذن:
Salary = 5400
↓
الخطوة 4: طباعة الراتب
نصل إلى:
Print Salary
فتظهر النتيجة:
5400
↓
الخطوة 5: End
بعد طباعة الراتب تنتهي الخوارزمية.
━━━━━━━━━━━━━━━━━━━
الخوارزمية كاملة
يمكن كتابة الخوارزمية كالتالي:
1. Start
2. Read Hours, Rate
3. Salary = Hours * Rate
4. Print Salary
5. End
━━━━━━━━━━━━━━━━━━━
مثال عملي
لو أدخل المستخدم:
Hours = 120
Rate = 45
نحسب:
Salary = Hours × Rate
أي:
Salary = 120 × 45
الناتج:
Salary = 5400
إذن البرنامج يطبع:
5400
━━━━━━━━━━━━━━━━━━━
أسئلة المبتدئ
كيف عرفت أن Hours مدخل؟
لأن السؤال يقول:
"بمعلومية عدد ساعات عمل الموظف"
أي أن البرنامج يحتاج هذه المعلومة لكي يبدأ الحساب.
━━━━━━━━━━━━━━━━━━━
كيف عرفت أن Rate مدخل؟
لأن السؤال يقول:
"وقيمة أجر الساعة"
وهذه أيضًا معلومة يحتاجها البرنامج لإجراء الحساب.
━━━━━━━━━━━━━━━━━━━
كيف عرفت أن Salary مخرج؟
لأن السؤال يطلب:
حساب راتب الموظف.
إذن الراتب هو النتيجة التي نريد الوصول إليها وإظهارها للمستخدم.
━━━━━━━━━━━━━━━━━━━
لماذا لم نستخدم شرطًا if؟
لأن السؤال لا يحتوي على حالات مختلفة.
لا يوجد مثلًا:
إذا كانت الساعات أكبر من 40...
أو:
إذا كان أجر الساعة أكبر من قيمة معينة...
المطلوب مجرد عملية حسابية مباشرة:
Hours × Rate
لذلك لا نحتاج إلى شرط.
━━━━━━━━━━━━━━━━━━━
لماذا لم نستخدم Loop؟
لأننا لا نريد تكرار العملية.
نحسب الراتب مرة واحدة، ثم نطبعه، ثم ينتهي البرنامج.
إذن لا نحتاج إلى جملة دوران.
.
━━━━━━━━━━━━━━━━━━━
كيف تحل أي سؤال مشابه؟
لا تبدأ برسم المخطط مباشرة.
أولًا اسأل نفسك 4 أسئلة:
1. ماذا سيدخل المستخدم؟
Hours
Rate
2. ماذا أريد أن أحسب؟
Salary
3. كيف أحسبه؟
Salary = Hours × Rate
4. ماذا سأطبع؟
Salary
وبذلك تصبح الخوارزمية واضحة جدًا:
Start
↓
Read Hours, Rate
↓
Salary = Hours × Rate
↓
Print Salary
↓
End
━━━━━━━━━━━━━━━━━━━
الخلاصة
هذه المسألة من أبسط أنواع الخوارزميات؛ لأنها خوارزمية خطية:
إدخال → حساب → إخراج → نهاية
ولا يوجد فيها:
شرط.
تكرار.
أكثر من مسار.
الفكرة الأساسية التي أريدك أن تفهمها هنا هي: من نص السؤال نستخرج المدخلات والمخرجات والعملية الحسابية، وبعدها يصبح رسم المخطط سهلًا.
#خوارزميات_من_الصفر
مثال: حساب راتب موظف
نص السؤال:
"اكتب برنامج لحساب راتب موظف بمعلومية عدد ساعات عمل الموظف وقيمة أجر الساعة."
━━━━━━━━━━━━━━━━━━━
أولًا: فهم السؤال
قبل أن نرسم أي مخطط أو نكتب أي خوارزمية، نحتاج نفهم المطلوب.
السؤال يخبرنا أن لدينا موظفًا، ونريد حساب راتبه.
لكي نحسب الراتب، أعطانا السؤال معلومتين:
عدد ساعات عمل الموظف.
قيمة أجر الساعة.
وبعد أن نحصل على هاتين القيمتين، نستطيع حساب الراتب.
العلاقة بينهما هي:
الراتب = عدد ساعات العمل × أجر الساعة
━━━━━━━━━━━━━━━━━━━
ثانيًا: كيف أعرف المدخلات؟
هذه من أهم الأشياء التي يجب أن تتعلمها في الخوارزميات.
اسأل نفسك:
ما المعلومات التي سيعطيها المستخدم للبرنامج؟
السؤال يقول:
"بمعلومية عدد ساعات عمل الموظف وقيمة أجر الساعة"
إذن المستخدم سيعطي البرنامج:
Hours = عدد ساعات العمل
Rate = أجر الساعة
إذن لدينا مدخلان:
Hours
Rate
ولهذا نجد في المخطط:
Read Hours, Rate
أي:
أدخل عدد ساعات العمل وأجر الساعة.
━━━━━━━━━━━━━━━━━━━
ثالثًا: لماذا لدينا مدخلان وليس مدخلًا واحدًا؟
لأننا نحتاج معلومتين مختلفتين حتى نستطيع حساب الراتب.
مثلًا، لو قال لك شخص:
الموظف عمل 120 ساعة.
هل تستطيع معرفة راتبه؟
لا.
لأنك لا تعرف كم يحصل على الساعة.
ولو قال لك:
أجر الساعة 45.
هل تستطيع معرفة الراتب؟
أيضًا لا.
لأنك لا تعرف عدد الساعات التي عملها.
إذن نحتاج:
عدد الساعات + أجر الساعة
وبعدها نستطيع حساب الراتب.
━━━━━━━━━━━━━━━━━━━
رابعًا: تحديد المخرجات
الآن نسأل:
ماذا يريد السؤال في النهاية؟
السؤال يقول:
"حساب راتب موظف"
إذن الناتج المطلوب هو:
Salary
أي:
راتب الموظف.
ولهذا نجد في المخطط:
Print Salary
أي:
اطبع الراتب.
━━━━━━━━━━━━━━━━━━━
خامسًا: كيف أعرف العملية الحسابية؟
الآن أصبح لدينا:
Hours = عدد ساعات العمل
Rate = أجر الساعة
Salary = الراتب
كيف نحسب الراتب؟
إذا كان الموظف يعمل عددًا معينًا من الساعات، ويحصل على مبلغ معين مقابل كل ساعة، فإن:
Salary = Hours × Rate
إذن العملية المطلوبة هي الضرب.
وهذه الخطوة موجودة في المخطط:
Salary = Hours * Rate
━━━━━━━━━━━━━━━━━━━
سادسًا: قراءة المخطط خطوة بخطوة
الآن نقرأ المخطط من البداية إلى النهاية.
الخطوة 1: Start
نبدأ تنفيذ البرنامج.
↓
الخطوة 2: إدخال البيانات
المخطط يحتوي على:
Read Hours, Rate
أي نطلب من المستخدم إدخال:
Hours
Rate
مثلًا، لو أدخل المستخدم:
Hours = 120
Rate = 45
↓
الخطوة 3: حساب الراتب
ننتقل إلى:
Salary = Hours * Rate
نعوض بالقيم:
Salary = 120 × 45
إذن:
Salary = 5400
↓
الخطوة 4: طباعة الراتب
نصل إلى:
Print Salary
فتظهر النتيجة:
5400
↓
الخطوة 5: End
بعد طباعة الراتب تنتهي الخوارزمية.
━━━━━━━━━━━━━━━━━━━
الخوارزمية كاملة
يمكن كتابة الخوارزمية كالتالي:
1. Start
2. Read Hours, Rate
3. Salary = Hours * Rate
4. Print Salary
5. End
━━━━━━━━━━━━━━━━━━━
مثال عملي
لو أدخل المستخدم:
Hours = 120
Rate = 45
نحسب:
Salary = Hours × Rate
أي:
Salary = 120 × 45
الناتج:
Salary = 5400
إذن البرنامج يطبع:
5400
━━━━━━━━━━━━━━━━━━━
أسئلة المبتدئ
كيف عرفت أن Hours مدخل؟
لأن السؤال يقول:
"بمعلومية عدد ساعات عمل الموظف"
أي أن البرنامج يحتاج هذه المعلومة لكي يبدأ الحساب.
━━━━━━━━━━━━━━━━━━━
كيف عرفت أن Rate مدخل؟
لأن السؤال يقول:
"وقيمة أجر الساعة"
وهذه أيضًا معلومة يحتاجها البرنامج لإجراء الحساب.
━━━━━━━━━━━━━━━━━━━
كيف عرفت أن Salary مخرج؟
لأن السؤال يطلب:
حساب راتب الموظف.
إذن الراتب هو النتيجة التي نريد الوصول إليها وإظهارها للمستخدم.
━━━━━━━━━━━━━━━━━━━
لماذا لم نستخدم شرطًا if؟
لأن السؤال لا يحتوي على حالات مختلفة.
لا يوجد مثلًا:
إذا كانت الساعات أكبر من 40...
أو:
إذا كان أجر الساعة أكبر من قيمة معينة...
المطلوب مجرد عملية حسابية مباشرة:
Hours × Rate
لذلك لا نحتاج إلى شرط.
━━━━━━━━━━━━━━━━━━━
لماذا لم نستخدم Loop؟
لأننا لا نريد تكرار العملية.
نحسب الراتب مرة واحدة، ثم نطبعه، ثم ينتهي البرنامج.
إذن لا نحتاج إلى جملة دوران.
.
━━━━━━━━━━━━━━━━━━━
كيف تحل أي سؤال مشابه؟
لا تبدأ برسم المخطط مباشرة.
أولًا اسأل نفسك 4 أسئلة:
1. ماذا سيدخل المستخدم؟
Hours
Rate
2. ماذا أريد أن أحسب؟
Salary
3. كيف أحسبه؟
Salary = Hours × Rate
4. ماذا سأطبع؟
Salary
وبذلك تصبح الخوارزمية واضحة جدًا:
Start
↓
Read Hours, Rate
↓
Salary = Hours × Rate
↓
Print Salary
↓
End
━━━━━━━━━━━━━━━━━━━
الخلاصة
هذه المسألة من أبسط أنواع الخوارزميات؛ لأنها خوارزمية خطية:
إدخال → حساب → إخراج → نهاية
ولا يوجد فيها:
شرط.
تكرار.
أكثر من مسار.
الفكرة الأساسية التي أريدك أن تفهمها هنا هي: من نص السؤال نستخرج المدخلات والمخرجات والعملية الحسابية، وبعدها يصبح رسم المخطط سهلًا.
#خوارزميات_من_الصفر
K7H Code
التالیة المعادلة لحل برنامج أكتب : Y=X*((A+5)-4)/2
━━━━━━━━━━━━━━━━━━━
مثال: حل المعادلة
نص السؤال:
اكتب برنامجًا لحل المعادلة التالية:
المطلوب من البرنامج هو أن يأخذ قيم A وX من المستخدم، ثم يحسب قيمة Y ويطبعها.
━━━━━━━━━━━━━━━━━━━
أولًا: فهم السؤال
قبل أن نكتب الخوارزمية، نقرأ المعادلة ونحدد ماذا نحتاج لكي نحسب Y.
المعادلة هي:
Y = X * ((A + 5) - 4) / 2
نلاحظ أن قيمة Y تعتمد على قيمتين:
A
X
إذن نحتاج أن يحصل البرنامج على قيمتي A وX، وبعد ذلك يستخدمهما في المعادلة لحساب Y.
━━━━━━━━━━━━━━━━━━━
ثانيًا: كيف أحدد المدخلات؟
نسأل أنفسنا:
ما القيم التي يحتاجها البرنامج حتى يستطيع حساب Y؟
ننظر إلى الطرف الأيمن من المعادلة:
X * ((A + 5) - 4) / 2
نجد متغيرين لم يتم تحديد قيمتهما:
A
X
إذن المدخلات هي:
A
X
ولهذا نجد في المخطط:
Read A, X
أي:
اقرأ قيمة A وقيمة X من المستخدم.
إذن لدينا مدخلان.
━━━━━━━━━━━━━━━━━━━
ثالثًا: كيف أحدد المخرج؟
السؤال يقول:
حل المعادلة التالية.
والمعادلة تعطينا:
Y = ...
إذن القيمة التي نريد الوصول إليها هي:
Y
لذلك بعد إجراء الحساب سنقوم بـ:
Print Y
أي:
اطبع قيمة Y.
إذن:
المدخلات:
A ، X
المخرج:
Y
━━━━━━━━━━━━━━━━━━━
رابعًا: كيف أحول المعادلة إلى عملية حسابية؟
لدينا:
Y = X * ((A + 5) - 4) / 2
يمكننا تنفيذها مباشرة، لكن المخطط الموجود في الصورة قام بتقسيم الحساب إلى خطوة وسيطة.
في المخطط مكتوب تقريبًا:
Pross = (A + 5) - 4
Y = X * Pross / 2
وكلمة Pross هنا تمثل متغيرًا وسيطًا نستخدمه لتخزين نتيجة جزء من المعادلة.
━━━━━━━━━━━━━━━━━━━
خامسًا: لماذا استخدمنا المتغير Pross؟
هذه نقطة مهمة جدًا للمبتدئ.
ليس من الضروري دائمًا وضع المعادلة كلها في خطوة واحدة.
لدينا جزء من المعادلة:
(A + 5) - 4
يمكننا حسابه أولًا وتخزين نتيجته في متغير:
Pross = (A + 5) - 4
ثم نستخدم هذه النتيجة لإكمال المعادلة:
Y = X * Pross / 2
إذن Pross مجرد متغير مؤقت يساعدنا على تقسيم العملية إلى خطوات أسهل.
━━━━━━━━━━━━━━━━━━━
سادسًا: قراءة المعادلة خطوة بخطوة
المعادلة الأصلية:
Y = X * ((A + 5) - 4) / 2
أول شيء نحسب ما داخل الأقواس:
(A + 5)
ثم نطرح 4:
(A + 5) - 4
ولهذا كتبنا:
Pross = (A + 5) - 4
بعد ذلك نستخدم Pross:
Y = X * Pross / 2
وهكذا حصلنا على قيمة Y.
━━━━━━━━━━━━━━━━━━━
سابعًا: مثال عددي لفهم الخوارزمية
لنفرض أن المستخدم أدخل:
A = 3
X = 10
نبدأ بحساب:
Pross = (A + 5) - 4
نعوض بقيمة A:
Pross = (3 + 5) - 4
أولًا:
3 + 5 = 8
ثم:
8 - 4 = 4
إذن:
Pross = 4
الآن نحسب Y:
Y = X * Pross / 2
نعوض:
Y = 10 * 4 / 2
نحسب:
10 × 4 = 40
ثم:
40 ÷ 2 = 20
إذن:
Y = 20
وفي النهاية يطبع البرنامج:
20
━━━━━━━━━━━━━━━━━━━
ثامنًا: قراءة المخطط الانسيابي خطوة بخطوة
الآن نربط الكلام بالمخطط الموجود في الصورة.
1. Start
نبدأ تنفيذ البرنامج.
↓
2. Read A, X
نطلب من المستخدم إدخال:
A
X
↓
3. حساب Pross
نحسب:
Pross = (A + 5) - 4
↓
4. حساب Y
نستخدم قيمة Pross:
Y = X * Pross / 2
↓
5. Print Y
نطبع قيمة Y.
↓
6. End
تنتهي الخوارزمية.
━━━━━━━━━━━━━━━━━━━
الخوارزمية كاملة
1. Start
2. Read A, X
3. Pross = (A + 5) - 4
4. Y = X * Pross / 2
5. Print Y
6. End
━━━━━━━━━━━━━━━━━━━
هل يمكن كتابة المعادلة مباشرة؟
نعم.
بدلًا من استخدام Pross يمكننا كتابة:
Y = X * ((A + 5) - 4) / 2
لكن استخدام Pross يجعل الخطوات أوضح، خصوصًا عندما تكون المعادلة طويلة.
إذن الطريقتان صحيحتان:
Pross = (A + 5) - 4
Y = X * Pross / 2
أو:
Y = X * ((A + 5) - 4) / 2
━━━━━━━━━━━━━━━━━━━
أسئلة مهمة للمبتدئ
كيف عرفت أن A وX هما المدخلات؟
لأنهما المتغيران الموجودان في المعادلة ولا توجد لهما قيم محددة مسبقًا.
لذلك نحتاج أن يأخذهما البرنامج من المستخدم.
━━━━━━━━━━━━━━━━━━━
كيف عرفت أن Y هو المخرج؟
لأن السؤال يطلب حل المعادلة، والمعادلة تبحث عن قيمة Y.
إذن Y هو الناتج الذي نريد طباعته.
━━━━━━━━━━━━━━━━━━━
هل Pross مدخل؟
لا.
المستخدم لا يدخل Pross.
البرنامج هو الذي يحسبه:
Pross = (A + 5) - 4
لذلك Pross متغير محسوب/وسيط.
━━━━━━━━━━━━━━━━━━━
لماذا حسبنا (A + 5) قبل الطرح؟
بسبب أولوية العمليات الحسابية.
الأقواس لها الأولوية، لذلك:
(A + 5) - 4
نحسب ما داخل القوس أولًا، ثم نطرح 4.
━━━━━━━━━━━━━━━━━━━
هل يجب أن أحفظ هذه المعادلة؟
لا.
المهم أن تتعلم كيف تقرأ المعادلة وتحوّلها إلى خطوات.
إذا كانت المعادلة طويلة، قسمها إلى أجزاء:
جزء من المعادلة
↓
احسبه
↓
خزن النتيجة
↓
استخدمها في الجزء التالي
مثال: حل المعادلة
نص السؤال:
اكتب برنامجًا لحل المعادلة التالية:
المطلوب من البرنامج هو أن يأخذ قيم A وX من المستخدم، ثم يحسب قيمة Y ويطبعها.
━━━━━━━━━━━━━━━━━━━
أولًا: فهم السؤال
قبل أن نكتب الخوارزمية، نقرأ المعادلة ونحدد ماذا نحتاج لكي نحسب Y.
المعادلة هي:
Y = X * ((A + 5) - 4) / 2
نلاحظ أن قيمة Y تعتمد على قيمتين:
A
X
إذن نحتاج أن يحصل البرنامج على قيمتي A وX، وبعد ذلك يستخدمهما في المعادلة لحساب Y.
━━━━━━━━━━━━━━━━━━━
ثانيًا: كيف أحدد المدخلات؟
نسأل أنفسنا:
ما القيم التي يحتاجها البرنامج حتى يستطيع حساب Y؟
ننظر إلى الطرف الأيمن من المعادلة:
X * ((A + 5) - 4) / 2
نجد متغيرين لم يتم تحديد قيمتهما:
A
X
إذن المدخلات هي:
A
X
ولهذا نجد في المخطط:
Read A, X
أي:
اقرأ قيمة A وقيمة X من المستخدم.
إذن لدينا مدخلان.
━━━━━━━━━━━━━━━━━━━
ثالثًا: كيف أحدد المخرج؟
السؤال يقول:
حل المعادلة التالية.
والمعادلة تعطينا:
Y = ...
إذن القيمة التي نريد الوصول إليها هي:
Y
لذلك بعد إجراء الحساب سنقوم بـ:
Print Y
أي:
اطبع قيمة Y.
إذن:
المدخلات:
A ، X
المخرج:
Y
━━━━━━━━━━━━━━━━━━━
رابعًا: كيف أحول المعادلة إلى عملية حسابية؟
لدينا:
Y = X * ((A + 5) - 4) / 2
يمكننا تنفيذها مباشرة، لكن المخطط الموجود في الصورة قام بتقسيم الحساب إلى خطوة وسيطة.
في المخطط مكتوب تقريبًا:
Pross = (A + 5) - 4
Y = X * Pross / 2
وكلمة Pross هنا تمثل متغيرًا وسيطًا نستخدمه لتخزين نتيجة جزء من المعادلة.
━━━━━━━━━━━━━━━━━━━
خامسًا: لماذا استخدمنا المتغير Pross؟
هذه نقطة مهمة جدًا للمبتدئ.
ليس من الضروري دائمًا وضع المعادلة كلها في خطوة واحدة.
لدينا جزء من المعادلة:
(A + 5) - 4
يمكننا حسابه أولًا وتخزين نتيجته في متغير:
Pross = (A + 5) - 4
ثم نستخدم هذه النتيجة لإكمال المعادلة:
Y = X * Pross / 2
إذن Pross مجرد متغير مؤقت يساعدنا على تقسيم العملية إلى خطوات أسهل.
━━━━━━━━━━━━━━━━━━━
سادسًا: قراءة المعادلة خطوة بخطوة
المعادلة الأصلية:
Y = X * ((A + 5) - 4) / 2
أول شيء نحسب ما داخل الأقواس:
(A + 5)
ثم نطرح 4:
(A + 5) - 4
ولهذا كتبنا:
Pross = (A + 5) - 4
بعد ذلك نستخدم Pross:
Y = X * Pross / 2
وهكذا حصلنا على قيمة Y.
━━━━━━━━━━━━━━━━━━━
سابعًا: مثال عددي لفهم الخوارزمية
لنفرض أن المستخدم أدخل:
A = 3
X = 10
نبدأ بحساب:
Pross = (A + 5) - 4
نعوض بقيمة A:
Pross = (3 + 5) - 4
أولًا:
3 + 5 = 8
ثم:
8 - 4 = 4
إذن:
Pross = 4
الآن نحسب Y:
Y = X * Pross / 2
نعوض:
Y = 10 * 4 / 2
نحسب:
10 × 4 = 40
ثم:
40 ÷ 2 = 20
إذن:
Y = 20
وفي النهاية يطبع البرنامج:
20
━━━━━━━━━━━━━━━━━━━
ثامنًا: قراءة المخطط الانسيابي خطوة بخطوة
الآن نربط الكلام بالمخطط الموجود في الصورة.
1. Start
نبدأ تنفيذ البرنامج.
↓
2. Read A, X
نطلب من المستخدم إدخال:
A
X
↓
3. حساب Pross
نحسب:
Pross = (A + 5) - 4
↓
4. حساب Y
نستخدم قيمة Pross:
Y = X * Pross / 2
↓
5. Print Y
نطبع قيمة Y.
↓
6. End
تنتهي الخوارزمية.
━━━━━━━━━━━━━━━━━━━
الخوارزمية كاملة
1. Start
2. Read A, X
3. Pross = (A + 5) - 4
4. Y = X * Pross / 2
5. Print Y
6. End
━━━━━━━━━━━━━━━━━━━
هل يمكن كتابة المعادلة مباشرة؟
نعم.
بدلًا من استخدام Pross يمكننا كتابة:
Y = X * ((A + 5) - 4) / 2
لكن استخدام Pross يجعل الخطوات أوضح، خصوصًا عندما تكون المعادلة طويلة.
إذن الطريقتان صحيحتان:
Pross = (A + 5) - 4
Y = X * Pross / 2
أو:
Y = X * ((A + 5) - 4) / 2
━━━━━━━━━━━━━━━━━━━
أسئلة مهمة للمبتدئ
كيف عرفت أن A وX هما المدخلات؟
لأنهما المتغيران الموجودان في المعادلة ولا توجد لهما قيم محددة مسبقًا.
لذلك نحتاج أن يأخذهما البرنامج من المستخدم.
━━━━━━━━━━━━━━━━━━━
كيف عرفت أن Y هو المخرج؟
لأن السؤال يطلب حل المعادلة، والمعادلة تبحث عن قيمة Y.
إذن Y هو الناتج الذي نريد طباعته.
━━━━━━━━━━━━━━━━━━━
هل Pross مدخل؟
لا.
المستخدم لا يدخل Pross.
البرنامج هو الذي يحسبه:
Pross = (A + 5) - 4
لذلك Pross متغير محسوب/وسيط.
━━━━━━━━━━━━━━━━━━━
لماذا حسبنا (A + 5) قبل الطرح؟
بسبب أولوية العمليات الحسابية.
الأقواس لها الأولوية، لذلك:
(A + 5) - 4
نحسب ما داخل القوس أولًا، ثم نطرح 4.
━━━━━━━━━━━━━━━━━━━
هل يجب أن أحفظ هذه المعادلة؟
لا.
المهم أن تتعلم كيف تقرأ المعادلة وتحوّلها إلى خطوات.
إذا كانت المعادلة طويلة، قسمها إلى أجزاء:
جزء من المعادلة
↓
احسبه
↓
خزن النتيجة
↓
استخدمها في الجزء التالي
❤2
K7H Code
التالیة المعادلة لحل برنامج أكتب : Y=X*((A+5)-4)/2
↓
احسب الناتج النهائي
━━━━━━━━━━━━━━━━━━━
الخلاصة
عندما يأتيك سؤال يحتوي على معادلة، اتبع هذه الطريقة:
1. حدد المتغيرات التي تحتاج قيمتها
↓
2. هذه هي المدخلات
↓
3. حدد المتغير المطلوب حسابه
↓
4. هذا هو المخرج
↓
5. قسم المعادلة إلى خطوات
↓
6. نفذ العمليات حسب الأولوية
↓
7. اطبع الناتج
وبالنسبة لهذا السؤال تحديدًا:
المدخلات:
A ، X
المعالجة:
Pross = (A + 5) - 4
Y = X * Pross / 2
المخرج:
Y
إذن المخطط كله عبارة عن:
إدخال القيم → تنفيذ المعادلة على خطوات → طباعة Y → النهاية.
#خوارزميات_من_الصفر
احسب الناتج النهائي
━━━━━━━━━━━━━━━━━━━
الخلاصة
عندما يأتيك سؤال يحتوي على معادلة، اتبع هذه الطريقة:
1. حدد المتغيرات التي تحتاج قيمتها
↓
2. هذه هي المدخلات
↓
3. حدد المتغير المطلوب حسابه
↓
4. هذا هو المخرج
↓
5. قسم المعادلة إلى خطوات
↓
6. نفذ العمليات حسب الأولوية
↓
7. اطبع الناتج
وبالنسبة لهذا السؤال تحديدًا:
المدخلات:
A ، X
المعالجة:
Pross = (A + 5) - 4
Y = X * Pross / 2
المخرج:
Y
إذن المخطط كله عبارة عن:
إدخال القيم → تنفيذ المعادلة على خطوات → طباعة Y → النهاية.
#خوارزميات_من_الصفر
❤2
🚀 خريطة الطريق الذهبية: من "صفر معرفة" إلى مبرمج محترف! 💻✨
هل تحلم بدخول عالم البرمجة ولا تعرف من أين تبدأ؟ هل تشعر بالتشتت وسط كثرة المصادر؟ هذه الخريطة صُمّمت لأجلك! 👇
سواء كنت لا تعرف شيئاً عن الكود أو تعتقد أن البرمجة معقدة، هذا المسار المتكامل سيبني لديك أساساً برمجياً صلباً ينقل مستواك من الصفر المطلق إلى الاحتراف بخطوات متتالية ومدروسة:
🗺️ خطوات المسار التعليمي بالترتيب:
1️⃣ اللبنة الأولى | أساسيات البرمجة الجوهرية
ابدأ بفهم المفاهيم الأساسية التي لا غنى عنها لأي مبرمج عبر قناة الأستاذ محمد أبوهدهود:
🔗 https://www.youtube.com/@ProgrammingAdvices
2️⃣ الترسيخ والمفاهيم العصرية | أساسيات البرمجة
انتقل لترسيخ المفاهيم بأسلوب شائق ومبسط مع إبراهيم عادل عبر قناة Octopus Code:
🔗 https://www.youtube.com/@OctopusCode
3️⃣ ما قبل الكود | التفكير البرمجي وفهم الكمبيوتر
قبل أن تكتب سطراً برمجياً، تعلّم كيف يفكر المبرمج وماذا يحدث خلف الكواليس عبر قناة أسامة الزيرو (Elzero Web School):
🔗 https://www.youtube.com/@ElzeroWebSchool
4️⃣ العضلة الحقيقية للمبرمج | حل المشاكل والخوارزميات (المستوى الأول)
البرمجة هي طريقة تفكير وحل مشكلات! ابدأ بتطوير مهاراتك التحليلية مع قناة أستاذ محمد أبوهدهود:
🔗 https://www.youtube.com/@ProgrammingAdvices
5️⃣ الانطلاق الفعلي | اختيار لغتك البرمجية الأولى
بعد بناء الأساس المتين، حان وقت اختيار لغتك الأولى. ونوصي بشدة بالبدء بإحدى اللغتين:
🔹 C++: لبناء فهم عميق لإدارة الذاكرة وطريقة عمل الحاسوب.
🔹 Java: لتأسيس قوي في البرمجة كائنية التوجه (OOP) وسوق العمل.
🔥 لا تنتظر الشغف، ابدأ اليوم واصنع مستقبلك الرقمي بيدك!
📌 شارِك الخريطة مع أصدقائك المهتمين بالبرمجة لتعُمّ الفائدة.
هل تحلم بدخول عالم البرمجة ولا تعرف من أين تبدأ؟ هل تشعر بالتشتت وسط كثرة المصادر؟ هذه الخريطة صُمّمت لأجلك! 👇
سواء كنت لا تعرف شيئاً عن الكود أو تعتقد أن البرمجة معقدة، هذا المسار المتكامل سيبني لديك أساساً برمجياً صلباً ينقل مستواك من الصفر المطلق إلى الاحتراف بخطوات متتالية ومدروسة:
🗺️ خطوات المسار التعليمي بالترتيب:
1️⃣ اللبنة الأولى | أساسيات البرمجة الجوهرية
ابدأ بفهم المفاهيم الأساسية التي لا غنى عنها لأي مبرمج عبر قناة الأستاذ محمد أبوهدهود:
🔗 https://www.youtube.com/@ProgrammingAdvices
2️⃣ الترسيخ والمفاهيم العصرية | أساسيات البرمجة
انتقل لترسيخ المفاهيم بأسلوب شائق ومبسط مع إبراهيم عادل عبر قناة Octopus Code:
🔗 https://www.youtube.com/@OctopusCode
3️⃣ ما قبل الكود | التفكير البرمجي وفهم الكمبيوتر
قبل أن تكتب سطراً برمجياً، تعلّم كيف يفكر المبرمج وماذا يحدث خلف الكواليس عبر قناة أسامة الزيرو (Elzero Web School):
🔗 https://www.youtube.com/@ElzeroWebSchool
4️⃣ العضلة الحقيقية للمبرمج | حل المشاكل والخوارزميات (المستوى الأول)
البرمجة هي طريقة تفكير وحل مشكلات! ابدأ بتطوير مهاراتك التحليلية مع قناة أستاذ محمد أبوهدهود:
🔗 https://www.youtube.com/@ProgrammingAdvices
5️⃣ الانطلاق الفعلي | اختيار لغتك البرمجية الأولى
بعد بناء الأساس المتين، حان وقت اختيار لغتك الأولى. ونوصي بشدة بالبدء بإحدى اللغتين:
🔹 C++: لبناء فهم عميق لإدارة الذاكرة وطريقة عمل الحاسوب.
🔹 Java: لتأسيس قوي في البرمجة كائنية التوجه (OOP) وسوق العمل.
🔥 لا تنتظر الشغف، ابدأ اليوم واصنع مستقبلك الرقمي بيدك!
📌 شارِك الخريطة مع أصدقائك المهتمين بالبرمجة لتعُمّ الفائدة.
❤2❤🔥1
K7H Code
اكتب خوارزمية لبرنامج يقوم بطباعه الاعداد من ١ الى ١٠٠
أ.
━━━━━━━━━━━━━━━━━━━
مثال: طباعة الأعداد من 1 إلى 100
نص السؤال:
"اكتب خوارزمية لبرنامج يقوم بطباعة الأعداد من 1 إلى 100 باستخدام المخطط الانسيابي."
━━━━━━━━━━━━━━━━━━━
أولًا: فهم السؤال
في المثال السابق تعلمنا كيف نحسب راتب موظف بخطوات مستقيمة ومباشرة.
الآن لدينا فكرة جديدة وممتعة جداً في البرمجة اسمها (التكرار أو الدوران - Loop).
تخيل لو طلب منك شخص أن تطبع الأعداد من 1 إلى 100.
هل يعقل أن نكتب أمر طباعة لكل رقم بشكل منفصل 100 مرة؟
بالتأكيد لا! هذا سيكون مجهداً ومملاً.
الذكي هنا هو أن نجعل الكمبيوتر يعُد بنفسه ويطبع الرقم، ثم يضيف 1 للرقم، ويكرر هذه العملية حتى يصل إلى 100 ثم يتوقف!
━━━━━━━━━━━━━━━━━━━
ثانيًا: كيف نعرف بداية العد (العداد)؟
نحتاج إلى متغير نستخدمه كعداد يمسك الرقم الحالي.
في المخطط استخدمنا المتغير:
i
والسؤال يقول ابدأ من 1، إذن سنعطي العداد قيمة أولية:
i = 1
هذه الخطوة تسمى "تهيئة العداد".
━━━━━━━━━━━━━━━━━━━
ثالثًا: كيف نعرف الشرط وم متى يتوقف التكرار؟
الآن العداد يطبع الأرقام، لكن كيف يعرف الكمبيوتر أنه وصل للنهاية؟
نحتاج أن نسأله في كل مرة:
"هل الرقم الحالي أصغر من أو يساوي 100؟"
i <= 100
طالما الإجابة "نعم" (Yes): يستمر بالطباعة وزيادة العداد.
أول ما تصبح الإجابة "لا" (No) (أي عندما يصل العداد إلى 101): يتوقف البرنامج فوراً.
━━━━━━━━━━━━━━━━━━━
رابعًا: تحديد المخرجات والعملية داخل الحلقة
في كل دورة داخل هذا التكرار، سنقوم بخطوتين مهمتين جداً:
طباعة الرقم الحالي:
Print i
زيادة العداد بمقدار 1 لكي ننتقل للرقم التالي:
i = i + 1
ثم نعود مرة أخرى لنفحص الشرط!
━━━━━━━━━━━━━━━━━━━
خامسًا: قراءة المخطط خطوة بخطوة
تعال نقرأ المخطط الانسيابي الظاهر في الصورة خطوة بخطوة لنرى كيف يعمل:
الخطوة 1: Start
نبدأ تنفيذ البرنامج.
↓
الخطوة 2: i = 1
نعين قيمة العداد البدائية لتكون 1.
↓
الخطوة 3: فحص الشرط (شكل المعين)
هل i <= 100؟
في البداية i=1، نعم (Yes).
↓
الخطوة 4: Print i
يطبع الشاشة الرقم الحالي (في البداية يطبع 1).
↓
الخطوة 5: i = i + 1
نضيف 1 للعداد، فتصبح قيمة i = 2.
↓
الخطوة 6: العودة للشرط
يرجع السهم إلى فحص الشرط مرة أخرى:
هل 2 <= 100؟ نعم (Yes).
يطبع 2، ثم يصبح i = 3، وهكذا...
تستمر هذه الدائرة الممتعة حتى يطبع 100، ثم يصبح i = 101.
عندها نسأل: هل 101 <= 100؟ الإجابة تكون (No).
يتجه السهم إلى End وينتهي البرنامج تماماً!
━━━━━━━━━━━━━━━━━━━
الخوارزمية كاملة
يمكن كتابة الخوارزمية بالخطوات التالية:
Start
i = 1
While i <= 100:
Print i
i = i + 1
End
━━━━━━━━━━━━━━━━━━━
مثال عملي لخطوات التكرار الأولى
الدورة الأولى:
i = 1
الشرط (1 <= 100) صحيح.
يطبع: 1
يزيد العداد: i = 2
الدورة الثانية:
i = 2
الشرط (2 <= 100) صحيح.
يطبع: 2
يزيد العداد: i = 3
وهكذا يستمر حتى يطبع 100، ثم ينتهي عند 101.
━━━━━━━━━━━━━━━━━━━
أسئلة المبتدئ
لماذا لم نطلب مدخلات من المستخدم (Read)؟
لأن السؤال لم يطلب إدخال شيء من المستخدم!
السؤال حدد الأرقام بوضوح من 1 إلى 100، فالبرنامج يعرف من أين يبدأ وأين ينتهي تلقائياً.
ما معنى الجملة i = i + 1؟
في البرمجة هذه ليست معادلة رياضية تقليدية، بل تعني:
"خذ القيمة القديمة للمتغير i، أضف إليها 1، ثم احفظ القيمة الجديدة في نفس المتغير i".
ماذا يحدث لو نسينا خطوة i = i + 1؟
ستحدث مشكلة شهيرة جداً في البرمجة اسمها "الحلقة اللانهائية" (Infinite Loop).
لأن قيمة i ستظل 1 دائماً ولن تصل إلى 100 أبداً، وسيطبع البرنامج الرقم 1 إلى الأبد!
لماذا استخدمنا شكل المعين للشرط (i <= 100)؟
لأن شكل المعين في المخططات الانسيابية يُستخدم لاتخاذ القرارات التي تحتمل إجابتين فقط: (نعم Yes) أو (لا No).
━━━━━━━━━━━━━━━━━━━
كيف تحل أي سؤال تكرار مشابه؟
عندما يطلب منك طباعة سلسلة أعداد، اسأل نفسك 4 أسئلة:
ما هي بداية العد؟
i = 1
ما هو شرط التوقف؟
i <= 100
ماذا أفعل في كل دورة؟
Print i
كيف ينتقل العداد للرقم التالي؟
i = i + 1
━━━━━━━━━━━━━━━━━━━
الخلاصة
هذه المسألة هي مدخلك الأساسي لفهم "الحلقات التكرارية" (Loops).
الفكرة البسيطة هي:
بدء العداد ← فحص الشرط ← تنفيذ المطلوب وزيادة العداد ← العودة للشرط حتى ينتهي.
#خوارزميات_من_الصفر
━━━━━━━━━━━━━━━━━━━
مثال: طباعة الأعداد من 1 إلى 100
نص السؤال:
"اكتب خوارزمية لبرنامج يقوم بطباعة الأعداد من 1 إلى 100 باستخدام المخطط الانسيابي."
━━━━━━━━━━━━━━━━━━━
أولًا: فهم السؤال
في المثال السابق تعلمنا كيف نحسب راتب موظف بخطوات مستقيمة ومباشرة.
الآن لدينا فكرة جديدة وممتعة جداً في البرمجة اسمها (التكرار أو الدوران - Loop).
تخيل لو طلب منك شخص أن تطبع الأعداد من 1 إلى 100.
هل يعقل أن نكتب أمر طباعة لكل رقم بشكل منفصل 100 مرة؟
بالتأكيد لا! هذا سيكون مجهداً ومملاً.
الذكي هنا هو أن نجعل الكمبيوتر يعُد بنفسه ويطبع الرقم، ثم يضيف 1 للرقم، ويكرر هذه العملية حتى يصل إلى 100 ثم يتوقف!
━━━━━━━━━━━━━━━━━━━
ثانيًا: كيف نعرف بداية العد (العداد)؟
نحتاج إلى متغير نستخدمه كعداد يمسك الرقم الحالي.
في المخطط استخدمنا المتغير:
i
والسؤال يقول ابدأ من 1، إذن سنعطي العداد قيمة أولية:
i = 1
هذه الخطوة تسمى "تهيئة العداد".
━━━━━━━━━━━━━━━━━━━
ثالثًا: كيف نعرف الشرط وم متى يتوقف التكرار؟
الآن العداد يطبع الأرقام، لكن كيف يعرف الكمبيوتر أنه وصل للنهاية؟
نحتاج أن نسأله في كل مرة:
"هل الرقم الحالي أصغر من أو يساوي 100؟"
i <= 100
طالما الإجابة "نعم" (Yes): يستمر بالطباعة وزيادة العداد.
أول ما تصبح الإجابة "لا" (No) (أي عندما يصل العداد إلى 101): يتوقف البرنامج فوراً.
━━━━━━━━━━━━━━━━━━━
رابعًا: تحديد المخرجات والعملية داخل الحلقة
في كل دورة داخل هذا التكرار، سنقوم بخطوتين مهمتين جداً:
طباعة الرقم الحالي:
Print i
زيادة العداد بمقدار 1 لكي ننتقل للرقم التالي:
i = i + 1
ثم نعود مرة أخرى لنفحص الشرط!
━━━━━━━━━━━━━━━━━━━
خامسًا: قراءة المخطط خطوة بخطوة
تعال نقرأ المخطط الانسيابي الظاهر في الصورة خطوة بخطوة لنرى كيف يعمل:
الخطوة 1: Start
نبدأ تنفيذ البرنامج.
↓
الخطوة 2: i = 1
نعين قيمة العداد البدائية لتكون 1.
↓
الخطوة 3: فحص الشرط (شكل المعين)
هل i <= 100؟
في البداية i=1، نعم (Yes).
↓
الخطوة 4: Print i
يطبع الشاشة الرقم الحالي (في البداية يطبع 1).
↓
الخطوة 5: i = i + 1
نضيف 1 للعداد، فتصبح قيمة i = 2.
↓
الخطوة 6: العودة للشرط
يرجع السهم إلى فحص الشرط مرة أخرى:
هل 2 <= 100؟ نعم (Yes).
يطبع 2، ثم يصبح i = 3، وهكذا...
تستمر هذه الدائرة الممتعة حتى يطبع 100، ثم يصبح i = 101.
عندها نسأل: هل 101 <= 100؟ الإجابة تكون (No).
يتجه السهم إلى End وينتهي البرنامج تماماً!
━━━━━━━━━━━━━━━━━━━
الخوارزمية كاملة
يمكن كتابة الخوارزمية بالخطوات التالية:
Start
i = 1
While i <= 100:
Print i
i = i + 1
End
━━━━━━━━━━━━━━━━━━━
مثال عملي لخطوات التكرار الأولى
الدورة الأولى:
i = 1
الشرط (1 <= 100) صحيح.
يطبع: 1
يزيد العداد: i = 2
الدورة الثانية:
i = 2
الشرط (2 <= 100) صحيح.
يطبع: 2
يزيد العداد: i = 3
وهكذا يستمر حتى يطبع 100، ثم ينتهي عند 101.
━━━━━━━━━━━━━━━━━━━
أسئلة المبتدئ
لماذا لم نطلب مدخلات من المستخدم (Read)؟
لأن السؤال لم يطلب إدخال شيء من المستخدم!
السؤال حدد الأرقام بوضوح من 1 إلى 100، فالبرنامج يعرف من أين يبدأ وأين ينتهي تلقائياً.
ما معنى الجملة i = i + 1؟
في البرمجة هذه ليست معادلة رياضية تقليدية، بل تعني:
"خذ القيمة القديمة للمتغير i، أضف إليها 1، ثم احفظ القيمة الجديدة في نفس المتغير i".
ماذا يحدث لو نسينا خطوة i = i + 1؟
ستحدث مشكلة شهيرة جداً في البرمجة اسمها "الحلقة اللانهائية" (Infinite Loop).
لأن قيمة i ستظل 1 دائماً ولن تصل إلى 100 أبداً، وسيطبع البرنامج الرقم 1 إلى الأبد!
لماذا استخدمنا شكل المعين للشرط (i <= 100)؟
لأن شكل المعين في المخططات الانسيابية يُستخدم لاتخاذ القرارات التي تحتمل إجابتين فقط: (نعم Yes) أو (لا No).
━━━━━━━━━━━━━━━━━━━
كيف تحل أي سؤال تكرار مشابه؟
عندما يطلب منك طباعة سلسلة أعداد، اسأل نفسك 4 أسئلة:
ما هي بداية العد؟
i = 1
ما هو شرط التوقف؟
i <= 100
ماذا أفعل في كل دورة؟
Print i
كيف ينتقل العداد للرقم التالي؟
i = i + 1
━━━━━━━━━━━━━━━━━━━
الخلاصة
هذه المسألة هي مدخلك الأساسي لفهم "الحلقات التكرارية" (Loops).
الفكرة البسيطة هي:
بدء العداد ← فحص الشرط ← تنفيذ المطلوب وزيادة العداد ← العودة للشرط حتى ينتهي.
#خوارزميات_من_الصفر
خارطة المهندس ابو هدهود
*
المرحلة الأولى: التأسيس الصحيح (من 01 إلى 13)
الهدف: تفكر كمبرمج حقيقي قبل ما تكتب كود.
*01 - Programming Foundations Level 1*
تتعلم: كيف يفكر الكمبيوتر، النظام الثنائي Binary, البت والبايت، الذاكرة RAM, الـ CPU, كيف يتم تخزين الأرقام والنصوص، أنظمة التشغيل. بدون كود نهائياً.
*02 - Algorithms & Problem-Solving Level 1*
تتعلم: كيف تفكر قبل ما تكتب. ما هي الخوارزمية، خرائط التدفق Flowchart, الـ Pseudo Code. تحل 50+ مسألة على الورق فقط.
*03 - Introduction to Programming Using C++ Level 1*
تتعلم: تحول تفكيرك لكود حقيقي. Variables, Data Types, Operators, If, Switch, Loops, Functions, Arrays, Strings, Enum, Struct.
*04 - Algorithms & Problem-Solving Level 1 (Solutions)*
تتعلم: نفس مسائل كورس 2 لكن بكود نظيف Clean Code. تتعلم مبدأ Divide & Conquer, كيف تقسم المشكلة الكبيرة لصغيرة، وكيف تكتب كود قابل للقراءة.
*05 - Algorithms & Problem-Solving Level 2*
تتعلم: الجسر بين المسائل والمشاريع. مسائل متوسطة، تزيد خبرتك وسرعتك في الحل. أكثر من 50 مسألة جديدة.
*06 - Introduction to Programming Using C++ Level 2*
تتعلم: المستوى المتقدم في C++. الـ Debugging الاحترافي, Pointers, References, Memory Management, Vectors, File Handling, Datetime.
*07 - Algorithms & Problem-Solving Level 3*
تتعلم: مشاريع صغيرة حقيقية. مثل: نظام إدارة طلاب، آلة حاسبة متقدمة، لعبة XO, مشروع بنك بسيط.
*08 - Algorithms & Problem-Solving Level 4*
تتعلم: كمية ضخمة من المسائل الصعبة (60+ مسألة). تبني صبر وخبرة المبرمج اللي يتحمل ضغط الشغل.
*09 - Foundations Level 2*
تتعلم: كيف يشتغل السوفتوير الحقيقي. الشبكات, Internet, TCP/IP, DNS, HTTP, API, بنية 3-Tier, Client-Server, أساسيات الأمان.
*10 - OOP as it Should Be - Concepts*
تتعلم: البرمجة الكائنية كمفهوم تصميم، مش كـ Syntax. لماذا وجدت Classes, Objects, Encapsulation, Inheritance, Polymorphism.
*11 - OOP as it Should Be - Applications*
تتعلم: تطبق OOP على مشاريع كاملة. تبني نظام كامل بكل مبادئ OOP.
*12 - Data Structures Level 1*
تتعلم: هياكل البيانات الأساسية. Stack, Queue, Linked List, Big O Notation وتحليل الأداء.
*13 - Algorithms & Problem-Solving Level 5*
تتعلم: نهاية المرحلة الأولى. تثبيت كل اللي درسته في Data Structures بمشاريع وتمارين كثيفة.
---
المرحلة الثانية: المهارات المشتركة لأي تخصص (من 14 إلى 24)
هذه المرحلة تختصر عليك 60% من أي تخصص تختاره بعدين.
*14 - C# Level 1*
تتعلم: بداية جديدة بلغة C#. أساسيات C# وبيئة .NET.
*15 - Database Level 1 - SQL (Concepts & Practice)*
تتعلم: قواعد البيانات من الصفر. تصميم ERD, Normalization, كتابة SQL, Joins, Group By.
*16 - OOP As It Should Be In C#*
تتعلم: إعادة بناء كل مفاهيم OOP لكن داخل C# بطريقة احترافية.
*17 - Database - SQL Projects & Practice*
تتعلم: مشاريع عملية كثيفة على SQL لتثبيت المفاهيم.
*18 - C# & Database Connectivity (ADO.NET)*
تتعلم: كيف يتواصل كود C# مع قاعدة البيانات. هذا هو الأساس لفهم أي ORM.
*19 - Full Real Project - DVLD System*
تتعلم: *أهم كورس في الخارطة.* مشروع نظام إدارة رخص القيادة والمركبات كامل، متعدد الطبقات، من تحليل المتطلبات للتنفيذ.
*20 - C# Programming Level 2*
تتعلم: مفاهيم متقدمة: Events, Delegates, Multithreading, Async/Await, Reflection.
*21 - Database Level 2 - T-SQL*
تتعلم: البرمجة داخل قاعدة البيانات. Stored Procedures, Functions, Triggers, Transactions.
*22 - Data Structures Level 2 in C#*
تتعلم: هياكل متقدمة: Dictionary, HashSet, SortedList, Trees, Graphs, Heaps.
*23 - Algorithms Level 6*
تتعلم: خوارزميات متقدمة واحترافية والتركيز على الأداء.
*24 - Windows Services*
تتعلم: بناء أنظمة تعمل في الخلفية طول الوقت مثل أنظمة الشركات الحقيقية. *نهاية خارطة التأسيس.*
بعد الـ 24 تصبح جاهز تدخل أي تخصص: Web API, EF Core, HTML, CSS, JavaScript, TypeScript, SOLID.
أول 4 كورسات مجانية على يوتيوب، والباقي بسعر رمزي ومعه كوبون دعم 100% للمحتاجين.
هذه هي الخارطة *الرسمية الكاملة 100% من موقع http://ProgrammingAdvices.com
*
المرحلة الأولى: التأسيس الصحيح (من 01 إلى 13)
الهدف: تفكر كمبرمج حقيقي قبل ما تكتب كود.
*01 - Programming Foundations Level 1*
تتعلم: كيف يفكر الكمبيوتر، النظام الثنائي Binary, البت والبايت، الذاكرة RAM, الـ CPU, كيف يتم تخزين الأرقام والنصوص، أنظمة التشغيل. بدون كود نهائياً.
*02 - Algorithms & Problem-Solving Level 1*
تتعلم: كيف تفكر قبل ما تكتب. ما هي الخوارزمية، خرائط التدفق Flowchart, الـ Pseudo Code. تحل 50+ مسألة على الورق فقط.
*03 - Introduction to Programming Using C++ Level 1*
تتعلم: تحول تفكيرك لكود حقيقي. Variables, Data Types, Operators, If, Switch, Loops, Functions, Arrays, Strings, Enum, Struct.
*04 - Algorithms & Problem-Solving Level 1 (Solutions)*
تتعلم: نفس مسائل كورس 2 لكن بكود نظيف Clean Code. تتعلم مبدأ Divide & Conquer, كيف تقسم المشكلة الكبيرة لصغيرة، وكيف تكتب كود قابل للقراءة.
*05 - Algorithms & Problem-Solving Level 2*
تتعلم: الجسر بين المسائل والمشاريع. مسائل متوسطة، تزيد خبرتك وسرعتك في الحل. أكثر من 50 مسألة جديدة.
*06 - Introduction to Programming Using C++ Level 2*
تتعلم: المستوى المتقدم في C++. الـ Debugging الاحترافي, Pointers, References, Memory Management, Vectors, File Handling, Datetime.
*07 - Algorithms & Problem-Solving Level 3*
تتعلم: مشاريع صغيرة حقيقية. مثل: نظام إدارة طلاب، آلة حاسبة متقدمة، لعبة XO, مشروع بنك بسيط.
*08 - Algorithms & Problem-Solving Level 4*
تتعلم: كمية ضخمة من المسائل الصعبة (60+ مسألة). تبني صبر وخبرة المبرمج اللي يتحمل ضغط الشغل.
*09 - Foundations Level 2*
تتعلم: كيف يشتغل السوفتوير الحقيقي. الشبكات, Internet, TCP/IP, DNS, HTTP, API, بنية 3-Tier, Client-Server, أساسيات الأمان.
*10 - OOP as it Should Be - Concepts*
تتعلم: البرمجة الكائنية كمفهوم تصميم، مش كـ Syntax. لماذا وجدت Classes, Objects, Encapsulation, Inheritance, Polymorphism.
*11 - OOP as it Should Be - Applications*
تتعلم: تطبق OOP على مشاريع كاملة. تبني نظام كامل بكل مبادئ OOP.
*12 - Data Structures Level 1*
تتعلم: هياكل البيانات الأساسية. Stack, Queue, Linked List, Big O Notation وتحليل الأداء.
*13 - Algorithms & Problem-Solving Level 5*
تتعلم: نهاية المرحلة الأولى. تثبيت كل اللي درسته في Data Structures بمشاريع وتمارين كثيفة.
---
المرحلة الثانية: المهارات المشتركة لأي تخصص (من 14 إلى 24)
هذه المرحلة تختصر عليك 60% من أي تخصص تختاره بعدين.
*14 - C# Level 1*
تتعلم: بداية جديدة بلغة C#. أساسيات C# وبيئة .NET.
*15 - Database Level 1 - SQL (Concepts & Practice)*
تتعلم: قواعد البيانات من الصفر. تصميم ERD, Normalization, كتابة SQL, Joins, Group By.
*16 - OOP As It Should Be In C#*
تتعلم: إعادة بناء كل مفاهيم OOP لكن داخل C# بطريقة احترافية.
*17 - Database - SQL Projects & Practice*
تتعلم: مشاريع عملية كثيفة على SQL لتثبيت المفاهيم.
*18 - C# & Database Connectivity (ADO.NET)*
تتعلم: كيف يتواصل كود C# مع قاعدة البيانات. هذا هو الأساس لفهم أي ORM.
*19 - Full Real Project - DVLD System*
تتعلم: *أهم كورس في الخارطة.* مشروع نظام إدارة رخص القيادة والمركبات كامل، متعدد الطبقات، من تحليل المتطلبات للتنفيذ.
*20 - C# Programming Level 2*
تتعلم: مفاهيم متقدمة: Events, Delegates, Multithreading, Async/Await, Reflection.
*21 - Database Level 2 - T-SQL*
تتعلم: البرمجة داخل قاعدة البيانات. Stored Procedures, Functions, Triggers, Transactions.
*22 - Data Structures Level 2 in C#*
تتعلم: هياكل متقدمة: Dictionary, HashSet, SortedList, Trees, Graphs, Heaps.
*23 - Algorithms Level 6*
تتعلم: خوارزميات متقدمة واحترافية والتركيز على الأداء.
*24 - Windows Services*
تتعلم: بناء أنظمة تعمل في الخلفية طول الوقت مثل أنظمة الشركات الحقيقية. *نهاية خارطة التأسيس.*
بعد الـ 24 تصبح جاهز تدخل أي تخصص: Web API, EF Core, HTML, CSS, JavaScript, TypeScript, SOLID.
*الموقع الرسمي:* https://programmingadvices.com
أول 4 كورسات مجانية على يوتيوب، والباقي بسعر رمزي ومعه كوبون دعم 100% للمحتاجين.
Programmingadvices
Homepage
The best school to learn programming the right way — built on 30+ years of practical experience in the software industry. We teach you programming step by step, from the fundamentals to real-world skills, until you truly make it.
🤗1
K7H Code
خارطة المهندس ابو هدهود هذه هي الخارطة *الرسمية الكاملة 100% من موقع http://ProgrammingAdvices.com * المرحلة الأولى: التأسيس الصحيح (من 01 إلى 13) الهدف: تفكر كمبرمج حقيقي قبل ما تكتب كود. *01 - Programming Foundations Level 1* تتعلم: كيف يفكر الكمبيوتر،…
والذي يدرس ويتعلم بلغه جافا يشوف الدروس الذي نفس السلسله ( الخريطة ) حق ابو هدهود . و يمشي مثلها
K7H Code
اكتب خوارزمية لبرنامج يقوم بادخال ١٠ نصوص او اسماء و من ثم طباعة الاسماء . باستخدام المخطط الانسيابي
━━━━━━━━━━━━━━━━━━━
مثال: إدخال عشرة نصوص أو أسماء ومن ثم طباعتها
نص السؤال:
"اكتب خوارزمية لبرنامج يقوم بإدخال عشرة نصوص أو اسماء ومن ثم طباعتها. باستخدام المخطط الانسيابي."
━━━━━━━━━━━━━━━━━━━
أولًا: فهم السؤال
في الأمثلة السابقة، تعلمنا كيف نتحكم بالعداد، وكيف نطبع نصاً ثابتاً 10 مرات.
أما في هذا السؤال فالفكرة ذكية ومختلفة قليلاً:
نريد من البرنامج أن يطلب من المستخدم إدخال نص جديد في كل دورة (ليصبح المجموع 10 نصوص مختلفة أو 10 أسماء)، وفي كل مرة يدخل فيها اسماً، يقوم البرنامج بطباعته فوراً، ويستمر هذا التكرار حتى يكتمل إدخال وطباعة 10 أسماء كاملة.
━━━━━━━━━━━━━━━━━━━
ثانيًا: كيف نعرف المدخلات والعداد؟
لكي نتحكم بعدد المرات ونضمن أنها 10 مرات بالضبط، نحتاج إلى شيئين أساسيين:
عداد يبدأ من 1 ويتحرك حتى 10:
i = 1
عملية إدخال تتكرر داخل حلقة الدوران، حيث يقرأ البرنامج النص في كل دورة:
Read Text
━━━━━━━━━━━━━━━━━━━
ثالثًا: كيف يعمل شرط التوقف؟
الشرط يراقب العداد في كل مرة ليتأكد هل أكملنا الأسماء العشرة أم لا من خلال المعين:
i <= 10
طالما أن العداد أقل من أو يساوي 10 (الإجابة Yes)، سيستمر البرنامج في طلب النصوص وطباعتها.
أما إذا أصبح العداد أكبر من 10 (الإجابة No)، فسيتوقف البرنامج تماماً ويتجه إلى النهاية.
━━━━━━━━━━━━━━━━━━━
رابعًا: قراءة المخطط خطوة بخطوة
تعال نقرأ المخطط الانسيابي الظاهر في الصورة خطوة بخطوة لنفهم حركة التنفيذ:
الخطوة 1: Start
نبدأ تنفيذ البرنامج من الشكل البيضاوي للبداية.
↓
الخطوة 2: i = 1
نجهز العداد في المستطيل ونعطيه القيمة البدائية 1.
↓
الخطوة 3: Read Text
نطلب من المستخدم إدخال النص أو الاسم (مثلاً يكتب الاسم الأول في متوازي الأطلاع).
↓
الخطوة 4: فحص الشرط (شكل المعين)
هل i <= 10؟
بما أن i = 1، فالإجابة هي "نعم" (Yes).
↓
الخطوة 5: Print Text
يطبع البرنامج النص الذي تم إدخاله للتو عبر متوازي الأطلاع الخاص بالطباعة.
↓
الخطوة 6: i = i + 1
نضيف 1 للعداد في المستطيل لكي ينتقل إلى الاسم أو الدورة التالية، فتصبح i = 2.
↓
الخطوة 7: العودة للشرط
يعود السهم الجانبي إلى الأعلى ليطلب النص التالي (Read Text)، وتستمر العملية دائرياً حتى ندخل ونطبع 10 أسماء كاملة.
عندما تصبح i = 11، نسأل الشرط: هل 11 <= 10؟ الإجابة تكون "لا" (No)، فيتجه السهم مباشرة إلى End وينتهي البرنامج!
━━━━━━━━━━━━━━━━━━━
الخوارزمية كاملة
يمكن كتابة الخوارزمية بالخطوات التالية:
Start
i = 1
While i <= 10:
Read Text
Print Text
i = i + 1
End
━━━━━━━━━━━━━━━━━━━
مثال عملي مبسط
تخيل معي كيف سيشعر المستخدم وهو يتعامل مع هذا البرنامج:
الدورة الأولى (i=1): يدخل المستخدم "أحمد" ← يطبع البرنامج "أحمد" ← يصبح العداد i=2.
الدورة الثانية (i=2): يدخل المستخدم "خالد" ← يطبع البرنامج "خالد" ← يصبح العداد i=3.
... وهكذا تستمر العجلة تدور حتى ندخل الاسم العاشر، وبعدها ينتهي البرنامج بكل سلاسة.
━━━━━━━━━━━━━━━━━━━
أسئلة المبتدئ
لماذا وضعنا (Read Text) داخل حلقة التكرار في هذا المثال، بينما في مثال سابق وضعناها خارج الحلقة؟
سؤال ذكي جداً!
في المثال الذي كان يطبع نصاً واحداً 10 مرات: طلبنا النص مرة واحدة فقط في البداية لأن المطلوب تكرار نفس النص.
أما في هذا المثال: المطلوب إدخال عشرة نصوص مختلفة (أي في كل دورة ندخل اسماً جديداً)، لذلك وضعنا أمر الإدخال (Read Text) داخل الحلقة ليتكرر مع كل لفة عداد.
ما الفرق بين Print i و Print Text؟
Print i: تطبع رقم العداد نفسه (مثل 1، 2، 3...).
Print Text: تطبع النص أو الاسم الحقيقي الذي قام المستخدم بكتابته وإدخاله بيده.
━━━━━━━━━━━━━━━━━━━
كيف تحل أي سؤال مشابه؟
إذا طلب منك برنامج يتعامل مع إدخال وطباعة مجموعة من العناصر (مثل 10 اسماء أو درجات):
ابدأ بـ Start.
ضع العداد i = 1.
افتح حلقة التكرار بشرط الـ i <= [العدد المطلوب].
اجعل أمر الإدخال Read Text ثم أمر الطباعة Print Text داخل الحلقة.
لا تنسَ زيادة العداد i = i + 1 لكي لا تقع في حلقة لا نهائية، ثم أنهِ بـ End.
━━━━━━━━━━━━━━━━━━━
الخلاصة
هذا التمرين يعلمنا كيف نجعل البرنامج تفاعلياً يستقبل بيانات متعددة من المستخدم ويتعامل معها واحدة تلو الأخرى باستخدام حلقات التكرار بكل سهولة ويسر.
إذا كان لديك سؤال جديد أو صورة جديدة تريد شرحها، تفضل بإرسالها وسنواصل معاً بنفس الطريقة الممتعة!
#خوارزميات_من_الصفر
مثال: إدخال عشرة نصوص أو أسماء ومن ثم طباعتها
نص السؤال:
"اكتب خوارزمية لبرنامج يقوم بإدخال عشرة نصوص أو اسماء ومن ثم طباعتها. باستخدام المخطط الانسيابي."
━━━━━━━━━━━━━━━━━━━
أولًا: فهم السؤال
في الأمثلة السابقة، تعلمنا كيف نتحكم بالعداد، وكيف نطبع نصاً ثابتاً 10 مرات.
أما في هذا السؤال فالفكرة ذكية ومختلفة قليلاً:
نريد من البرنامج أن يطلب من المستخدم إدخال نص جديد في كل دورة (ليصبح المجموع 10 نصوص مختلفة أو 10 أسماء)، وفي كل مرة يدخل فيها اسماً، يقوم البرنامج بطباعته فوراً، ويستمر هذا التكرار حتى يكتمل إدخال وطباعة 10 أسماء كاملة.
━━━━━━━━━━━━━━━━━━━
ثانيًا: كيف نعرف المدخلات والعداد؟
لكي نتحكم بعدد المرات ونضمن أنها 10 مرات بالضبط، نحتاج إلى شيئين أساسيين:
عداد يبدأ من 1 ويتحرك حتى 10:
i = 1
عملية إدخال تتكرر داخل حلقة الدوران، حيث يقرأ البرنامج النص في كل دورة:
Read Text
━━━━━━━━━━━━━━━━━━━
ثالثًا: كيف يعمل شرط التوقف؟
الشرط يراقب العداد في كل مرة ليتأكد هل أكملنا الأسماء العشرة أم لا من خلال المعين:
i <= 10
طالما أن العداد أقل من أو يساوي 10 (الإجابة Yes)، سيستمر البرنامج في طلب النصوص وطباعتها.
أما إذا أصبح العداد أكبر من 10 (الإجابة No)، فسيتوقف البرنامج تماماً ويتجه إلى النهاية.
━━━━━━━━━━━━━━━━━━━
رابعًا: قراءة المخطط خطوة بخطوة
تعال نقرأ المخطط الانسيابي الظاهر في الصورة خطوة بخطوة لنفهم حركة التنفيذ:
الخطوة 1: Start
نبدأ تنفيذ البرنامج من الشكل البيضاوي للبداية.
↓
الخطوة 2: i = 1
نجهز العداد في المستطيل ونعطيه القيمة البدائية 1.
↓
الخطوة 3: Read Text
نطلب من المستخدم إدخال النص أو الاسم (مثلاً يكتب الاسم الأول في متوازي الأطلاع).
↓
الخطوة 4: فحص الشرط (شكل المعين)
هل i <= 10؟
بما أن i = 1، فالإجابة هي "نعم" (Yes).
↓
الخطوة 5: Print Text
يطبع البرنامج النص الذي تم إدخاله للتو عبر متوازي الأطلاع الخاص بالطباعة.
↓
الخطوة 6: i = i + 1
نضيف 1 للعداد في المستطيل لكي ينتقل إلى الاسم أو الدورة التالية، فتصبح i = 2.
↓
الخطوة 7: العودة للشرط
يعود السهم الجانبي إلى الأعلى ليطلب النص التالي (Read Text)، وتستمر العملية دائرياً حتى ندخل ونطبع 10 أسماء كاملة.
عندما تصبح i = 11، نسأل الشرط: هل 11 <= 10؟ الإجابة تكون "لا" (No)، فيتجه السهم مباشرة إلى End وينتهي البرنامج!
━━━━━━━━━━━━━━━━━━━
الخوارزمية كاملة
يمكن كتابة الخوارزمية بالخطوات التالية:
Start
i = 1
While i <= 10:
Read Text
Print Text
i = i + 1
End
━━━━━━━━━━━━━━━━━━━
مثال عملي مبسط
تخيل معي كيف سيشعر المستخدم وهو يتعامل مع هذا البرنامج:
الدورة الأولى (i=1): يدخل المستخدم "أحمد" ← يطبع البرنامج "أحمد" ← يصبح العداد i=2.
الدورة الثانية (i=2): يدخل المستخدم "خالد" ← يطبع البرنامج "خالد" ← يصبح العداد i=3.
... وهكذا تستمر العجلة تدور حتى ندخل الاسم العاشر، وبعدها ينتهي البرنامج بكل سلاسة.
━━━━━━━━━━━━━━━━━━━
أسئلة المبتدئ
لماذا وضعنا (Read Text) داخل حلقة التكرار في هذا المثال، بينما في مثال سابق وضعناها خارج الحلقة؟
سؤال ذكي جداً!
في المثال الذي كان يطبع نصاً واحداً 10 مرات: طلبنا النص مرة واحدة فقط في البداية لأن المطلوب تكرار نفس النص.
أما في هذا المثال: المطلوب إدخال عشرة نصوص مختلفة (أي في كل دورة ندخل اسماً جديداً)، لذلك وضعنا أمر الإدخال (Read Text) داخل الحلقة ليتكرر مع كل لفة عداد.
ما الفرق بين Print i و Print Text؟
Print i: تطبع رقم العداد نفسه (مثل 1، 2، 3...).
Print Text: تطبع النص أو الاسم الحقيقي الذي قام المستخدم بكتابته وإدخاله بيده.
━━━━━━━━━━━━━━━━━━━
كيف تحل أي سؤال مشابه؟
إذا طلب منك برنامج يتعامل مع إدخال وطباعة مجموعة من العناصر (مثل 10 اسماء أو درجات):
ابدأ بـ Start.
ضع العداد i = 1.
افتح حلقة التكرار بشرط الـ i <= [العدد المطلوب].
اجعل أمر الإدخال Read Text ثم أمر الطباعة Print Text داخل الحلقة.
لا تنسَ زيادة العداد i = i + 1 لكي لا تقع في حلقة لا نهائية، ثم أنهِ بـ End.
━━━━━━━━━━━━━━━━━━━
الخلاصة
هذا التمرين يعلمنا كيف نجعل البرنامج تفاعلياً يستقبل بيانات متعددة من المستخدم ويتعامل معها واحدة تلو الأخرى باستخدام حلقات التكرار بكل سهولة ويسر.
إذا كان لديك سؤال جديد أو صورة جديدة تريد شرحها، تفضل بإرسالها وسنواصل معاً بنفس الطريقة الممتعة!
#خوارزميات_من_الصفر