C言語

2009年6月 5日 (金)

マンデルブロー集合 CG作品(4)

Mandelbrot004 梅の花のような形。小さい花も無数に付いているが、拡大するとどれもほぼ同じ形をしている。何か昔の絵のような、懐かしい感じがする。

| | コメント (0)

マンデルブロー集合 CG作品(2)

Mandelbrot002 この画像は、私には銀河に漂う宇宙ステーションに見える。明るい光の中では、大勢の人が暮らしている気がする。

               カオス・フラクタルCG作品集

| | コメント (0)

マンデルブロー集合 CG作品(1)

Mandelbrot001_2 レースのような模様。中央部分の拡大画像を、カオス・フラクタルCG作品集のカテゴリー「レース」に掲載しています。

| | コメント (0)

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); }
              }
          }
      }
}

| | コメント (0)

2009年2月23日 (月)

マンデルブロー集合

Mdbl000Mdbl001Mdbl002

 マンデルブロー集合はフラクタルな図形だ。黒く丸い部分の縁は、限りなくギザギザで、拡大するといくらでも小さな模様が現れる。

Mdbl003Mdbl004 細かい模様をよく見ると、至るところに全体と同じ図形がちりばめられている。渦巻きは、ある一点に図形が引き込まれていく姿だ。この限りなく複雑な図形は、ある簡単な式を繰り返し計算することで得られる。C言語で計算・描画とビットマップ出力のプログラムを作り、画像を作成した。

| | コメント (0)

2008年8月 4日 (月)

LEDイルミネーション(2)

Led00121Led00122Led00123Led00124Led00125Led00126 学校のC言語実習用のLED点滅装置に新しい点灯パターンを追加した。パルス幅変調(PWM)制御で、フルカラーLEDのRGB各色を徐々に点灯・消灯して、色がゆっくりかわっていくようにした。使っているマイコンはPIC12F629またはPIC12F675だ。CコンパイラはHITECのPICC-Liteで、629用と675用のバッチファイルをつくってコンパイルしている。バッチファイルをまちがえてコンパイルすると、エラーは出ないが緑一色の点灯になってしまう。

3色がすべて点灯したときは、ほぼ白色になり、徐々に色が付いていって原色になり、今度は徐々に白っぽくなっていく。七夕やお盆、月見のイルミネーションにぴったりだ。

この装置を使って、学校夏休み電子工作教室をすることになった。後期にはDCモーターを使って、走り回る車を作る予定だ。

| | コメント (0)

2008年1月 4日 (金)

LEDイルミネーション

Led00104_2Led00105_2Led00106Led00108Led00107

 昨年、学校のC言語実習用にLED点滅装置を23個作った。年内最終の授業で、もみの木モールなどを飾り付けて、クリスマスイルミネーションにした。PICマイコンにPICC-Liteで作成したプログラムを書き込んで、フルカラーLEDがランダムに変色するようにした。Windowsパソコン以外のプログラムを作ったのは、何年ぶりだろう。クリスマスが済んだので、写真のように和紙で包んで正月用のイルミネーションにして、三が日を楽しんだ。

Led00101Led00103Led00102_2

装置を収納するケースは、大阪難波の道具屋筋で買ってきたプリンカップだ。蓋が下になっている。光ファイバーの束を底にあけた穴から角形LEDの上に差し込めば出来上がり。LEDはものすごく明るいので、直視しないよう注意が必要だ。正月が済んだら、何か春らしい飾り付けをしてみよう。

| | コメント (0)

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)