none
続・初めてプログラムを組んだんですが・・・ RRS feed

  • 質問

  • 計算用プログラムを組み、一回計算が終わるごとにもう一回プログラムを起動させないといけないことが気になったので、計算後に続けてもう一回同じプログラムを頭から使えるように変更しようとしました。

    ですがプログラムを指定場所まで戻す命令が分かんなくて、ループさせることが出来ません。考え方は参考書である程度分かりますが、実際のプログラムについては書いてないのでさっぱりで・・・

    下に書きかけのプログラムのループに関する部分を写したんでご指導お願いします!

     

     // (9) 継続判断
        cout << "続けて使いますか?" << endl;
        cout << "Yesなら1、Noなら2を入力してください。" << endl;
        cin >> a;

     // (10) Yesなら(1)まで戻り、Noなら終了
     // (10.1) a<=1ならば(1)まで戻る
     if(a <= 1){

     

      ここを(1)にループできるように変更したいんですが・・・ 

     

     }

      // (10.2) a>1ならば終了
      else if(a > 1){
      cout << "お疲れ様でした~♪" << endl;

    2007年12月23日 6:57

回答

  • こんな感じでどうでしょうか?

    関数を使うと楽になると思います。

    ※下の例は処理の考え方を書いていますのでそのままではビルドできません。

     

    void 計算処理関数()

    {

     //(1)~(8)までの処理

    }

     

    //メイン関数

    main()

    {

     //(1)~(8)までの処理を関数にして実行する

     計算処理関数();

     //継続判断でNoが指定されるまでループさせる

     while(1)

     {

      (9) 継続判断;

      if(継続判断Noならば)

      {

       break;

      } 

      //(1)~(8)までの処理を関数にして実行する

      計算処理関数(); 

     }

    }

    2007年12月23日 14:53
  • 外池です。

     

    私はVB使いなので、C++の正確なステートメントはわかりませんが、「考え方」だけを書いておけば・・・、

     

    void mainでは、

    ループ開始

       計算のための関数を呼び出す

       終了判定のための入力をしてもらう

    ループ終了(判定式を書いておく。もう一度か? 終了か?)

     

    これとは別に、計算のための関数を記述しておく。

     

    要するに、計算のためのプログラム全体を、ループでくくってしまえば良いわけです。

     

    最近のプログラミング言語では、「プログラムの中の場所を指定してジャンプする」という機能は、まずお目にかかることはないので、「ループでくくる」という考え方に慣れるようにしてください。で、ループに入るところ、あるいは、ループを出るところで、条件判定をしてやります。

     

    やはり、良い参考書(本当に書物のもの)を見つけられることをお奨めします。どのような分野で今後プログラミングをして行くことになるのか、何か見通しを教えていただければ、どんな本が良いか相談に乗りますよ?

     

    2007年12月23日 15:00

すべての返信

  • こんな感じでどうでしょうか?

    関数を使うと楽になると思います。

    ※下の例は処理の考え方を書いていますのでそのままではビルドできません。

     

    void 計算処理関数()

    {

     //(1)~(8)までの処理

    }

     

    //メイン関数

    main()

    {

     //(1)~(8)までの処理を関数にして実行する

     計算処理関数();

     //継続判断でNoが指定されるまでループさせる

     while(1)

     {

      (9) 継続判断;

      if(継続判断Noならば)

      {

       break;

      } 

      //(1)~(8)までの処理を関数にして実行する

      計算処理関数(); 

     }

    }

    2007年12月23日 14:53
  • 外池です。

     

    私はVB使いなので、C++の正確なステートメントはわかりませんが、「考え方」だけを書いておけば・・・、

     

    void mainでは、

    ループ開始

       計算のための関数を呼び出す

       終了判定のための入力をしてもらう

    ループ終了(判定式を書いておく。もう一度か? 終了か?)

     

    これとは別に、計算のための関数を記述しておく。

     

    要するに、計算のためのプログラム全体を、ループでくくってしまえば良いわけです。

     

    最近のプログラミング言語では、「プログラムの中の場所を指定してジャンプする」という機能は、まずお目にかかることはないので、「ループでくくる」という考え方に慣れるようにしてください。で、ループに入るところ、あるいは、ループを出るところで、条件判定をしてやります。

     

    やはり、良い参考書(本当に書物のもの)を見つけられることをお奨めします。どのような分野で今後プログラミングをして行くことになるのか、何か見通しを教えていただければ、どんな本が良いか相談に乗りますよ?

     

    2007年12月23日 15:00
  • お二人様ともありがとうございました。

    とりあえず

    while

    を使ってなんとかループ構造を作ることが出来ました。

    voidとかの意味がいまいち良く分かってないのでちょっと強引な感じになっちゃってますがこれからちょっとずつ更新していこうと思います!
    2007年12月24日 5:54
  • こんにちは。中川俊輔 です。

     

    C.Johnさん、外池さん、丁寧な回答ありがとうございます。

     

    とある大学生さんへ

    問題が解決されたようなので、C.Johnさん、外池さんの回答へ回答済みチェックをつけさせていただきました。

     

    「回答済み」チェックがつかないままだとフォーラム内の検索機能ではこの投稿は検索対象にならず、
    同じ問題で困っている方が見つけることができなくなり、非常にもったいないです。

    問題解決につながる回答があった場合は、回答済みボタンを押してチェックを付けてください。

     

    とある大学生さんはチェックを解除することもできますので、ご確認ください。

     

    プログラミング学習頑張ってください!

     

    2007年12月27日 7:48