配列とはデータベース
配列はデータをまとめたものです。例えば、九九の表を考えてみましょう。
九九は1から9の段まであり、各段は1から9で掛けられた答えを表にします。
表のようなデータベースを作るのが配列です。
一次元配列(整数型・実数型)
一次元配列は、1つの変数名に複数の値を入れることができます。
新しい変数名は、変数の名前を付けます。
要素数は、1つの変数名に入れられる値の個数を指定します。九九だと段数、学校に例えると一年生が変数名とすると組の数が要素数です。
dim 新しい変数名,一次元要素数
実数型で宣言する場合は以下になります。
ddim 新しい変数名,一次元要素数
dim five,9 //整数型変数fiveを9つの要素で一次元配列を宣言
命令名:dim「整数が入る変数を宣言する」
新しい変数名:five「5の段」
一次元要素数:9「9つの答え(整数)を入れられるようにする」
一次元配列に代入
一次元配列の変数に複数の値を代入します。
変数名は、配列として宣言した変数名を指定し、その後に.を付けます。
添字(副字「そえじ」)は、要素を指定する値です。
要素の数は0から始まります。
変数名.添字 = 値
dim five,9 //整数型変数fiveを9つの要素で一次元配列を宣言
//変数fiveの各要素に5の段の答えを代入する
five.0 = 5 //fiveの0は5
five.1 = 10 //fiveの1は10
five.2 = 15 //fiveの2は15
five.3 = 20 //fiveの3は20
five.4 = 25 //fiveの4は25
five.5 = 30 //fiveの5は30
five 6 = 35 //fiveの6は35
five.7 = 40 //fiveの7は40
five.8 = 45 //fiveの8は45
//上の代入処理を繰返で書くと
repeat 9 //9回ループ
five.cnt = 5 * (cnt + 1) //fiveの各要素に5の段の答えを代入
loop
| five | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| 添字(要素数:9) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 値 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 |
変数名:five「5の段」
.:「の」
添字:0から8「1つ1つの要素」
値:5,10,15,20,25,30,35,40,45「5の段の9つの答え」
配列の要素の指定は、変数名(添字)でも書くことができますが、関数の書き方と混同するため、CAOSでは.を採用しています。
一次元配列の内容を使う
一次元配列の変数から各要素数の値を取得します。
変数名は、配列として宣言した変数名を指定し、その後に「.」を付けます。
添字は、要素を指定する値です。
変数名.添字
dim five,9 //整数型変数fiveを9つの要素で一次元配列を宣言
//fiveの各要素に5の段の答えを代入
repeat 9 //9回ループ
five.cnt = 5 * (cnt + 1)
loop
//fiveの各要素を画面に表示する
repeat 9
mes "5×"+str(cnt + 1)+"は"+str(five.cnt)+"です。"
loop
二次元・三次元・四次元配列(整数型・実数型)
一次元配列と基本的に同じ方法で、要素数と添字の指定が増えます。
dim 新しい変数名,一次元要素数,二次元要素数,三次元要素数,四次元要素数
dim kuku,9,9 //九九の答えを入れる9×9の二次元配列の整数型変数を宣言する
dim dan //九九の段を控える変数を宣言する
//二次元配列に代入
repeat 9 //9回繰り返す
dan = cnt //1つ目の繰返カウント(段)の値を控える
repeat 9 //9回繰り返す
//九九の答えをkukuに代入する
kuku.dan.cnt = (dan + 1) * (cnt + 1)
loop //9回まで7行目のrepeatへ
loop //9回まで5行目のrepeatへ
//二次元配列の内容を表示
repeat 9 //9回繰り返す
pos 70 * cnt,0 //表示位置を指定する
dan = cnt //1つ目の繰返カウント(段)の値を控える
repeat 9 //9回繰り返す
mes kuku.dan.cnt //九九の答えを表示する
loop //9回まで16行目のrepeatへ
loop //9回まで13行目のrepeatへ
| kuku | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 添字(要素数:9) | 添字(要素数:9) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 値 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | 2 | 4 | 6 | 8 | 10 | 13 | 14 | 16 | 18 | |
| 2 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | |
| 3 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | |
| 4 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | |
| 5 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | |
| 6 | 7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 | |
| 7 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | |
| 8 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 | |
配列の要素の数を返す
length関数で配列を作った時の要素の数がわかります。
また、二次元配列はlength2関数、三次元配列はlength3関数、四次元配列はlength4関数です。
length(配列変数名)
dim kuku,9,9 //九九の答えを入れる9×9の二次元配列の整数型変数を宣言する
dim dan //九九の段を控える変数を宣言する
//二次元配列に代入
repeat length(kuku) //9回繰り返す
dan = cnt //1つ目の繰返カウント(段)の値を控える
repeat length2(kuku) //9回繰り返す
//九九の答えをkukuに代入する
kuku.dan.cnt = (dan + 1) * (cnt + 1)
loop //9回まで7行目のrepeatへ
loop //9回まで5行目のrepeatへ
//二次元配列の内容を表示
repeat length(kuku) //9回繰り返す
pos 70 * cnt,0 //表示位置を指定する
dan = cnt //1つ目の繰返カウント(段)の値を控える
repeat length2(kuku) //9回繰り返す
mes kuku.dan.cnt //九九の答えを表示する
loop //9回まで16行目のrepeatへ
loop //9回まで13行目のrepeatへ
文字列型の配列変数
文字列型の配列変数は、宣言方法が少し異なり、あらかじめ変数に入れる文字数を想定する必要があります。
万が一想定より多く文字数が入っても一時的に処理が遅くなるだけでコンピュータが故障することはありません。
文字数はすべての要素に代入される文字数を半角文字数で想定して数えます。全角文字は2文字と数えて指定します。
sdim 新しい変数名,文字数,一次元要素数,二次元要素数,三次元要素数,四次元要素数
sdim iroha,100,50 //文字列型変数irohaを50つの要素で一次元配列を宣言
iroha.0 = "い"
iroha.1 = "ろ"
iroha.2 = "は"
iroha.3 = "に"
iroha.4 = "ほ"
iroha.5 = "へ"
iroha.6 = "と"
//...
列挙して代入
配列の代入方法は,を使うと列挙して代入できます。
但し、添字は0から順番に代入されます。
a = 10,20,30,40,50
mes a.3 //・・・30
s = "a","b","c","d","e"
mes s.3 //・・・c
Copyright © 2002-2025 team.Dakuji All Rights Reserved.