มีวิธีที่ดีในการเขียน pseudocode หรือไม่?


11

ฉันต้องการร่างรหัสจำลองบางส่วนแล้วแบ่งปันกับผู้อื่นที่ไม่ได้ใช้ emacs

มีวิธีที่ดีในการทำเช่นนี้? ฉันพยายามที่จะทำมันในโหมดองค์กร แต่มันก็ไม่ได้เยื้องอย่างเหมาะสม ฯลฯ ...


มีคนเขียนโหมด pseudocodeแต่ขณะที่การเขียนนี้มีเพียงการเน้นไวยากรณ์โดยไม่มีการเยื้อง
dsedivec

คำตอบ:


4

ฉันไม่รู้โหมดรหัสเทียม แต่ก็น้อยกว่าดังนั้นจึงรองรับโหมดนี้ในโหมด org

อย่างไรก็ตามคุณสามารถเขียนโค้ดหลอกใน#+BEGIN_EXAMPLEบล็อกแน่นอนโดยไม่ต้องเยื้องหรือคุณตัดสินใจสำหรับภาษาที่แท้จริงเป็นไวยากรณ์พื้นฐานและหลอกรหัสในนั้นและได้รับการเยื้องและเน้นไวยากรณ์สวย Ruby อาจเป็นตัวเลือกที่ดีหรือ C / C ++ เก่าที่ดีบางที Java ...

นี่คือลักษณะ:

#+HEADER: :exports both :results output
#+BEGIN_SRC ruby
class Pseudoclass
  def pseudofunction(items)
    add five to each item
  end
end

pseudoinstance = new Pseudoclass instance
call pseudofunction of pseudoinstance with list 2, 3, 4
#+END_SRC

0

ในกรณีที่คุณยอมรับที่จะแบ่งปัน pseudocode ของคุณในรูปแบบ LaTeX หรือ PDF คุณสามารถใช้แพคเกจmintedเพื่อผสมการแสดงออกของโทรพิมพ์และการเยื้องอย่างดีกับการแสดงออกทางคณิตศาสตร์ของ LaTeX นี่คือตัวอย่างของอัลกอริทึมของ Prim ที่รู้จักกันดี:

#+begin_export latex
\begin{minted}[escapeinside=||,mathescape=true]{text}
Prim's Algorithm(|$V, s$|)
|$T = \varnothing$|
|$U = \{ s \}$|
while (|$U \neq V$|)
    let |$(u, v)$| be the lowest cost edge in the cut |$(U, V-U)$|
    |$T = T \cup \{(u, v)\}$|
    |$U = U \cup \{v\}$|
\end{minted}
#+end_export

ซึ่งมันกลายเป็น ป้อนคำอธิบายรูปภาพที่นี่

หากคุณต้องการแชร์ข้อมูลรหัสเทียมนี้เพียงแค่คุณต้องเลือกบล็อกและการโทรนี้org-latex-export-as-latexหรือorg-latex-export-to-pdfขึ้นอยู่กับรูปแบบที่คุณต้องการส่งออก (คุณอาจต้องการปรับเปลี่ยนเล็กน้อยตัวเลือกโหมดองค์กรเพื่อให้มีเค้าโครงที่น่าพอใจ) ในการเขียน pseudocode อย่างง่าย ๆ คุณสามารถเปลี่ยนตัวmintedคั่นนิพจน์ทางคณิตศาสตร์และใช้yasnippetหรือบล็อกยางพาราที่กำหนดเองเพื่อกำจัดตัวเลือกเหล่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.