この記事はSLP KBIT Advent Calendar 2014 - Adventarの2日目の記事です。
はじめに
やあ (´・ω・`)ようこそ、当ブログへ。
この記事は時間稼ぎだから、まず読んで落ち着いて欲しい。
うん、「処分市」なんだ。済まない。
仏の顔もって言うしね、謝って許してもらおうとも思っていない。
でも、このタイトルを見たとき、君は、きっと言葉では言い表せない
「ときめき」みたいなものを感じてくれたと思う。
殺伐とした世の中で、そういう気持ちを忘れないで欲しい、そう思って
この記事を作ったんだ。
じゃあ、注文を聞こうか。
本題
入力された3つの値の最大値を求めるプログラムを10言語分書いてみた。使用言語はC、C++、Java、Ruby、Python、JavaScript、なでしこ、FORTRAN、BASIC、シェルスクリプトである。
C言語
#include <stdio.h> int main(void) { int num1,num2,num3; int max; scanf("%d",&num1); scanf("%d",&num2); scanf("%d",&num3); max = num1; if( max < num2 ) { max = num2; } if( max < num3 ) { max = num3; } printf("%d\n",max); return 0; }
C++
#include <iostream> using namespace std; int main(void) { int max; int num1,num2,num3; cin >> num1; cin >> num2; cin >> num3; max = num1; if( max < num2 ) { max = num2; } if( max < num3 ) { max = num3; } cout << max; return 0; }
C++(C++11)
#include <iostream> #include <algorithm> using namespace std; int main(void) { int num1,num2,num3; cin >> num1; cin >> num2; cin >> num3; cout << max( {num1, num2, num3} ); return 0; }
Java
import java.util.Scanner; public class Max { public static void main(String[] args) { int num1,num2,num3; int max; int i; Scanner input = new Scanner(System.in); num1 = input.nextInt(); max = num1; num2 = input.nextInt(); if( max < num2 ) { max = num2; } num3 = input.nextInt(); if( max < num3 ) { max = num3; } System.out.printf("%d\n",max); } }
Ruby
# coding: utf-8
num = [gets.to_i, gets.to_i, gets.to_i]
puts num.max
Python
# -*- coding: utf-8 -*- num = [input(), input(), input()] max(num)
JavaScript
num1 = window.prompt("数1"); num2 = window.prompt("数2"); num3 = window.prompt("数3"); max = num1; if( max < num2 ) { max = num2; } if( max < num3 ) { max = num3; } document.write("最大値は" + max );
なでしこ
最大とは整数。 数1とは整数。 数2とは整数。 数3とは整数。 「数1:」と尋ねる。 数1はそれ。 「数2:」と尋ねる。 数2はそれ。 「数3:」と尋ねる。 数3はそれ。 最大に数1を代入。 もし、最大 < 数2ならば 最大に数2を代入。 もし、最大 < 数3ならば 最大に数3を代入。 最大を表示。
BASIC
10 INPUT NUM1 20 INPUT NUM2 30 INPUT NUM3 40 MAX = NUM1 50 IF MAX < NUM2 THEN MAX = NUM2 60 IF MAX < NUM3 THEN MAX = NUM3 70 PRINT MAX 80 END
FORTRAN
program max integer mx integer num1,num2,num3 read *,num1 read *,num2 read *,num3 mx = num1 if( mx < num2 ) then mx = num2 endif if( mx < num3 ) then mx = num3 endif print *,mx end program max
シェルスクリプト
#!/bin/sh max=${1} if [ ${max} -lt ${2} ] then max=${2} fi if [ ${max} -lt ${3} ] then max=${3} fi echo ${max}
まとめ
RubyとPythonはマジックコメントを除けば2行で書ける(好ましくない書き方だと思われるが)ので、とても柔軟な言語だと思った。正直こんな簡単なプログラムだとあまり違いがわからないので他のプログラムでもやってみたい。