• 締切済み

プログラミング

大学のプログラミングの課題です。「西暦年を入力して、その年が閏年であるか、ないかを判定しなさい。閏年は4で割り切れる年です。ただし、4で割り切れても100で割り切れる年の内、400で割り切れない年は、閏年ではありません。」なかなか上手くできません。

みんなの回答

  • hisappy
  • ベストアンサー率46% (184/392)
回答No.5

閏年フラグ = false;(閏年ではない) if((年/4)の余り = 0)   閏年フラグ = true;ひとまず閏年。 if((年/100)の余り = 0) 閏年フラグ = false;やっぱり閏年じゃない。 if((年/400)の余り = 0) 閏年フラグ = true;閏年例外特例。 if(で、結局閏年?) 質問文で挙げている内容の言い回しがややこしいだけで、 言われている事をベタでコーディングして、 そのコーディングを日本語に再翻訳して 同じ事を言っているか確認すればいいだけです。 実際には実行して期待される結果が得られるかになりますが。 コーディングの前(のフローチャート作成の前)の、 必要な情報が整理できていないと何も始まりません。 ・・・まさか、「入力の受付方法が分からない」(無線キーボードで電波が途切れる) とか、「マシンだけあって、開発環境からの構築まで必要」 なんていう課題じゃないですよね。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

(1)4で割り切れる年の集合 (2)(1)の中で100で割り切れる年集合 (3)(2)のうち400で割り切れる年の集合 これらをベン図式を書いて考えること。 >プログラミング 言語は何ですか?それを書く必要がある、ということも認識できないレベルでは、説明を受けてもだめ。 ーー それに現在では、WEBの記事が拡充して、WEB記事を見てはいけないとはいえない時代になっている。質問コーナーに出すより、WEB照会して考えるほうが、勉強(修正の勉強など)になるだろう。K大入試問題のカニングで問題になったが、直ぐこういう質問コーナーに質問するのは、避けるべきだ。この問題も宿題の回答ではないのか。先生にとっては偽計業務妨害に当たるという説も出たぐらい ーー Googleで「言語種類 うるう年の判定」(言語種類は具体的名に置き換えること)で照会すれば沢山記事がある。 VBAなら http://okwave.jp/qa/q1239856.html の#4などに出ている。 ただしエクセルでは日付は日付シリアル値というものに変換するが、その年の幅で注意が必要。19世紀までの日付の年などにはそのままは使えない。

mocyobi
質問者

お礼

回答ありがとうございます。分かりやすいく、回答してくださり、ありがとうございます。再度挑戦してみます。

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.3

こういう質問を見るたびにFizz-Buzz問題を思い出す。 http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm 上手くいくいかないのレベルではないんだよね。 日本語の通りコード化して、そこに基本文法以外の 要素は含まれないから、上手くいかなくてもその 理由を自分の力だけで明確に把握できる。 単純な思考と試行の問題で、他人に質問するくらい なら諦めた方がいいよ。 答えは全く簡単なんだけど、課題として出されている 意味は、この思考を鍛える部分だから。

mocyobi
質問者

お礼

回答ありがとうございます。ごもっともですね。自分でやらなければ課題ではないですよね。

  • CC_T
  • ベストアンサー率47% (1038/2202)
回答No.2

ふつーの回答としては、 ・入力受付。 (1)100で割り切れるなら(2)へ それ以外は(3)へ (2)400で割り切れるなら、うるう年確定。それ以外は(4)へ (3)4で割り切れるなら、うるう年確定。それ以外は(4)へ (4)うるう年ではないですね。 end の順で判定してけばいいのでは? 問題文通りに解こうとして、変数を4で割った後さらに100で割ろうとかしてませんか?

mocyobi
質問者

お礼

回答ありがとうございます。納得です。順番をしっかり守って再度挑戦してみます。

回答No.1

普通に勉強していれば何でもない問題ですね。 来年も履修して今度はまじめに勉強しましょう。

mocyobi
質問者

お礼

回答ありがとうございます。そうですよね!真面目に頑張ります。

関連するQ&A