logo

疑似コードとは: 完全なチュートリアル

疑似コード アルゴリズムの段階的な説明として定義されます。擬似コードは、機械による読み取りではなく人間の理解が目的であるため、その表現にプログラミング言語を使用せず、代わりに単純な英語のテキストを使用します。
擬似コードは、 アイデアとその実装(コード)の間の中間状態 高級言語で。

疑似コードとは: 完全なチュートリアル

疑似コードとは: 完全なチュートリアル



擬似コードの必要性は何ですか

擬似コードはアルゴリズム設計の重要な部分であり、プログラマーが問題の解決策を計画するのに役立ち、読者が問題へのアプローチを理解するのに役立ちます。擬似コードは、アルゴリズムとプログラムの間の中間状態であり、アルゴリズムからプログラムへの移行をサポートします。

擬似コードはアルゴリズムとプログラムの間の中間状態です

擬似コードはアルゴリズムとプログラムの間の中間状態です

擬似コードはどのように書くのでしょうか?

アルゴリズムの擬似コードを作成する前に、次の点に留意する必要があります。



  • タスクのシーケンスを整理し、それに応じて疑似コードを作成します。
  • まず、主な目標または目的を設定します。

    例:

    このプログラムは最初に印刷します N フィボナッチ数列の数。

  • 次のような標準的なプログラミング構造を使用します。 if-elseのためにその間 、 そして ケース プログラミングでそれらを使用する方法。 if-else、for、while ループのステートメントをプログラム内でインデントされているのと同じようにインデントすると、意思決定の制御と実行メカニズムを理解するのに役立ちます。また、可読性も大幅に向上します。

    例:



    もし1
    応答を印刷する
    私はケース1です

    もし2
    応答を印刷する
    私はケース2です

  • 適切な命名規則を使用してください。人間の傾向は、見たものに従うというアプローチに従います。プログラマが疑似コードを実行する場合、そのアプローチはそれと同じになるため、名前付けはシンプルかつ明確でなければなりません。
  • 予約されたコマンドまたはキーワードは、次のように表す必要があります。 大文字

    例: IF…ELSE ステートメントを作成する場合は、IF と ELSE が大文字であることを確認してください。

    Javaスイッチケース
  • 疑似コードのすべてのセクションが完全であるか、有限であるか、理解しやすいかどうかを確認してください。また、実際のコードで何が起こるかをすべて説明してください。
  • 疑似コードをプログラミング言語で記述しないでください。疑似コードは、専門用語の使用を最小限に抑え、素人やクライアントにとってもシンプルで理解しやすいものである必要があります。

擬似コードの書き方の良い方法と悪い方法:

擬似コードの良い書き方と悪い方法

擬似コードの良い書き方と悪い方法

疑似コードの例:

1.B inary search 擬似コード :

二分探索 です 検索アルゴリズム これはソートされた検索スペースに対してのみ機能します。探索空間を繰り返し分割します。 半分 検索スペースがソートされていることを利用し、目的の検索結果が左半分または右半分に見つかるかどうかを確認します。

例: ソートされた配列が与えられた場合 到着[] そして値 バツ , タスクは、次のインデックスを見つけることです。 バツ に存在します 到着[]

以下は二分探索の疑似コードです。

バイナリサーチ(ARR、X、LOW、HIGH)
LOW = HIGHになるまで繰り返します
中 = (低 + 高)/2
if (X == ARR[mid])
MIDを返す

else if (x> ARR[MID])
低 = 中 + 1

それ以外
高 = 中 – 1

2. クイックソート疑似コード:

クイックソート 分割統治アルゴリズムです。要素を ピボット そして、選択されたピボットを中心に指定された配列を分割します。

配列の最後の要素がピボットとして選択され、ピボット要素より小さいすべての要素がピボットの左側にシフトされ、ピボットより大きい要素が交換によってピボットの右側にシフトされ、同じアルゴリズムが左右で繰り返し実行されるとします。配列全体がソートされるまでピボットの側に移動します。

以下はクイックソートの疑似コードです。

QUICKSORT(Arr[], LOW, HIGH) {
if (低PIVOT = PARTITION(ARR, LOW, HIGH);
クイックソート(ARR、LOW、ピボット – 1);
クイックソート(ARR、ピボット + 1、高);
}
}

ここで、LOW は開始インデックス、HIGH は終了インデックスです。

アルゴリズムと擬似コードの違い

アルゴリズム

疑似コード

C# コード例

