ホーム » 2010 » 5月 » 17

日別アーカイブ: 2010年5月17日

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つづつを選んで取り組むこととした。

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

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

システム

最新の投稿(電子情報)

アーカイブ

カテゴリー