[三流君] −−>
[プログラマー業務の愚痴] −−>
[バックナンバー一覧]
−−> No.010 C言語 一文字入力、プログラムって?流れって?
C言語 一文字入力、プログラムって?流れって?
本文(発行内容)
<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: #include
5: #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でした。。。
では、また。。。 次回は、言い訳しないように、ガンバル(つもりです)
フィードバック
愚痴系の→[掲示板]←を覗く、質問を書き込む
評価・感想
三流君の主なリンク先
[アクセスランキング]
[サイトマップ]
[リンク先・相互リンク先など]
Ken3の日記(weblog) --
[広告・副収入系]
[プログラマー業務の愚痴]
[VBA系の話題]
[ASP系の話題]
[コンビニ系ネタ]
[その他]
その他 宣伝広告