疑似コードの書き方を学びたいですか?疑似コードとは、あなたが作業しているプログラミング言語に書き写すことができる、あなたのアウトラインを段階的に書いたものです。言い換えれば、公式のコーディング構文ではなく、平易な言葉でコードの流れを書くということです。多くのプログラマーは、コードで書く前にアルゴリズムのロジックを計画するために擬似コードを使います。このWikiHowでは、あなたのコンピュータプログラムのために擬似コードを書く方法を紹介します。
知っておくべきこと
- 疑似コードは、プログラムの計画やロジックのトラブルシューティングに役立ちます。
- 簡単なプレーンテキストエディタ、またはペンと紙を使って疑似コードを書いてください。
- プログラム中のロジックの各行にステートメントを書きます。
擬似コードの基本
-
なぜ擬似コードが便利なのかを理解する。擬似コードは、コンピューティング・アルゴリズムがどのように動作すべきかを示すために使用されます。多くの場合、最初の計画段階と実際の実行可能コードを書く段階との間の中間段階として擬似コードを使用します。擬似コードの他の使い方には、以下のようなものがあります:
- アルゴリズムがどのように動作すべきかを記述する。擬似コードは、特定の構成要素、メカニズム、またはテクニックがプログラムのどこに現れる可能性があるか、または現れなければならないかを説明することができます。
- あまり技術的でないユーザーにコンピューティングプロセスを説明する。コンピュータがプログラムを実行するには非常に厳密な入力構文が必要だが、人間(特に非プログラマ)にとっては、コードの各行の目的を明確に述べた、より流動的で主観的な言語の方が理解しやすいかもしれない。
- グループでのコード設計高レベルのソフトウェア・アーキテクトは、プログラマーが直面する複雑な問題を解決するために、擬似コードを含めることがよくあります。あなたが他のコーダーと一緒にプログラムを開発している場合、擬似コードがあなたの意図を明確にするのに役立つことがわかるかもしれません。
擬似コードは、プログラミングの問題を考えるためのガイドとして、また、自分の考えを他の人に説明するためのコミュニケーション・オプションとして役立ちます。
-
擬似コードは主観的で非標準的であることに注意してください。擬似コードに絶対に使わなければならない決まった構文やルールはありませんが、他のプログラマーが理解しやすい標準的な擬似コード構造を使うことは、プロとしての一般的な礼儀です。 ひとりでプロジェクトをコーディングする場合、最も重要なことは、擬似コードがあなたの考えを構造化し、計画を実行するのに役立つことです。
- もしあなたが他の人と一緒にプロジェクトに取り組んでいるのであれば、その人があなたの仲間であろうと、若手のプログラマーであろうと、技術的な協力者でなかろうと、他の人があなたの意図を簡単に理解できるように、少なくともいくつかの標準的な構造を使うことが重要です。
- もしあなたが大学、コーディングキャンプ、または企業のプログラミングコースに在籍しているなら、おそらくあなたは教えられた疑似コードの「標準」に対してテストされるでしょう。この標準は、教育機関や教師によって異なることがよくあります。
明瞭であることは疑似コードの第一の目標であり、受け入れられたプログラミング規約の中で作業することは助けになるかもしれません。擬似コードを実際のコードに発展させるには、それをプログラミング言語に書き換える必要があります。
-
疑似コードの主な目的に集中しましょう。いったん軌道に乗ると、コードで書くことに戻ってしまいがちです。プログラムの各行が何をすべきかを説明する擬似コードの目的を思い出すことで、擬似コード文書を作成する間、あなたは地に足をつけた状態を保つことができます。
良い擬似コードを書く
-
プレーンテキストエディタを使う。リッチ・テキスト・ドキュメントを作成するために、ワープロ(例えば、Microsoft Word)や同様のプログラムを使いたくなるかもしれませんが、擬似コードは、それをシンプルに保つために、できるだけ書式を少なくする必要があります。
- ペンや紙を使って擬似コードを書くこともできます!いろいろなフォーマットを試して、あなたの創造的なプログラミング・プロセスに最適なものを見つけてください。
プレーンテキストエディタには(Windows)やTextEdit(Mac)があります。
-
プロセスの目的を書き出すことから始めましょう。コードの目的を説明するために1行か2行を割くことは、文書の残りの部分を構成するのに役立ちますし、擬似コードを見せる人それぞれに説明する作業を省くことにもなります。
-
1行に1つのステートメントしか書かない。擬似コード内の各ステートメントは、コンピュータの動作を1つだけ表現する必要があります。ほとんどの場合、タスクリストが適切に作成されていれば、各タスクは擬似コードの1行に対応します。タスクリストを書き出し、そのリストを擬似コードに変換し、その擬似コードを徐々に実際のコンピュータが読めるコードに発展させることを考えましょう。
-
空白とインデントを効果的に使う。テキストの "ブロック "の間に空白を使うことで、擬似コードの異なるコンポーネントを分離しておくことができます。また、各ブロックの異なる部分をインデントすることで、それらの擬似コードの部分がインデントの少ないセクションの下にあることを示します。
- 例えば、数値の入力を議論する疑似コードのセクションは、すべて同じ「ブロック」にあるべきで、次のセクション(例えば、出力を議論するセクション)は別のブロックにあるべきです。
-
必要であれば、キーコマンドを大文字にする。擬似コードの要件や、擬似コードを共有する環境によっては、実際のコードに残るコマンドを大文字にする必要があるかもしれません。
- 例えば、擬似コードの中で "if "と "THEN "コマンドを使っている場合、"IF "と "THEN "と読むように変更したいかもしれません(例えば、"IF
THEN
- 例えば、擬似コードの中で "if "と "THEN "コマンドを使っている場合、"IF "と "THEN "と読むように変更したいかもしれません(例えば、"IF
-
簡単な用語を使って書く。プロジェクトが何をするのかを書いているのであって、コードそのものを要約しているのではないことを忘れないでください。これは、コーディングを知らない人のためのデモンストレーションとして疑似コードを書く場合や、.NETのプロジェクトとして疑似コードを書く場合に特に重要です。
コーディング・コマンドを完全に削除して、各行の処理を平易な言葉で定義するだけにすることもできる。例えば、「入力が奇数の場合、'Y'を出力する」は、「ユーザーが奇数を入力した場合、'Y'を表示する」になるかもしれません。
-
擬似コードを適切な順序に保ちましょう。擬似コードを修正するために使用する言語は単純であるべきですが、それでも、擬似コードの各部分を、実行する必要がある順番に保つ必要があります。
- そうすれば、コードがトップダウンで実行されるので、実際のコードを書くのが楽になる。
-
想像に任せるものは何もない。プロセスで起こっていることはすべて、完全に記述しなければならない。擬似コードの文は、単純な英語の文に近い。擬似コードでは通常変数を使用しませんが、その代わりに変数や口座番号、名前、取引金額などのデータを使ってプログラムが何をすべきかを記述します。
-
標準的なプログラミング構造を使用する。仮に擬似コードの標準がないとしても、既存の(逐次的な)プログラミング言語の構造を使えば、他のプログラマーがあなたの手順を理解しやすくなります。if"、"then"、"while"、"else"、"loop "といった用語は、あなたの好きなプログラミング言語と同じように使いましょう。以下の構造を考えてみよう:
- if CONDITION then INSTRUCTION - これは、与えられた命令が、与えられた条件が真である場合にのみ実行されることを意味する。この場合の "命令 "は、プログラムが実行するステップを意味し、"条件 "は、プログラムがアクションを実行する前に、データが一定の基準を満たさなければならないことを意味する。
- while CONDITION do INSTRUCTION - これは、条件が真でなくなるまで、命令を何度も繰り返すことを意味します。
- do INSTRUCTION while CONDITION - これは、"while CONDITION do INSTRUCTION "に非常に似ています。最初のケースでは、命令が実行される前に条件がチェックされますが、2番目のケースでは、命令が最初に実行されます。したがって、2番目のケースでは、INSTRUCTIONが少なくとも1回は実行されます。
- 関数名(ARGUMENTS):INSTRUCTION - これは、コード内で特定の名前が使用されるたびに、それは特定の命令の略語であることを意味します。「引数」は、命令を明確にするために使用できる変数のリストです。
-
擬似コードのセクションを整理する。同じブロックの中で他の擬似コードを定義するような大きな擬似コードのセクションがある場合、括弧や他の識別子を使用して、すべてを収めるようにするとよいでしょう。
- 角括弧[code]と中括弧{code}の両方が、擬似コードの長いセグメントを含むのに役立ちます。
- コーディングの際、コメントの左側に「//」を入力することでコメントを追加することができます(例://これは一時的なステップです)。擬似コードを書くときにも、この同じ方法を使って、コーディング・テキストに収まらないメモを残すことができます。
-
あなたの擬似コードが読みやすく、明瞭であるかどうかを再チェックしてください。文書が終わるまでに、以下の質問に答えられるようにしてください:
- この擬似コードは、そのプロセスに詳しくない人でも理解できるだろうか?
- その擬似コードは、計算言語に翻訳しやすいように書かれているか?
- その擬似コードは、完全なプロセスを省略することなく記述しているか?
- 擬似コードで使われているすべてのオブジェクト名は、対象読者に明確に理解されていますか?
- もし、擬似コードのある部分に詳細な説明が必要であったり、他の人が忘れるかもしれないステップの概要が明示されていなかったりすることに気づいたら、戻って必要な情報を追加してください。
擬似コード文書の例を作成する
-
プレーンテキストエディタを開く。新しいプログラムをインストールしたくない場合は、デフォルトでメモ帳(Windows)かテキストエディット(Mac)が使えます。
-
プログラムを定義する。厳密には必要ではありませんが、ドキュメントの先頭に1文か2文の行を書いておくと、プログラムの意図が最初から明確になります:このプログラムはユーザーに挨拶を要求します。挨拶が特定の応答と一致すればその応答が送られ、一致しなければ拒否が送られます。
-
オープニングシーケンスを書く。最初のコマンド、つまりプログラムが実行されたときに最初にすべきことは、最初の行でなければなりません:print greeting "Hello stranger!"
-
次の行を追加する。最後の行と次の行の間に ↵ Enter キーを押してスペースを入れ、次の行を書きます。この例では、ユーザーが次の行のダイアログを促すようにします:print prompt press "Enter" to continue <ユーザーは "Enter "を押します>。
-
コールトゥアクションを追加します。この例では、ユーザーに挨拶を促します:print call-to-action "お元気ですか?"
-
ユーザーに回答のリストを表示します。この例でも、↵ Enterを押した後、ユーザは可能な応答のリストを見るはずです:1.元気です」 「2.最高です!」 「3.よくありません」。
-
ユーザーに入力を求める。ここで、プログラムはユーザーに回答の入力を求めます:"あなたを最もよく表す数字を入力してください。"
-
ユーザーの入力に対して "if "コマンドを作成する。ユーザーが選択できる回答は複数あるので、選択した回答に基づいて複数の結果を追加したい:if "1" print response "Dandy!" if "2" print response "Fantastic!" if "3" print response "Lighten up, buttercup!"
-
エラーメッセージを追加する。ユーザーが応答を間違って選択した場合、エラーメッセージを用意することができます:入力が認識されない場合 "You don't follow instructions very well, do you?" と表示します。
-
プログラムの他の構成要素を追加する。あなたのドキュメントに目を通し、あなたとドキュメントを読む人の両方がその意味を理解できるように、詳細を追加したり、具体化したりしましょう。このメソッドの例に従えば、あなたの最終的な擬似コード文書は次のようになるはずです:このプログラムはユーザーに挨拶を要求します。挨拶が特定の応答にマッチすれば、その応答が配信され、マッチしなけれ ば拒否が配信される。 print greeting "Hello stranger!" print prompt press "Enter" to continue
print call-to-action "How are you today?" display possible responses "1.素晴らしい!」 「3.良くない。" print 入力要求 "あなたを最もよく表す数字を入力してください:" if "1" print レスポンス "ダンディ!" if "2" print レスポンス "ファンタスティック!" if "3" print レスポンス "元気出せよ、おちょぼさん!" if 入力が認識されなかった場合 print レスポンス "君は指示にあまり従わないね?" -
文書を保存する。Ctrl+S(Windows)または⌘Command+S(Mac)を押し、名前を入力し、保存をクリックします。
コメント
最新を表示する
NG表示方式
NGID一覧