[三流君] −−> [プログラマー業務の愚痴] −−> [バックナンバー一覧]
−−> 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でした。。。

では、また。。。 次回は、言い訳しないように、ガンバル(つもりです)



ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

リンクや広告など

項目別に本音?それとも建て前?的な記事をまとめました。

気になったジャンル↓を選択してください。
[ルーキー rookies]・・・ 新人さん達 初心者さんへ
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話
[共同作業 team]・・・チーム、グループ作業
[プログラムは心? spirit]・・・プログラマー 心・気質・魂

[掲示板デビューしようぜ bbs]・・・掲示板関係の話、質問者・回答者の気持ちほか
[昔はできた seo]・・・三流式の効果無しSEOとアフィリエイト
[仕事や作業、転職 job]・・・仕事や転職、評価、作業など
[その他 etc]・・・その他 分類外の記事

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]



[三流君(TOP ken3.org へ戻る)] / [プログラマー業務の愚痴] / [バックナンバー 一覧]