<C言語 一文字入力、プログラムって?流れって?> 目次 1.はじめの挨拶 2.お前は、ソフトバンクのまわしものか? 3.一文字入力 4.プログラムって?流れって? 5.おわりの挨拶 ---------------------------------------------------------------------------- /* * 1.こんにちは */ C言語の解説を待っていた方、お待たせしました。 今回、一文字入力とIf文を解説します。 サンプルや解説にキレがなかったら、 遠慮なく、ほどほどに、指摘メール・質問メール下さい。 ^^^^^^^^^^^^^^^^^^^^^ ↑日本語、変じゃねぇか? あっ、大丈夫・大丈夫、、今回の解説より変じゃないから、、、 わかったから、さっさと始めろよ、、、ハイ。 /* * 2.お前は、ソフトバンクのまわしものか? */ フリーのC言語コンパイラー、 LSI C-86 v3.30c 試食版、 C MAGAZIN(ソフトバンク)の付録CD中に としか、書きませんでしたが、 下記の場所から、ダウンロードできますよ とメールをいただきました。 エル・エス・アイ ジャパン株式会社 LSI C-86 v3.30c 試食版 http://www.lsi-j.ab.psiweb.com/freesoft/index.html もしかして、Cマガ買ってしまった人、ゴメンナサイ。 でも、雑誌の記事、何かの役に立ったでしょ。。。 おいおい、開き直ったよ、、手がつけられないなぁもう。 正気に戻って、先に進みます。 /* * 3.一文字入力 */ いきなり、 一文字入力のサンプルを以下に記述します。 ( hosoku/010/test10.lzh にサンプル置いておきます ) ここでは標準関数getch()を使用しています。 filename : D:\NO10\TEST10_1.C 1: /* 2: * 一文字入力 3: */ 4: #include5: #include 6: 7: /* メイン処理 */ 8: int main() { 9: 10: char moji; /* 文字変数宣言 */ 11: 12: moji = getch(); /* 1文字入力 */ 13: printf("入力された文字は[%c]です\n", moji); 14: printf(" codeは16進[%x] 10進[%d]です\n", moji, moji); 15: printf(" codeは16進[%X] 10進[%d]です\n", moji, moji); 16: 17: return 0; 17: } 実行結果までの道のり、、、 まず、ソースファイルをメモ帳などで、作成します。 次に、DOSプロンプトから、前回作成したバッチファイル、 SETCを起動して、環境をセットします。 (Autoexecに組み込んだ人は、やらなくて、OKです) D:\NO10>c:\setc D:\NO10>PATH=C:\lsic330c\BIN;C:\WINDOWS;C:\WINDOWS\COMMAND D:\NO10>set TZ=JST-9 次に、lcc test10_1.c と入力し、リターンキーを押します。 ソースファイルがコンパイルされます。 D:\NO10>lcc test10_1.c lld @link.i 完成後、test10_1 リターンで、プログラムを実行します。 D:\NO10>test10_1 何か、キーを押すと、下記のようなメッセージがでます。 (ここでは、tキーを押した) 入力された文字は[t]です codeは16進[74] 10進[116]です codeは16進[74] 10進[116]です 解説 ア.インクルードファイルの指定 ここでは、標準関数、printfとgetchを使用しているので、 4: #include 5: #include 対応した、 , を指定します。 えっ何なんで? 標準の関数を使うときは、指定しないといけないんですよ。 そうなんだ、、とりあえず、決まりごととして、おぼえておくよ。 どうも。 あっ、なんで、getchって関数?だと、conio.hが必要ってわかるの? う〜ん、、、マニュアル・サンプルを見ると、書いてあるので、 対応するヘッダファイルを選んでください。 何か関数一覧なんて、あると、嬉しいんだけどなぁ、、、 暇見て、探しておきますよ。 ヨロシクネ。 イ.変数の定義 キーボードから文字を受け取りたいので、 10: char moji; /* 文字変数宣言 */ で、Char型の変数mojを定義します。 ウ.キーボードから、一文字受け取る getch関数を使用して(getchのリターン値で)、 文字を受け取ります。 12: moji = getch(); /* 1文字入力 */ 変数mojiにgetch()の処理結果(キーコード)が入ります。 エ.結果表示 結果を画面に表示します(変数mojiの中身を画面に出力) 13: printf("入力された文字は[%c]です\n", moji); 14: printf(" codeは16進[%x] 10進[%d]です\n", moji, moji); 15: printf(" codeは16進[%X] 10進[%d]です\n", moji, moji); これから、よく、お世話になるprintf関数で、結果を画面に出力します。 %c --> コードに対応する文字を表示 (キャラクタコード表って、みたことありますか?) %x --> 16進数で値を表示 %d --> 10進数で値を表示 簡単に書くと、こんな感じです。 枠外解説・グチ -- おおスゴイと感動しましたか?面白いですか? 実際にやってみて、スゴイと感動しましたか? 感動まではいかなくても、好きですか?面白いですか? いろいろな人に教えていて、わかりますが、 コンピュータが好き・プログラムが好きなヤツ・お嬢ちゃんほど、 飲み込み速いし、できるプログラマーになっていく気がします。 給料もらってやっているだけの職業プログラマー?だと、 なんか仕事も事務的なような。。。 いつも、遊んでいるテメエ(Ken3)より会社のためになってるって、、、 ごもっともなご意見です。。。 /* * 4.プログラムって?流れって? */ プログラムって言うと、何を思い浮かべますか? 競馬のレーシングプログラム、、、運動会のプログラム、、、など、、、 運動会のプログラムなどは、順番に上から下に進んでいきます。(競馬の出走順も) ・開会式 ・100メートル走 ・玉入れ ・昼休憩 ←あれ、もう昼? ・リレー ・閉会式 ←もう、終わり、、、騎馬戦ないの?...気にしないで、、 開会式から閉会式まで、上から下に、流れていきます。 一文字入力のプログラムも、下記のような順序で、流れてます。 ・変数の定義(開会式?) ・一文字入力 ・結果表示 ・return 0; (閉会式?) と、一直線に流れてました。 まぁ、通常は、そんな感じですが、 いつも同じことをするほど、(いつも同じじゃ、使えないでしょ) プログラムは甘くなく、 変数の状態によってやること変えたり、(腹へったから、玉入れ中止、昼にする?) 繰り返したり、流れを組み合わせます。 ア.基本は、上から下に流れます。 運動会のプログラムのように イ.分岐する場合 高校野球などのコールド試合(ルール知らないので、細かい点差、間違ってたら、、) 通常は、1回から9回まで進みます。 1回 2回 ・ ・ 5回 ここで点差が10点以上ならコールドゲームで試合終了 ・ ・ 9回 得点の多いチームの勝ち 同点の場合は延長戦へ 10回 どちらかが、多く得点を取るまで続く ・ ・ 18回 引き分け再試合 など、ある条件(ここでは、イニング回数と得点差ですね) で実行する作業(コールドなのか、、延長なのか、、再試合、、) を判断する。 ウ.繰り返し 分岐と似ているのですが、繰り返し処理で(無限ループもある?) 表現悪いですが、今風のたとえ話で、 ストーカー君が好きな子に start ↓ 付き合ってください ↓ イヤダ ↓ ここで彼女は考える、そろそろ、警察につきだそうか、家族にそうだんするか (10回ぐらい付きまとわれた、、警察に相談-->ストーカー君end逮捕) ↓ startへ戻るを繰り返す... (まったくストーカーってヤツは..頭の中の判断がおかしい、、、なんてね) まぁ、冗談ですが、プログラムは、どんなものでも、 処理の流れ、分岐の繰り返し、組み合わせだと思います。 なんか、少し、ズレてる気がするけど、 今後のIf,while,forの講座を読んだ時、思い出してください。 /* * 5.おわりの挨拶 */ メルマガで、図が書けないのが、ツライ。 図が書ければ、もうすこし、わかりやすく、説明できたんだけど。 じゃ、ホームページにGIFで載せたらイイジャン。 まだ容量、あまってるでしょ。 すぐわかる、言い訳こくなよコラ。 あっ、バレました?やっぱ。 実は、時間が無かったんですよ。。。すみません。次回は。。。 客先についたウソ・言い訳も、バレます、すぐに、、、 相手もそんなにバカじゃないんだし、、、 正直に話したほうが許してくれるかも? (絶対に、許してくれないほうが多いと思うけど、、、) 新人君のついたウソも先輩にバレます(←これホント、新人さん達は注意してね) Ken3「テストした?」 新人 「はい、しました」 Ken3「ハイ、これやり直し」(心の中で、うそつくなよ..真剣さが足りないんだよ) ここでガツンと言いたい三流プログラマーのKen3でした。。。 では、また。。。 次回は、言い訳しないように、ガンバル(つもりです)
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
項目別に本音?それとも建て前?的な記事をまとめました。
気になったジャンル↓を選択してください。 |
Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]