投稿

9月, 2019の投稿を表示しています

ブログの説明

学校に通わないで学んだことを記しています。間違っているところが何かありましたらご指摘下さると幸いです。コメントに対する返信が遅れる可能性があります。その場合は申し訳ありません。

このブログではサイドバーに広告を表示しています。このブログ内の投稿記事を検索するには右上の拡大鏡のアイコンを、アーカイブやラベル付けから投稿記事を閲覧するには左上の三重線のアイコンをクリックして下さい。

数式の表示にはMathJaxを利用させていただいています。数式の表示のためにJavaScriptが有効である必要があります。そうでない場合、訳の分からないLatexのコードが表示されます。幾何学図形やチャートの表示にはHTML5 CanvasやGoogle Chartを使用しています。その表示のためにもJavaScriptが有効である必要があります。

LibreOffice Basic 制御構文 繰り返し

For Next構文 繰り返し処理の代表はFor Next構文。指定した回数だけ処理を繰り返すときにそれを用いる。その書式は For カウンター変数名=開始値 To 最終値 Step 増分値 処理内容 Next のようになる。Step 増分値を省略すると増分値は1になる。Nextの次に Next カウンター変数名 のようにカウンター変数を置いてもよいが、それは省略可能。 Option Explicitステートメントをモジュールの冒頭に指定している場合は、繰り返し回数を数えるためのカウンターとして使う変数を Dim カウンター変数名 As Integer のように予め宣言しておく必要がある。 次のコードは、掛け算のことを同じ数を繰り返し足す累加法であると考え、For Next構文を用いることによって足し算だけで掛け算の計算をするもの。ただし整数倍なので、かけられる数は小数を許容するが、かける数は小数点以下を切り捨てる。 REM ***** 整数倍を累加法で計算 ***** '変数を明示的に宣言して使う Option Explicit Sub Main '変数を宣言 Dim x As Double Dim y As Double Dim answer As Double '値の入力を促す x = InputBox("数を入力してください") 'Int()の引数にして小数点以下は切り捨て y = Int(InputBox("何整数倍にしますか(小数点以下切り捨て)")) '足し算を整数倍だけ繰り返す Dim i As Double For i=1 To y answer = answer + x Next '計算結果を出力 MsgBox x & "の" & y & "倍は" & answer & "です" End Sub For i=1 To y answer = answer + x Next は、 answer = answer + x をy回繰り返すことに等しい。 Int函数は引数として丸括弧の中に与え

LibreOffice Basic 制御構文 条件分岐

If構文 条件分岐は、なんらかの条件によって処理を分岐する制御構文。その代表的なものがIf構文。その書式は If 条件式 Then 処理内容 ElseIf 条件式 Then 処理内容 Else 処理内容 End If のようになる。ただし、ElseIf文とElse文は必要なければ用いなくてよい付属文。 次のコードは、身長と体重の入力を促し、その値が0以下であるかどうかを検証し、0以下であればその値が無効であるとメッセージボックスに出力し、0以下でなければボディマス指数(BMI)を計算する函数を呼び出してその計算結果をメッセージボックスに出力するもの。 REM **** BMIを計算 **** '変数を明示的に宣言して使う Option Explicit Sub Main '局所変数をSingle型で宣言 Dim height As Single Dim weight As Single Dim bmiValue As Single '身長と体重の値の入力を促す height = InputBox("あなたの身長(cm)を入力してください") weight = InputBox("あなたの体重(kg)を入力してください") 'If構文を用いて入力された値を検証 If height <= 0 Then MsgBox "身長が無効な値です" ElseIf weight <= 0 Then MsgBox "体重が無効な値です" Else 'BMIを計算する函数を呼び出して返り値を代入 bmiValue = funBmi(height,weight) '計算結果をメッセージボックスに出力 MsgBox "あなたのボディマス指数は" & bmiValue & "です" End If End Sub 'BMIを計算する函数 Private Function funBmi(height As Single, weight As Single) '身長と体重からBMIを

LibreOffice Basic サブルーチン 函数 引数

サブルーチンと函数 サブルーチンと函数は、一つのまとまった処理を行う一連のステートメントに名前を付けて部品化する仕組み。サブルーチンのことをプロシージャと呼んだり、サブルーチンと函数を両方まとめてプロシージャと呼ぶことがある。函数が呼び出し元に返す値を持つのに対してサブルーチンは呼び出し元に返す値を持たないという違いがある。 サブルーチンは Sub サブルーチン名 によって始まり、 End Sub によって終わる。その間に一連の処理を行うステートメントを置く。サブルーチン名はそのサブルーチンを呼び出すために用いられる。 REM **** BASIC **** '変数を明示的に宣言して使う Option Explicit Sub Main 'サブルーチンHelloWorldを呼び出す HelloWorld End Sub 'Hello, World!を出力するサブルーチン Sub HelloWorld MsgBox "Hellow, World!" End Sub 一方、函数は Function 函数名 によって始まり、 End Function によって終わる。その間に一連の処理を行うステートメントを置く。函数名と同じ名前の変数に値を代入すれば、その値が返り値となって呼び出し元に返される。函数名はその函数を呼び出すときに使われる。 REM **** BASIC **** '変数を明示的に宣言して使う Option Explicit Sub Main 'Kyooという関数を呼び出して返り値を出力 MsgBox(Kyoo) End Sub '今日の日付を返す函数 Function Kyoo Kyoo = date() End Function モジュールの冒頭にOption Explicitを宣言していても、値を返すための変数、つまり函数と同じ名前の変数は、宣言する必要なく使うことができるようだ。函数の中に函数名と同じ名前の変数が複数ある場合には、もっとも終わりの行にあるものが返り値となる。 サブルーチン名と函数名には変数名と同じ命名規則が適用される。つまり、英字で始まり、それ以降は英字か数字かアンダースコアを使うことができ、スペースを含む場合には角括弧で名前全体をはさむ