■
今日の日記は同級生専用。先輩も分かるだろうけど。
機械語の試験、時間内に半分しかできなかったよ…。
パリティが奇数なら1、偶数なら0ってどうしたらできるかなって
いろいろ考えたんだけど、終わってから気付いた。
andで比較して「inc %eax」していって、ループ抜けてから$1とandとれば良かった…
0にincしていくと、
00000000
00000001
00000010
00000011
だもんね。一番下見ればいいんだね。
私は毎回$1とxor取ることにした。これ思いつくのに時間がかかってだな…。
でも、最初は%eaxが1ならと0ならで場合分けしようとか考えてたんだから、
それに比べればずいぶんましかな。2で割った余りってのも考えたけど。
単位来るかなあ…かなり微妙…。というか通り越してヤバイかな。
つか、紙の上でプログラミングするのは苦痛だなあ。
切り貼り(コピペ)できないんだもん。何が抜けてるかとか考えるのに時間が…。
でも最後にまとめて課題やったせいか(笑)多少は理解できたみたいで良かった。
CG(コンピュータグラフィックス)は、持ち込み可だったんだけど、
持ち込んだ講義プリントがほぼ出る形だった。(機械語も持ち込み可)
楽といえば楽だったが、この問題で持ち込み不可にすればいいんじゃないのか?
いや、私は困るんだけどさ。でもなあ…。
三角形を書く関数で、
for(i = 0; i < 3; i++){
pushMatrix();
・・・・
rotate2(120.*(float)i);
・・・・
popMatrix();
}
みたいなので、pushとpopが無い場合は一行をどう書き換えたら三角形が表示できるか
という問題ですごい悩んだ。かなり時間食ったけど他時間かかるところなかったから
機械語と違ってヤバイことにはならなかったけど。
普通に、
rotate2(120.*(float)i);
↓
rotate2(120.);
にするというのが全く思いつかなくて、
rotate2(120.*(float)(i*i));
とかいうのになった(笑)。
これだと、(i*i)は0,1,4と遷移するので、120度を何回動いたかに換算すると、
0 mod 3 = 0, 1 mod 3 = 1, (1 + 4) mod 3 = 2
となり、見事三角形が書ける…はずです(笑)。
合ってると思うけど、ちゃんと丸になるかなあ?