日記(4/9)

昨日のティーポットの続きをした.結局照明のいい当て方が分からなかったので適当に仕上げてしまった. こんな感じ.

地面にも木のテクスチャを適用していい感じになった. まだ注ぎ口は微妙だけど...

モデリング難しい. 単にBlenderに慣れてないのもあるけど,初めてプログラミングした時の感覚と似ていて,やりたいことをうまく表現できない感覚がとても強かった. これからもたまにやっていきたい.

今日から3セメが始まるが登校禁止・授業はオンラインということでZoomで授業を受けた. これはプログラミングの授業で,生徒からの質問にもその場で答えるつもりらしいのでちょうどいいと思う. 環境構築をWSLでしていたので,Windowsに直接環境を作るよりは楽そうだ. この授業ではC++だとSTLに搭載されているようなアルゴリズムやデータ構造を実装するらしく,いい機会なので計算量解析なども含めて真面目に取り組んでみようと思う.

さっそくC言語でデータ構造を実装していく. まずはLinkedListを書いた. insertO(1)なのはいいのだが,insertしたい要素を覚えておくかO(n)でその要素にアクセスする必要があるので一長一短という感じだ.

それからstackも実装した. 動的にサイズを拡張するようにした. popしようとしたときにstackが空だった場合はエラーを通知したいが,NULLを返すかfprintfするくらいしか策がない. ところがpopintを返す関数なので,NULLを返すと0にキャストされてしまう. stack0が入っていないことは仮定できないので,これでは意味がない.

C言語は直和型を定義できないのでエラーの表現が難しい. 成功/失敗のフラグをつけた構造体でも定義するか...?