سؤال

الكود التالي هو مثال على ما أعتقد أنه سيتأهل كحزب كاذب ، لأنه لا يتم تنفيذه بأي لغة ولكن المنطق صحيح.

string checkRubric(gpa, major)
    bool brake = false
    num lastRange
    num rangeCounter
    string assignment = "unassigned"
    array bus['business']= array('person a'=>array(0, 2.9), 'person b'=>array(3, 4))
    array cis['computer science']= array('person c'=>array(0, 2.9), 'person d'=>array(3, 4))
    array lib['english']= array('person e'=>array(0, 4))
    array rubric = array(bus, cis, lib)

foreach (rubric as fieldAr)
    foreach (fieldAr as field => advisorAr)
        if (major == field)
            foreach (advisorAr as advisor => gpaRangeAr)
                    rangeCounter = 0
                foreach (gpaRangeAr as gpaValue)
                    if (rangeCounter < 1)
                        lastRange = gpaValue
                    else if (gpa >= lastRange && gpa <= gpaValue)
                        assignment = advisor
                        brake = true
                        break
                    endif
                    rangeCounter++
                endforeach
                if (brake == true)
                    break
                endif
            endforeach
            if (brake == true)
                break
            endif
        endif
    endforeach
    if (brake == true)
        break
    endif
endforeach
return assignment

خلال الأسبوعين الماضيين ، كنت أحاول إنشاء تعريف واضح لماهية الرمز الكاذب بالفعل. هل هو بالنسبة للمبرمج أم أن هناك بناء جملة ClearCut فعلي؟ أقول أن الكود الكاذب هو أي رمز لا ينفذ ، ماذا عنك؟ شكرا (روابط لهذا الموضوع ترحيب)

هل كانت مفيدة؟

المحلول

لا يوجد تعريف ثابت من الرمز الكاذب. إنه أي تدوين تتوقع أن يفهم جمهورك وجهة نظرك. الفكرة المهمة هي أنه من المفترض أن يقرأ البشر ، وليس أجهزة الكمبيوتر ، لذلك لا يجب أن يكون دقيقًا. يمكنك تضمين التفاصيل المهمة لمعرضك ، وحذف التفاصيل التي ليست كذلك.

نصائح أخرى

تمزق بلا خجل من ويكيبيديا:

Pseudocode هو وصف مضغوط وعالي المستوى لخوارزمية برمجة الكمبيوتر التي تستخدم الاتفاقيات الهيكلية للغة البرمجة ، ولكنها مخصصة للقراءة البشرية بدلاً من القراءة الآلية. عادةً ما يغفل الرمز الكاذب التفاصيل غير الضرورية للفهم البشري للخوارزمية ، مثل الإعلانات المتغيرة والرمز الخاص بالنظام والروايات الفرعية.

هناك الكثير من التعليمات البرمجية التي لا تنفذ. هذا لا يعني أنه رمز كاذب. يحتوي "Psuedocode" على الكثير من الأشياء الإضافية التي لن يفهمها غير المبرمجين. بدلاً من أن تكون رمزًا كاذبًا ، فإن لغة "psuedocode" الخاصة بك قريبة جدًا من لغة فعلية.

يجب أن يكون الرمز الكاذب ، من الناحية النظرية ، مستقلًا. يقدم خطوات منطقية بلغة واضحة لما يجب القيام به. هو مخصص للتفسير البشري ، وليس تنفيذ الماكينة.

مثال OP أقرب قليلاً إلى الكود الفعلي من الرمز الكاذب. علي سبيل المثال، ++ لم يتم العثور عليها في جميع اللغات. يمكن أن يكون لها معنى مختلف تمامًا في الآخرين.

الكود الزائف هو أي تفسير مدمج ، قابل للقراءة البشرية لخوارزمية أو برنامج. نظرًا لأن برنامجك غير قابل للقراءة بالنسبة لي ، أود أن أقول إنه ليس رمزًا زائدًا تمامًا. فيما يلي مثال على الكود الزائف:

def sum(x):
    result = 0
    for each entry in x:
        add current entry to result
    report result

أو بأسلوب مختلف قليلاً:

sum(x):
   Let x be an array
   Let result be an integer representing the result, initially 0

   for item in x:
       result += item

   return result

