ホーム » 2009 » 4月 » 27

日別アーカイブ: 2009年4月27日

2009年4月
« 3月   5月 »
 1234
567891011
12131415161718
19202122232425
2627282930  

最近の投稿(電子情報)

アーカイブ

カテゴリー

PHP講習会/H8割り込み講習会

4EIの実験時間を用いた創造工学演習向けの基礎講習会の2回目。 40人を2つに分けて実施するため、場所が狭かったり実験が困難だったり。 H8の割り込み講習会の参加グループの方が、実際の実験環境の準備が大変で、 割り込みやモータ制御の文献調査になってしまった。

PHP講習会の方は、簡単にアクセスカウンタのプログラムを説明し、 何らかのファイル操作を伴うプログラムを作成し、 レポートに「この知識を自分のテーマに使えそうか?」、 「PHPのプログラムの起動の際のユーザ権限」、 「ファイルロックなどの問題点」などを、各自選んでレポートとして記載し提出してもらう。

<?php
if ( ($fp = fopen( "count.txt" , "r" )) != FALSE ) {
   $count = fgets( $fp ) ;
   fclose( $fp ) ;
} else {
   $count = 0 ;
}
$count++ ;
print "counter = $count" ;
// このプログラムのディレクトリは、
// 誰からも書き込みできる許可を与えておく。
// 別途危険性は説明する。
if ( ($fp = fopen( "count.txt" , "w" )) != FALSE ) {
   fputs( $fp , "$count" ) ;
   fclose( $fp ) ;
}
?>

プログラムをちょっと修正したら、レポートを書きだすと思っていたけど、 予想に反して、くだらない機能追加なんだけど、全員が積極的に「修正」している。
# レポート作成に時間を取ってほしいんだけど….

整数の型と数値の範囲

整数型の様々な型と数値の範囲についての解説。 N進数の変換、小数を含む場合の変換の説明と、2の補数を紹介し、 char / unsigned char / short int / unsigned short int / int / unsigned int / long int / unsigned long int などの扱える数値の範囲を紹介。

数値の範囲が及ぼす具体的な事例をいくつか紹介。

((16bitコンピュータにて))
int i ;  // i:16bit
for( i = 0 ; i < 1000 ; i++ ) ; // 1μsecの処理。
ならば、100μsecは、
×  for( i = 0 ; i < 100000 ; i++ ) ; // 100000 > (2^15-1)
○  for( j = 0 ; j < 100 ; j++ )
for( i = 0 ; i < 1000 ; i++ ) ;
○ long i ;
for( i = 0 ; i < 100000 ; i++ ) ;
((16bitコンピュータにて))
int x1 , y1 , x2 , y2 ; // (x1,y1),(x2,y2)の距離を求める。
int r = sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) ) ;
// 負の数の平方根はエラーとかが発生。
((32bitコンピュータにて))
int t1 , t2 ; // 1970年1月1日からの積算秒(unix time)
× int tm = (t1 + t2) / 2 ;
○ int tm = t1 + (t2 - t1) / 2 ;

来週は、浮動小数点の扱いと double / float 型 , 文字列の扱いをやりたいな…