छद्म कोड के लिए मानक?

वोट
24

मैं अपने गुरु थीसिस के लिए छद्म कोड में कुछ अजगर और जावा दिनचर्या का अनुवाद लेकिन मुसीबत एक वाक्य रचना / शैली है कि के साथ आ करने की जरूरत है:

  • संगत
  • समझने में आसान
  • बहुत वर्बोज़ नहीं
  • भी प्राकृतिक भाषा के करीब नहीं
  • बहुत कुछ ठोस प्रोग्रामिंग भाषा के करीब नहीं।

कैसे आप छद्म कोड लिख सकता हूँ? वहाँ किसी भी मानक सिफारिशें हैं?

20/02/2010 को 10:58
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


7 जवाब

वोट
16

मैं "परिचय एल्गोरिदम करने के लिए" पुस्तक (Cormen, Leiserson और रिवेस्ट द्वारा) देखने की सलाह देते। मैं हमेशा एल्गोरिदम के अपने छद्म कोड वर्णन बहुत ही स्पष्ट और सुसंगत पाया है।

एक उदाहरण:

DIJKSTRA(G, w, s)
1  INITIALIZE-SINGLE-SOURCE(G, s)
2  S ← Ø
3  Q ← V[G]
4  while Q ≠ Ø
5      do u ← EXTRACT-MIN(Q)
6         S ← S ∪{u}
7         for each vertex v ∈ Adj[u]
8             do RELAX(u, v, w)
20/02/2010 को 11:03
का स्रोत उपयोगकर्ता

वोट
4

कोड प्रक्रियात्मक है, तो सामान्य छद्म कोड (विकिपीडिया कुछ उदाहरण है) शायद आसान है।

वस्तु उन्मुख छद्म कोड और अधिक कठिन हो सकता है। विचार करें:

  • यूएमएल वर्ग चित्र का उपयोग कर वर्गों चित्रित करने के लिए / inheritence
  • यूएमएल अनुक्रम आरेख का उपयोग कर कोड के अनुक्रम को चित्रित करने की
20/02/2010 को 11:05
का स्रोत उपयोगकर्ता

वोट
5

मैं तुम्हें पर एक नज़र डालें का सुझाव किले प्रोग्रामिंग भाषा

यह एक है वास्तविक प्रोग्रामिंग भाषा है, और नहीं स्यूडोकोड, लेकिन यह संभव के रूप में निष्पादन योग्य स्यूडोकोड के नजदीक होना करने के लिए डिजाइन किया गया था। विशेष रूप से, वाक्य रचना डिजाइन करने के लिए, वे पढ़ सकते हैं और विश्लेषण किया सैकड़ों सीएस की और गणित पत्र, पाठ्यक्रम, पुस्तकों और पत्रिकाओं स्यूडोकोड और अन्य कम्प्यूटेशनल / गणितीय अंकन के लिए आम उपयोग पैटर्न खोजने के लिए।

तुम बस किले स्रोत कोड देख और चीजें आप की जरूरत नहीं है बाहर सार संक्षेप, के बाद से अपने लक्षित दर्शकों, मानव है, जबकि किले के एक संकलक है द्वारा सभी कि अनुसंधान का लाभ उठा सकें।

यहाँ एक है वास्तविक से किले कोड चलाने का उदाहरण NAS (नासा उन्नत सुपरकंप्यूटिंग) संयुग्मी ढाल समानांतर बेंचमार्क । एक मजेदार अनुभव के लिए, की तुलना विनिर्देश के साथ बेंचमार्क के कार्यान्वयन किले में और नोटिस लगभग है कैसे वहाँ एक 1: 1 पत्राचार। इसके अलावा अन्य भाषाओं, सी या फोरट्रान तरह के एक जोड़े में कार्यान्वयन की तुलना की, और ध्यान दें कि वे किस तरह कुछ नहीं विनिर्देश साथ क्या करना है (और यह भी अक्सर कल्पना से अधिक समय परिमाण के एक आदेश हैं)।

मैं तनाव करना होगा: इस स्यूडोकोड नहीं है, यह वास्तविक काम कर किले कोड है! किले कोड उदाहरण http://ProjectFortress.Sun.Com/Projects/Community/raw-attachment/wiki/FortressQuestions/NAS-CG.png

संपादित करें: ऊपर कोड उदाहरण लिंक मर चुका है। संभवत: इसी तरह के उदाहरण यहां पाया जा सकता: https://umbilicus.wordpress.com/2009/10/16/fortress-parallel-by-default/

20/02/2010 को 15:33
का स्रोत उपयोगकर्ता

वोट
3

मैं की "बहुत कुछ ठोस प्रोग्रामिंग भाषा के करीब नहीं" आपकी आवश्यकता नहीं समझते।

अजगर आम तौर पर छद्म कोड लिखने के लिए एक अच्छे उम्मीदवार के रूप में माना जाता है। शायद अजगर का थोड़ा सरलीकृत संस्करण आप के लिए काम करेगा।

20/02/2010 को 15:39
का स्रोत उपयोगकर्ता

वोट
2

पास्कल हमेशा पारंपरिक रूप से सबसे स्यूडोकोड के समान हो गया है, जब यह गणितीय और तकनीकी क्षेत्रों के लिए आता है। मैं पता नहीं क्यों, यह सिर्फ हमेशा इतनी थी।

मैं कुछ (ओह, मैं नहीं जानता कि, एक शेल्फ पर 10 शायद पुस्तकें, जो ठोस इस सिद्धांत) है।