يمكنك استخدام عناصر بناء جملة معين (وفي الواقع ، يميل الرمز الزائف الخاص بي إلى أن يبدو مثل Python) ، ولكن يجب أن يكون مفهوماً من قبل جمهور واسع ويجب عدم إعاقة بناء الجملة. على سبيل المثال ، أستخدم "+=" ، ولكن هذا لأنه مضغوط للغاية ومريح ، ليس لأنه مطلوب. إذا وجدت "endforeach" مفيدًا ومريحًا في عرضك ، لكان الأمر على ما يرام ؛ ومع ذلك ، أود أن أزعم أن مثل هذا الشيء لا ينتمي إلى رمز زائفة لأنه يبدو أكثر أهمية من المفيد أو التوضيحي.

حسنًا ، إذا لم أقوم بتجميع/ربط رمز C ++ الخاص بي ، فلن يتم تنفيذه ، لذلك لا أعتقد أن "الكود الذي لا ينفذ" هو تعريف مقبول.

وبالمثل ، لم يتم تنفيذ لغات البرمجة النصية ، وغالبًا ما يتم تفسيرها في الأوقات.

سيكون تعريف رمز الزائفة:

[موجز] الكود الذي هو بناء الجملة ، مكتوبة لنقل وظيفة أو سلوك أو خوارزمية." "

الخطوط العريضة لبرنامج ما ، مكتوب في شكل يمكن تحويله بسهولة إلى بيانات برمجة حقيقية.

لا يمكن تجميع الرمز الكاذب أو تنفيذها ، ولا توجد قواعد تنسيق أو بناء جملة حقيقي. إنها ببساطة خطوة واحدة - خطوة مهمة - في إنتاج الكود النهائي. تتمثل فائدة الرمز الكاذب في أنه يمكّن المبرمج من التركيز على الخوارزميات دون القلق بشأن جميع التفاصيل النحوية للغة برمجة معينة.

سنتي على هذا:

أقول أن الكود الكاذب هو أي رمز لا ينفذ ، ماذا عنك؟ شكرا (روابط لهذا الموضوع ترحيب)

هذا ليس ما أفكر فيه عند التفكير في تعريفه. الرمز الكاذب هي الخطوات التي سيتخذها البرنامج لإنجاز مهمة بمزيد من التفصيل من وصف الخوارزمية.

شيء واحد على وجه الخصوص أجده مهمًا للغاية حول كيفية كتابة رمز كاذب هو أنه يجب فهمه من قبل الجميع من أجل أن "ينقله" إلى اللغة المرغوبة. وبعبارة أخرى ، يجب أن تكون لغة لاأدري.

مثلما كان النقد البناء ، لن أعتبر مثالك كحزب كاذب لأسباب مختلفة ، لكن ، خاصة لأنك تستخدم بناء الجملة والاتفاقيات التي تشبه لغة برمجة معينة. أقول إن الرموز الكاذبة يجب أن تكون غير ملائمة للبرمجة من أجل أن تكون منفذًا لعدة لغات برمجة فعلية من قبل أشخاص مختلفين.

تحرير: ربما قاعدة أخرى أود إضافتها إلى تعريفي هي أنه يجب أن تشبه اللغة البشرية من لغة البرمجة. كما في ، يساوي بدلاً من ==, تعيين بدلاً من =. والسبب وراء ذلك هو ، على سبيل المثال ، فإن مشغلي المهام والمساواة يختلفون بلغات مختلفة.

Pseudocode هو ما تكتبه على السبورة إذا كنت ترغب في الحصول على أفكارك بسرعة ووضوح. في الممارسة العملية ، بالنسبة لي ، إنها تشبه إلى حد كبير لغة البرمجة النصية غير المعطلة ، ولكن مع الكثير من المتطلبات النحوية أكثر مرونة. بالنسبة لي ، يبدو الأمر يشبه إلى حد كبير C لأنه ، بصراحة ، يزرع معظم المبرمجين بعض اللغة المتغيرة على بناء الجملة C ، وبالتالي فإن الحدس أسهل بالنسبة لمزيد من الأشخاص (كان يستخدم مثل Pascal ، ولكن هذا لأن ذلك كان أحد اللغات الأولى i تعلمت في المدرسة).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top