プログラミングを上達させたい

情報学専攻の大学院→放送局でCMの営業など@大阪→舞台俳優&IT営業@東京

Pascalで1問だけ解いてみた

というわけで、本と突き合わせながら、Pascalで問題を解いていこうと思います。

まず、少し感動したことから。


Sublime Textで、Pascalモードにして、"prog"くらいまで打つと、
f:id:frfrfrfr:20140810080853p:plain
予約語が予測で出てくる!
これは便利ですね。

そしてさらに、そこで"program"を選択すると、
f:id:frfrfrfr:20140810080953p:plain
ひな形が自動で出てくる!
これは相当便利ですね。へへへ。

ここから、簡単な問題(AtCoderの)を解いてみました。
解いた問題はコチラ

上のひな形に従って、書いてみたプログラムは、次のようなものです。

program solve(input, output);

type
 
var
a : Integer;
 
begin
 
	readln(a);
	if a mod 3 = 0
	then writeln('YES')
	else writeln('NO')
 
end.

そして、これをideoneで実行してみると・・・
f:id:frfrfrfr:20140810081609p:plain
こんな感じでコンパイルエラーになりました。
varのところがいかんのか?と思いながらも、本を見てみると、合ってそう。
type宣言部が邪魔なんかな、とtypeを消してみると、次は上手くいきました。
ideoneで何個か入力例を試してみた後、いざAtCoderにSubmit。一応最終的なコードを(ほぼ上と同じだけど)を書くと、下のようなものです。

program solve(input, output);

var
a : Integer;
 
begin
 
	readln(a);
	if a mod 3 = 0
	then writeln('YES')
	else writeln('NO')
 
end.


結果は、ACでした!
ちなみに、この問題をPascalで解いたのは僕のみ。すごく幸せです。
しかもしかも、実行時間がたったの21ms!
これは、他の方の実行時間を見る限り、CやC++と対等なくらいの速さです。嬉しい!
自分がこの問題をJavaで解いた時は、実行時間が1246msでした。そう考えると、大分速いぞPascal。
いつかこの差が、活きるときが来るといいなぁ。

そんな感じです。
これから、データ構造を自分で作る問題などにもチャレンジしていこうと思います。