2015-05-01から1ヶ月間の記事一覧

最小公倍数を求める(Ruby)

1〜100の最小公倍数の質問をRubyで解いてみた。 - rscの日記あんまり驚いたのでコピペしておきます。これだけで 1~100 までの最小公倍数が求められるとは! 流行の関数型プログラミングっぽい書き方です。 class Array def lcm; self.inject(:lcm); end…

Nexus 7 で Ruboto を使ってみる

Nexus 7 を入手したので、Ruby でアプリを作ることができる「Ruboto」を入れてみました。ぐぐってやってみたのですが、初心者なので、取り敢えずの開通まで苦労しました。ぐぐればいいのですが、簡単にメモだけしておきます。まず、Android機の方に、Playス…

C言語の構造体を Ruby で表現してみる

C言語のいわゆる「K&R」本を読んでいたら、構造体というのはオブジェクト指向によく似ていると思った。ので、この本の第六章のスクリプト(p.155-159)を、Ruby で表現してみる。少なくともここでは、C言語の構造体が完全に Ruby の OOP に移植できている。 …

C言語のポインタ解析(Ruby)

いわゆる「K&R」本 p.148-152 のポインタ解析スクリプトを、Ruby に移植してみました。ポインタを使っているのを Ruby で書くのが留意点です。まったく Ruby らしくないので、Ruby らしく書き直すのが課題でしょう。例えばコマンドライン引数に「char(*(*x[3…

クイックソート(Ruby)

いわゆる「K&R」本(『プログラミング言語C 第2版 ANSI規格準拠』p.106)に載っている配列のクイックソートを、Ruby に移植してみました。メソッド(C言語では関数)の再帰呼び出しの例として使われています。コードは殆ど本そのままですが、C言語よりは読み…

メソッド内のメソッド定義(Ruby)

Ruby でメソッド内にネストしてメソッドを定義することはできるが、名前空間にならないみたい。クラス内のクラスとはちがう(参照)。あんまり意味がないのかな。 def a def b puts "B" end puts "A" b end a b の出力は A B Bとなる。内側のメソッドb に、…

C言語の関数の引数が配列であるときの不思議

C言語で、関数の引数に配列が入っている場合。例えば Ruby で stg = "Hello, World!" puts stg と書くのを、C言語では #include <stdio.h> #include <string.h> int main(void) { char stg[20]; strcpy(stg, "Hello, World!\n"); printf("%s", stg); return 0; } となるのか(追</string.h></stdio.h>…

エラトステネスの篩(C言語)

C言語でもやってみました(Ruby版)。 ※注意 この実装はまだ未熟なので、下の modify された実装を見て下さい。(2017/7/4) #include <stdio.h> int a[100000001] = {0}; void set_f(int i, int max) { int j; for ( j = 2; j <= (max / i); j++ ) a[i * j] = 2; ret</stdio.h>…

エラトステネスの篩(Ruby)

「エラトステネスの篩」で、素数を求めてみます。Ruby でやってみました。極めて素直にコードを書いてみました。難しいことは何もないと思います。もう少し Ruby らしく書くこともできるでしょう。 eratosthenes.rb def set_f(i, max) #素数でない数にフラグ…

サクラエディタで行頭に空白を入れる

指定範囲だけインデントしたい場合があると思います。まずインデントする複数行をドラッグで指定します。 そして「置換」を選択し、「正規表現」にチェックを入れます。「置換前」に「^」、「置換後」に好きなだけ半角スペースを入れて、「すべて置換」をク…