朝
昨日のティーポットの続きをした.結局照明のいい当て方が分からなかったので適当に仕上げてしまった. こんな感じ.
Utah Teapot!!! pic.twitter.com/QPh3ib0te1
— いかなご (@ikanag0) April 9, 2020
地面にも木のテクスチャを適用していい感じになった. まだ注ぎ口は微妙だけど...
モデリング難しい. 単にBlenderに慣れてないのもあるけど,初めてプログラミングした時の感覚と似ていて,やりたいことをうまく表現できない感覚がとても強かった. これからもたまにやっていきたい.
昼
今日から3セメが始まるが登校禁止・授業はオンラインということでZoomで授業を受けた. これはプログラミングの授業で,生徒からの質問にもその場で答えるつもりらしいのでちょうどいいと思う. 環境構築をWSLでしていたので,Windowsに直接環境を作るよりは楽そうだ. この授業ではC++だとSTLに搭載されているようなアルゴリズムやデータ構造を実装するらしく,いい機会なので計算量解析なども含めて真面目に取り組んでみようと思う.
夜
さっそくC言語でデータ構造を実装していく. まずはLinkedList
を書いた. insert
がO(1)
なのはいいのだが,insert
したい要素を覚えておくかO(n)
でその要素にアクセスする必要があるので一長一短という感じだ.
それからstack
も実装した. 動的にサイズを拡張するようにした. pop
しようとしたときにstack
が空だった場合はエラーを通知したいが,NULL
を返すかfprintf
するくらいしか策がない. ところがpop
はint
を返す関数なので,NULL
を返すと0
にキャストされてしまう. stack
に0
が入っていないことは仮定できないので,これでは意味がない.
C言語は直和型を定義できないのでエラーの表現が難しい. 成功/失敗のフラグをつけた構造体でも定義するか...?