コラム / 関数紹介 / Ord関数はけっこう便利


コラム/関数紹介

まずはヘルプ参照。
「Ord 関数は順序型式の序数値を返します。」
これだけではあんまりよくわかんないね
Chr関数の反対の働きをするだけぐらいに思われがちです
で、次に見て欲しいのが「関係演算子」と「論理型」のヘルプ
ここで注目すべきは
1.比較式の結果はBooleanで返る
2.Ord(Boolean)はFalseのとき 0、Trueのとき 1
の2点。
これが何を意味するかと言うとif〜then文をOrd関数で代用できるかもってこと
例. a,b のうち大きいほうを c に代入する
if〜then使用時
	if a>b then c:=a else c:=b;
Ord使用時
	c:=a*ord(a>b)+b*ord(a<=b);
この例じゃむしろわかりにくくなってる気もするけど
うまくやるとif〜thenだらけでゴチャゴチャしたコードを簡潔にまとめられることもあります
(追記)
スレでIfThen関数の存在について教えてもらいました(要するにそれまで知りませんでした)
ぶっちゃけ100倍便利です。そっちを使いましょう
こんなクソコラムを書いたのはすべて筆者の不徳と勉強不足のなすところです
このコラムを通してバカの言うことを簡単に真に受けてはいけないということを学んでいただけたのなら幸いです

216 以下、名無しにかわりましてVIPがお送りします New! 2006/02/13(月) 00:53:18.25 ID:qBqfohs10

215 IfThen?を使うと

c := IfThen(a>b, a, b); 

とても分かりやすくなったよ。

217 以下、名無しにかわりましてVIPがお送りします New! 2006/02/13(月) 00:56:21.20 ID:/vcYXhwU0

216 IfThen?関数すげえwwwwww これかなり縮まるな

218 以下、名無しにかわりましてVIPがお送りします New! 2006/02/13(月) 00:57:39.49 ID:oIfdregt0

216 すげぇええええええええええええ

219 以下、名無しにかわりましてVIPがお送りします New! 2006/02/13(月) 01:01:08.36 ID:qBqfohs10

215 さらにMaxを使うと

c := Max(a, b); 

とてもとても分かりやすくなったよぅ。

220 以下、名無しにかわりましてVIPがお送りします New! 2006/02/13(月) 01:05:01.18 ID:/vcYXhwU0

219 !!!!!!!

ひっくるめて便利だったので貼っときます