ここでは、Juliaプログラミングの基礎について学びます。
最近では、プログラミングを効率的に学習するためにAIの支援を受けることも有用です。本サイトの解説記事「ChatGPTを活用したプログラミング学習効率化」も参考にしてください。
まず、Juliaでプログラミングの基本的な手順を学びます。:
.jl
を付けます。julia
コマンドを使用して実行します。この手順を学ぶために、よく知られ「Hello World プログラム」と呼ばれるコードを記述して実行してみましょう。まず、テキストエディタでlesson0_1.jl
という名前のファイルを作り、そこに次の文を記述して保存します。
println("Hello world!!")
ここでprintln
は変数を出力するための関数です。この場合、文字列Hello world!!
を出力するためにprint関数が使用されています。Juliaでは、文字をダブルクォーテーション(""
)で囲むことで、それらの間の文字列を文字変数として扱うことができます。
上記のコードが準備できたら、ターミナルで次のコマンドを入力してJuliaプログラムを実行します。
julia lesson0_1.jl
その結果、次のメッセージが画面に出力されます:
Hello world!!
ここで、次の手順によってJuliaのコードを書いて実行する方法を学びました:
.jl
の拡張子を付けてファイルに保存します。julia
コマンドを使用して実行します。以降では、Juliaプログラミングの基本について学びます。
多くの場合、数値計算は加算、減算、乗算、除算、および冪乗などの基本的な数学的操作を組み合わせることで実行されます。この節では、Juliaを使用してこれらの基本的な数学演算を行う方法について学びます。まずは、次のサンプルプログラムを見てみましょう。
a = 3.0
b = 2.0
println("a=",a)
println("b=",b)
c = a + b
d = a - b
e = a * b
f = a / b
g = e^b
println("a+b=",c)
println("a-b=",d)
println("a*b=",e)
println("a/b=",f)
println("a^b=",g)
このプログラムでは、最初の2行で実数3.0
および2.0
をそれぞれ変数a
およびb
に代入します。Juliaでは、等号(=
)は左辺と右辺が等しいことを示すものではなく、むしろ右辺を左辺に代入する命令として機能します。
その後に続く4行目と5行目は、上記で代入された実数をprintln
文を使用して出力する命令です。
Juliaでは、加算は記号+
で、減算は記号-
で、乗算は記号*
で、除算は記号/
で、冪乗は記号^
で表されます。
提供されたコードでは、最後の行(13行から17行)はそれぞれprint
文を使用して四則演算および冪乗の結果を出力するようにプログラムに指示しています。
上記のコードを.jl
拡張子のファイルに保存し、ターミナルでjulia
コマンドを使用して実行します。コード内の命令は上から順に実行されます。実際にコードを実行してみて、得られた結果が期待されるものか確認してみましょう。
上記のソースコードでは、各変数には単一の値が格納されました。これらの変数はスカラー変数と呼ばれます。スカラー変数はプログラミングの基本ですが、単一の変数に複数の値を格納することが有益な状況が多々あります。この文脈で、この目的のために設計されたJuliaのarray
関数を探求します。以下のプログラムを見てみましょう。
array_a = ["April", "May", "June"]
println(array_a)
println(array_a[1])
println(array_a[2])
println(array_a[3])
array_b = [0.6, 1.2, 1.8]
println(array_b)
println(array_b[1])
println(array_b[2])
println(array_b[3])
上記のソースコードの1行目では、arrayが作成され、要素として'April', 'May', 'June'
の3つの文字変数が[]
で囲まれ、変数array_a
に割り当てられます。Juliaでは、要素を[]
で囲むことで配列を作成することができます。
ソースコードの3行目では、println
関数を使用して配列全体が出力されます。逆に、5行目から7行目では配列の要素が1つずつ出力されます。これにより、配列の特定の要素のみを読み取ることが可能です。例えば、array_a[2]
は配列の2番目の要素を表します。Juliaでは要素の番号付けは1番目の要素から始まることに注意してください。
上記の説明は、要素が文字列"April", "May", "June"
である配列に関連していますが、配列の要素は他の型の変数であることもあります。例えば、上記のソースコードの10行目から16行目では、配列array_b
に3つの実数を格納して各要素を出力するよう指示されています。上記のJuliaプログラムを実行して、配列の動作を観察してください。
これまで見てきたように、ソースコードを書き、プログラムを実行すると、命令はコードの上から順に実行されます。その結果、多くの手順を含むプログラムを作成する際には、コードが長くなり、書くのに時間がかかることがよくあります。Juliaには、命令をループで繰り返すことでコードを簡素化し、可読性を向上させるための関数が提供されています。以下のソースコードを調べてみましょう。
array_c = ["April", "May", "June"]
for a in array_c
println(a)
end
println("End")
上記のソースコードの1行目では、"April", "May", "June"
の3つの文字列を要素とする配列が作成され、それが変数array_c
に格納されます。
ソースコードの3行目は、for a in array_c:
文で繰り返し部分の定義を開始します。ここで、変数a
はイテレータとして機能し、各繰り返しで変化します。各ループの反復中には、配列変数array_c
の各要素の値を取ります。提供されたコードでは、変数a
には3つの文字列"April", "May", "June"
が順番に割り当てられ、反復ごとに繰り返し部分内の処理が実行されます。
Juliaでは、for
文の繰り返し部分はfor
およびend
を使用して定義されます。したがって、上記のソースコードの場合、println(a)
部分のみが繰り返されます。
与えられたソースコードの例では、for
ループの反復処理の後にprintln("End")
によって一度だけ「End」ログが出力され、プログラムが終了します。
要約すると、上記のプログラムはまず3つの要素を持つ配列変数array_c
を作成し、次にfor
ループを使用してprintln(a)
を介して配列の各要素を出力し、最後に終了ログEnd
を出力してプログラムを終了します。
上記のプログラムを実行して、配列とfor
文を使用した反復プロセスの動作を観察してください。
前のセクションでは、array
を使用した反復処理を探求しました。その文脈で、配列の各要素を反復処理する方法について理解を深めました。配列を使用するだけでなく、for
ループの長さを明示的に定義することも可能です。次のソースコードを見て、for
ループの挙動を理解しましょう。
println("loop a")
for i = 1:10
println(i)
end
println("loop b")
for j = 1:2:10
println(j)
end
以下は提供されたコードの簡単な説明です:
println("loop a")
:この行は文字列loop a
をコンソールに出力します。for i = 1:10
:この行は、ループ変数i
が1から10(含む)までの範囲であるfor
ループを開始します。ループは10回繰り返されます。println(i)
:最初のループ内で、この行は各反復で現在のi
の値をコンソールに出力します。end
:最初のfor
ループの終了を示します。for j = 1:2:10
:この行は、ループ変数j
が1から10までの値を2つずつ取る第二のfor
ループを開始します。したがって、j
は値1, 3, 5, 7, 9を取ります。ループは5回繰り返されます。