[三流君] −−> [プログラマー業務の愚痴] −−> [バックナンバー一覧]
−−> No.002 三流プログラマーのプログラム講座 No.002

三流プログラマーのプログラム講座 No.002


本文(発行内容)


====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*=
[ 三流プログラマーのプログラム講座 No.002 ]       1999/10/28 
=*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====
昔?はC言語、今はVB,Access...そろそろ仕事でDelphiを学習、、、
VCやったら(できたら)カッコいいなぁ...と思っている、
AB型の三流プログラマーKen3が書く、適当なプログラム講座です。
----------------------------------------------------------------------------
目次
1.みなさん、こんにちは
2.C言語 関数の種類?
3.今日は、もうオシマイ
----------------------------------------------------------------------------
/*
 * 1.みなさん、こんにちは
*/
こんにちは。なんか読者数が100人いったので、チョット驚いてます。
雨が降っててイヤな日でしたね。
仕事たっぷり残っているんだけど、気分が乗らないので定時で帰る。
-->おいおい、大工じゃないんだから、天気は関係無いでしょ。。。
欲張ってVBA関係を書こうと思ったのですが、進みが悪いので、次回以降にします。
よろしくお願いします。
*今回のC言語関数関係、間違えてた時は、やさしくご指導ください(笑)

/*
 * 2.C言語 関数の種類?
*/

関数の種類を説明します。(我流の表現が入っているので、参考程度に)
*いきなりですか、、、
 普通はprintfの次はif文for文などの制御文でしょ、、と言われそう。

関数の書式の基本は、

戻り値の型 関数名 (引数名称,引数名称)

引数型 引数名称
引数型 引数名称
{
  処理
}
になります、主な例を3種類記述します。

ア.引数(パラメーター)を受け取らず、処理を行う関数

filename : C:\NO2\SUB_01.C

   1: /*
   2:  *  引数を受け取らずに処理を行う関数
   3: */
   4: #include 
   5: 
   6: /* サブルーチン */
   7: void sub_01() {
   8: 
   9:     printf("sub_01\n");    // <−− 文字をプリントするだけ
  10: 
  11: }
  12: 
  13: /* メイン処理 */
  14: void main() {      // <ーー プログラムは必ずメインから始まります
  15:          //     (上下どの位置にあっても良い)
  16:     sub_01(); // <−− 関数コール
  17:     sub_01();
  18: 
  19: }

実行結果 

sub_01
sub_01

解説
値を返さない関数は、void型で宣言します。
関数名は任意の名前を設定できます。ここではsub_01としています。
(標準関数printf等と重複しない名称)

枠外解説・グチ
個人的には、main関数を一番上に書きたいんだけど、
昔の神経がこまかい先輩に、呼ばれる関数の方を上に書け、、、
そのほうがプロトタイプ宣言しなくていいし、ソースの中の関数を探すとき便利
と言われた。
その時は、私もかわいい?新人だったので、
ハイと聞いて変なクセ、、、つきました。
どう考えても、mainを一番上に書いて、
上から下のほうが見やすいと思うし、
ソースをmain.c sub.c に分割すれば、、、と思う。
*私も「てめえの教育がなってない...」...と言ってみたかった。
 言えなくても、メールで送ってみたかった。
 (今は、無料のメールアドレスあるから、そこから文句を、、送れる)

また、
関数ってのは、値を返すから関数なんで、値を返さないのは手続きだ、、
と注意されたことあったけど、、、でも仕様書は関数仕様書だったような、、

イ.引数(パラメーター)を受け取り、処理を行う関数

filename : C:\NO2\SUB_02.C

   1: /*
   2:  *  引数を受け取り、処理を行う関数
   3: */
   4: #include 
   5: 
   6: /* サブルーチン */
   7: void sub_02(kazu, bai)
   8:                             //受け取り変数名称定義
   9: int     kazu;               
  10: int     bai;                //変数の型を定義する。
  11: 
  12: {
  13:     int     work;           //計算用変数定義
  14: 
  15:     work = kazu * bai;
  16:     printf("%d の %d 倍は %d です\n", kazu, bai, work);
  17: 
  18: }
  19: 
  20: /* メイン処理 */
  21: void main() {
  22: 
  23:     sub_02( 2, 4);
  24:     sub_02(10, 5);
  25: 
  26: }

実行結果 
2 の 4 倍は 8 です
10 の 5 倍は 50 です

解説
値を返さない関数は、void型で宣言します。
関数名は任意の名前を設定できます。ここではsub_02としています。
引数をkazu,baiの名称で受け取ります。
kazu,baiの変数の型をその下で定義します。
work変数を定義後、計算します。
計算結果を表示します。

枠外解説・グチ
だから、何が言いたいの?
えっとですね、、、渡された値によって動作をする関数、、と言いたいんです。
サンプルわかりやすく作ったら?
次回から、努力します。

ウ.引数(パラメーター)を受け取り、値を返す関数

filename : C:\NO2\SUB_03.C

   1: /*
   2:  *  引数を受け取り、値を返す関数
   3: */
   4: #include 
   5: 
   6: /* サブルーチン */
   7: int  sub_03(kazu, bai)           // int型の値を返したいので、
   8:                                  // int型の関数として宣言します。
   9: int     kazu;   
  10: int     bai;                     // 受け取り変数を定義します。
  11: 
  12: {
  13:     int     work;
  14: 
  15:     work = kazu * bai;
  16:     printf("%d の %d 倍は %d です\n", kazu, bai, work);
  17: 
  18:     return(work);            // workの値をリターン値として返します。
  19: 
  20: }
  21: 
  22: /* メイン処理 */
  23: void main() {
  24: 
  25:     int     a;
  26: 
  27:     a = sub_03( 2, 4);          // 2,4を引数で渡し、リターン値をaに
  28:     a = sub_03( a, 5);          // 代入します。
  29:     printf("a = %d\n", a);
  30: }

実行結果 
2 の 4 倍は 8 です
8 の 5 倍は 40 です
a = 40

解説
int型の値を返すので関数は、int型で宣言します。
関数名は任意の名前を設定できます。ここではsub_03としています。
引数をkazu,baiの名称で受け取ります。
kazu,baiの変数の型をその下で定義します。
work変数を定義後、計算します。
計算結果を表示します。
workの値をreturn文でメインに返します。
メインの変数aを使用し関数のリターン値を受け取っています。
受け取った値をそのまま次の引数に使用しています。

枠外解説・グチ








/*
 * 3.今日は、もうオシマイ?
*/

雨も降ってて、天気も悪いので、今日は閉店です。
(天気は関係無いだろ、、、)
なかなか、進み、悪いです。書くペースが上がらないです。
次回は、制御文、if,for関係をやっていこうと思ってますが、
どうなるでしょう?

100人読んでると思うと、緊張します。。。
(半数以上の人がゴミ箱直行だったりして?)

では、また。


ページフッター

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

リンクや広告など

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

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

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

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

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



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