アン アルゴリズム は、明確に定義されたステップベースの形式で特定の問題に対する解決策を提供するために使用されます。

擬似コードは、平文の英語テキストを使用した、コードのような構造でアルゴリズムを段階的に説明したものです。

アルゴリズムは簡単な英単語のみを使用します

疑似コードでは、if-else、for、while などの予約キーワードも使用します。

これらは問題を解決するための一連のステップです

擬似という言葉が偽物を意味するように、これらは偽のコードであり、コードのような構造と平文の英語テキストを使用しています。

アルゴリズムの作成にルールはありません

疑似コードの記述には一定のルールがあります

アルゴリズムは擬似コードとみなすことができます

擬似コードはアルゴリズムとみなされません

理解も解釈も難しい

理解しやすく解釈しやすい

フローチャートと疑似コードの違い

フローチャート

疑似コード

フローチャートは、アルゴリズムの流れを図で表現したものです。

擬似コードは、平文の英語テキストを使用した、コードのような構造でアルゴリズムを段階的に説明したものです。

フローチャートでは、入力、出力の決定、および開始停止ステートメントに標準シンボルを使用します。ボックス、円、矢印などの異なる形状のみを使用します。

C++での継承

疑似コードでは、if-else、for、while などの予約キーワードを使用します。

これはデータを視覚的に表現する方法であり、コードをよりよく理解するためのアルゴリズムのグラフィック表現にすぎません。

疑似という言葉が偽物を意味するように、これらは偽のコードであり、コードのような構造を使用していますが、プログラミング言語の代わりにプレーンな英語のテキストを使用しています。

フローチャートはドキュメントに適しています

疑似コードは理解する目的に適しています。

1. Infosys 疑似コードの質問:

次の疑似コードの出力はどうなるでしょうか?

質問1) i=0 ~ 4 の場合、ステップ 1 を実行します。
i==i++ + –i の場合は、次のようにします
私を表示します
終了-if
エンドフォー
答え: 0

質問2) 文字 c = 「7」を設定します
スイッチ(c)
ケース「1」: 1 つを表示します
ケース「7」: 7 を表示
ケース「2」: 2 を表示します
デフォルト: こんにちはを表示します
壊す
エンドスイッチ
答え: セブンツーハロー

質問3) 整数 a、p
a = 5 を設定します
a = a + 1
a = a * 2
a = a / 2
p = a / 5 + 6
プリントp
答え: 7

質問4) 整数 a、b、c
b = 40、a = 20、c = 20 と設定します。
a = a + c
c = c + a
a = a + c
c = c + a
a + b + c を印刷します
答え: 300

質問5) 整数 a、b、c
a = 4、b = 3、c = 1 を設定します。
if (a>> (c – 1) && b << (c + 1))
a = a + c
それ以外
b = a <<< C
次の場合に終了
a – b + c を印刷する
答え: 3

2. Accenture 擬似コードの質問:

次の疑似コードの出力はどうなるでしょうか?

質問1) a = 5、b = 1 の場合、次の疑似コードの出力はどうなるでしょうか?

整数検索(整数 a, 整数 b)
if(b + a || a – b) && (b> a) && 1)
a = a+b+b-2
3-aを返す
それ以外
a-b+1 を返す
次の場合に終了
a + bを返す
関数 fun() を終了します
答え: 5

質問2) a = 5、b = 1 の場合、次の疑似コードの出力はどうなるでしょうか?

整数検索(整数 a, 整数 b)
if((b mod a && a mod b) || (a ^ b> a))
a=a ^ b
それ以外
a-bを返す
次の場合に終了
a + bを返す
関数 find() の終了
答え: 5

質問3) 次の疑似コードの出力はどうなるでしょうか?

整数 a、b、c
a = 4、b = 4、c = 4 を設定します。
if (a & (b ^ b) & c)
a = a>> 1
次の場合に終了
a + b + c を印刷します
答え: 12

質問4) a = 10、b = 11 の場合、次の疑似コードの出力はどうなるでしょうか?

整数検索(整数 a, 整数 b)
もし(0)
return a – b – find(-7, -1)
次の場合に終了
a = a + a + a + a
返す
関数 find() の終了
答え: 40

ライオンとトラの違い

質問5) a = 5、b = 1 の場合、次の疑似コードの出力はどうなるでしょうか?

整数検索(整数 a, 整数 b)
if(b + a || a – b) && (b> a) && 1)
a = a + b + b – 2
3 – a を返す
それ以外
a – b + 1 を返す
次の場合に終了
a + bを返す
関数 fun() を終了します
答え: 5

