ホーム » 2010 » 5月 (ページ 2)

月別アーカイブ: 5月 2010

2010年5月
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

検索・リンク

atoi(),itoa()にて演習

N進数・文字列・数値の範囲・文字コードとデータの基本が理解出来たところで、 文字列から整数値を取り出すatoi() , 数値を文字列に変換する itoa() のプログラムにて、 演習を行う。 演習用の雛形プログラムを示し、そのプログラムの挙動を示し、以下の課題とする。

int my_atoi( char s[] ) {
int ans = 0 , i ;
for( i = 0 ; s[i] != '
int my_atoi( char s[] ) {
int ans = 0 , i ;
for( i = 0 ; s[i] != '\0' && s[i] >= '0' && s[i] <= '9' ; i++ ) {
ans = ans * 10 + (s[i] - '0' ) ;
}
return ans ;
}
char* my_itoa( char ans[] , int x )
{  int i ;
ans[ 5 ] = '\0' ;
for( i = 0 ; i < 5 ; i++ ) {
int d = x % 10 ;
ans[ 4 - i ] = '0' + d ;
x /= 10 ;
}
return ans ;
}
' && s[i] >= '0' && s[i] <= '9' ; i++ ) { ans = ans * 10 + (s[i] - '0' ) ; } return ans ; } char* my_itoa( char ans[] , int x ) { int i ; ans[ 5 ] = '
int my_atoi( char s[] ) {
int ans = 0 , i ;
for( i = 0 ; s[i] != '\0' && s[i] >= '0' && s[i] <= '9' ; i++ ) {
ans = ans * 10 + (s[i] - '0' ) ;
}
return ans ;
}
char* my_itoa( char ans[] , int x )
{  int i ;
ans[ 5 ] = '\0' ;
for( i = 0 ; i < 5 ; i++ ) {
int d = x % 10 ;
ans[ 4 - i ] = '0' + d ;
x /= 10 ;
}
return ans ;
}
' ; for( i = 0 ; i < 5 ; i++ ) { int d = x % 10 ; ans[ 4 - i ] = '0' + d ; x /= 10 ; } return ans ; }

課題

my_atoi() については、 (a) 8進数・2進数・16進数で動くように、 (b) より一般的にN進数で動くように、 (c) 小数点を含む値が処理できるように (d) C言語の定数のように先頭の"0x(16進数)","0(8進数)"で 自動的に基数を判別するように、といった改良のいずれかを行うこと。 また、my_itoa については、同様に、(e) 8,2,16進数、(f) N進数、(g) 浮動小数 といったテーマより、それぞれ1つづつを選んで取り組むこととした。

レポートには、プログラム・説明・動作検証(異常動作の検証)・異常動作についての考察 を記載することとする。

課題に取り組んでもらっている中で、関数のプロトタイプ宣言を説明を行う。

2010年5月16日(第164回)

  • メールテーマ:我が家のオリジナル料理
  • 沖縄高専のひがさんリミックス音楽をご紹介
  • 英語の囃子 第35回 吉田先生、電子情報5年丸山さん
    英語 でかぐや姫を読んでみよう
    eng100516.mp3
  • ブラックサンダーにあうものを探そう! 第3弾
    とび辛スパイス、塩、タルタルソース、納豆、からし、フィッシュソーセージ
photo100516.jpg
このあと、やまもと君が試食をしました。

インターンシップ(夏季実習)依頼中

4年担任として、インターンシップの受入れを企業にお願いする作業を、連日行っています。 現在、20名分(4EI=38名)の企業から、OKもしくはたぶんOKといった内諾をもらえている。 豊橋や長岡のオープンキャンパスの申し込みもたぶんOKとなるだろうし、 検討中のところも含めれば、山場を越えたあたりかな。

企業を選ぶにあたって、楽そうな雰囲気で選んでいる人もいるけど、 報告会だったり、実際に就職の際には、楽なインターンシップを選んだ人は、 ちょっと後悔するんじゃないかと思うのだが….

どちらにしろ、数社からはお断りだったり、寮無し自己負担だったりで、 受入れを再検討してもらっている人も出てきている。まだまだ調整は大変だけど、 慣れない電話仕事をもう少しがんばろう。

薬物乱用防止講習会

近年、大学生による大麻などによる逮捕といった事例として、 身近なところでも薬物乱用が広がっており、数年前より全4年を対象に 「薬物乱用防止講習会」が行われている。

今日は、保護師の方が、取り扱った人の事例を交えながら、薬物乱用の 怖さを語ってくれた。 当初、PRビデオの上映を予定していたが、事前動作確認はされていたものの、 年期の入った古いビデオであるためか、急に動かなくなってしまった。 このため、お話し主体の講演となった。
# おかげで話の繋がりが分かりにくかったかな…

再帰方程式part2+メモリ使用量と配列

再帰方程式の応用として、再帰による2分探索法とマージソートについて、 再帰方程式を示し代入法による一般解の予測により、 O(log N)O(N log N) を示す。 [参考昨年度資料]

テストのひねり問題で、再帰2分探索で間違った記述で処理時間がO(N)になるコードを 出題するってぇのもいいなぁ…

後半は、名前のデータベースを作るというネタで、固定サイズ配列の問題点を示す。

隠蔽化(Complex)の解説+演算子オーバライド

例年どおり、複素数のクラスを直交座標系で記述して、 隠蔽化を考慮してプログラムを書けば、後でデータ構造を極座標系に変更しても 利用者側のプログラムは一切変更不要…というネタで解説する。

今年度は、すでに受講者が電子情報のみになっているので、 例年説明をしていない演算子オーバーライドや"cout<<…<<endl" といった、iostream系の紹介(詳しい解説はしない)を行った。

途中にて、Complex::add( Complex& ) といった宣言で、「引数を参照宣言するのはなぜ?」 といった質問がでる。例で示した複素数といったオブジェクトであれば、関数呼び出しで コピーを伴う「値渡し」でも実行効率は悪くならないが、巨大オブジェクトではコピーを避けるために 「参照渡し」が一般的であるため、実務で見かける機会の多い「参照渡し記述」をしていると説明する。

創造工学:グループ決め&具体化

先週のアイデア草稿について、 全体の講評をした後、 アイデアの具体化に向けたグループ討議をしてもらう。

アイデア草稿では、具体的な方法については考えていなかったが、 その実装方法の問題点ということで、 先週紹介した電子ブロックのネタを実際に使った際に、 具体的にどんな機能が必要だったりその実装の方法を検討した内容を 説明し、同様の検討を時間内に行った。

しかしながら、グループ討議や後半の実装方法検討の際に、 Webで調べて画面を見ているだけで、何のメモも取らない人が多い。 インターンシップでも上司に質問をする際にも、メモを取らずに 質問をしたら相手がどう思うのか?、具体的な資料を作成するときに、 何をキーワードに文書を作るのかも記録が残っていないと… といった注意点を説明する。

浮動小数点、文字、文字列、真偽値

浮動小数点型(float,double)の説明として、小数点のあるN進数の説明の後、0.1が2進数となると無限小数になったり、それにともなうトラブルを紹介。 暗黙の型変換によるトラブルの説明や型キャストの説明を行いながら、浮動小数点に伴うトラブルの事例を紹介する。

次に、ASCIIコード表や文字コードの値について説明し、特殊文字'\n','\r','\f','\a','\t' や'\8進数' , '\x16進数'といった表記法などの説明と、ASCZ文字列の説明。

2010年5月9日(第163回)

誠市、ご縁市開催中でした

  • メールテーマ:母の日の贈り物
  • 英語の囃子 第34回 吉田先生、電子情報5年丸山さん
    英語 で浦島太郎を読んでみよう
    eng100509.mp3
  • ブラックサンダーにあうものを探そう!好評(?)につき、第2弾
    誠市、ご縁市に出ているものの中から たこ焼き、玄米コロッケ、五平餅、パンなど・・・

福井高専キャンパスツアー2010

1005081037_320x240.jpg

システム

最新の投稿(電子情報)

アーカイブ

カテゴリー