<C,Ruby,python>Fizz Buzzを複数言語で実装してみた
Fizz BuzzをC,Ruby,pythonで実装してみた話
#このブログでpython触れるの初だな
Fizz Buzzってゲームあるじゃないですか
(っていうかあるんです、ゲームらしいんです)
簡単に説明すると1から順に数字を言って,3の倍数の時に"Fizz",5の倍数の時に"Buzz",両方の倍数の時に"Fizz Buzz"って言うやつです.
それをプログラムで作ってみようっていうことをやりました.
今回は実装した言語が3種類で長くなりそうなので目次つけます。
目次
作成するときの条件
1.作成するプログラムの条件
ここが統一されてないと比較のしようがないですからね
・変数は繰り返しに用いる変数のみ
・出力はコマンドライン上の出力のみ
・関数やメゾット化はしない
2.処理の流れ
作成したプログラムのフローチャートは以下の通りです
作成したソースコード
#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);
}
}
}
実行結果は全部の言語で出てくるものは一緒なので最後にまとめて書きます
実行する時に使ったコマンド
./a.out
作成したソースコード
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言語で書いた時より短い
実行する時に使ったコマンド
作成したソースコード
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つの中だと一番スッキリして見える
実行する時に使ったコマンド
比較してみる
ソースコードの短さ(文字数ベース)
1.Ruby(153)
2.python(160)
3.C言語(264)
実行形式(?)
あとがき
書いてみて色々違いがあるのが面白かったです。読みやすさとコードの少なさの違いとかに驚きがありましたが、自分の学習の理解が深まったので良かったです(こなみ)
google すごいと思った話
くだらない話はこれくらいにして、、、
googleすごいって感動してます
何がすごいってこれです
と
です(なぜか二つ目のサイトが埋め込めなかった
このサイト、何ができるかっていうと、webサイトのパフォーマンスを測定できるんです。
見たいサイトのURLを入れてちょっと待つとそれぞれ情報を出してくれるんです。
1つ目と2つ目を組み合わせると最強になれそうなレベルですごいんです。
1つ目のサイトでできるのはモバイルでアクセスした時の状況の解析です。
この機能を使うと3G通信で接続した時の読み込み速度とかが全部見れるという神機能付いてます。
しかも、詳細なレポートも取得できるというすごさがやばいやつです。
(レポートの中身は後日追記する(かも))
そして2つ目
モバイルだけでなく、PCからアクセスした時のアクセスのレポートが取得できます。このサイトから確認すると、読み込みに必要になる速度の測定だけでなく、最適化されているかの確認もできます。
これの何がすごいって、最適化されているかの評価だけでなく、さらに最適にするための提案が様々な内容でもらえるのがすごい。
これを使って自分がこれまで作ったサイトのやつ色々みて改善して行くと最強のサイトが作れそうな気がします(語彙力皆無)
正直、感動してます。
以上、rubykaigi参加前夜のよくわからないハイテンションでのブログでした
研究で使ってるツールメモ
研究するときに使っているツールのメモを書きます。
1.Macで使っているもの
1.1VNC
リモートでwindowsマシンを操作するためにReal VNCを使っています。使いやすいかどうかでいうと完璧とも言い切れないけど必要条件(最低限のwindowsマシン操作)は満たしているのでいいかなと思ってます。たまに接続先に設定したパスワードが入力できなくなるバグ(?)があります。
1.2drow.io
資料にフローチャートを書いたりする必要があるときに使ってます。元々はブラウザ上でやっていたのですが、オフラインでの操作ができる方がいいかなと思い、ローカルに入れてます。操作感に関してはローカルでもブラウザでも変わらないので満足しています。
2.windows関連
2.1Tera Pad
超有名(?)なエディタ。行数表示とか、プログラムを書くのに必要な最低限の昨日がまとまっているので設定ファイルをいじらなきゃいけない時とかによく使ってます。
3.Mac,windows共通
3.1chrome
メインのブラウザはchromeにしています。ユーザ認証とかの影響が出そうな時はfirefoxを使うときもあります。軽量かで見るとなんとも言えないですが、gmailアカウントで多くのことを管理できる部分は特に重宝しています。
3.2 Pocket
webサイトを保存してあとで確認するために用いられるために開発されたものです。複数のデバイスで同じサイトを見る必要があるときなどにここに入れるようにしてます。chromeの拡張機能もリリースされているので、簡単に使えて重宝しています。見たいサイトはたどり着いたらとりあえず入れといて、たまーにPCが落ちたときに見れなくて困るとかの事態を避けるようにも使っています。
3.3IFTTT
スマホに色々通知を渡したいので使おうかなと画策中。LINEに通知を渡したり、スマホに通知を出したりがひとつでできるので便利