Fizz Buzzを複数言語で実装してみた

Fizz BuzzをC,Ruby,pythonで実装してみた話

 

#このブログでpython触れるの初だな

 

Fizz Buzzってゲームあるじゃないですか

(っていうかあるんです、ゲームらしいんです)

 

簡単に説明すると1から順に数字を言って,3の倍数の時に"Fizz",5の倍数の時に"Buzz",両方の倍数の時に"Fizz Buzz"って言うやつです.

それをプログラムで作ってみようっていうことをやりました.

今回は実装した言語が3種類で長くなりそうなので目次つけます。

 

目次

 

作成するときの条件

  1.作成するプログラムの条件

     ここが統一されてないと比較のしようがないですからね

     ・変数は繰り返しに用いる変数のみ

     ・出力はコマンドライン上の出力のみ

     ・関数やメゾット化はしない

 2.処理の流れ

   作成したプログラムのフローチャートは以下の通りです

   

f:id:poolbooyer:20180607094713j:plain

 

 

C言語

  作成したソースコード


        #include < stdio.h >
        int main(void){ 
          int i;
          for(i=0;i<50;i++co ){
            if(i%3==0 && i%5==0){
              printf("Fizz Buzz \n");
            }else if(i%5==0){
              printf("Buzz \n");
            }else if(i%3==0){
              printf("Fizz \n");
            }else{
              printf("%d \n",i);
            }
          }
        }

 実行結果は全部の言語で出てくるものは一緒なので最後にまとめて書きます

 実行する時に使ったコマンド

  gcc Fizz.c

./a.out

 

Ruby

  作成したソースコード


        for i in 1..50 do
          if(i%5==0 && i%3==0)
            puts "Fizz Buzz"
          elsif(i%5==0)
            puts "Buzz"
          elsif(i%3==0)
            puts "Fizz"
          else
            puts i
          end
        end
    

#C言語で書いた時より短い

 

 実行する時に使ったコマンド

  Ruby Fizz.rb

python

  作成したソースコード


        for i in range(50):
          if (i%3==0) and (i%5==0):
            print("Fizz Buzz")
          elif i%5 == 0:
            print("Buzz")
          elif i%3 ==0:
            print("Fizz")
          else:
            print(i)
    

#3つの中だと一番スッキリして見える 

 実行する時に使ったコマンド

  python fizz.py

 

比較してみる

  ソースコードの短さ(文字数ベース)

    1.Ruby(153)

    2.python(160)

    3.C言語(264)

 

  実行形式(?)

 コンパイラ

      C言語

  インタプリタ

     Ruby

     Python

 

あとがき

書いてみて色々違いがあるのが面白かったです。読みやすさとコードの少なさの違いとかに驚きがありましたが、自分の学習の理解が深まったので良かったです(こなみ)