كيف يفكّر الحاسوب: الخوارزمية بلا كود
درس 1 من 4
1كيف يفكّر الحاسوب: الخوارزمية بلا كود
الصورة الكبيرةالحاسوب لا يفهم «اعمل لي شاي». يفهم خطوات صغيرة جدًّا، مرتّبة، بلا غموض. الخوارزمية هي هذه الخطوات، والبرمجة هي كتابتها بلغة يفهمها الجهاز.
ماذا تشاهد في الرسم: كل خوارزمية تستلم شيئًا، تمشي على خطوات بالترتيب، تقرّر عند مفترق، تكرّر ما يلزم، ثم تعطي نتيجة. هذا الشكل نفسه ستراه في كل برنامج تكتبه لاحقًا.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
تخيّل أنك تعطي صديقًا لم يدخل مطبخًا قطّ ورقة تعليمات لعمل كوب شاي. لو كتبت «سخّن الماء» قد يضعه في الفرن! لا بد أن تكون دقيقًا: «املأ الغلاية إلى الخط، اضغط الزر، انتظر حتى يطفئ». هذه الورقة خوارزمية، والصديق هو الحاسوب.
الخوارزمية تتابع منتهٍ من التعليمات الحتمية يحوّل مدخلات إلى مخرجات. نظرية «البرمجة المهيكلة» (Böhm–Jacopini) تثبت أن التسلسل والاختيار والتكرار تكفي للتعبير عن أي حساب. ستكتبها هنا بشيفرة زائفة ومخطّط تدفق، ثم تراها بايثون حتى تلاحظ أن الترجمة شبه حرفية.
قبل أن تبدأ
📝ورقة وقلم
ستكتب خطوات قبل أي كود. لا تحتاج تثبيت شيء.
🔌كيف يعمل الحاسوب
يفيدك أن تعرف أن الحاسوب ينفّذ تعليمات بسيطة جدًّا بسرعة هائلة.
الفكرة الجوهرية
1الخوارزمية وصفة دقيقة
الخوارزمية مجموعة خطوات مرتّبة وواضحة وتنتهي. لو نقص شرط من الثلاثة فهي ليست خوارزمية: خطوات بلا ترتيب تعطي نتائج مختلفة، وخطوة غامضة تُفهم بأكثر من طريقة، وخطوات لا تنتهي تعلّق الجهاز.
مثال من حياتك: البحث عن رقم صديق في جهات الاتصال. تفتح القائمة، تقرأ أول اسم، إن كان هو توقّف، وإلا انتقل للتالي، وكرّر حتى تجده أو تنتهي القائمة.
2الحركات الثلاث: تسلسل، قرار، تكرار
التسلسل: خطوة بعد خطوة بالترتيب. القرار: «إذا كان كذا افعل هذا وإلا افعل ذاك». التكرار: «كرّر هذا ما دام الشرط صحيحًا». أي برنامج، من آلة حاسبة إلى تطبيق بنك، مبني من هذه الثلاث فقط.
شيفرة زائفة (pseudocode): لغة بين العربي والكود، لا يشغّلها جهاز لكن يفهمها أي مبرمج.
start
read the list of contacts
for each name in the list: <- repetition
if name == "Sara": <- decision
show her number
stop
say "not found" <- sequence continues
end3الشيفرة الزائفة ومخطّط التدفق
قبل أن تكتب كودًا اكتب الخطوات بلغتك. الشيفرة الزائفة نص، ومخطّط التدفق رسم: المستطيل خطوة، والمعيّن قرار له مخرجان (نعم/لا)، والسهم يحدّد الاتجاه، والشكل البيضاوي بداية أو نهاية.
4نفس الخوارزمية بلغة حقيقية
هذه نفس خطوات البحث مكتوبة بايثون. لاحظ كيف كل سطر يقابل سطرًا في الشيفرة الزائفة. اضغط تشغيل، ثم غيّر الاسم المطلوب إلى اسم غير موجود وشغّل مرة ثانية.
contacts = {"Ali": "0501", "Sara": "0502", "Noura": "0503"}
wanted = "Sara"
found = False
for name in contacts: # repetition
if name == wanted: # decision
print(name, contacts[name])
found = True
break
if not found: # sequence continues
print("not found")مثال محلول
المسألة: صرّاف آلي يسمح بثلاث محاولات للرقم السري. الخطوات: (1) عدّاد = 0. (2) اطلب الرقم. (3) إن كان صحيحًا افتح الحساب وانتهِ. (4) وإلا زِد العدّاد. (5) إن كان العدّاد أقل من 3 ارجع للخطوة 2. (6) وإلا اسحب البطاقة. فيها تسلسل (1،2)، وقرار (3،5)، وتكرار (العودة للخطوة 2).
attempts = ["1111", "2222", "4321"] # what the user types, in order
pin = "4321"
counter = 0
for typed in attempts:
if typed == pin:
print("open account after", counter + 1, "tries")
break
counter += 1
if counter == 3:
print("card kept")
breakخرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| البرمجة رياضيات معقّدة. | أغلبها تفكير منظّم: تقسيم المشكلة وترتيب الخطوات. الرياضيات تحتاجها في مجالات معيّنة فقط. |
| الحاسوب ذكي ويفهم قصدك. | ينفّذ حرفيًا ما كتبت، حتى لو كان خطأ. الدقة مسؤوليتك. |
| يجب أن تحفظ لغة قبل أن تبدأ. | الخوارزمية تأتي قبل اللغة. من يتقن الخطوات يتعلّم أي لغة في أسابيع. |
أين تقابله في العمل
🗺️تطبيقات الخرائط
تجرّب الطرق وتقرّر الأقصر وتكرّر حتى تصل: نفس الحركات الثلاث.
🏦التحويل البنكي
سلسلة قرارات: هل الرصيد يكفي؟ هل الحساب موجود؟ هل الرمز صحيح؟
🛒سلّة المتجر
تكرار على كل منتج لحساب المجموع، ثم قرار الخصم.
اختبر فهمك
أي هذه ليست من الحركات الثلاث في الخوارزمية؟
الخوارزمية حتمية: نفس المدخلات تعطي نفس المخرجات دائمًا. التخمين يكسر هذا الشرط.
في مخطّط التدفق، ما الشكل الذي يمثّل قرارًا؟
المعيّن له مخرجان: نعم ولا. المستطيل خطوة، والبيضاوي بداية أو نهاية.
كتبت «كرّر حتى يمتلئ الكوب» لكن الكوب مكسور. ما المشكلة؟
الخوارزمية يجب أن تنتهي. أضف حدًّا أعلى للمحاولات أو تحقّقًا من الحالة.
بطاقات مراجعة سريعة
تحقق من فهمك
لماذا نكتب الشيفرة الزائفة قبل الكود؟
لأنها تفصل مشكلة «ماذا أفعل» عن مشكلة «كيف أكتبه بهذه اللغة»، فتكتشف الخطوة الناقصة قبل أن تضيع في أخطاء الصياغة.
اذكر تسلسلًا وقرارًا وتكرارًا في خوارزمية «غسل الصحون».
تسلسل: افتح الماء ثم ضع الصابون. قرار: إن كان الصحن ما زال متّسخًا اغسله مرة ثانية. تكرار: لكل صحن في الحوض نفّذ الخطوات.
ما الذي يجعل خطوة «غامضة»؟
أن تُفهم بأكثر من طريقة. «سخّن الماء» غامضة، «اغلِ الماء في الغلاية حتى تطفئ» واضحة.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.