【小ネタ】GDLでバブルソート

2024年11月7日木曜日

DIM GDL print 小ネタ

t f B! P L

ここでは、GDLプログラミングでよく使うバブルソートの方法について記録しておきます。

下記の例ではlistという配列を定義し、適当な整数を順番に格納しています。なお、DIMコマンドは「これから定義する変数が配列(リスト)型である」と宣言するために使用します。配列を宣言する場合はlist[]、行列を宣言する場合はlist[][]と書きます。


マスタースクリプト
DIM list[], _sorted[]

list[1]=2
list[2]=4
list[3]=1
list[4]=5
list[5]=3

 _sorted = list


FOR i = 1 TO VARDIM1(list) - 1
	FOR j = 1 TO VARDIM1(list) - i
		IF _sorted[j] > _sorted[j+1] THEN
			temp = _sorted[j]									
			_sorted[j] = _sorted[j+1]
			_sorted[j+1] = temp	
		ENDIF
	NEXT j
NEXT i 

print(list)
print(_sorted)


ソートの確認

マスタースクリプト内でprintコマンドを使用すると、指定した引数(例えばlistsorted)の中身をダイアログボックスまたはレポートウィンドウに出力することができます。これにより、配列の内容や変数の値を確認でき、デバッグに役立ちます。

実際に上記のコードで「スクリプトを確認」ボタンを押すと以下の画像のようなダイアログが出現します。見ての通り、ソート後のリストは昇順になっていることが分かります。

降順にしたい場合は、if文の不等号の向きを逆にすれば良いです。
このような処理を組み合わせることで、GDLをより発展させることができます。

GDL printコマンド
listの中身
(ソート前)

GDL printコマンド
sortedの中身
(ソート後)



なお、基本的なGDLの学習はこちらの教材がおすすめです!
GDLリファレンスがgraphisoftが用意していますが、初見では理解しづらいので、
簡単にまとめられたやさしく学ぶArchiCAD GDLプログラミングという本で基礎をしっかり学びましょう!

【お知らせ】
Xのアカウントを作成しましたので、ぜひフォロー頂けると嬉しいです。
アカウントはこちらから⇨https://x.com/BIM_arekore

世界の建設業従事者、BIM推進者と繋がりたいです。よろしくお願いします。



検索

最新記事

多角形GDLに機能を追加してみる②

GDLオブジェクト

UI (1) ユニーク (1) 椅子 (4) 仮囲い (6) (7) 小ネタ (3) 足場 (15) 足場計画 (4) 多角形 (3) 法規 (1) 無償DL (4)

ブログ アーカイブ

自己紹介

自分の写真
GDL作成などBIM活用のお仕事の相談お待ちしております。 #中堅ゼネコン出身 #施工管理職 #生産設計部 #BIM開発部門
ArchiCADのGDLをコスパよく作成します ArchiCADユーザーでGDL作成を外部委託されている方へ

QooQ