Home > Program -プログラム言語- > C言語 ブログ記事 一覧

C言語 ブログ記事 一覧
今が旬!iPhone
- 2010年2月18日 15:05
- C言語
iPhoneがアメリカで2007年に初めて発売されたから早3年目、
海を越えた日本でもとても身近な携帯電話となりました。
ipodに当初搭載されていた『タッチパネル』機能を採用した携帯電話として注目され、
2010年現在、全世界での普及台数も2000万台を超えています。![]()
これほどまでにiPhoneが流行っている要因の1つとして
iPhoneアプリがあります。
iPhoneアプリが従来の携帯電話搭載アプリと決定的に違う点は
エンジニア向けのメディアで盛んにアプリ開発言語の特集が
組まれている点でしょう。
『Objective-C』
iPhoneアプリ開発用の言語で、名前から想像できるとおり
C言語をベースとして作られた言語です。
約1年前、2009年の春ごろからプログラマ向けの書籍に
Objective-Cの名前が浸透し始めたのは、まだ記憶に新しいです。
とiPhoneアプリと開発言語について簡単に触れましたが
非常に似た技術として同時期に誕生したライバルに
Androidアプリがあります。
Androidについてはこちら↓
この両者、携帯電話というモバイル環境用の言語としては共通ですが
開発環境や言語はもちろん違います。
そのような諸々の違いはあるものの
最も注目すべきポイントは今後の将来性でしょう。
iphoneの注目利点
- 独創的かつ圧倒的なデザイン力
- Macユーザからの購買促進
Androidの注目利点
- 既存の言語Javaで開発できる
- Java用超有名開発環境、Eclipseで開発可能
- 結果、オールライセンスフリー
と、エンジニア目線での将来性(とっつきやすさ)は
ややAndroidに軍配が上がるような気もします。
iPhoneの開発元Apple社やAndroidの開発元Google社の
企業ビジョンにも相違がある以上単純な比較は厳禁ですが、
エンジニアとしてこれからのIT動向を探る上で、
両者の相違点に注目しつつ両方のプラットフォーム上で
開発できるのが理想です。
この記事で触れたC言語、Java、Objective-C等々、
様々な言語やそれらを取り巻く開発環境が入り乱れている昨今ですが、
エンジニアとして重要なことは何を使うか?ではなく何を作るのか?という
目線を持つことなのでしょう。
--------------------------------------------------------------------------------
パソコンスクール KENスクール池袋校 Programインストラクター
http://www.kenschool.jp/school/ikebukuro/index.html
KENスクールでJavaやC言語を学びたい方は、Program講座へ!
http://www.kenschool.jp/Program/index.html
--------------------------------------------------------------------------------
KEN School 関西方面オープンしました!!
【関西ブログ】
http://www.kenschool.jp/info/contents/blog_kansai.html
【関西オープンページ】
http://www.kenschool.jp/info/contents/op_kansai.html
- Comments (Close): 0
- TrackBacks: 0
プログラムの可読性
- 2009年4月 6日 18:46
- C言語
プログラムの可読性とは、
文字通り「プログラムの読みやすさ」の事です。
プログラマとして業務につく場合は、
他者にチェックしてもらうためにプログラムの体裁を整えなければ
理解してもらう以前に見てもらえません。
では、個人なら自由にプログラムを書いても良いかというと、
例えば、数ヵ月後に見直した時に、
自分が「何を考えて、このプログラムを組んだのか」が分からないと
非常に切ない思いをしてしまいます。
このように可読性は、単純に改行・インデント・スペースといった見栄えの他に
ちょっとしたプログラムのテクニックでも大きく変わってきます。
例えば、以下のプログラム(C言語)があったとしましょう。
----------------------------------------------
#include<stdio.h>
int funcA(int num){
int ret;
if(num >= 0){
ret = 1;
}else{
ret = 0;
}
return ret;
}
int main(void){
int number, chk;
scanf("%d", &number);
chk = funcA(number);
if(chk == 1){
printf("正の値です。\n");
}else{
printf("負の値です。\n");
}
return 0;
}
----------------------------------------------
Javaを学習されている方も、classの囲いが無いと考えれば、
何となく内容は分かると思います。
(乱暴な表現ですが)
ちなみに scanf("%d", &number); は、ユーザに整数を入力させて、
変数 number に格納する命令です。
まず、注目するのは main()関数の中の条件分岐文です。
直前で funcA() 関数を呼び出し、戻り値を chk で受け取り、
その値を判断しています。
この「戻り値を一度変数に格納する」という行為を省略し、
直接、条件式に組み込むと、以下のようになります。
(main() 関数のみ抜粋)
----------------------------------------------
int main(void){
int number;
scanf("%d", &number);
if(funcA(number) == 1){
printf("正の値です。\n");
}else{
printf("負の値です。\n");
}
return 0;
}
----------------------------------------------
変数の宣言が一つ減って、スッキリしました。
さらにC言語では、if文の条件式が
0以外なら「True」、0なら「False」と判断します。
funcA() 関数の戻り値は、0か1か決まっているので、
いちいち 1 と比較するのは、野暮ったいです。
よって、
----------------------------------------------
int main(void){
int number;
scanf("%d", &number);
if(funcA(number)){
printf("正の値です。\n");
}else{
printf("負の値です。\n");
}
return 0;
}
----------------------------------------------
この記述で十分です。
次に funcA() 関数ですが、引数が正か負かによって
変数に 0 または 1 を代入していますが、
この変数を最初から 0で初期化しておけば else の記述は不要です。
よって、最終的に
----------------------------------------------
#include<stdio.h>
int funcA(int num){
int ret = 0;
if(num >= 0){
ret = 1;
}
return ret;
}
int main(void){
int number;
scanf("%d", &number);
if(funcA(number)){
printf("正の値です。\n");
}else{
printf("負の値です。\n");
}
return 0;
}
----------------------------------------------
こんな風になりますね。
あとは、funcA()関数の概要などをコメントで記述しておけば
後から見直しても問題ない記述になるでしょう。
( funcA() という関数名も問題ですね…)
最後に同じプログラムを可読性の低いものに書き換えると
----------------------------------------------
#include<stdio.h>
int abc(int z){
int y;
if(z>=0) y=1;
else if(z<0) y=0;
return y;
}
int main(void){
int a,b;
scanf("%d",&a);
b=abc(a);
if(b==1) printf("正の値です。\n");
else if(b == 0) printf("負の値です。\n");
return 0;
}
----------------------------------------------
どうですか?
これでも結果は変わりません。
どんなプログラムでも動けば良いと思っていませんか?
インデントだけでも印象は大きく異なるのです。
プログラムに慣れてきたら、是非、
可読性を意識してみてくださいね。
--------------------------------------------------------------------------------
パソコンスクール KENスクール蒲田校 Programインストラクター
http://www.kenschool.jp/school/kamata/index.html
KENスクールでプログラムを学びたい方は、Program講座へ!
http://www.kenschool.jp/Program/index.html
- Comments (Close): 0
- TrackBacks: 0
大人の数学
- 2009年2月16日 19:20
- C言語
最近、なぜか数学関連の書籍を読んでおり、
学生の頃には感じなかった楽しさを発見しています。![]()
でも余り難しい内容にはついて行けないんですけどね…。
ある書籍の冒頭にある内容を一部見てみると
1
1
2
3
5
という数字が並んでいて、次に何が来るか?
…と。
まぁ「8」なんですけどね。
これは数値の並びの前に「0」が隠れているとすると、
0
1
1←前2つ数値(0と1)を加算
2←前2つ数値(1と1)を加算
3←前2つ数値(1と2)を加算
5←前2つ数値(2と3)を加算
8←前2つ数値(3と5)を加算
このように説明できます。
ということで、2つ目以降の結果はパターン化されます。
パターン化できれば、プログラムでは「繰返し処理」を用いて
処理をまとめられるということです。
C言語で記述すると以下のようになりますね。
(クリックで拡大します)
因みにint型で扱うと、わずか47回目でオーバフローしてしまいます。
それから answer の初期値を1にして、繰返しの処理順を変えると
もっとスッキリしますね。
その辺は…まぁいいか。
プログラムを学習する上で「物事をパターン化して把握する」
というのは結構重要な位置を占める考え方だと思うんです。
そういった意味では、数学の勉強を振り返るというのも
プログラムのスキル向上に一役買うかもしれませんね。
数値の計算は、ルール付けがきちんとされているので、
正解を見抜きやすいので。
ちなみに今回扱った数字の並びはフィボナッチ数列という有名な数列で、
黄金比(バランスのとれた形)を求めるときにも使われています。![]()
--------------------------------------------------------------------------------
パソコンスクール KENスクール蒲田校 Programインストラクター
http://www.kenschool.jp/school/kamata/index.html
KENスクールでC言語を学びたい方は、プログラム講座へ!
http://www.kenschool.jp/Program/index.html
- Comments (Close): 0
- TrackBacks: 0
BCpadでウィンドウ作成
- 2008年12月 6日 21:03
- C言語
ブログの記事は、広く一般に読まれる事を前提に書くと思うのですが、
今回は、
KEN Schoolの受講生…しかも「C言語講座」を受講している方
を中心にお話したいと思います。
C言語でプログラムを打っても
「結果が黒い画面に文字で出るだけなんて、何か寂しい」
と思われている方も多いと思います。
「VisualBasicを受講している人は、画面が簡単に出来て楽しそう」
と思われている方も多いと…
なんて、泣く必要は無いんです。
C言語は「何でも出来る」のですから。
今回は教室で使用している開発環境「BCpad」を使って、
GUIプログラムに挑戦しましょう!!
以下に添付したファイルを右クリックし「対象をファイルに保存」を選択して
ご自分のPCにダウンロードしましょう。
準備が出来たらBCpadから、そのファイルを開きます。
実行はアイコンではなく、以下の操作で行います。
1. 「実行」メニューから「コマンドプロンプトを起動」を選択
(クリックで拡大します)
2. 以下のコンパイル命令を入力
bcc32 -W hellowindow.cpp
警告は無視してしまいましょう。
3. 以下の実行命令を入力
hellowindow
4. 実行結果の確認
表示の結果は文字ですが「ウィンドウが出来た」事は、感動ですね!
この感動は、C言語を勉強しないと分からないですよね!
やっぱりC言語って楽しい!!
コードの内容は詳しく触れませんが、33と34行目を見てみましょう。
ここで、作成するウィンドウの幅と高さを指定しています。
この記述を
320, // 幅
640, // 高さ
というように、高さの値を大きくして、コンパイル・実行してみましょう。
縦方向に長ーくなりました。
好評なら、画像の描画方法も公表しようかな。
お後がよろしいようで。![]()
- Comments (Close): 0
- TrackBacks: 0
C言語が今も使われているのは
- 2008年11月 2日 12:26
- C言語
C言語は1972年にAT&Tベル研究所で
開発された言語です。
歴史がありますが、今も使われているのは
ハードウェアに極めて近いソフトウェアを
作る為に作られたので組込み機器には
かかせないものだからです。
C言語は仕組みがコンパクトで別のコンピュータ
への移植が容易な言語です。![]()
さらにオブジェクト指向という仕組みが
出来る前の言語なので
オブジェクト指向を理解しなくても大丈夫なんです!
・・・と、いうことは覚えることも少なくて済む
ということですねっ^^
さらに組込みソフトウェアとなると
「Enterキーを押すと処理が確定するんだ」
と当たり前に使っているキーボードも、実は
電源がはいっている前提でプログラムが
組まれていて入力を待ってる♪
なんていう考え方が必要になってくるなんて
何気なく使っている電化製品の見方が
劇的に変わってしまう不思議な世界が待っているんです!
プログラム言語はほとんどが
「これを考えた人ってすごいなぁ」
「仕組みってどうなってるんだろう?」
という興味から生まれて、色々な発想から
作られています。
実は、すごい話題になった「iPhone」
プログラム言語は「Objective-C」という言語
ではありますが、元になったのがSmalltalkと
「C言語」だというじゃないですか!
「C言語」を知らないなぁというあなたっ
この先気付かないうちに損をしてしまうかもしれませんよ~(笑)
- Comments (Close): 0
- TrackBacks: 0
煩悩は万能なり~Cの未来~
- 2008年9月29日 12:19
- C言語
みなさんは、今現在世界に存在するプログラム言語が
何種類あるかご存知でしょうか?
その数は、数え方によっても違いますが
5000とも8000とも言われています!
膨大な数ですね!!
数ある言語の中でも一番有名で、
言語を扱うプログラマの数が多い言語といえば
やはりC言語ではないでしょうか。![]()
C言語と言えば1972年生まれの36歳です。
最近人気のJavaやPHPと比べると歴史は古く、
同時期に誕生したライバル言語、Pascalは
すでに現役を引退しています。![]()
そんなC言語を一言で表すと
『何も特徴が無い』言語だといえます。
JavaやPHPはショッピングサイトやネットバンキングなど、
WEB上で動くシステムを作るのが得意ですし、
統一された社内環境で使うシステムであれば、
VisualBasicが向いています。
最近人気の言語は
どれもこれも他の言語に勝る特徴があるのにも関わらず・・・
『何も特徴が無い』C言語
これは、視点を変えると
『なんでも出来る』自由度の高いC言語
といえます。
今回は、C言語の自由度を証明する画像を
2つお見せしましょう。

一見迷路のような画像ですが、
よく見るとC言語のコードが記述されています。
そしてこのコードを実行すると

このように、迷路アプリケーションが動きます。
(※実行環境はLinuxです。他にMakeFileが必要になります。)
今回はC言語のコード記述の自由度をご紹介しました。
C言語は自由度を特徴としていたおかげで、
様々な言語が混在する今日でも、
ゲーム業界や組込みの分野で活躍をしているのです。
- Comments (Close): 0
- TrackBacks: 0
Home > Program -プログラム言語- > C言語 ブログ記事 一覧


