4

次の図では、do-whileループまたはwhileループを使用できませんでした。

ここに画像の説明を入力してください

ここで、A、B、Cは関数です。上の図の擬似コードを書くにはどうすればよいですか?

編集:これはC++の私のプログラミングの練習からです。「Bループ」(または「Aループ」)がなければ、次のように書くことができます。

Start
Input x;
while(x!=2)
{
A(); Input x;
}
C();
End

しかし、「Bループ」が入ってくると、どうやって含めるのかわかりません。

4

3 に答える 3

4
Start;

Input x;

while(x!=2){ 

    if (x!=1){
        A();
    } else{ 
        B()
    }
    Input x;
}

C();

End

ただし、使用している言語に注意してください。データ取得の間にスリープモードを追加することをお勧めします(入力xの直前)

于 2012-04-23T07:41:54.917 に答える
2

プログラムは何をしますか?英語で説明してから書き留めてください。次に、擬似コードがあります。

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
于 2012-04-23T07:11:10.310 に答える
2

@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は有害であると見なされることがよくあります。

一般に、フローチャートに対する単一の標準的な「擬似コード」の答えはありません。これは、使用する構造と、それらの構造が実際のタスクにどれだけエレガントに適合するかによって異なります。

于 2018-01-05T15:12:46.590 に答える