3. キャップジェミニ疑似コードの質問

次の疑似コードの出力はどうなるでしょうか?

質問1) a=8、b=1 の場合の次の疑似コードの出力はどうなるでしょうか?

整数検索(整数 a, 整数 b)
If(a> b && a> 0)
a + b + funn (b-1, a-1) を返します。
次の場合に終了
a + b を返す
答え: 16

決定論的有限オートマトン

質問2) p=7、q=2 の場合の次の疑似コードの出力はどうなるでしょうか?

整数検索(整数 p, 整数 q)
if(p + q <10)
1 + 検索 (p + 1, q + 1) を返します。
それ以外
リターン2
次の場合に終了
答え: 3

質問3) a=2、b=7、c=7 の場合、次の疑似コードの出力はどうなりますか?

整数検索(整数 a, 整数 b, 整数 c)
if ((b + a) <(a – b))
a = a + c
b = (10 + 10) + c
次の場合に終了
a + b + c を返す
答え: 16

質問4) 次の疑似コードの出力はどうなるでしょうか?

文字列 str1 = err、str2 = krr
Print (子音のカウント(upper(reverse(str2) + reverse(str1))))
答え: 5

質問5) 次の疑似コードの出力はどうなるでしょうか?

整数 a、b、c
a = 2、b = 11、c = 5 と設定します。
if ((4 + 5) <(6 + b))
b = c & a
次の場合に終了
a + b + c を印刷します
答え: 7

疑似コードに関するよくある質問 ( FAQ )

1) 疑似コードの 5 つのルールとは何ですか?

疑似コードを記述するための 5 つの重要なルールは次のとおりです。

  1. 書く 1つ 1 行ごとのステートメント。
  2. 最初のキーワードは次のように表す必要があります。 大文字 (読み取り、書き込み、IF、WHILE、UNTIL)。
  3. 階層を示すために、疑似コードのインデントは実際のプログラムと同様にする必要があります。
  4. 複数行構造を終了する必要があります。
  5. 発言は平易な言語(英語)で行ってください。

2) 疑似コードを開始するにはどうすればよいですか?

まず、目的を明確にするためにプロセスの目的を書く必要があります。

3) 擬似コードは学習しやすいですか?

疑似コードは、ほとんどが英語で書かれたプレーン テキストを使用するため、理解しやすく、提示しやすくなります。

4) なぜ疑似コードを使用するのでしょうか?

擬似コードは、従来のプログラミング言語コードと比較して、アルゴリズムの重要な原理を効率的かつプラットフォームに依存しない記述であるということを人々に容易に理解させます。

5) 擬似コードはアルゴリズムですか?

擬似コードはアルゴリズムを表すために使用されますが、アルゴリズムは特定の問題に対する解決策を提供する明確に定義された一連のステップであるため、擬似コードの構造は同じフローに従わない場合があります。

6) 疑似コードとフローチャートの違いは何ですか?

フローチャートは、特定の問題に対する解決策モデルと解決策の流れを示す図表現ですが、擬似コードはアルゴリズムの動作原理を非公式に高レベルで記述したものです。

7) 擬似コードとコードの違いは何ですか?

擬似コードはプログラムのアルゴリズムを表現する単なる方法であり、実際にプログラムされた場合にコードがどのように見えるかを示します。ソース コードは、コンパイラーによってコンパイルされ、マシンによって実行できる実際のコードです。

8) アルゴリズムと疑似コードはどちらが使いやすいですか?

擬似コードは英語で書かれているため、理解しやすく、構築しやすく、デバッグが簡単です。その一方で、アルゴリズムはコードスニペットが含まれる場合があるため構築が非常に複雑であるため、アルゴリズムのデバッグに関しては少し困難です。

9) 疑似コードで変数を宣言するにはどうすればよいですか?

疑似コードでは、変数への値の代入は矢印記号 (←) を使用して示されます。矢印は、割り当てられている値から、割り当てられている変数の方向を指します。
例: 文字列 ← techcodeview.com は有効な割り当てです。

10) 擬似コードの end if とは何ですか?

複数行の if コマンドを終了するには、endif コマンドを使用します。コマンドは、2 つの別々の単語「end if」として指定することも、単一の単語「endif」として指定することもできます。

結論:

上記の説明で、アルゴリズムを理解する上での擬似コードの重要性を理解しました。擬似コードは、アルゴリズムに比べて構築とデバッグがはるかに簡単です。