######### program ############### a = input('How old are you? '); disp(" You are ") disp(a) disp(" years old." ) #################################実行してみます。
[nisimiya@localhost Renshu]$ octave input_1.m GNU Octave, version 2.0.16 (i386-vine-linux-gnu). Copyright (C) 1996, 1997, 1998, 1999, 2000 John W. Eaton. This is free software with ABSOLUTELY NO WARRANTY. For details, type `warranty'. How old are you? 35 You are 35 years old.表示されましたでしょうか? 1行目の ``input''文で変数``a''に、年齢を代入しています。 ``disp''というのは()内の変数を画面に表示させるコマンドです。
(解答例) ######### program ############### a = input('あなたの年齢は? ') disp("あなたのお小遣いは ") disp(a * 300) disp("円です。") ################################# (実行例) [nisimiya]$ octave ex_7.m GNU Octave, version 2.0.16 (i386-vine-linux-gnu). Copyright (C) 1996, 1997, 1998, 1999, 2000 John W. Eaton. This is free software with ABSOLUTELY NO WARRANTY. For details, type `warranty'. あなたの年齢は? 21 a = 21 あなたのお小遣いは 6300 円です。
(解答例) ######### program ############### a = input('英語の点数は? '); b = input('数学の点数は? '); c = a + b; disp("あなたの試験の点数の合計は ") disp(a + b) disp("点です。") ################################# ######### 実行例 ################ [nisimiya]$ octave ex_8.m GNU Octave, version 2.0.16 (i386-vine-linux-gnu). Copyright (C) 1996, 1997, 1998, 1999, 2000 John W. Eaton. This is free software with ABSOLUTELY NO WARRANTY. For details, type `warranty'. 英語の点数は? 87 数学の点数は? 95 あなたの試験の点数の合計は 182 点です。 #################################
######### program ############### a = input('試験の点数を入力して下さい。 '); if a < 60 disp("あなたは、不合格です。") else disp("あなたは、合格です。") endif ################################実行してみましょう。
######### 実行例 ################ [nisimiya]$ octave if_1.m GNU Octave, version 2.0.16 (i386-vine-linux-gnu). Copyright (C) 1996, 1997, 1998, 1999, 2000 John W. Eaton. This is free software with ABSOLUTELY NO WARRANTY. For details, type `warranty'. 試験の点数を入力して下さい。 45 あなたは、不合格です。 [nisimiya]$ octave if_1.m GNU Octave, version 2.0.16 (i386-vine-linux-gnu). Copyright (C) 1996, 1997, 1998, 1999, 2000 John W. Eaton. This is free software with ABSOLUTELY NO WARRANTY. For details, type `warranty'. 試験の点数を入力して下さい。 69 あなたは、合格です。 #################################条件文が「真」のとき「処理1」が実行され、条件文が「偽」のとき「処理2」 が実行されます。
条件文には、以下のような式を書きます。
条件文 | 判断内容 |
![]() |
aとbが等しい場合真になる |
![]() |
aとbが等くない場合真になる |
![]() |
aがbより大きい場合真になる |
![]() |
aがbより小さい場合真になる |
![]() |
aがbより大きいか等しいとき真になる |
![]() |
aがbより小さいか等しいとき真になる |
![]() |
(条件1)が成り立たないとき真になる |
(条件1) && (条件2) | (条件1) と(条件2)がともに成り立つとき真 |
(条件1) ![]() ![]() |
(条件1) と(条件2)がの内のどちらかが成り立つとき真 |
処理を3つに分岐したい場合はどのようすればよいか?
、
、
(解答例) ############# Program ############### a = input('あなたの年齢を入力して下さい。 '); if (a > 0) && (a < 16) disp("あなたの食事料金は ") disp(a * 80) disp("円です。") elseif (a >= 16) && (a < 65) disp("あなたの食事料金は ") disp(1500) disp("円です。") elseif a >= 65 disp("あなたの食事料金は ") disp(1000) disp("円です。") elsif disp("範囲外の年齢です。") endif ############# ここまで ############### 以下は実行例です。 ############## 実行例 ################ [nisimiya]$ octave sei_2.m GNU Octave, version 2.0.16 (i386-vine-linux-gnu). Copyright (C) 1996, 1997, 1998, 1999, 2000 John W. Eaton. This is free software with ABSOLUTELY NO WARRANTY. For details, type `warranty'. あなたの年齢を入力して下さい。 32 あなたの食事料金は 1500 円です。 ############## ここまで ##############
aa, aa, aa aaaa aaa
3, 4, 5月は春です。
6, 7, 8月は夏です。
9, 10, 11月は秋です。
12, 1, 2月は冬です。
### 実行例 ### Please input month. 8 8 is summer.
############## Program ############### p = 0; for n = [1 2 3 4 5 6 7 8 9 10] p = p + n; end disp(p) ############## ここまで ##############ベクトルは、"n = 1:1:10;"と書いてもよいですね。 それでは、1から1000まで2乗の和を求めてみましょう。 すなわち、``
############## Program ############### p = 0; for n = 1:1:10000; p = p + n*n ; end disp(p) ############## ここまで ##############
実行例を以下に示します。
nisimiya]$ octave test.m GNU Octave, version 2.0.16 (i386-vine-linux-gnu). Copyright (C) 1996, 1997, 1998, 1999, 2000 John W. Eaton. This is free software with ABSOLUTELY NO WARRANTY. For details, type `warranty'. 3.3338e+11
表示される桁をもう少し増やすにはどうすればよいか? 例えば20桁まで表示させたければ ``output_precision = 20''などと、プログラムの上の方に書き込んでおきます。
############## Program ############### output_precision = 20 p = 0; for n = 1:1:10000; p = p + n*n ; end disp(p) ############## ここまで ##############実行してみて下さい。
例えば、先ほどの1から10までの和を ``while''を使って計算してみましょう。 以下のようになります。
############## Program ############### p = 0; n = 0; while n <= 10 p = p + n n = n +1; end disp(p) ############## ここまで ##############
``p = p + n''の後に、セミコロンを敢えて入れてません。 pの値がどのように変化していくか表示されています。
############## 実行例 ################ [nisimiya]$ octave while_1.m GNU Octave, version 2.0.16 (i386-vine-linux-gnu). Copyright (C) 1996, 1997, 1998, 1999, 2000 John W. Eaton. This is free software with ABSOLUTELY NO WARRANTY. For details, type `warranty'. p = 0 p = 1 p = 3 p = 6 p = 10 p = 15 p = 21 p = 28 p = 36 p = 45 p = 55 55 ############## ここまで ##############