小数点以下を、四捨五入、切り上げ、切り捨て、の処理をどうするかがわからなかった。 エクセルくらいしか普段扱わないので、round , roundup , rounddown くらいしか 思いつかなかったが、Cは違うのね。 四捨五入は round (double) 切り上げは ceil (double) 切り捨ては floor (double) こんなことに大分時間をついやしてしまった・・・
RubyInlineを使うとCを埋め込めるらしいので試してみた。 $:.unshift File.dirname(__FILE__) require 'rubygems' require 'inline' VERSION = '0.0.1' class KQueue inline do |builder| builder.include "<sys/event.h>" builder.include "<sys/time.h>" builder.include "<unistd.h>" builder.include "<errno.h>" =begin builder.map_c_const({ 'EVFILT_READ' => 'int', 'EVFILT_WRITE' => 'int', 'EVFILT_AIO' => 'int', 'EVFILT_VNODE' => 'int',
気の向くままにRubyを勉強しています。PerlにはC言語で書かれた関数を呼び出すためにXSという仕組みがありますが、Rubyはどうなんだろうかと調べてみると Ruby拡張ライブラリ に書かれていました。 作成する拡張ライブラリは以下の処理と同じものにしました。 class Hoge def add(x) return x + 1 end end 1. C言語でコーディング /* file name: sample_ext.c */ #include <ruby.h> VALUE add(VALUE self, VALUE x) { return INT2FIX(NUM2INT(x) + 1); } void Init_Hoge(void) { VALUE rb_class_hoge; /* クラス生成 */ rb_class_hoge = rb_define_class("Hoge",
本演習の目的は、プログラミング言語C及びSchemeの基礎を習得し、 それらの言語を通じて、講義「アルゴリズムとデータ構造」の理解を深めることにあります。 重要なお知らせ 特に重要な連絡事項はここに掲載されます。 課題について 課題には、A課題とB課題があります。(課題番号の末尾が種類を表します。) B課題が基礎的な課題で、A課題が発展的な課題となっています。 B課題を全問解くことが、単位取得の目安です。 C入門第1回(10月10日) C入門第2回(10月17日) C入門第3回(10月24日) C入門第4回(10月31日) C第1回(11月7日) C第2回(11月14日) C第3回(11月21日) C第4回(11月28日) C第5回(12月5日) Scheme第1回(12月12日) Scheme第2回(12月19日) Scheme第3回(1月9日) Scheme第4回(1月16日) C補講
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く