グラフィックスと総括

プログラミング応用の授業は、3次元グラフィックスの計算方法の説明も先週に終り、 今日は課題作成の時間とした。 途中、試験前ということもあり、関数の引数の受け渡しの復習と、型についての説明を行った。

変数の受け渡し

基本は、関数への値渡しと返り値による受け渡しを説明。 関数による複数の計算結果を、呼び出し側に伝えるには、 ポインタ渡し、配列渡し、構造体渡しがある。 簡単には、以下のような例をベースに説明。

int foo( int x , int y ) {
    :
   return x*x + y*y ;
}
void main() {
   printf( "%d\n" , foo( 12 , 34 ) ) ;
}
//---
void rarg( double*r , double*th , double x , double y ) {
    *r = sqrt( x*x + y*y ) ;
    *th = atan2( y , x ) ;
}
void main() {
   double zr , zth ;
   rarg( &zr , &zth , 1.0 , 2.0 ) ;
}
//---
void rarg( double rth[2] , double xy[2] ) {
   rth[0] = sqrt( xy[0] * xy[0] + xy[1] * xy[1] ) ;
   rth[1] = atan2( xy[1] , xy[0] ) ;
}
void main() {
    double zrth[2] , zxy[2] = { 1.0 , 2.0 } ;
    rarg( zrth , zxy ) ;
}
//---
struct RTH {
   double r , th ;
} ;
struct XY {
   double x , y ;
} ;
void rarg( struct RTH*p , struct XY*q ) {
   p->r = sqrt( q->x * q->x + q->y * q->y ) ;
   p->th = atan2( q->y , q->x ) ;
}
void main() {
   struct RTH rth ;
   struct XY xy = { 1.0 , 2.0 } ;
   rarg( &rth , &xy ) ;
}

この後に、プログラムの式を正確に理解するためのヒントとして、 型の概念を説明し、式の一部分もそれぞれ型を持ち、 演算子を適用するごとに型が変化していく状況を説明する。

 

2015年12月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

アーカイブ

Google

このブログ記事について

このページは、T-Saitohが2012年2月 1日 14:40に書いたブログ記事です。

ひとつ前のブログ記事は「電子情報棟の無線LANの更新」です。

次のブログ記事は「ものづくりとしては面白...(01/31)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。