【ミルクカフェ掲示板TOPページ】   ■岡山大学掲示板掲示板に戻る■   最後のレス   1-   最新30  

NO.10432716

岡大の推薦☆看護科

0 名前:ララ:2004/11/19 11:25
今年、岡大の看護の推薦入試を受けるんですが、受けたって人、コツとか教えて下さい♪
1 名前:名無しさん:2004/12/03 11:16
三つも同じこと書くな!!!
2 名前:名無しさん:2006/07/30 15:05
コード生成はparseにコードをプリントする命令を組み込むことでできる。
o メモリの使い方
メモリは0x4000番地から使うようにようにしている。
メモリには変数宣言の際にいちいち名前をつけて.wordで2バイトの領域を確保している。
配列の場合は、配列の要素数にあわせてその命令を繰り返している。
たとえばint hensuu;なら
hensuu: .word 0x0000
int hensuu[3];なら
hensuu0: .word 0x0000
hensuu1: .word 0x0000
hensuu2: .word 0x0000
名前に番号を振っているのが特徴である
それ以外では代入文の最後のswくらいでしかメモリはいじってないことになる。
o レジスタの使い方
だいたい、代入文ではイコール記号の左辺の変数のアドレスは$4、
右辺の変数の演算子の左側は$2、右側は$3に入れるようにしている。
sltなどの比較の値を入れるのは$2と$3を比較した後そのまま$3に入れている。
変数が配列だった場合には$5を使って、ループで配列内のアドレスを進めるようにしている。
o 算術式のコード生成の方法
イコール記号の左辺が、代入されるわけだから
$4にその変数のアドレスを入れるのだが、
その変数が配列だった場合は、たとえばhensuu[<因子>]
とりあえずhensuu0のアドレスを入れておき、
そのあと<因子>にしたがってアドレスを進めるようにしている。
逆にいえば配列でも、最初の要素なら、hensuuだけで使えるようになっている。
演算では乗算と除算は、加算または減算の繰り返しとしての実現した。
演算などが終わればその値を$4にswして終わり。
o 特に工夫した点についての説明
oparserを使わなくていいような文法定義をしたところである。
* プログラムの概要
ターミナルで、
./token ファイル名
と打ち込むことでコード生成を行う。
* プログラムのある場所(確認のため)
* 最終課題の実行結果(二つの入力データに対する実行ステップ数).最終課題ができていない場合はコードを生成することの出来るプログラム例と実行ステップ数.
クイックソートはできていないので、
どうせなら最終課題に近いことをやろうとして、
コードを生成することの出来るプログラム例としてセレクションソートを作ってみた。
これを入力して出てきたコードに最終課題のランダムデータとソートされたデータを入れて実行してみた。
3 名前:名無しさん:2007/02/02 02:57
第1回 計算機での画像の表現方法ついて学ぶ。また様々なフォーマットのファイルを相互変換し、表示できるようにする。
第2回 --- 画像の幾何学変換 --- 画像の回転や射影変換の方法を学ぶ。
第3回 --- 変換行列の算出 --- 射影変換の算出法を学ぶ.
第4回 --- 特徴点の自動検出 --- 特徴点の自動検出の方法を学ぶ.
第5回 --- 特徴点の自動対応付け --- 以下では、特徴点の自動対応付けの基本事項について説明する.
第6回 --- 特徴点の自動対応付け 2 --- ここでは、乱数を用いた特徴点の自動対応付けの基本事項について説明する.
f1で特徴点抽出
f2で対応付け
k3bでより良い射影変換
k4で表示
4 名前:名無しさん:2007/02/06 06:30
MatrixInit(&mt,N1,N2);


createSSDij(&mt,&im,x1,N1,&im2,x2,N2);
matchMethod1(&mt,&im,x1,N1,&im2,x2,N2,kkk);



// 最後の要素を除いて、すべての要素を並べ替えます
for(i=0;i<30;i++){

// 下から上に順番に比較します
for(j=29;j>i;j--){

// 上の方が大きいときは互いに入れ替えます
if(kkk[j][4]<kkk[j-1][4]){
t1=kkk[j][0];
t2=kkk[j][1];
t3=kkk[j][2];
t4=kkk[j][3];
t5=kkk[j][4];
kkk[j][0]=kkk[j-1][0];
kkk[j-1][0]=t1;
kkk[j][1]=kkk[j-1][1];
kkk[j-1][1]=t2;
kkk[j][2]=kkk[j-1][2];
kkk[j-1][2]=t3;
kkk[j][3]=kkk[j-1][3];
kkk[j-1][3]=t4;
kkk[j][4]=kkk[j-1][4];
kkk[j-1][4]=t5;
}
}
}


for(i=0;i<4;i++){
//printf("%d,%d,%d,%d\n",kkk[i][0] ,kkk[i][1],kkk[i][2] ,kkk[i][3] );
a[i][0]=kkk[i][0];
a[i][1]=kkk[i][1];
b[i][0]=kkk[i][2];
b[i][1]=kkk[i][3];
}

