• ベストアンサー

プログラミングの問題

整数nをキーボードから入力し、1からnまでの数のうち奇数だけを加えた和を計算し表示するプログラム ヒント ・変数xが奇数か偶数かは、MOD(x、2)が0か否かで判断できる。 ・FOR~NEXT構文のなかでも、 IF~THEN~ELSE~END IF 構文を使える。 という問題で、 input n let s=0 for i=1 to n までしかわかりませんでした。 いったいこのあとはどうなるのか、教えてください。 おねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

REM MOD関数が使用できる実装の一つである十進BASICのコード REM 折角だからちょっと凝ったコードにしてみた。 PRINT "1からNまでの奇数を合計します。" PRINT "1以上の整数Nを入力してください" INPUT N IF (N >= 1) AND (MOD(N,1) = 0) THEN LET S=0 FOR I = 0 TO N IF (MOD(I,2) = 1) THEN PRINT I;"は奇数です" LET S = S + I PRINT "ここまでの合計は";S;"です" ELSEIF (MOD(I,2) = 0) THEN PRINT I;"は偶数です" PRINT "ここまでの合計は";S;"です" END IF NEXT I PRINT "1から";N;"までの奇数の合計は";S;"です" ELSE PRINT "正しいNが入力されませんでした" END IF PRINT "プログラムを終了します" END

ruikiti
質問者

お礼

とても参考になりました。 もう1度、自分でやってみます。 ありがとうございました。

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

まずは手順を紙に書いてみましょう。 1,入力>偶奇判定>加算 1のプログラムが出来たら、ループを使って連続入力。

ruikiti
質問者

お礼

やってみます。 ありがとうございました。

関連するQ&A

  • プログラミングの問題です

    このプログラムは何をするものか詳しく説明しなさい。 100 FOR x=1 TO 100 110 FOR y=x TO 100 120 LET a=x 130 LET b=y 140 DO 150 LET r=MOD(a,b) 160 IF r=0 THEN EXIT DO 170 LET a=b 180 LET b=r 190 LOOP 200 IF b=1 THEN 210 LET z=SQR(x^2+y^2) 220 IF INT(z)=z THEN PRINT x,y,z 230 END IF 240 NEXT y 250 NEXT x プログラムに関して初心者で、120~230(ほとんどですが…)の部分で何をしようとしているのかが分かりません。何か参考になるHPや考え方だけでも教えていただけないでしょうか。

  • 整数でないとき

    10 INPUT X 20 IF X=0 THEN END 30 C=X-2*INT(X/2) 40 IF C=0 THEN PRINT”偶数” ELSE PRINT”奇数” 50 GOTO 10 というプログラムはXが整数でなければ奇数と判定してしまいます。20行と30行の間に命令を追加して、Xが整数でないときは”整数でない”と表示して、次の入力を待つように修正し、整数のときだけ奇数か偶数かを判定するようにするには、 25 IF X^2>INT(X^2) THEN PRINT”整数でない”:GOTO 10 を追加する。 でよいのでしょうか? ぜひ教えてください。 

  • 中2レベルの文字式の利用(説明問題です)

    偶数と奇数の和は奇数となる。 この理由を説明する問題です m,nを整数とする。mを使って偶数を表すと2m、nを使って奇数を表すと2n+1となる。よって、偶数と奇数の和は2m+(2n+1)=2(m+n)+1。m+nは整数だから2(m+n)+1は奇数である。したがって、偶数と奇数の和は奇数となる。 これが解答書の回答です 私は、奇数を表す式を2n-1として、偶数と奇数の和は2m+(2n-1)=2(m+n)-1としました この説明でも正解だと思うのですが間違いないでしょうか? このような問題の場合、解答書のほとんどは奇数を2m+1や2n+1と表していますが、例えば 奇数と奇数の和は奇数である。を説明する場合も私は2m-1と2n-1と表して説明します。 明日、数学の期末テストです。 心配になったので質問させてもらいました。 どうか、アドバイスをお願いします。

  • C言語でのプログラミングの問題が分かりません。

    C言語でのプログラミングの問題が分かりません。 課題で出た問題なのですがわからないのでおしえてください。 問題は 値を入力します(nとします) nが1でない間、以下の処理を繰り返します。  (1)nが偶数のとき、nを2で割り、その答えを新しいnとします。  (2)nが奇数のとき、nを3倍してから1を加え、その答えを新しいnとします。 というものです。 if文を使い計算はできたのですが、「繰り返し」と「新しいnとする」部分が分かりませんでした。作成したプログラムを載せるので手直しお願いいたします。 int n,x,y; printf("整数を入力"); scanf("%d",&n); while (n>1) if (n%2) printf("%d",x=n*3+1); else printf("%d",y=n/2); putchar('\n'); return(0); です。このままだと無限ループしてしまうので繰り返しの条件が悪いみたいです。 それと、答えをnに入れたいのにx、yを使ってしまっています。 回答お願いします。

  • ビジュアルベーシックにおいてのプログラミング

    1、キーボードから入力される正の整数を読み込み、この数より大きい最小の偶数をディスプレイに出力するプログラムを作りたいです。意味は1が入力されたらこれより大きい最小の偶数は2ということですよね?これをどう表現したらいいかわかりません。 2、2つの正の整数n、mを端末から読み込み2つの数の間にある(等しい場合も含む)奇数の和を求めるプログラムを作れ。n、mはどっちが大きいかは不明これに関してはまったく見当がつきません。みなさんアドバイスよろしくお願いいたします。

  • 分からない問題があります。

    分からない問題があります。 高校数学です。 袋の中に3n枚のカードがありそれぞれに1から2nまでの数字のどれか一つが書いてある。 奇数1から2n-1の書かれたカードは各一枚、偶数2から2nの方は各二枚である。 この箱から同時に二枚のカードを無作為に選び、そのうち最大の数字をXとする。 整数kを2≦k≦2nを満たす整数とする。 X=kとなる確率をkが偶数・奇数になる場合にわけて求めなさい。

  • 課題で困っています...

    課題の演習問題で困っております。 課題は、 数nを入力し、1からnまでの奇数の和、偶数の和および1からnまでの和を計算し、表示するアプリを作りなさい...といったものですが、1からnまでの和については表示させることができたのですが、Modを使った奇数の和、偶数の和の表示がどうもうまくいきません。 ご存じの方は、どうぞご教示ください。 よろしくお願いします。

  • 整数問題?

    10進法で表された数の奇数位の和と偶数位の和との差が11で割り切れるとき、もとの整数は11で割り切れることを示すことはできますか??どうか教えてください。

  • 質問です。

    連続した23個の整数があり、奇数の和と偶数の和の差が40になります。この23個の 整数の中で一番小さい数はいくつですか。 解説: 奇数の和と偶数の和の差が40の偶数になるには、奇数が12個、偶数が 11個の場合となる。 よって40-11=29となる。とありますが 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 このように 連続した23個の中に偶数が12個と奇数が11個となり奇数より偶数の個数の方が多くなる場合もあると思いますがこのような時は状況が変わるので答えも違うのではないのでしょうか? よくわからないので教えてください。

  • 偶数と奇数について

    なぜ、偶数と奇数は、整数のみなんでしょうか? 偶数は2で割れる整数 偶数=2n 奇数は2で割れない整数 奇数=2n+1 となっていますが、なぜなのかがわかりません よろしくお願いします

専門家に質問してみよう