K7H Code
Photo
مثال: حساب محيط الدائرة
المطلوب في هذا المثال هو:
حساب محيط دائرة باستخدام نصف قطرها r.
لذلك نحتاج أولًا إلى معرفة قيمة نصف القطر، وبعد ذلك نستخدمها في قانون محيط الدائرة، ثم نعرض النتيجة.
━━━━━━━━━━━━━━━━━━━
1. Enter r
الموجود في المخطط:
Enter r
ومعناه:
أدخل قيمة r
الحرف r يمثل نصف قطر الدائرة.
إذن البرنامج يحتاج إلى قيمة r حتى يستطيع حساب المحيط.
وهنا r هو المدخل الأساسي في هذا المثال.
━━━━━━━━━━━━━━━━━━━
سؤال: ما معنى r؟
r اختصار شائع لكلمة:
Radius
أي:
نصف القطر.
إذن عندما ترى r في هذا المثال، ففكر مباشرة:
r = نصف قطر الدائرة
━━━━━━━━━━━━━━━━━━━
سؤال: لماذا نحتاج إلى إدخال r؟
لأن البرنامج لا يستطيع حساب محيط الدائرة باستخدام هذا المخطط دون معرفة نصف القطر.
لذلك أول معلومة يحتاج إليها هي:
قيمة r
━━━━━━━━━━━━━━━━━━━
2. circumference = 2 × PI × r × r
بعد الحصول على قيمة r، نصل إلى عملية الحساب الموجودة في الصورة:
circumference = 2 × PI × r × r
هذه العملية هي التي يستخدمها المخطط لحساب القيمة التي يسميها:
circumference
أي:
محيط الدائرة.
━━━━━━━━━━━━━━━━━━━
ما معنى circumference؟
كلمة:
circumference
تعني:
محيط الدائرة.
وهي هنا اسم للمتغير الذي سيتم تخزين نتيجة الحساب بداخله.
بمعنى أن البرنامج يقول:
احسب القيمة الموجودة في الطرف الأيمن، ثم ضع الناتج داخل circumference.
━━━━━━━━━━━━━━━━━━━
سؤال مهم: لماذا كتبنا r مرتين؟
لأن الصورة نفسها تحتوي على:
2 × PI × r × r
أي أن r مستخدم مرتين في عملية الحساب.
وهذا يعني أن الخوارزمية تستخدم القيمة التي تم إدخالها في r في موضعين داخل العملية.
وهنا لا نحتاج إلى إنشاء قيمة أخرى؛ نفس المتغير r يُستخدم مرتين.
━━━━━━━━━━━━━━━━━━━
سؤال: ماذا يحدث لهذه العملية؟
البرنامج يأخذ قيمة:
r
ثم يستخدمها في العملية:
2 × PI × r × r
والنتيجة التي يحصل عليها من عملية الحساب يتم وضعها داخل:
circumference
إذن لدينا:
r → القيمة التي أدخلناها
circumference → نتيجة الحساب
━━━━━━━━━━━━━━━━━━━
3. Print circumference
بعد الانتهاء من الحساب، نجد:
Print circumference
ومعناها:
اعرض قيمة circumference.
أي اعرض النتيجة التي تم تخزينها في المتغير:
circumference
━━━━━━━━━━━━━━━━━━━
سؤال: هل Print تقوم بالحساب؟
لا.
وهذه نقطة مهمة جدًا.
عملية الحساب حدثت في:
circumference = 2 × PI × r × r
أما:
Print circumference
فوظيفتها هي فقط إظهار النتيجة.
إذن لا تخلط بين الاثنين:
الحساب → circumference = 2 × PI × r × r
العرض → Print circumference
━━━━━━━━━━━━━━━━━━━
كيف نفهم المثال كاملًا؟
لو أردنا أن نشرح المخطط بكلام بسيط جدًا:
البرنامج يقول:
أولًا: أعطني قيمة نصف القطر r.
ثم:
ثانيًا: استخدم قيمة r في عملية حساب المحيط، وخزّن النتيجة في circumference.
ثم:
ثالثًا: اعرض قيمة circumference.
وهذا هو المثال كاملًا.
━━━━━━━━━━━━━━━━━━━
سؤال مهم: هل يجب أن أحفظ هذا المخطط؟
لا تحفظ المخطط كصورة.
الأفضل أن تفهم العلاقة بين المتغيرات والخطوات.
تذكر فقط:
r
يمثل نصف القطر الذي يتم إدخاله.
و:
circumference
يمثل النتيجة التي يتم حسابها.
ثم:
Print circumference
تعني عرض النتيجة.
إذا فهمت هذه العلاقة، فلن تحتاج إلى حفظ المخطط حرفيًا.
━━━━━━━━━━━━━━━━━━━
سؤال: هل يجب أن أحفظ القانون؟
في هذا المثال، من المهم أن تعرف العملية الموجودة في المخطط وتفهم كيف يتم استخدامها.
لكن لا تحفظها بدون فهم.
اسأل نفسك دائمًا:
ما القيمة التي أدخلها؟
r
ماذا أفعل بها؟
أستخدمها في عملية حساب المحيط الموجودة في المخطط.
أين أخزن النتيجة؟
في circumference.
ماذا أفعل بالنتيجة؟
أعرضها باستخدام:
Print circumference
━━━━━━━━━━━━━━━━━━━
الخلاصة
المثال الموجود في الصورة يمكن تلخيصه بهذه الطريقة:
Enter r
إدخال نصف قطر الدائرة.
↓
circumference = 2 × PI × r × r
إجراء عملية الحساب وتخزين النتيجة في circumference.
↓
Print circumference
عرض النتيجة.
إذن الفكرة الأساسية التي يجب أن تفهمها من المثال هي:
r = المدخل
circumference = نتيجة الحساب
Print circumference = عرض النتيجة
وهكذا يتحول السؤال من مجرد مخطط انسيابي إلى فكرة واضحة:
أدخل قيمة → استخدمها في الحساب → خزّن النتيجة → اعرضها.
#خوارزميات_من_الصفر
المطلوب في هذا المثال هو:
حساب محيط دائرة باستخدام نصف قطرها r.
لذلك نحتاج أولًا إلى معرفة قيمة نصف القطر، وبعد ذلك نستخدمها في قانون محيط الدائرة، ثم نعرض النتيجة.
━━━━━━━━━━━━━━━━━━━
1. Enter r
الموجود في المخطط:
Enter r
ومعناه:
أدخل قيمة r
الحرف r يمثل نصف قطر الدائرة.
إذن البرنامج يحتاج إلى قيمة r حتى يستطيع حساب المحيط.
وهنا r هو المدخل الأساسي في هذا المثال.
━━━━━━━━━━━━━━━━━━━
سؤال: ما معنى r؟
r اختصار شائع لكلمة:
Radius
أي:
نصف القطر.
إذن عندما ترى r في هذا المثال، ففكر مباشرة:
r = نصف قطر الدائرة
━━━━━━━━━━━━━━━━━━━
سؤال: لماذا نحتاج إلى إدخال r؟
لأن البرنامج لا يستطيع حساب محيط الدائرة باستخدام هذا المخطط دون معرفة نصف القطر.
لذلك أول معلومة يحتاج إليها هي:
قيمة r
━━━━━━━━━━━━━━━━━━━
2. circumference = 2 × PI × r × r
بعد الحصول على قيمة r، نصل إلى عملية الحساب الموجودة في الصورة:
circumference = 2 × PI × r × r
هذه العملية هي التي يستخدمها المخطط لحساب القيمة التي يسميها:
circumference
أي:
محيط الدائرة.
━━━━━━━━━━━━━━━━━━━
ما معنى circumference؟
كلمة:
circumference
تعني:
محيط الدائرة.
وهي هنا اسم للمتغير الذي سيتم تخزين نتيجة الحساب بداخله.
بمعنى أن البرنامج يقول:
احسب القيمة الموجودة في الطرف الأيمن، ثم ضع الناتج داخل circumference.
━━━━━━━━━━━━━━━━━━━
سؤال مهم: لماذا كتبنا r مرتين؟
لأن الصورة نفسها تحتوي على:
2 × PI × r × r
أي أن r مستخدم مرتين في عملية الحساب.
وهذا يعني أن الخوارزمية تستخدم القيمة التي تم إدخالها في r في موضعين داخل العملية.
وهنا لا نحتاج إلى إنشاء قيمة أخرى؛ نفس المتغير r يُستخدم مرتين.
━━━━━━━━━━━━━━━━━━━
سؤال: ماذا يحدث لهذه العملية؟
البرنامج يأخذ قيمة:
r
ثم يستخدمها في العملية:
2 × PI × r × r
والنتيجة التي يحصل عليها من عملية الحساب يتم وضعها داخل:
circumference
إذن لدينا:
r → القيمة التي أدخلناها
circumference → نتيجة الحساب
━━━━━━━━━━━━━━━━━━━
3. Print circumference
بعد الانتهاء من الحساب، نجد:
Print circumference
ومعناها:
اعرض قيمة circumference.
أي اعرض النتيجة التي تم تخزينها في المتغير:
circumference
━━━━━━━━━━━━━━━━━━━
سؤال: هل Print تقوم بالحساب؟
لا.
وهذه نقطة مهمة جدًا.
عملية الحساب حدثت في:
circumference = 2 × PI × r × r
أما:
Print circumference
فوظيفتها هي فقط إظهار النتيجة.
إذن لا تخلط بين الاثنين:
الحساب → circumference = 2 × PI × r × r
العرض → Print circumference
━━━━━━━━━━━━━━━━━━━
كيف نفهم المثال كاملًا؟
لو أردنا أن نشرح المخطط بكلام بسيط جدًا:
البرنامج يقول:
أولًا: أعطني قيمة نصف القطر r.
ثم:
ثانيًا: استخدم قيمة r في عملية حساب المحيط، وخزّن النتيجة في circumference.
ثم:
ثالثًا: اعرض قيمة circumference.
وهذا هو المثال كاملًا.
━━━━━━━━━━━━━━━━━━━
سؤال مهم: هل يجب أن أحفظ هذا المخطط؟
لا تحفظ المخطط كصورة.
الأفضل أن تفهم العلاقة بين المتغيرات والخطوات.
تذكر فقط:
r
يمثل نصف القطر الذي يتم إدخاله.
و:
circumference
يمثل النتيجة التي يتم حسابها.
ثم:
Print circumference
تعني عرض النتيجة.
إذا فهمت هذه العلاقة، فلن تحتاج إلى حفظ المخطط حرفيًا.
━━━━━━━━━━━━━━━━━━━
سؤال: هل يجب أن أحفظ القانون؟
في هذا المثال، من المهم أن تعرف العملية الموجودة في المخطط وتفهم كيف يتم استخدامها.
لكن لا تحفظها بدون فهم.
اسأل نفسك دائمًا:
ما القيمة التي أدخلها؟
r
ماذا أفعل بها؟
أستخدمها في عملية حساب المحيط الموجودة في المخطط.
أين أخزن النتيجة؟
في circumference.
ماذا أفعل بالنتيجة؟
أعرضها باستخدام:
Print circumference
━━━━━━━━━━━━━━━━━━━
الخلاصة
المثال الموجود في الصورة يمكن تلخيصه بهذه الطريقة:
Enter r
إدخال نصف قطر الدائرة.
↓
circumference = 2 × PI × r × r
إجراء عملية الحساب وتخزين النتيجة في circumference.
↓
Print circumference
عرض النتيجة.
إذن الفكرة الأساسية التي يجب أن تفهمها من المثال هي:
r = المدخل
circumference = نتيجة الحساب
Print circumference = عرض النتيجة
وهكذا يتحول السؤال من مجرد مخطط انسيابي إلى فكرة واضحة:
أدخل قيمة → استخدمها في الحساب → خزّن النتيجة → اعرضها.
#خوارزميات_من_الصفر
تحبون نفعل قناة خاصه للاسئله فقط (لنشر الاسئله ققط)
Anonymous Poll
100%
نعم نريد قناة منفصله
0%
لا نريد قناة منفصله
K7H Code
Photo
الفكرة في هذا المخطط هي:
لدينا مستطيل أبعاده H و W، وداخله مربع طول ضلعه R.
والمطلوب في النهاية هو حساب المساحة المتبقية بعد طرح مساحة المربع من مساحة المستطيل.
بمعنى آخر:
مساحة الجزء المطلوب = مساحة المستطيل − مساحة المربع
━━━━━━━━━━━━━━━━━━━
أولًا: إدخال القيم
في المخطط نجد:
Enter R, W, H
أي:
أدخل قيم:
R
W
H
لكن ما معنى هذه الحروف؟
R تمثل طول ضلع المربع.
W تمثل عرض المستطيل.
H تمثل ارتفاع المستطيل.
إذن الخوارزمية تحتاج إلى ثلاث قيم حتى تستطيع إجراء الحسابات الموجودة في المخطط.
━━━━━━━━━━━━━━━━━━━
ثانيًا: حساب مساحة المربع
بعد إدخال القيم، نجد:
squareArea = R × R
وهنا يتم حساب مساحة المربع وتخزين الناتج في متغير اسمه:
squareArea
أي أن:
squareArea = مساحة المربع.
ولأن مساحة المربع تعتمد على ضرب طول الضلع في نفسه، تم استخدام:
R × R
إذن هذه الخطوة وظيفتها فقط هي حساب مساحة المربع.
━━━━━━━━━━━━━━━━━━━
سؤال قد يخطر في بالك:
لماذا استخدمنا R × R؟
لأن R في هذا المثال تمثل طول ضلع المربع، ومساحة المربع يتم حسابها بضرب الضلع في نفسه.
لذلك كتبنا:
squareArea = R × R
━━━━━━━━━━━━━━━━━━━
ثالثًا: حساب مساحة المستطيل
بعد ذلك نجد:
RectangularArea = H × W
وهنا يتم حساب مساحة المستطيل.
تم تخزين الناتج في متغير اسمه:
RectangularArea
أي:
RectangularArea = مساحة المستطيل.
وبما أن أبعاد المستطيل الموجودة في المثال هي H و W، فإن الحساب يكون:
H × W
━━━━━━━━━━━━━━━━━━━
سؤال قد يخطر في بالك:
لماذا استخدمنا H × W؟
لأن المستطيل في هذا المثال له بُعدان:
H و W
ولحساب مساحته نضرب البعدين في بعضهما.
لذلك:
RectangularArea = H × W
━━━━━━━━━━━━━━━━━━━
رابعًا: حساب المساحة المطلوبة
هذه أهم عملية في المثال:
BoldArea = RectangularArea − squareArea
هنا نستخدم النتيجتين اللتين حسبناهما سابقًا:
RectangularArea → مساحة المستطيل.
squareArea → مساحة المربع.
ثم نطرح مساحة المربع من مساحة المستطيل.
والنتيجة يتم تخزينها في:
BoldArea
أي أن:
BoldArea تمثل المساحة المطلوبة في هذا المثال.
━━━━━━━━━━━━━━━━━━━
سؤال مهم: لماذا طرحنا مساحة المربع؟
لأن فكرة المثال هي الحصول على المساحة المتبقية من المستطيل بعد إزالة مساحة المربع منه.
لذلك لا نجمع المساحتين، وإنما نطرح:
مساحة المستطيل − مساحة المربع
وهذا هو سبب كتابة:
BoldArea = RectangularArea − squareArea
━━━━━━━━━━━━━━━━━━━
خامسًا: طباعة النتيجة
في النهاية نجد:
Print BoldArea
أي:
اعرض قيمة BoldArea.
فبعد أن انتهت الخوارزمية من حساب المساحة المطلوبة، يتم عرض النتيجة للمستخدم.
━━━━━━━━━━━━━━━━━━━
سؤال قد يخطر في بالك:
لماذا لم نطبع RectangularArea أو squareArea؟
لأن النتيجة التي نريدها في هذا المثال هي BoldArea.
أما مساحة المستطيل ومساحة المربع فهما نتائج وسيطة استخدمناهما للوصول إلى النتيجة النهائية.
━━━━━━━━━━━━━━━━━━━
كيف يفكر الطالب في هذا المثال؟
لو أردنا فهم المخطط بعيدًا عن البرمجة، فالفكرة بسيطة جدًا:
أولًا:
نحتاج R و W و H.
ثم:
نحسب مساحة المربع.
ثم:
نحسب مساحة المستطيل.
ثم:
نطرح مساحة المربع من مساحة المستطيل.
وأخيرًا:
نعرض المساحة الناتجة.
هذا هو كامل منطق المثال.
━━━━━━━━━━━━━━━━━━━
أسئلة قد تظهر في عقل الطالب
هل أحتاج إلى حفظ أسماء squareArea و RectangularArea و BoldArea؟
لا.
هذه مجرد أسماء للمتغيرات اختارها صاحب المثال حتى تكون واضحة.
المهم أن تفهم وظيفة كل متغير:
squareArea → مساحة المربع.
RectangularArea → مساحة المستطيل.
BoldArea → المساحة الناتجة بعد الطرح.
━━━━━━━━━━━━━━━━━━━
هل أحتاج إلى حفظ القوانين الموجودة في المثال؟
المهم أولًا أن تفهم لماذا استخدمنا كل عملية.
في هذا المثال:
R × R لحساب مساحة المربع.
H × W لحساب مساحة المستطيل.
ثم:
مساحة المستطيل − مساحة المربع للحصول على BoldArea.
لا تحفظ الخطوات ككلمات فقط؛ افهم العلاقة بينها.
━━━━━━━━━━━━━━━━━━━
هل R و W و H أرقام؟
نعم.
المخطط يطلب إدخال قيم لهذه المتغيرات:
R ، W ، H
ثم يستخدم هذه القيم في عمليات حساب المساحات.
━━━━━━━━━━━━━━━━━━━
لماذا حسبنا squareArea أولًا؟
لأننا نحتاج مساحة المربع عند حساب:
BoldArea
فنحن لا نستطيع طرح مساحة المربع قبل معرفة قيمتها.
━━━━━━━━━━━━━━━━━━━
ولماذا حسبنا RectangularArea؟
للسبب نفسه.
نحتاج مساحة المستطيل حتى نستطيع تنفيذ:
BoldArea = RectangularArea − squareArea
━━━━━━━━━━━━━━━━━━━
الخلاصة
هذا المخطط يعتمد على ثلاث عمليات أساسية:
لدينا مستطيل أبعاده H و W، وداخله مربع طول ضلعه R.
والمطلوب في النهاية هو حساب المساحة المتبقية بعد طرح مساحة المربع من مساحة المستطيل.
بمعنى آخر:
مساحة الجزء المطلوب = مساحة المستطيل − مساحة المربع
━━━━━━━━━━━━━━━━━━━
أولًا: إدخال القيم
في المخطط نجد:
Enter R, W, H
أي:
أدخل قيم:
R
W
H
لكن ما معنى هذه الحروف؟
R تمثل طول ضلع المربع.
W تمثل عرض المستطيل.
H تمثل ارتفاع المستطيل.
إذن الخوارزمية تحتاج إلى ثلاث قيم حتى تستطيع إجراء الحسابات الموجودة في المخطط.
━━━━━━━━━━━━━━━━━━━
ثانيًا: حساب مساحة المربع
بعد إدخال القيم، نجد:
squareArea = R × R
وهنا يتم حساب مساحة المربع وتخزين الناتج في متغير اسمه:
squareArea
أي أن:
squareArea = مساحة المربع.
ولأن مساحة المربع تعتمد على ضرب طول الضلع في نفسه، تم استخدام:
R × R
إذن هذه الخطوة وظيفتها فقط هي حساب مساحة المربع.
━━━━━━━━━━━━━━━━━━━
سؤال قد يخطر في بالك:
لماذا استخدمنا R × R؟
لأن R في هذا المثال تمثل طول ضلع المربع، ومساحة المربع يتم حسابها بضرب الضلع في نفسه.
لذلك كتبنا:
squareArea = R × R
━━━━━━━━━━━━━━━━━━━
ثالثًا: حساب مساحة المستطيل
بعد ذلك نجد:
RectangularArea = H × W
وهنا يتم حساب مساحة المستطيل.
تم تخزين الناتج في متغير اسمه:
RectangularArea
أي:
RectangularArea = مساحة المستطيل.
وبما أن أبعاد المستطيل الموجودة في المثال هي H و W، فإن الحساب يكون:
H × W
━━━━━━━━━━━━━━━━━━━
سؤال قد يخطر في بالك:
لماذا استخدمنا H × W؟
لأن المستطيل في هذا المثال له بُعدان:
H و W
ولحساب مساحته نضرب البعدين في بعضهما.
لذلك:
RectangularArea = H × W
━━━━━━━━━━━━━━━━━━━
رابعًا: حساب المساحة المطلوبة
هذه أهم عملية في المثال:
BoldArea = RectangularArea − squareArea
هنا نستخدم النتيجتين اللتين حسبناهما سابقًا:
RectangularArea → مساحة المستطيل.
squareArea → مساحة المربع.
ثم نطرح مساحة المربع من مساحة المستطيل.
والنتيجة يتم تخزينها في:
BoldArea
أي أن:
BoldArea تمثل المساحة المطلوبة في هذا المثال.
━━━━━━━━━━━━━━━━━━━
سؤال مهم: لماذا طرحنا مساحة المربع؟
لأن فكرة المثال هي الحصول على المساحة المتبقية من المستطيل بعد إزالة مساحة المربع منه.
لذلك لا نجمع المساحتين، وإنما نطرح:
مساحة المستطيل − مساحة المربع
وهذا هو سبب كتابة:
BoldArea = RectangularArea − squareArea
━━━━━━━━━━━━━━━━━━━
خامسًا: طباعة النتيجة
في النهاية نجد:
Print BoldArea
أي:
اعرض قيمة BoldArea.
فبعد أن انتهت الخوارزمية من حساب المساحة المطلوبة، يتم عرض النتيجة للمستخدم.
━━━━━━━━━━━━━━━━━━━
سؤال قد يخطر في بالك:
لماذا لم نطبع RectangularArea أو squareArea؟
لأن النتيجة التي نريدها في هذا المثال هي BoldArea.
أما مساحة المستطيل ومساحة المربع فهما نتائج وسيطة استخدمناهما للوصول إلى النتيجة النهائية.
━━━━━━━━━━━━━━━━━━━
كيف يفكر الطالب في هذا المثال؟
لو أردنا فهم المخطط بعيدًا عن البرمجة، فالفكرة بسيطة جدًا:
أولًا:
نحتاج R و W و H.
ثم:
نحسب مساحة المربع.
ثم:
نحسب مساحة المستطيل.
ثم:
نطرح مساحة المربع من مساحة المستطيل.
وأخيرًا:
نعرض المساحة الناتجة.
هذا هو كامل منطق المثال.
━━━━━━━━━━━━━━━━━━━
أسئلة قد تظهر في عقل الطالب
هل أحتاج إلى حفظ أسماء squareArea و RectangularArea و BoldArea؟
لا.
هذه مجرد أسماء للمتغيرات اختارها صاحب المثال حتى تكون واضحة.
المهم أن تفهم وظيفة كل متغير:
squareArea → مساحة المربع.
RectangularArea → مساحة المستطيل.
BoldArea → المساحة الناتجة بعد الطرح.
━━━━━━━━━━━━━━━━━━━
هل أحتاج إلى حفظ القوانين الموجودة في المثال؟
المهم أولًا أن تفهم لماذا استخدمنا كل عملية.
في هذا المثال:
R × R لحساب مساحة المربع.
H × W لحساب مساحة المستطيل.
ثم:
مساحة المستطيل − مساحة المربع للحصول على BoldArea.
لا تحفظ الخطوات ككلمات فقط؛ افهم العلاقة بينها.
━━━━━━━━━━━━━━━━━━━
هل R و W و H أرقام؟
نعم.
المخطط يطلب إدخال قيم لهذه المتغيرات:
R ، W ، H
ثم يستخدم هذه القيم في عمليات حساب المساحات.
━━━━━━━━━━━━━━━━━━━
لماذا حسبنا squareArea أولًا؟
لأننا نحتاج مساحة المربع عند حساب:
BoldArea
فنحن لا نستطيع طرح مساحة المربع قبل معرفة قيمتها.
━━━━━━━━━━━━━━━━━━━
ولماذا حسبنا RectangularArea؟
للسبب نفسه.
نحتاج مساحة المستطيل حتى نستطيع تنفيذ:
BoldArea = RectangularArea − squareArea
━━━━━━━━━━━━━━━━━━━
الخلاصة
هذا المخطط يعتمد على ثلاث عمليات أساسية:
K7H Code
Photo
━━━━━━━━━━━━━━━━━━━
1. إدخال القيم
R ، W ، H
━━━━━━━━━━━━━━━━━━━
2. حساب المساحات
squareArea = R × R
RectangularArea = H × W
━━━━━━━━━━━━━━━━━━━
3. حساب النتيجة النهائية
BoldArea = RectangularArea − squareArea
ثم يتم عرض:
BoldArea
━━━━━━━━━━━━━━━━━━━
إذن الفكرة التي أريدك أن تخرج بها من هذا المثال هي:
نحن لا نحسب النتيجة النهائية مباشرة، بل نحسب أولًا القيم التي نحتاجها، ثم نستخدم هذه القيم للوصول إلى النتيجة النهائية.
#خوارزميات_من_الصفر
1. إدخال القيم
R ، W ، H
━━━━━━━━━━━━━━━━━━━
2. حساب المساحات
squareArea = R × R
RectangularArea = H × W
━━━━━━━━━━━━━━━━━━━
3. حساب النتيجة النهائية
BoldArea = RectangularArea − squareArea
ثم يتم عرض:
BoldArea
━━━━━━━━━━━━━━━━━━━
إذن الفكرة التي أريدك أن تخرج بها من هذا المثال هي:
نحن لا نحسب النتيجة النهائية مباشرة، بل نحسب أولًا القيم التي نحتاجها، ثم نستخدم هذه القيم للوصول إلى النتيجة النهائية.
#خوارزميات_من_الصفر
K7H Code
Photo
شرح المثال
لدينا في هذا المخطط المتغيران:
X
و
Y
الفكرة الأساسية هي أن المستخدم يدخل قيمة في X، ثم يتم استخدام هذه القيمة في عملية حسابية للحصول على Y، وبعد ذلك يتم عرض قيمة Y.
━━━━━━━━━━━━━━━━━━━
أولًا: Read X
في المخطط نجد:
Read X
كلمة Read تعني:
اقرأ / أدخل قيمة.
إذن هذه الخطوة تطلب من المستخدم إدخال قيمة للمتغير:
X
بعد هذه الخطوة أصبح لدينا قيمة مخزنة في X، ويمكن استخدامها في العملية الحسابية التالية.
━━━━━━━━━━━━━━━━━━━
سؤال قد يخطر في بالك:
ماذا يعني X هنا؟
X هو المتغير الذي سنضع فيه القيمة التي يدخلها المستخدم.
يعني أن قيمة X ليست ثابتة في المخطط، بل المستخدم هو الذي يحددها عند الإدخال.
━━━━━━━━━━━━━━━━━━━
ثانيًا: حساب Y
بعد إدخال قيمة X نجد في المخطط:
Y = X × X × X × X × X + 5
هذه هي العملية الحسابية الأساسية في المثال.
لاحظ أن X تكررت خمس مرات في عملية الضرب.
أي أننا نضرب قيمة X في نفسها خمس مرات، ثم نضيف إليها 5.
ويمكن فهمها رياضيًا على أنها:
X⁵ + 5
لكن في المخطط تمت كتابة العملية بشكل واضح باستخدام الضرب المتكرر:
X × X × X × X × X + 5
━━━━━━━━━━━━━━━━━━━
سؤال مهم: لماذا كررنا X خمس مرات؟
لأن العملية الموجودة في المثال تريد ضرب X في نفسها خمس مرات.
لذلك كتبنا:
X × X × X × X × X
وهذا يعادل:
X⁵
ثم نضيف:
+ 5
━━━━━━━━━━━━━━━━━━━
سؤال قد يخطر في بالك:
هل X تتغير أثناء العملية؟
لا.
في هذه العملية نستخدم القيمة التي تم إدخالها في X، ونستخدمها لإجراء الحساب.
أما الناتج فيتم تخزينه في متغير آخر وهو:
Y
━━━━━━━━━━━━━━━━━━━
ثالثًا: Print Y
بعد الانتهاء من حساب قيمة Y نجد:
Print Y
كلمة Print تعني:
اعرض / اطبع.
إذن هنا يتم عرض قيمة Y الناتجة عن العملية الحسابية.
بمعنى أن المستخدم في النهاية يرى نتيجة الحساب الموجودة داخل Y.
━━━━━━━━━━━━━━━━━━━
سؤال مهم: لماذا طبعنا Y وليس X؟
لأن المطلوب في هذا المثال هو عرض نتيجة العملية الحسابية.
القيمة التي أدخلناها كانت في:
X
أما النتيجة التي حسبناها فهي في:
Y
لذلك نعرض:
Y
━━━━━━━━━━━━━━━━━━━
سؤال: هل Y موجودة من البداية؟
في المثال، Y هي المتغير الذي نستخدمه لتخزين نتيجة العملية الحسابية.
أي أن:
X → القيمة التي يدخلها المستخدم.
Y → نتيجة العملية الحسابية.
━━━━━━━━━━━━━━━━━━━
كيف نفهم المثال كاملًا؟
يمكن تلخيص ما يحدث في المثال بهذه الطريقة:
━━━━━━━━━━━━━━━━━━━
Read X
أدخل قيمة في X.
↓
Y = X × X × X × X × X + 5
استخدم قيمة X لحساب Y.
↓
Print Y
اعرض قيمة Y.
━━━━━━━━━━━━━━━━━━━
سؤال مهم: هل أحتاج إلى حفظ هذه المسألة؟
لا تحتاج إلى حفظ المسألة نفسها.
المهم أن تفهم طريقة التفكير الموجودة فيها:
لدينا قيمة تدخل إلى X، ثم نستخدم X في عملية حسابية، ثم نخزن النتيجة في Y، ثم نعرض Y.
إذا فهمت هذا التسلسل، تستطيع فهم مسائل مشابهة بسهولة بدلًا من حفظ كل مسألة.
━━━━━━━━━━━━━━━━━━━
الخلاصة
المثال بالكامل يعتمد على ثلاث أفكار فقط:
━━━━━━━━━━━━━━━━━━━
X
يمثل القيمة التي يتم إدخالها.
━━━━━━━━━━━━━━━━━━━
Y = X × X × X × X × X + 5
تحسب النتيجة باستخدام قيمة X.
━━━━━━━━━━━━━━━━━━━
Print Y
تعرض النتيجة الموجودة في Y.
━━━━━━━━━━━━━━━━━━━
إذن الفكرة الأساسية التي يجب أن يفهمها الطالب هي:
ندخل X → نحسب باستخدام X → نخزن النتيجة في Y → نعرض Y.
#خوارزميات_من_الصفر
لدينا في هذا المخطط المتغيران:
X
و
Y
الفكرة الأساسية هي أن المستخدم يدخل قيمة في X، ثم يتم استخدام هذه القيمة في عملية حسابية للحصول على Y، وبعد ذلك يتم عرض قيمة Y.
━━━━━━━━━━━━━━━━━━━
أولًا: Read X
في المخطط نجد:
Read X
كلمة Read تعني:
اقرأ / أدخل قيمة.
إذن هذه الخطوة تطلب من المستخدم إدخال قيمة للمتغير:
X
بعد هذه الخطوة أصبح لدينا قيمة مخزنة في X، ويمكن استخدامها في العملية الحسابية التالية.
━━━━━━━━━━━━━━━━━━━
سؤال قد يخطر في بالك:
ماذا يعني X هنا؟
X هو المتغير الذي سنضع فيه القيمة التي يدخلها المستخدم.
يعني أن قيمة X ليست ثابتة في المخطط، بل المستخدم هو الذي يحددها عند الإدخال.
━━━━━━━━━━━━━━━━━━━
ثانيًا: حساب Y
بعد إدخال قيمة X نجد في المخطط:
Y = X × X × X × X × X + 5
هذه هي العملية الحسابية الأساسية في المثال.
لاحظ أن X تكررت خمس مرات في عملية الضرب.
أي أننا نضرب قيمة X في نفسها خمس مرات، ثم نضيف إليها 5.
ويمكن فهمها رياضيًا على أنها:
X⁵ + 5
لكن في المخطط تمت كتابة العملية بشكل واضح باستخدام الضرب المتكرر:
X × X × X × X × X + 5
━━━━━━━━━━━━━━━━━━━
سؤال مهم: لماذا كررنا X خمس مرات؟
لأن العملية الموجودة في المثال تريد ضرب X في نفسها خمس مرات.
لذلك كتبنا:
X × X × X × X × X
وهذا يعادل:
X⁵
ثم نضيف:
+ 5
━━━━━━━━━━━━━━━━━━━
سؤال قد يخطر في بالك:
هل X تتغير أثناء العملية؟
لا.
في هذه العملية نستخدم القيمة التي تم إدخالها في X، ونستخدمها لإجراء الحساب.
أما الناتج فيتم تخزينه في متغير آخر وهو:
Y
━━━━━━━━━━━━━━━━━━━
ثالثًا: Print Y
بعد الانتهاء من حساب قيمة Y نجد:
Print Y
كلمة Print تعني:
اعرض / اطبع.
إذن هنا يتم عرض قيمة Y الناتجة عن العملية الحسابية.
بمعنى أن المستخدم في النهاية يرى نتيجة الحساب الموجودة داخل Y.
━━━━━━━━━━━━━━━━━━━
سؤال مهم: لماذا طبعنا Y وليس X؟
لأن المطلوب في هذا المثال هو عرض نتيجة العملية الحسابية.
القيمة التي أدخلناها كانت في:
X
أما النتيجة التي حسبناها فهي في:
Y
لذلك نعرض:
Y
━━━━━━━━━━━━━━━━━━━
سؤال: هل Y موجودة من البداية؟
في المثال، Y هي المتغير الذي نستخدمه لتخزين نتيجة العملية الحسابية.
أي أن:
X → القيمة التي يدخلها المستخدم.
Y → نتيجة العملية الحسابية.
━━━━━━━━━━━━━━━━━━━
كيف نفهم المثال كاملًا؟
يمكن تلخيص ما يحدث في المثال بهذه الطريقة:
━━━━━━━━━━━━━━━━━━━
Read X
أدخل قيمة في X.
↓
Y = X × X × X × X × X + 5
استخدم قيمة X لحساب Y.
↓
Print Y
اعرض قيمة Y.
━━━━━━━━━━━━━━━━━━━
سؤال مهم: هل أحتاج إلى حفظ هذه المسألة؟
لا تحتاج إلى حفظ المسألة نفسها.
المهم أن تفهم طريقة التفكير الموجودة فيها:
لدينا قيمة تدخل إلى X، ثم نستخدم X في عملية حسابية، ثم نخزن النتيجة في Y، ثم نعرض Y.
إذا فهمت هذا التسلسل، تستطيع فهم مسائل مشابهة بسهولة بدلًا من حفظ كل مسألة.
━━━━━━━━━━━━━━━━━━━
الخلاصة
المثال بالكامل يعتمد على ثلاث أفكار فقط:
━━━━━━━━━━━━━━━━━━━
X
يمثل القيمة التي يتم إدخالها.
━━━━━━━━━━━━━━━━━━━
Y = X × X × X × X × X + 5
تحسب النتيجة باستخدام قيمة X.
━━━━━━━━━━━━━━━━━━━
Print Y
تعرض النتيجة الموجودة في Y.
━━━━━━━━━━━━━━━━━━━
إذن الفكرة الأساسية التي يجب أن يفهمها الطالب هي:
ندخل X → نحسب باستخدام X → نخزن النتيجة في Y → نعرض Y.
#خوارزميات_من_الصفر
❤1
K7H Code
Photo
شرح الخوارزمية
لدينا في المخطط:
Read A, B
ثم:
Z = A × B
ثم:
Print Z
أي أن البرنامج سيطلب رقمين من المستخدم، ثم يضربهما في بعض، ثم يعرض الناتج.
أولًا: ماذا يريد البرنامج أن يفعل؟
قبل أن نرسم أي مخطط أو نكتب أي كود، نسأل:
ما المطلوب من البرنامج؟
المطلوب هنا:
إدخال رقمين A و B، ثم حساب حاصل ضربهما وتخزين الناتج في Z، ثم طباعة الناتج.
مثال:
إذا أدخل المستخدم:
A = 5
B = 4
فالبرنامج يحسب:
Z = 5 × 4
والنتيجة:
Z = 20
ثم يعرض:
20
السؤال المهم: كيف أعرف المدخلات؟
هذه من أهم المهارات في حل المسائل.
لا تبدأ مباشرة بكتابة Read.
اسأل نفسك:
ما الأشياء التي سيعطيها المستخدم للبرنامج؟
في هذه المسألة مكتوب:
Read A, B
إذن المستخدم سيعطي البرنامج قيمتين:
A و B
لذلك لدينا مدخلان.
كيف أعرف عدد المدخلات؟
ببساطة اسأل:
كم معلومة يحتاجها البرنامج من المستخدم حتى يستطيع تنفيذ المطلوب؟
هنا نريد ضرب رقم في رقم.
نحتاج رقمًا أولًا ورقمًا ثانيًا.
إذن:
عدد المدخلات = 2
وهما:
A و B
هل أختار A و B بنفسي؟
نعم، أسماء المتغيرات يمكن أن تختارها أنت غالبًا، بشرط أن تكون واضحة ومناسبة.
فبدل:
A , B
يمكن أن نسميهما:
Number1 , Number2
وفي هذه المسألة استخدمنا A و B للاختصار.
المهم أن تعرف:
اسم المتغير لا يحدد وظيفته، بل القيمة التي نضعها فيه وطريقة استخدامه هي التي تحدد وظيفته.
السؤال الأهم: كيف أعرف المخرجات؟
بعد أن نعرف المدخلات، نسأل:
ماذا يريد السؤال أن يعرض في النهاية؟
نحن ضربنا:
A × B
والنتيجة خزناها في:
Z
ثم لدينا:
Print Z
إذن المخرج هو:
Z
أي حاصل ضرب الرقمين.
ماذا يعني Z؟
هذه نقطة مهمة جدًا.
Z هو متغير سنستخدمه لتخزين نتيجة العملية.
لاحظ الفرق:
A → مدخل
B → مدخل
Z → نتيجة
مثلاً إذا:
A = 6
B = 3
فإن:
Z = A × B
أي:
Z = 6 × 3
إذن:
Z = 18
لماذا لم نطبع A × B مباشرة؟
سؤال ممتاز.
يمكن في بعض لغات البرمجة أن نحسب ونطبع النتيجة مباشرة.
لكن هنا نريد أن نتعلم فكرة مهمة:
احسب النتيجة أولًا، خزّنها في متغير، ثم استخدم المتغير.
لذلك:
Z = A × B
ثم:
Print Z
وهذا يجعل الخوارزمية واضحة وسهلة القراءة.
ماذا يحدث خطوة بخطوة؟
تخيل أن الكمبيوتر طالب ينفذ تعليماتك حرفيًا.
أنت تقول له:
أولًا: اقرأ A و B
فيأتي المستخدم مثلًا ويكتب:
A = 7
B = 8
ثم تقول له:
احسب Z
فيقوم بـ:
Z = A × B
أي:
Z = 7 × 8
إذن:
Z = 56
ثم تقول له:
اطبع Z
فيعرض:
56
وبذلك انتهت المهمة.
هل يجب أن أحفظ هذه المسألة؟
لا.
وهذه نقطة مهمة جدًا للمبتدئ.
لا تحفظ:
Z = A * B
على أنها مسألة يجب تذكرها.
الأفضل أن تفهم طريقة التفكير.
إذا جاءك سؤال:
احسب حاصل ضرب رقمين.
ستفكر:
ما المدخلات؟
رقمان.
إذن:
A و B
ما العملية؟
الضرب.
إذن:
A × B
أين أخزن النتيجة؟
في متغير مثل:
Z
ماذا أعرض؟
Z
وانتهت المسألة.
هل يجب أن أحفظ القوانين؟
ليس الهدف أن تحفظ عشرات المسائل.
لكن هناك فرق بين الحفظ وفهم القاعدة.
مثلاً:
مساحة المستطيل:
الطول × العرض
إذا فهمت الفكرة، تستطيع استخدامها في أي مسألة.
وكذلك هنا:
حاصل ضرب رقمين = الرقم الأول × الرقم الثاني.
المهم أن تستطيع قراءة السؤال وتحويله إلى خطوات.
كيف أعرف العملية الحسابية المطلوبة؟
هذه مهارة مهمة جدًا.
ابحث في السؤال عن الكلمة التي تخبرك بالعملية.
مثلاً:
الجمع → +
الطرح → -
الضرب → *
القسمة → /
مثال:
أدخل رقمين واحسب مجموعهما.
إذن:
Z = A + B
مثال:
أدخل رقمين واحسب الفرق بينهما.
إذن:
Z = A - B
مثال:
أدخل رقمين واحسب حاصل ضربهما.
إذن:
Z = A * B
مثال:
أدخل رقمين واحسب ناتج قسمتهما.
إذن:
Z = A / B
سؤال قد يخطر في بالك: لماذا نستخدم * بدل ×؟
في الرياضيات نكتب:
A × B
لكن في معظم لغات البرمجة لا نستخدم علامة × للضرب.
نستخدم:
*
لذلك:
Z = A * B
تعني:
Z يساوي A مضروبة في B.
سؤال: هل A و B أرقام أم متغيرات؟
في هذه الخوارزمية:
A و B متغيران.
المتغير هو مكان في ذاكرة الكمبيوتر نستطيع تخزين قيمة بداخله.
مثلاً:
A يمكن أن تحتوي على:
10
ثم يمكن أن تتغير وتصبح:
25
لذلك نسميها متغيرًا.
سؤال: وهل Z متغير أيضًا؟
نعم.
لدينا ثلاثة متغيرات:
A → يخزن الرقم الأول.
B → يخزن الرقم الثاني.
Z → يخزن نتيجة الضرب.
كيف أعرف عدد المتغيرات؟
لا تحفظ عددًا ثابتًا.
فكر في:
ما البيانات التي أحتاج إلى تخزينها؟
هنا نحتاج:
رقم أول → A
رقم ثاني → B
النتيجة → Z
إذن لدينا 3 متغيرات.
لكن ليس دائمًا يجب أن يكون عدد المتغيرات مساويًا لعدد المدخلات.
قد يكون لديك:
3 مدخلات
ومتغير واحد للنتيجة.
أو 5 مدخلات
ومتغيران للنتائج.
حسب المسألة.
هل كل متغير يعتبر مدخلًا؟
لدينا في المخطط:
Read A, B
ثم:
Z = A × B
ثم:
Print Z
أي أن البرنامج سيطلب رقمين من المستخدم، ثم يضربهما في بعض، ثم يعرض الناتج.
أولًا: ماذا يريد البرنامج أن يفعل؟
قبل أن نرسم أي مخطط أو نكتب أي كود، نسأل:
ما المطلوب من البرنامج؟
المطلوب هنا:
إدخال رقمين A و B، ثم حساب حاصل ضربهما وتخزين الناتج في Z، ثم طباعة الناتج.
مثال:
إذا أدخل المستخدم:
A = 5
B = 4
فالبرنامج يحسب:
Z = 5 × 4
والنتيجة:
Z = 20
ثم يعرض:
20
السؤال المهم: كيف أعرف المدخلات؟
هذه من أهم المهارات في حل المسائل.
لا تبدأ مباشرة بكتابة Read.
اسأل نفسك:
ما الأشياء التي سيعطيها المستخدم للبرنامج؟
في هذه المسألة مكتوب:
Read A, B
إذن المستخدم سيعطي البرنامج قيمتين:
A و B
لذلك لدينا مدخلان.
كيف أعرف عدد المدخلات؟
ببساطة اسأل:
كم معلومة يحتاجها البرنامج من المستخدم حتى يستطيع تنفيذ المطلوب؟
هنا نريد ضرب رقم في رقم.
نحتاج رقمًا أولًا ورقمًا ثانيًا.
إذن:
عدد المدخلات = 2
وهما:
A و B
هل أختار A و B بنفسي؟
نعم، أسماء المتغيرات يمكن أن تختارها أنت غالبًا، بشرط أن تكون واضحة ومناسبة.
فبدل:
A , B
يمكن أن نسميهما:
Number1 , Number2
وفي هذه المسألة استخدمنا A و B للاختصار.
المهم أن تعرف:
اسم المتغير لا يحدد وظيفته، بل القيمة التي نضعها فيه وطريقة استخدامه هي التي تحدد وظيفته.
السؤال الأهم: كيف أعرف المخرجات؟
بعد أن نعرف المدخلات، نسأل:
ماذا يريد السؤال أن يعرض في النهاية؟
نحن ضربنا:
A × B
والنتيجة خزناها في:
Z
ثم لدينا:
Print Z
إذن المخرج هو:
Z
أي حاصل ضرب الرقمين.
ماذا يعني Z؟
هذه نقطة مهمة جدًا.
Z هو متغير سنستخدمه لتخزين نتيجة العملية.
لاحظ الفرق:
A → مدخل
B → مدخل
Z → نتيجة
مثلاً إذا:
A = 6
B = 3
فإن:
Z = A × B
أي:
Z = 6 × 3
إذن:
Z = 18
لماذا لم نطبع A × B مباشرة؟
سؤال ممتاز.
يمكن في بعض لغات البرمجة أن نحسب ونطبع النتيجة مباشرة.
لكن هنا نريد أن نتعلم فكرة مهمة:
احسب النتيجة أولًا، خزّنها في متغير، ثم استخدم المتغير.
لذلك:
Z = A × B
ثم:
Print Z
وهذا يجعل الخوارزمية واضحة وسهلة القراءة.
ماذا يحدث خطوة بخطوة؟
تخيل أن الكمبيوتر طالب ينفذ تعليماتك حرفيًا.
أنت تقول له:
أولًا: اقرأ A و B
فيأتي المستخدم مثلًا ويكتب:
A = 7
B = 8
ثم تقول له:
احسب Z
فيقوم بـ:
Z = A × B
أي:
Z = 7 × 8
إذن:
Z = 56
ثم تقول له:
اطبع Z
فيعرض:
56
وبذلك انتهت المهمة.
هل يجب أن أحفظ هذه المسألة؟
لا.
وهذه نقطة مهمة جدًا للمبتدئ.
لا تحفظ:
Z = A * B
على أنها مسألة يجب تذكرها.
الأفضل أن تفهم طريقة التفكير.
إذا جاءك سؤال:
احسب حاصل ضرب رقمين.
ستفكر:
ما المدخلات؟
رقمان.
إذن:
A و B
ما العملية؟
الضرب.
إذن:
A × B
أين أخزن النتيجة؟
في متغير مثل:
Z
ماذا أعرض؟
Z
وانتهت المسألة.
هل يجب أن أحفظ القوانين؟
ليس الهدف أن تحفظ عشرات المسائل.
لكن هناك فرق بين الحفظ وفهم القاعدة.
مثلاً:
مساحة المستطيل:
الطول × العرض
إذا فهمت الفكرة، تستطيع استخدامها في أي مسألة.
وكذلك هنا:
حاصل ضرب رقمين = الرقم الأول × الرقم الثاني.
المهم أن تستطيع قراءة السؤال وتحويله إلى خطوات.
كيف أعرف العملية الحسابية المطلوبة؟
هذه مهارة مهمة جدًا.
ابحث في السؤال عن الكلمة التي تخبرك بالعملية.
مثلاً:
الجمع → +
الطرح → -
الضرب → *
القسمة → /
مثال:
أدخل رقمين واحسب مجموعهما.
إذن:
Z = A + B
مثال:
أدخل رقمين واحسب الفرق بينهما.
إذن:
Z = A - B
مثال:
أدخل رقمين واحسب حاصل ضربهما.
إذن:
Z = A * B
مثال:
أدخل رقمين واحسب ناتج قسمتهما.
إذن:
Z = A / B
سؤال قد يخطر في بالك: لماذا نستخدم * بدل ×؟
في الرياضيات نكتب:
A × B
لكن في معظم لغات البرمجة لا نستخدم علامة × للضرب.
نستخدم:
*
لذلك:
Z = A * B
تعني:
Z يساوي A مضروبة في B.
سؤال: هل A و B أرقام أم متغيرات؟
في هذه الخوارزمية:
A و B متغيران.
المتغير هو مكان في ذاكرة الكمبيوتر نستطيع تخزين قيمة بداخله.
مثلاً:
A يمكن أن تحتوي على:
10
ثم يمكن أن تتغير وتصبح:
25
لذلك نسميها متغيرًا.
سؤال: وهل Z متغير أيضًا؟
نعم.
لدينا ثلاثة متغيرات:
A → يخزن الرقم الأول.
B → يخزن الرقم الثاني.
Z → يخزن نتيجة الضرب.
كيف أعرف عدد المتغيرات؟
لا تحفظ عددًا ثابتًا.
فكر في:
ما البيانات التي أحتاج إلى تخزينها؟
هنا نحتاج:
رقم أول → A
رقم ثاني → B
النتيجة → Z
إذن لدينا 3 متغيرات.
لكن ليس دائمًا يجب أن يكون عدد المتغيرات مساويًا لعدد المدخلات.
قد يكون لديك:
3 مدخلات
ومتغير واحد للنتيجة.
أو 5 مدخلات
ومتغيران للنتائج.
حسب المسألة.
هل كل متغير يعتبر مدخلًا؟
K7H Code
Photo
لا.
وهذه نقطة مهمة جدًا.
في مثالنا:
A و B → مدخلات.
Z → ليس مدخلًا.
لم يعطِ المستخدم Z.
البرنامج هو الذي حسب Z.
إذن:
المدخلات: A ، B
المعالجة: A × B
المخرج: Z
كيف أحلل أي مسألة مشابهة؟
استخدم هذه الأسئلة الأربعة:
1. ماذا سيعطي المستخدم للبرنامج؟
هذه هي المدخلات.
2. ماذا يريد البرنامج أن يفعل بهذه البيانات؟
هذه هي المعالجة.
3. ماذا يريد البرنامج أن يعرض؟
هذه هي المخرجات.
4. ما المتغيرات التي أحتاجها لتخزين هذه البيانات والنتائج؟
وهذه الطريقة ستساعدك في أغلب المسائل البسيطة.
مثال سريع للتأكد من فهمك
السؤال:
اكتب خوارزمية تقرأ رقمين وتحسب مجموعهما وتطبعه.
نسأل:
ما المدخلات؟
رقمان:
A و B
ما العملية؟
الجمع.
أين نخزن النتيجة؟
Z
إذن:
Z = A + B
ماذا نطبع؟
Z
لاحظ أنني لم أحفظ هذه المسألة.
أنا فقط استخدمت طريقة التفكير.
وهذا هو الشيء الذي أريدك أن تتعلمه في الخوارزميات:
لا تحفظ الحل... تعلّم كيف تصل إلى الحل.
الخلاصة
أي مسألة بسيطة حاول تقسيمها إلى:
مدخلات → معالجة → مخرجات
وفي مثالنا:
A و B → مدخلات
A × B → معالجة
Z → النتيجة
Print Z → عرض النتيجة
إذا أتقنت هذه الطريقة، ستبدأ تدريجيًا في النظر إلى أي سؤال برمجي وتسأل نفسك تلقائيًا:
ماذا يدخل؟
ماذا يحدث للبيانات؟
ماذا يخرج؟
وهنا تبدأ فعلًا في التفكير كمبرمج، وليس مجرد رسم مخططات أو حفظ قوانين.
#خوارزميات_من_الصفر
وهذه نقطة مهمة جدًا.
في مثالنا:
A و B → مدخلات.
Z → ليس مدخلًا.
لم يعطِ المستخدم Z.
البرنامج هو الذي حسب Z.
إذن:
المدخلات: A ، B
المعالجة: A × B
المخرج: Z
كيف أحلل أي مسألة مشابهة؟
استخدم هذه الأسئلة الأربعة:
1. ماذا سيعطي المستخدم للبرنامج؟
هذه هي المدخلات.
2. ماذا يريد البرنامج أن يفعل بهذه البيانات؟
هذه هي المعالجة.
3. ماذا يريد البرنامج أن يعرض؟
هذه هي المخرجات.
4. ما المتغيرات التي أحتاجها لتخزين هذه البيانات والنتائج؟
وهذه الطريقة ستساعدك في أغلب المسائل البسيطة.
مثال سريع للتأكد من فهمك
السؤال:
اكتب خوارزمية تقرأ رقمين وتحسب مجموعهما وتطبعه.
نسأل:
ما المدخلات؟
رقمان:
A و B
ما العملية؟
الجمع.
أين نخزن النتيجة؟
Z
إذن:
Z = A + B
ماذا نطبع؟
Z
لاحظ أنني لم أحفظ هذه المسألة.
أنا فقط استخدمت طريقة التفكير.
وهذا هو الشيء الذي أريدك أن تتعلمه في الخوارزميات:
لا تحفظ الحل... تعلّم كيف تصل إلى الحل.
الخلاصة
أي مسألة بسيطة حاول تقسيمها إلى:
مدخلات → معالجة → مخرجات
وفي مثالنا:
A و B → مدخلات
A × B → معالجة
Z → النتيجة
Print Z → عرض النتيجة
إذا أتقنت هذه الطريقة، ستبدأ تدريجيًا في النظر إلى أي سؤال برمجي وتسأل نفسك تلقائيًا:
ماذا يدخل؟
ماذا يحدث للبيانات؟
ماذا يخرج؟
وهنا تبدأ فعلًا في التفكير كمبرمج، وليس مجرد رسم مخططات أو حفظ قوانين.
#خوارزميات_من_الصفر
💯1
الذي عنده امثله يكتبها و يرسلها. مثل الامثله السابقه نفس الفكر . لانه بندخل بدرس جديد و هو الشروط
K7H Code
ملاحظه هذا المخطط ينقصه اشياء للوصول للحل الصحيح بنسبه ١٠٠٪ . ولكن في هذه المرحله من التعلم الان وفي بدايتك لتعلم الشروط لا تحتاج الى التعمق بشكل اكثر. سنحل المثال بشكل الصحيح بعد ما نتقدم بالصعوبه
أولًا: ما المطلوب من الخوارزمية؟
قبل أن نرسم أي شيء، نقرأ المسألة ونحدد المطلوب.
المطلوب هنا:
إدخال رقم من المستخدم، ثم تحديد هل الرقم موجب أم سالب.
مثلاً:
إذا أدخل المستخدم:
8
فالبرنامج يقول:
Positive
أما إذا أدخل:
-5
فالبرنامج يقول:
Negative
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: كيف أعرف أن المسألة تحتاج إلى شرط؟
هذه من أهم المهارات التي يجب أن تتعلمها.
اسأل نفسك:
هل يوجد في السؤال اختيار بين أكثر من حالة؟
هنا لدينا حالتان:
الرقم أكبر من صفر.
الرقم ليس أكبر من صفر.
إذن البرنامج يحتاج إلى اتخاذ قرار.
وهنا نستخدم الشرط.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
الخطوة الأولى: إدخال الرقم
المخطط يحتوي على:
Enter Number
أي:
اطلب من المستخدم إدخال رقم.
مثلاً المستخدم يدخل:
10
أو:
-7
أو:
25
وهذا الرقم سنسميه مثلًا:
Number
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال المهم: كيف عرفت أن هناك مدخلًا واحدًا فقط؟
اسأل نفسك:
ما المعلومات التي يحتاجها البرنامج من المستخدم حتى يستطيع حل المسألة؟
نحن نريد معرفة هل رقم معين موجب أم سالب.
إذن نحتاج إلى رقم واحد فقط.
لذلك:
عدد المدخلات = 1
والمدخل هو:
Number
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: هل أستطيع تسمية المتغير Number باسم آخر؟
نعم.
يمكن أن تسميه:
N
أو:
Number
أو:
X
وغيرها.
مثلاً:
N = 10
المهم أن تعرف أن الاسم يمثل القيمة التي أدخلها المستخدم.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
الخطوة الثانية: فحص الرقم
بعد إدخال الرقم، نصل إلى السؤال:
Number > 0
أي:
هل الرقم أكبر من صفر؟
وهنا تبدأ فكرة الشرط.
البرنامج لا يقول مباشرة إن الرقم موجب.
بل يسأل أولًا:
هل Number أكبر من 0؟
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: لماذا نقارن الرقم بالصفر؟
لأن الصفر هو النقطة التي تفصل بين الأرقام الموجبة والسالبة.
مثلاً:
1 , 2 , 3 , 4 , 5
كلها أكبر من صفر، ولذلك هي موجبة.
أما:
-1 , -2 , -3 , -4
فهي أصغر من صفر، ولذلك هي سالبة.
إذن نستطيع استخدام الصفر لمعرفة نوع الرقم.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
ماذا يعني الرمز >؟
الرمز:
>
يعني:
أكبر من
لذلك:
Number > 0
تعني:
هل Number أكبر من صفر؟
مثلاً:
5 > 0
صحيحة.
لكن:
-5 > 0
خاطئة.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
ماذا يحدث إذا كانت الإجابة نعم؟
إذا كان:
Number > 0
صحيحًا، فهذا يعني أن الرقم أكبر من صفر.
إذن الرقم موجب.
مثلاً:
Number = 7
نختبر:
7 > 0
نعم.
إذن:
Positive
أي:
الرقم موجب.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
ماذا يحدث إذا كانت الإجابة لا؟
إذا كانت الإجابة:
No
فهذا يعني أن:
Number > 0
غير صحيحة.
إذا كان الرقم:
-8
فإن:
-8 > 0
خطأ.
إذن نذهب إلى حالة الرقم السالب.
ونطبع:
Negative
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
سؤال مهم جدًا: ماذا عن الصفر؟
هنا يجب أن تنتبه.
المخطط الحالي يستخدم الشرط:
Number > 0
إذا أدخلنا:
0
فإن:
0 > 0
خطأ
لذلك سيذهب البرنامج إلى فرع Negative.
وهذا يعني أن المخطط الحالي سيعتبر الصفر سالبًا.
وهذا غير صحيح رياضيًا.
الصفر:
ليس موجبًا وليس سالبًا.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
إذن كيف أصحح الخوارزمية؟
إذا كان المطلوب تحديد الحالات الثلاث:
موجب / سالب / صفر
فنحتاج إلى ثلاث حالات:
إذا:
Number > 0
إذن:
Positive
وإذا:
Number < 0
إذن:
Negative
وإلا:
Zero
وبذلك نتعامل مع جميع الاحتمالات.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: لماذا لم نستخدم ثلاثة شروط من البداية؟
لأننا نختار طريقة الحل حسب المطلوب.
إذا كان السؤال يقول:
حدد هل الرقم موجب أم سالب.
قد نستخدم شرطًا مناسبًا للمسألة.
لكن إذا قال:
حدد هل الرقم موجب أو سالب أو يساوي صفر.
فلا بد أن نفكر في ثلاث حالات.
وهنا يجب أن تتعلم قاعدة مهمة:
عدد الحالات التي يجب أن يتعامل معها البرنامج يحدد طريقة بناء الشروط.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: كيف أعرف عدد الحالات؟
اسأل نفسك:
ما الاحتمالات التي يمكن أن تحدث؟
بالنسبة للرقم:
يمكن أن يكون:
أكبر من صفر → موجب.
قبل أن نرسم أي شيء، نقرأ المسألة ونحدد المطلوب.
المطلوب هنا:
إدخال رقم من المستخدم، ثم تحديد هل الرقم موجب أم سالب.
مثلاً:
إذا أدخل المستخدم:
8
فالبرنامج يقول:
Positive
أما إذا أدخل:
-5
فالبرنامج يقول:
Negative
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: كيف أعرف أن المسألة تحتاج إلى شرط؟
هذه من أهم المهارات التي يجب أن تتعلمها.
اسأل نفسك:
هل يوجد في السؤال اختيار بين أكثر من حالة؟
هنا لدينا حالتان:
الرقم أكبر من صفر.
الرقم ليس أكبر من صفر.
إذن البرنامج يحتاج إلى اتخاذ قرار.
وهنا نستخدم الشرط.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
الخطوة الأولى: إدخال الرقم
المخطط يحتوي على:
Enter Number
أي:
اطلب من المستخدم إدخال رقم.
مثلاً المستخدم يدخل:
10
أو:
-7
أو:
25
وهذا الرقم سنسميه مثلًا:
Number
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال المهم: كيف عرفت أن هناك مدخلًا واحدًا فقط؟
اسأل نفسك:
ما المعلومات التي يحتاجها البرنامج من المستخدم حتى يستطيع حل المسألة؟
نحن نريد معرفة هل رقم معين موجب أم سالب.
إذن نحتاج إلى رقم واحد فقط.
لذلك:
عدد المدخلات = 1
والمدخل هو:
Number
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: هل أستطيع تسمية المتغير Number باسم آخر؟
نعم.
يمكن أن تسميه:
N
أو:
Number
أو:
X
وغيرها.
مثلاً:
N = 10
المهم أن تعرف أن الاسم يمثل القيمة التي أدخلها المستخدم.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
الخطوة الثانية: فحص الرقم
بعد إدخال الرقم، نصل إلى السؤال:
Number > 0
أي:
هل الرقم أكبر من صفر؟
وهنا تبدأ فكرة الشرط.
البرنامج لا يقول مباشرة إن الرقم موجب.
بل يسأل أولًا:
هل Number أكبر من 0؟
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: لماذا نقارن الرقم بالصفر؟
لأن الصفر هو النقطة التي تفصل بين الأرقام الموجبة والسالبة.
مثلاً:
1 , 2 , 3 , 4 , 5
كلها أكبر من صفر، ولذلك هي موجبة.
أما:
-1 , -2 , -3 , -4
فهي أصغر من صفر، ولذلك هي سالبة.
إذن نستطيع استخدام الصفر لمعرفة نوع الرقم.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
ماذا يعني الرمز >؟
الرمز:
>
يعني:
أكبر من
لذلك:
Number > 0
تعني:
هل Number أكبر من صفر؟
مثلاً:
5 > 0
صحيحة.
لكن:
-5 > 0
خاطئة.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
ماذا يحدث إذا كانت الإجابة نعم؟
إذا كان:
Number > 0
صحيحًا، فهذا يعني أن الرقم أكبر من صفر.
إذن الرقم موجب.
مثلاً:
Number = 7
نختبر:
7 > 0
نعم.
إذن:
Positive
أي:
الرقم موجب.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
ماذا يحدث إذا كانت الإجابة لا؟
إذا كانت الإجابة:
No
فهذا يعني أن:
Number > 0
غير صحيحة.
إذا كان الرقم:
-8
فإن:
-8 > 0
خطأ.
إذن نذهب إلى حالة الرقم السالب.
ونطبع:
Negative
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
سؤال مهم جدًا: ماذا عن الصفر؟
هنا يجب أن تنتبه.
المخطط الحالي يستخدم الشرط:
Number > 0
إذا أدخلنا:
0
فإن:
0 > 0
خطأ
لذلك سيذهب البرنامج إلى فرع Negative.
وهذا يعني أن المخطط الحالي سيعتبر الصفر سالبًا.
وهذا غير صحيح رياضيًا.
الصفر:
ليس موجبًا وليس سالبًا.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
إذن كيف أصحح الخوارزمية؟
إذا كان المطلوب تحديد الحالات الثلاث:
موجب / سالب / صفر
فنحتاج إلى ثلاث حالات:
إذا:
Number > 0
إذن:
Positive
وإذا:
Number < 0
إذن:
Negative
وإلا:
Zero
وبذلك نتعامل مع جميع الاحتمالات.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: لماذا لم نستخدم ثلاثة شروط من البداية؟
لأننا نختار طريقة الحل حسب المطلوب.
إذا كان السؤال يقول:
حدد هل الرقم موجب أم سالب.
قد نستخدم شرطًا مناسبًا للمسألة.
لكن إذا قال:
حدد هل الرقم موجب أو سالب أو يساوي صفر.
فلا بد أن نفكر في ثلاث حالات.
وهنا يجب أن تتعلم قاعدة مهمة:
عدد الحالات التي يجب أن يتعامل معها البرنامج يحدد طريقة بناء الشروط.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: كيف أعرف عدد الحالات؟
اسأل نفسك:
ما الاحتمالات التي يمكن أن تحدث؟
بالنسبة للرقم:
يمكن أن يكون:
أكبر من صفر → موجب.
K7H Code
ملاحظه هذا المخطط ينقصه اشياء للوصول للحل الصحيح بنسبه ١٠٠٪ . ولكن في هذه المرحله من التعلم الان وفي بدايتك لتعلم الشروط لا تحتاج الى التعمق بشكل اكثر. سنحل المثال بشكل الصحيح بعد ما نتقدم بالصعوبه
أصغر من صفر → سالب.
يساوي صفر → صفر.
إذن لدينا:
3 حالات.
وهذه الطريقة يمكنك استخدامها في مسائل كثيرة جدًا.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: هل يجب أن أحفظ هذه الشروط؟
لا تحفظها كحل لمسألة معينة.
افهم الفكرة.
إذا سألك السؤال:
هل الرقم موجب؟
فكر:
الموجب أكبر من صفر.
إذن:
Number > 0
إذا سألك:
هل الرقم سالب؟
فكر:
السالب أصغر من صفر.
إذن:
Number < 0
إذا سألك:
هل الرقم يساوي صفر؟
فكر:
Number == 0
أنت هنا لا تحفظ الحل، بل تحول معنى السؤال إلى شرط.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: كيف أعرف الشرط الذي أكتبه؟
ابحث عن العلاقة الموجودة في السؤال.
مثلاً:
أكبر من → >
أصغر من → <
يساوي → ==
أكبر من أو يساوي → >=
أصغر من أو يساوي → <=
لا يساوي → !=
وهذه الرموز ستصبح مهمة جدًا عندما تبدأ بكتابة الشروط في لغة البرمجة.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: هل Yes و No تعنيان أن هناك مدخلين؟
لا.
هذه نقطة مهمة جدًا.
لدينا:
مدخل واحد فقط:
Number
لكن لدينا نتيجتان محتملتان للشرط:
Yes
أو:
No
إذن لا تخلط بين:
عدد المدخلات
و
عدد الحالات.
في هذا المثال:
عدد المدخلات = 1
وعدد الفروع في الشرط = 2
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: هل Positive و Negative مدخلات؟
لا.
هذه ليست بيانات يدخلها المستخدم.
هذه نتائج أو رسائل يعرضها البرنامج.
إذن:
Input:
Number
Processing:
فحص:
Number > 0
Output:
Positive أو Negative
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
دعنا نجرب الخوارزمية بأمثلة
المثال الأول
المستخدم يدخل:
15
البرنامج يسأل:
15 > 0 ؟
نعم.
إذن النتيجة:
Positive
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
المثال الثاني
المستخدم يدخل:
-3
البرنامج يسأل:
-3 > 0 ؟
لا.
إذن النتيجة في المخطط:
Negative
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
المثال الثالث
المستخدم يدخل:
0
البرنامج يسأل:
0 > 0 ؟
لا.
وبحسب المخطط الحالي سيطبع:
Negative
وهنا نكتشف أن الخوارزمية تحتاج إلى تعديل إذا أردنا التعامل مع الصفر بشكل صحيح.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
أهم شيء أريدك أن تتعلمه من هذا المثال
لا تنظر إلى المخطط وتقول:
"أحفظ أنني أكتب Number > 0."
بل اسأل نفسك:
ما المدخل؟
رقم واحد.
ما المطلوب؟
معرفة نوع الرقم.
ما الحالات الممكنة؟
موجب، سالب، وربما صفر.
كيف أميز بينها؟
بالمقارنة مع الصفر.
ما الشرط؟
أكبر من، أصغر من، أو يساوي.
ما المخرجات؟
النتيجة المناسبة للحالة.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
قاعدة ذهبية
عندما تأتيك أي مسألة فيها قرار أو اختيار، لا تبدأ بالرسم.
ابدأ بهذه الأسئلة:
1. ما الذي سيدخله المستخدم؟
2. كم عدد المدخلات؟
3. ما الذي أريد معرفته من هذه المدخلات؟
4. ما الحالات أو الاحتمالات الممكنة؟
5. كيف أميز بين كل حالة؟
6. ما الشرط المناسب لكل حالة؟
7. ماذا يجب أن يظهر للمستخدم في النهاية؟
إذا أصبحت تسأل نفسك هذه الأسئلة تلقائيًا، فأنت بدأت تنتقل من مرحلة رسم المخطط إلى مرحلة أهم بكثير:
التفكير بطريقة المبرمج.
#خوارزميات_من_الصفر
يساوي صفر → صفر.
إذن لدينا:
3 حالات.
وهذه الطريقة يمكنك استخدامها في مسائل كثيرة جدًا.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: هل يجب أن أحفظ هذه الشروط؟
لا تحفظها كحل لمسألة معينة.
افهم الفكرة.
إذا سألك السؤال:
هل الرقم موجب؟
فكر:
الموجب أكبر من صفر.
إذن:
Number > 0
إذا سألك:
هل الرقم سالب؟
فكر:
السالب أصغر من صفر.
إذن:
Number < 0
إذا سألك:
هل الرقم يساوي صفر؟
فكر:
Number == 0
أنت هنا لا تحفظ الحل، بل تحول معنى السؤال إلى شرط.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: كيف أعرف الشرط الذي أكتبه؟
ابحث عن العلاقة الموجودة في السؤال.
مثلاً:
أكبر من → >
أصغر من → <
يساوي → ==
أكبر من أو يساوي → >=
أصغر من أو يساوي → <=
لا يساوي → !=
وهذه الرموز ستصبح مهمة جدًا عندما تبدأ بكتابة الشروط في لغة البرمجة.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: هل Yes و No تعنيان أن هناك مدخلين؟
لا.
هذه نقطة مهمة جدًا.
لدينا:
مدخل واحد فقط:
Number
لكن لدينا نتيجتان محتملتان للشرط:
Yes
أو:
No
إذن لا تخلط بين:
عدد المدخلات
و
عدد الحالات.
في هذا المثال:
عدد المدخلات = 1
وعدد الفروع في الشرط = 2
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال: هل Positive و Negative مدخلات؟
لا.
هذه ليست بيانات يدخلها المستخدم.
هذه نتائج أو رسائل يعرضها البرنامج.
إذن:
Input:
Number
Processing:
فحص:
Number > 0
Output:
Positive أو Negative
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
دعنا نجرب الخوارزمية بأمثلة
المثال الأول
المستخدم يدخل:
15
البرنامج يسأل:
15 > 0 ؟
نعم.
إذن النتيجة:
Positive
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
المثال الثاني
المستخدم يدخل:
-3
البرنامج يسأل:
-3 > 0 ؟
لا.
إذن النتيجة في المخطط:
Negative
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
المثال الثالث
المستخدم يدخل:
0
البرنامج يسأل:
0 > 0 ؟
لا.
وبحسب المخطط الحالي سيطبع:
Negative
وهنا نكتشف أن الخوارزمية تحتاج إلى تعديل إذا أردنا التعامل مع الصفر بشكل صحيح.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
أهم شيء أريدك أن تتعلمه من هذا المثال
لا تنظر إلى المخطط وتقول:
"أحفظ أنني أكتب Number > 0."
بل اسأل نفسك:
ما المدخل؟
رقم واحد.
ما المطلوب؟
معرفة نوع الرقم.
ما الحالات الممكنة؟
موجب، سالب، وربما صفر.
كيف أميز بينها؟
بالمقارنة مع الصفر.
ما الشرط؟
أكبر من، أصغر من، أو يساوي.
ما المخرجات؟
النتيجة المناسبة للحالة.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
قاعدة ذهبية
عندما تأتيك أي مسألة فيها قرار أو اختيار، لا تبدأ بالرسم.
ابدأ بهذه الأسئلة:
1. ما الذي سيدخله المستخدم؟
2. كم عدد المدخلات؟
3. ما الذي أريد معرفته من هذه المدخلات؟
4. ما الحالات أو الاحتمالات الممكنة؟
5. كيف أميز بين كل حالة؟
6. ما الشرط المناسب لكل حالة؟
7. ماذا يجب أن يظهر للمستخدم في النهاية؟
إذا أصبحت تسأل نفسك هذه الأسئلة تلقائيًا، فأنت بدأت تنتقل من مرحلة رسم المخطط إلى مرحلة أهم بكثير:
التفكير بطريقة المبرمج.
#خوارزميات_من_الصفر