//ここまで対応付け
5 名前:名無しさん:2007/02/06 06:40
void matchMethod1(Matrix*mt,Image*im ,int x1[][2],int N1,Image*im2,int x2[][2],int N2,int kkk[][5]){

int i,j,k,ji;

#ifdef DRAW
Viewer vw;
Image iv;
ImageInit(&iv,im->W,im->H);
ViewerInit(&vw,im->W,im->H);
double upper[][3]={2,0,0, 0,2,0, 0,0,1};
double lower[][3]={2,0,0, 0,2,-im->H, 0,0,1};
#endif

for(i=0;i<N1;i++){
double sm=INFINITY,t;
for(j=0;j<N2;j++){
t=Elem(mt,i,j);
#ifdef DRAW
#endif
if( sm > t ) sm = t, ji=j;
}
// printf("%f\n ",sm);

//printf("%d,%d,%d,%d,\n\n", x1[i][0],x1[i][1], x2[ji][0],x2[ji][1]);
kkk[i][0]=x1[i][0];
kkk[i][1]=x1[i][1];
kkk[i][2]=x2[ji][0];
kkk[i][3]=x2[ji][1];
kkk[i][4]=sm;

for(k=0;k<N2;k++) Elem(mt,k,ji) = INFINITY;

#ifdef DRAW
ImageClear(&iv);
ImageImageProjectionAlpha(&iv,im ,upper,1);
ImageImageProjectionAlpha(&iv,im2,lower,1);
ImageDrawBox(&iv,x1[i][0]/2,x1[i][1]/2);
ImageDrawBox(&iv,x2[ji][0]/2,x2[ji][1]/2+im->H/2);
ViewerImageWrite(&vw,&iv);
ViewerLoop(&vw);
#endif
}
}
6 名前:名無しさん:2007/02/06 06:40
for(j=0;j<4;j++){

MatrixInit(&mt,N1,N2);


createSSDij(&mt,&im,x1,N1,&im2,x2,N2);
matchMethod1(&mt,&im,x1,N1,&im2,x2,N2,kkk);



// 最後の要素を除いて、すべての要素を並べ替えます

t1=0;
for(i=0;i<30;i++){


// 上の方が大きいときは互いに入れ替えます
if(kkk[i+1][4]>kkk[t1][4]){
t1=j
}

}
a[j][0]=kkk[t1][0];
a[j][1]=kkk[t1][1];
b[j][0]=kkk[t1][2];
b[j][1]=kkk[t1][3];

}


//ここまで対応付け
7 名前:おおお:2007/02/06 11:24
void matchMethod1(Matrix*mt,Image*im ,int x1[][2],int N1,Image*im2,int x2[][2],int N2,int kkk[][5]){

int i,j,k,ji;

#ifdef DRAW
Viewer vw;
Image iv;
ImageInit(&iv,im->W,im->H);
ViewerInit(&vw,im->W,im->H);
double upper[][3]={2,0,0, 0,2,0, 0,0,1};
double lower[][3]={2,0,0, 0,2,-im->H, 0,0,1};
#endif

for(i=0;i<N1;i++){
double sm=INFINITY,t;
for(j=0;j<N2;j++){
t=Elem(mt,i,j);
#ifdef DRAW
#endif
if( sm > t ) sm = t, ji=j;
}
// printf("%f\n ",sm);

//printf("%d,%d,%d,%d,\n\n", x1[i][0],x1[i][1], x2[ji][0],x2[ji][1]);
kkk[i][2]=ji;
kkk[i][4]=sm;

for(k=0;k<N2;k++) Elem(mt,k,ji) = INFINITY;

#ifdef DRAW
ImageClear(&iv);
ImageImageProjectionAlpha(&iv,im ,upper,1);
ImageImageProjectionAlpha(&iv,im2,lower,1);
ImageDrawBox(&iv,x1[i][0]/2,x1[i][1]/2);
ImageDrawBox(&iv,x2[ji][0]/2,x2[ji][1]/2+im->H/2);
ViewerImageWrite(&vw,&iv);
ViewerLoop(&vw);
#endif
}
}
8 名前:おおお:2007/02/06 11:25
for(j=0;j<4;j++){

MatrixInit(&mt,N1,N2);


createSSDij(&mt,&im,x1,N1,&im2,x2,N2);
matchMethod1(&mt,&im,x1,N1,&im2,x2,N2,kkk);



// 最後の要素を除いて、すべての要素を並べ替えます

t1=0;
for(i=0;i<30;i++){


// 上の方が大きいときは互いに入れ替えます
if(kkk[i+1][4]>kkk[t1][4]){
t1=j
}

}
a[j][0]=x1[t1][0];
a[j][1]=x1[t1][1];
b[j][0]=x2[kkk[t1][2]][0];
b[j][1]=x2[kkk[t1][2]][1];

N1--;
N2--;

x1[t1][0]=x1[29-j][0];
x1[t1][1]=x1[29-j][1];
x2[kkk[t1][2]][0]=x2[29-j][0];
x2[kkk[t1][2]][1]=x2[29-j][1];


}


//ここまで対応付け
9 名前:名無しさん:2007/11/04 05:31
看護学科って難しい?
10 名前:名無しさん:2007/11/05 04:28
簡単。
11  名前:投稿者により削除されました

前ページ  1 > 次ページ


トリップパスについて

※全角750文字まで (必須)