अजगर के रूप में सुझाव, अच्छा कोड हो सकता है, लेकिन यह रूप में अच्छी तरह तो पढ़ने योग्य नहीं हो सकता है, कि यह अपने आप में एक आश्चर्य है। पुराने भाषाओं अपठनीय बनाने के लिए कड़ी मेहनत कर रहे - उन्हें जा रहा है "सरल" आज के लोगों की तुलना में (सावधानी के साथ लेने के लिए)। वे शायद समझने के लिए क्या हो रहा है कठिन है, लेकिन आसान हो (कम वाक्य रचना / भाषा सुविधाओं को समझने के लिए क्या कार्यक्रम करता है के लिए आवश्यक है) को पढ़ने के लिए की जाती है।

20/02/2010 को 16:15
का स्रोत उपयोगकर्ता

वोट
7

: मेरे अपने प्रश्न का उत्तर देना, मैं सिर्फ LaTeX में छद्म कोड टाइप बैठना के बारे में निम्नलिखित वेबपेज की ओर ध्यान आकर्षित करना चाहता था http://www.tex.ac.uk/cgi-bin/texfaq2html?label=algorithms । वे विभिन्न शैलियों, सूची फायदे और कमियां के एक नंबर का वर्णन। Newalg और clrscode: संयोग से, वहाँ के रूप में ऊपर की सिफारिश की, Cormen द्वारा "एल्गोरिथम का Introductin" में इस्तेमाल किया ढंग से छद्म कोड लिखने के लिए दो स्टाइलशीट का अस्तित्व होता है। बाद खुद को Cormen द्वारा लिखा गया था।

25/02/2010 को 15:08
का स्रोत उपयोगकर्ता

वोट
0

इस पोस्ट में पुराना है, लेकिन उम्मीद है कि इस दूसरों की मदद करेगा।

"परिचय एल्गोरिदम करने के लिए" पुस्तक (Cormen, Leiserson और रिवेस्ट द्वारा) एल्गोरिदम के बारे में पढ़ने के लिए एक अच्छी किताब है, लेकिन "छद्म कोड" भयानक है। क्यू [1 ... n] जैसी चीजें बकवास जब एक को समझने के लिए क्यू क्या [1 ... n] लगता है मतलब की जरूरत है। जिनमें से बाहर ध्यान दिया जाना पड़ेगा "छद्म कोड।" इसके अलावा, "एल्गोरिथम का परिचय" की तरह किताबें एक गणितीय वाक्य रचना है, जो छद्म कोड में से एक उद्देश्य उल्लंघन कर रहा है का उपयोग करना चाहते।

छद्म कोड दो काम करने चाहिए। सार वाक्य रचना से दूर और पढ़ने में आसान हो। यदि वास्तविक कोड छद्म कोड की तुलना में अधिक वर्णनात्मक है, और वास्तविक कोड और वर्णनात्मक है, तो यह छद्म कोड नहीं है।

यदि आप एक साधारण प्रोग्राम लिख रहे थे कहो।

स्क्रीन डिजाइन:

Welcome to the Consumer Discount Program!
Please enter the customers subtotal: 9999.99
The customer receives a 10 percent discount
The customer receives a 20 percent discount
The customer does not receive a discount
The customer's total is: 9999.99

चर सूची:

TOTAL:         double
SUB_TOTAL:     double
DISCOUNT:      double

छद्म कोड:

DISCOUNT_PROGRAM

    Print "Welcome to the Consumer Discount Program!"
    Print "Please enter the customers subtotal:"
    Input SUB_TOTAL

    Select the case for SUB_TOTAL
        SUB_TOTAL > 10000 AND SUB_TOTAL <= 50000
            DISCOUNT = 0.1
            Print "The customer receives a 10 percent discount"
        SUB_TOTAL > 50000
            DISCOUNT = 0.2
            Print "The customer receives a 20 percent discount"
        Otherwise
            DISCOUNT = 0
            Print "The customer does not a receive a discount"

    TOTAL = SUB_TOTAL - (SUB_TOTAL * DISCOUNT)
    Print "The customer's total is:", TOTAL

ध्यान दें कि यह पढ़ने के लिए बहुत आसान है और किसी भी वाक्य रचना को संदर्भित नहीं करती। यह बॉम और Jacopini के नियंत्रण संरचनाओं के सभी तीन का समर्थन करता है।

अनुक्रम:

Print "Some stuff"
VALUE = 2 + 1
SOME_FUNCTION(SOME_VARIABLE)

चयन:

if condition
    Do one extra thing

if condition
    do one extra thing
else
    do one extra thing

if condition
    do one extra thing
else if condition
    do one extra thing
else
    do one extra thing

Select the case for SYSTEM_NAME
    condition 1
        statement 1
    condition 2
        statement 2
    condition 3
        statement 3
    otherwise
        statement 4

दोहराव:

while condition
    do stuff

for SOME_VALUE TO ANOTHER_VALUE
    do stuff

इस एन क्वींस "छद्म कोड" (करने के लिए है कि तुलना https://en.wikipedia.org/wiki/Eight_queens_puzzle ):

PlaceQueens(Q[1 .. n],r)

    if r = n + 1
        print Q
    else
        for j ← 1 to n
            legal ← True
            for i ← 1 to r − 1
                if (Q[i] = j) or (Q[i] = j + r − i) or (Q[i] = j − r + i)
                    legal ← False
        if legal
            Q[r] ← j
            PlaceQueens(Q[1 .. n],r + 1) 

आप यह बस व्याख्या नहीं कर सकते हैं, तो आप यह काफी अच्छी तरह से समझ में नहीं आता। - अल्बर्ट आइंस्टीन

11/01/2019 को 15:02
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more