プロが教えるわが家の防犯対策術!

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

A 回答 (5件)

閏年フラグ = false;(閏年ではない)


if((年/4)の余り = 0)   閏年フラグ = true;ひとまず閏年。
if((年/100)の余り = 0) 閏年フラグ = false;やっぱり閏年じゃない。
if((年/400)の余り = 0) 閏年フラグ = true;閏年例外特例。

if(で、結局閏年?)

質問文で挙げている内容の言い回しがややこしいだけで、
言われている事をベタでコーディングして、
そのコーディングを日本語に再翻訳して
同じ事を言っているか確認すればいいだけです。
実際には実行して期待される結果が得られるかになりますが。

コーディングの前(のフローチャート作成の前)の、
必要な情報が整理できていないと何も始まりません。

・・・まさか、「入力の受付方法が分からない」(無線キーボードで電波が途切れる)
とか、「マシンだけあって、開発環境からの構築まで必要」
なんていう課題じゃないですよね。
    • good
    • 0

(1)4で割り切れる年の集合


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

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

お礼日時:2011/12/07 23:41

こういう質問を見るたびにFizz-Buzz問題を思い出す。


http://www.aoky.net/articles/jeff_atwood/why_can …

上手くいくいかないのレベルではないんだよね。
日本語の通りコード化して、そこに基本文法以外の
要素は含まれないから、上手くいかなくてもその
理由を自分の力だけで明確に把握できる。

単純な思考と試行の問題で、他人に質問するくらい
なら諦めた方がいいよ。
答えは全く簡単なんだけど、課題として出されている
意味は、この思考を鍛える部分だから。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/12/07 23:40

ふつーの回答としては、



・入力受付。
(1)100で割り切れるなら(2)へ それ以外は(3)へ
(2)400で割り切れるなら、うるう年確定。それ以外は(4)へ
(3)4で割り切れるなら、うるう年確定。それ以外は(4)へ
(4)うるう年ではないですね。
end

の順で判定してけばいいのでは?
問題文通りに解こうとして、変数を4で割った後さらに100で割ろうとかしてませんか?
「プログラミング」の回答画像2
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/12/07 23:39

普通に勉強していれば何でもない問題ですね。


来年も履修して今度はまじめに勉強しましょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/12/07 23:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!