概ね方位不定だが多分割と偏っている
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


C 例題4 ループを使った条件判断
2006年07月20日 (木) | 編集 |
1項目分しか進んでいないが、ここら辺は難しいので例題でもこなして慣れておく必要があるだろう。数列ってのは面倒臭いぜ全く。
for文を使ってループというか繰り返すような計算式を組んでみる。


勝利条件:
「xの値を入力し、1+2+3+…+xの合計を求めるプログラムを組めや」

攻略方法:
苦手分野なので地道に行くぜ。
まず、xの値を入力するということでこの部分にはお馴染みのprintfとscanfを使う。
これはまあいい。

んで、入力するので当然変数xを宣言する。
あと、for文で使うループ変数も宣言する必要がある。
さらに、for文で算出された値を出力する為の変数も宣言しなくてはならない。
なんでやねんって気もするがとにかくあった方が分かり易いので宣言しておこう。

int x; 変数x
int i; ループ変数として変数i
int y; 1+2+3+…xの合計値として変数y


とりあえずここまで
looptest2_1.jpg
当たり前だが変数の宣言は最初に行っておく

んで次に、繰り返して足し算する部分の計算式を考える。
まず、合計としての役割を持つyは0から始まらなくてはならないのでy=0としておく。

y=0;

足し算は1+2+3+…+xと1から始まって1ずつ増加し、xまで続くのでfor文は

for(i=1;i<=x;i++)

になる。
後は、合計値yを表現する式を書けばいいわけだが…
上手く説明できないので答えから言ってしまうと

y=y+i

これで1+2+3+…という形式の数列の和を表せる。
ここら辺、数列か数学的なセンスか?がないとどうにもすっきりしないな。
なんとなく、では分かる気もするんだが…
とにかく俺も分かり易く説明できないので実際にxを決めてみてみよう。こればっかだな。

合計値yは0からスタートする。当たり前だが。

xが1のとき、
y=y+i
=0+x
=0+1
=1
になる。合ってる。

xが2のとき、
y=y+i
=1+x
=1+2
=3
になる。これも合っている。
ここで何故右辺のyが1やねん、と思うかもしれないが、これが数列というかプログラムというかの面倒なところで、1回前に実行したときのyの値、この場合はx=1の時のyの値、が1だったということでy=1なのである。意味分からんかもしれないが、その場合は頑張って参考書とか教科書とか読んで理解するか、もしくはこういうものなんだと割り切るしかない。

以上を踏まえると、xが3のときには、

y=y+i
=3+x
=3+3
=6
になる。残念ながら合っている。4以降の場合も繰り返してもいいのだが、まあ合っている可能性が高いだろう、ということで割愛する。

要するに1+2+3+…xの値はy=y+iで表現できるのである。
でまあ、この部分を納得出来るなら後は簡単で、for文と式を書いて値を出力すれば以上。

looptest2_2.jpg
こんな感じ

実行してみよう。

意訳:「駄目よ…許されないわ、)がなければ嫌よ、}もないわ」
またかよ

……ッッッ!

あ、貴女が悪いんですよ、何度も!何度も!! 俺を焦らすから…!

)と}があればいいんですね!? ほら書きました!

俺は…俺はもう我慢できません!

コ、コンパイラさああああああああああんッッッッッ












脳内とかコードとかを色々適当に修正して実行。

looptest2_4.jpg
へっやっと素直になりやがった







直ってない。


何で仕事後に勉強っぽいものをしようとすると煩悩が暴走するのかね。
ヤる気が枯渇しないのはいいことなのだが。

人間の、脳の、不思議なメカニズムだな。誰か解明してくれないだろうか。


ああ暑いから? そうかもしれない。
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。