このディレクトリの索引

# お題:表計算ソフトで使われる列名 A,B,C,...,Z,AA,AB,AC,...,AZ,BA,BB,BC,... # をAを1番目とした番号に変換せよ '表計算ソフトで使われる列名 A,B,C,...,Z,AA,AB,AC,...,AZ,BA,BB,BC,...をAを1番目とした番号に変換せよ'(_列名,_番号) :- '列名を文字順序番号ならびに変換'(_列名,_文字順序番号ならび), 文字順序番号ならびを連続番号に変換(_文字順序番号ならび,0,_番号). 列名を文字順序番号ならびに変換(_列名,_文字順序番号ならび) :- findall(_文字順序番号,( 列名を文字順序番号に変換(_列名,_文字順序番号)),_文字順序番号ならび). 列名を文字順序番号に変換(_列名,_文字順序番号) :- sub_atom(_列名,_,1,_,_文字), nth1(_文字順序番号,['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'],_文字). 文字順序番号ならびを連続番号に変換([],_連続番号,_連続番号). 文字順序番号ならびを連続番号に変換(_文字順序番号ならび,_番号_1,_連続番号) :- '文字順序番号ならびを連続番号に、桁上げしながら変換して行く'(_文字順序番号ならび,_番号_1,_連続番号). '文字順序番号ならびを連続番号に、桁上げしながら変換して行く'([_文字順序番号|_残り文字順序番号ならび],_番号_1,_連続番号) :- _番号_2 is _番号_1 * 26 + _文字順序番号, 文字順序番号ならびを連続番号に変換(_残り文字順序番号ならび,_番号_2,_連続番号).