Sahte kod yazmak, kod yazmak gibi bir şeydir: Siz (ve birlikte yazdığınız kişiler) gerçekte bir standarda uyduğu sürece, hangi standarda uyduğunuz önemli değildir .
Ancak kayıt için, ders notlarımda, araştırma yazılarımda ve yaklaşmakta olan kitabımda kullandığım kendine özgü standart.
Kontrol akışı ve hafıza erişimi için standart zorunlu sözdizimini kullanın - eğer, süre için, eğer, [index], function (arguments), return içinse. "Başkasa" kelimesini heceleyin.
- Ancak kullanım yerine ya dafield(record)
record.field
record->field
Matematik standart matematiksel simgelem - Yazma yerine , bir mod b yerine , s ≤ t yerine , ¬ p yerine , √xyx*y
amodba%b
s≤ts <= t
¬p!p
yerine,πyerine,yerine∞, vb.x−−√sqrt(x)
πPI
∞MAX_INT
Fakat problemi önlemek için kullanın .x←y==
Ancak eğer İngilizce daha açıksa, notasyondan (ve sözde koddan!) Tamamen kaçının.
- Simetrik olarak, gösterim açıksa İngilizce'den kaçının!
Sözdizimsel şekeri en aza indirin - Blok yapısını tutarlı girinti ile işaretleyin (à la Python). "Başla / Sona" veya "Do / Od" veya "Fi" gibi şekerli anahtar kelimeleri atlayın. Satır numaralarını atlayın. Do not "için" gibi anahtar kelimeler vurgulamak veya "iken" veya "eğer" Farklı onları ayarlayarak typeface
veya stil . Hiç. Sadece yapma
Fakat \ textsc {Small Caps} içindeki dizgi algoritma adları ve sabitleri, italik değişken isimleri ve sans serif içindeki değişmez dizeler.
Ancak \\[0.5ex]
anlamlı kod parçaları arasında az miktarda dikey "nefes" boşluğu ( ) ekleyin .
Önemsiz ayrıntıları belirtmeyin. Köşeleri hangi sırayla ziyaret ettiğiniz önemli değilse, sadece "tüm köşeler için" deyin.
Örneğin, burada Borůvka'nın minimum yayılan ağaç algoritmasının özyinelemeli bir formülasyonu var . Daha önce yi , L kümesindeki tüm kenarları daraltarak G'den elde edilen grafik olarak tanımladım ve ilmekleri ve paralel kenarları kaldıran bir alt rutin olarak Yassılaştır.G / LG,L
Kendi hafif algorithm
LaTeX ortamımı psseudocode dizmek için kullanıyorum. (Bu sadece tabbing
içindeki bir ortam \fbox
.) İşte Borůvka'nın algoritması için kaynak kodum:
\begin{algorithm}
\textul{$\textsc{Borůvka}(G)$:}\+
\\ if $G$ has no edges\+
\\ return $\varnothing$\-
\\[0.5ex]
$L \gets \varnothing$
\\ for each vertex $v$ of $G$\+
\\ add the lightest edge incident to $v$ to $L$\-
\\[0.5ex]
return $L \cup \textsc{Borůvka}(\textsc{Flatten}(G / L))$
\end{algorithm}