次の図では、do-whileループまたはwhileループを使用できませんでした。
ここで、A、B、Cは関数です。上の図の擬似コードを書くにはどうすればよいですか?
編集:これはC++の私のプログラミングの練習からです。「Bループ」(または「Aループ」)がなければ、次のように書くことができます。
Start
Input x;
while(x!=2)
{
A(); Input x;
}
C();
End
しかし、「Bループ」が入ってくると、どうやって含めるのかわかりません。
次の図では、do-whileループまたはwhileループを使用できませんでした。
ここで、A、B、Cは関数です。上の図の擬似コードを書くにはどうすればよいですか?
編集:これはC++の私のプログラミングの練習からです。「Bループ」(または「Aループ」)がなければ、次のように書くことができます。
Start
Input x;
while(x!=2)
{
A(); Input x;
}
C();
End
しかし、「Bループ」が入ってくると、どうやって含めるのかわかりません。
Start;
Input x;
while(x!=2){
if (x!=1){
A();
} else{
B()
}
Input x;
}
C();
End
ただし、使用している言語に注意してください。データ取得の間にスリープモードを追加することをお勧めします(入力xの直前)
プログラムは何をしますか?英語で説明してから書き留めてください。次に、擬似コードがあります。
If any input
if input is not 1 and not 2
return a and do more input (? dont get the diagram here ;p)
if input is 1
return b and more input (??)
else if not above
return c and end program
@BaptisteGoussetの答えは良いですが、特定の状況下でより良い可能性のある別の方法があります。コードを単純化して二重入力操作を削除するために、whileの代わりにdo ... whileループを使用することは可能ですが、これにより比較ロジックが少し複雑になります。
Start;
Do
{
Input x;
if (x equals 1)
{
B();
}
elseif(x not equal to 2)
{
A();
}
} While (x not equal to 2);
C();
End;
gotoステートメントを使用してこれを実装することもできますが、gotoは有害であると見なされることがよくあります。
一般に、フローチャートに対する単一の標準的な「擬似コード」の答えはありません。これは、使用する構造と、それらの構造が実際のタスクにどれだけエレガントに適合するかによって異なります。