C言語
2009年6月 5日 (金)
2009年3月20日 (金)
整数比の直角三角形
春分の日で休みなので、ぼーっとしていたら、NHK教育テレビで「数学基礎」という番組をやっていた。テーマは「ピタゴラスの定理」で、辺の長さの比が3:4:5の直角三角形が紹介されていた。そのあと、「他にも5:12:13というのがあります」と聞いて驚いた。私は知らなかったのだ。さっそく電卓で確かめてみると、確かに5×5+12×12=13X13=169でピタゴラスの定理が成り立っている。そこで、他にもあるかも知れないと急に思いついて、C言語でプログラムを作って調べてみた。すると、あるはあるは、どんどん出てくるではないか。今の今まで知らなかった。まだ胸がドキドキしている。
【プログラム】※倍数のチェックなし(3:4:5の倍数6:8:10や30:40:50なども表示される)
#include <stdio.h>
void main( )
{
int a,a2,b,b2,c;
printf("\n**整数比の直角三角形を探す**\n");
for( a=1; a<=100; a++ )
{
a2=a*a;
for( b=a; b<=100; b++ )
{
b2=b*b;
for( c=b+1; c<=100; c++ )
{
if ( a2+b2==c*c )
{ printf("\n%d:%d:%d",a,b,c); }
}
}
}
}
2009年2月23日 (月)
2008年8月 4日 (月)
LEDイルミネーション(2)





学校のC言語実習用のLED点滅装置に新しい点灯パターンを追加した。パルス幅変調(PWM)制御で、フルカラーLEDのRGB各色を徐々に点灯・消灯して、色がゆっくりかわっていくようにした。使っているマイコンはPIC12F629またはPIC12F675だ。CコンパイラはHITECのPICC-Liteで、629用と675用のバッチファイルをつくってコンパイルしている。バッチファイルをまちがえてコンパイルすると、エラーは出ないが緑一色の点灯になってしまう。
3色がすべて点灯したときは、ほぼ白色になり、徐々に色が付いていって原色になり、今度は徐々に白っぽくなっていく。七夕やお盆、月見のイルミネーションにぴったりだ。
この装置を使って、学校で夏休み電子工作教室をすることになった。後期にはDCモーターを使って、走り回る車を作る予定だ。
2008年1月 4日 (金)
LEDイルミネーション
昨年、学校のC言語実習用にLED点滅装置を23個作った。年内最終の授業で、もみの木モールなどを飾り付けて、クリスマスイルミネーションにした。PICマイコンにPICC-Liteで作成したプログラムを書き込んで、フルカラーLEDがランダムに変色するようにした。Windowsパソコン以外のプログラムを作ったのは、何年ぶりだろう。クリスマスが済んだので、写真のように和紙で包んで正月用のイルミネーションにして、三が日を楽しんだ。
装置を収納するケースは、大阪難波の道具屋筋で買ってきたプリンカップだ。蓋が下になっている。光ファイバーの束を底にあけた穴から角形LEDの上に差し込めば出来上がり。LEDはものすごく明るいので、直視しないよう注意が必要だ。正月が済んだら、何か春らしい飾り付けをしてみよう。
2007年10月 2日 (火)
C言語
ホームページを記述する言語はHTML(Hyper Text Markup Language)です。これはwebページの裏側のようなもので、ブラウザの「表示」メニューの中の「ソース」を押すと、画面が「メモ帳」などに切り替わってHTMLで記述されたソースが見られます。
同じように、プログラムもいろいろな言語で記述されていて、表示されている画面の「うら」には、ソースファイルなるものが存在します。webページとはちがって、プログラムのソースは一般的には公開しないものなので、なかなか見ることはできません。ソースが公開されているプログラムは、オープンソースといいます。
私どもの事務所で使っているのは、「C言語」というプログラム記述用の言語です。C言語は1973年に、計算機科学者のブライアン・カーニハンとデニス・リッチーが開発した言語です。その後、ISOとANSI、日本ではJISで規格化されて、現在まで最も広く使われている言語の一つです。
では、そのソースのサンプルをご覧ください。
/********************/
/* 電卓プログラム */
/********************/
#include <stdio.h>
void main( )
{
int a,b,c,op;
printf("\n電卓(Ver.1.0)");
printf(" ※1桁の加減乗除余\n\n");
a =getchar( ); a-='0'; // 1文字入力し数字に
op=getchar( ); // 1文字入力
b =getchar( ); b-='0'; // 1文字入力し数字に
switch( op )
{
case '+': c=a+b; break;
case '-': c=a-b; break;
case '*': c=a*b; break;
case '/': c=a/b; break;
case '%': c=a%b; break;
default : c=9999; printf("\a");
}
printf("\n答え=%d\n",c);
}
このプログラムは、0で割るとエラーになります。C言語を学習中の方は、0による除算を避ける文を考えてみて下さい。
| 固定リンク | コメント (0) | トラックバック (0)

















