第60章 記述言語(5)
第60章 記述言語(5)
第1話 記述言語(7)
・#define MAXPONT 1,000
・long nPoint; '点の数
・double pp(MAXPONT,MAXPONT);
・struct strEdge{
long nEdge(MAXPONT,MAXPONT);
double dist(MAXPONT,MAXPONT); '距離
} orgList;
上記は、静的変数としたいと思います。
木構造ルーチンを、long irc=treeAnal()としたいと思います。
irc は、ルーチンの処理結果の状態です。
取り敢えず、成功=0,失敗=-1とします。
IRを決めます。
( long pID01, long pID02 )
pID01, pID02は、Rootの辺(2点情報です)
引数の追加は、必要に応じて随時行います。
treeAnalの機能を処理へと変換します。
処理①
long pID01とlong pID02からY=aX+bが、求められます。
用いるデータは、…
間違いに気付きました。
・double pp(MAXPONT,MAXPONT);
を、
・double px(MAXPONT);
・double py(MAXPONT);
に変更します。
・struct strEdge{
long nEdge(MAXPONT,MAXPONT);
double dist(MAXPONT,MAXPONT); '距離
} orgList;
を、
・struct strEdge{
long nEdge;
long nEdgeSta(MAXPONT);
long nEdgeEnd(MAXPONT);
double dist(MAXPONT); '距離
} orgList;
・typedef struct strEdge STREDGE;
long pID01とlong pID02からY=aX+bが、求められます。
※ いつもは「考えながら、コーディングし、コンパイルし、纏め上げる」ので、
今のように記述を先に行うのが、初めてなのです。
また、静的変数か?動的変数か?を一目で分かるように、コーディングするのが、
僕の流儀です。
ただ、実コーディングに入っていなので、それは今回は考慮しない事にします。
xx01 = px(pID01), yy01 = py(pID01)とxx02 = px(pID02), yy02 = py(pID02)から、
Y=aX+bのパラメータ、aX+bを計算します。
結果は、
・double aa: 'a
・double bb: 'b
となります。
※ xx,yy,aa,bb など変数名をアルファベット2個にしているのは、エディターで検索する時、
ヒットし易くするためです。他に意味はありません。
処理②
次の集合(1.~5.)に、orgList.nEdge(*,*)を分類します。
1. 不等式 Y<aX+bに(e)の始点と終点は含まれる。…集合L
2. 不等式 Y>aX+bに(e)の始点と終点は含まれる。…集合R
3. 等式 Y=aX+bとなる(e)は存在しない。
4. 交点がe1の線分の内側にある。…集合X
5. 交点がe1の線分の外側にある。…集合C
ここで、木構造ルーチン(long irc=treeAnal())を、汎用化したいので、
この部分にステップラベル1を記述します。
(実際にはラベルの記述は必要はありません。関数呼び出しを行うだけです)
・void treeAnal01(int (*func01)(int void*)); '引数関数宣言
IR:( long pID01, long pID02 )
を次に変更します。
IR:( long pID01, long pID02, int (*func01)(void)*eList )
※ func01は、任意の名前付けとなります。
func01の中で、処理を記述します。
しかし、func01は引数を1つしか持っていません。
そのため、構造体を宣言しポインタ渡しにします。
・struct strPartSet{
long nEdge;
long nEdgeSta(MAXPONT);
long nEdgeEnd(MAXPONT);
};
typedef struct strPartSet STRPARTSET;
・struct strArg01{
STREDGE *orgList;
double px(MAXPONT);
double py(MAXPONT);
double aa;
double bb;
STRPARTSET lSet;
STRPARTSET rSet;
STRPARTSET xSet;
STRPARTSET cSet;
};
typedef struct strArg01 STRARG01;
(STRARG01 *eList)
STRARG01の説明をします。
orgList,px,py,aa,bbは、入力です(リードオンリー)。
lSet,rSet,xSet,cSetは、出力です。
これらは、メモリ領域を確保しなければなりません。
取り敢えず、allocate()関数を使用する事にします。
※ func01の戻り値は、ルーチンの処理結果の状態とします。
func01の処理は、次になります。
① 引数 aa,bb から、等式 Y=aaX+bbを構築します。
② 静的変数orgList.nEdge,orgList.nEdgeSta,orgList.nEdgeEnd と①を比較します。
③ ②の結果を集合L、R、X、Cに分類して、lSet,rSet,xSet,cSet に格納します。
上述をコーディングしたならば、コンパイル・エラーが出るかな?
取り敢えず、チャレンジです。
続きは、次章でお願いします。
第2話 ペプチド(5)
リボソームペプチド=タンパク質(あるいは、生成途中)と解釈して、先に進みます。
ステップが、3段階ある事は、分かりました。
開始・伸長・停止
今回は、何とか「開始」を納得出来るところまで、持って行きたいと思います。
説明を読んで、理解出来ないところから始めようと思います。
・小サブユニット(30s):単位sは、何?⇒後回し
・mRNA分子:DNAのコドン・セットの1つを複製した分子
未だ、「コドン・セット」の正式名称が頭の中にありません。⇒後回し
この分子の素材は何処から調達するの?⇒後回し
・ホルミルメチオニル-tRNA:転移RNA。mRNA分子を実体化させる(と解釈します)。
つまり、mRNA分子はコンピュータで言えば実行ファイルで、
OS上でそれを実行させたのが、tRNAだと解釈します。
・開始因子:実行ファイルのダブル・クリックと解釈します。
・GTP:ATPを一部に持つ分子。電源と解釈します。
① リボソームは大小2つのサブユニットに解離します。
② 合成はこの解離した小サブユニット(30s)とmRNA分子、ホルミルメチオニル-tRNA、
開始因子の3種のタンパク質およびグアノシン5’-三リン酸(GTP)の会合によって、
30s開始複合体を形成することから始まります。
③ このときの小サブユニットのmRNAとの結合位置ですが、開始コドンであるAUGコドンの
近傍の特別な配列AGGAGGU(リボソーム結合位置)と、リボソームの16s、
rRNA分子の3’末端近くにある相補的な配列と塩基対をつくることで特定されます。
④ 30s開始複合体の形成後、つづいて大サブユニット(50sサブユニット)が、
この複合体に結合して、70s開始複合体を形成します。
⑤ 50sサブユニットには二つのtRNA結合部位があり、それぞれP部位、
およびA部位とよばれています。
③④⑤は、詳細を説明していないのだと思います。
ただ単に、結合位置が決まっていると解釈します。
さて、後回しにした項目を列挙しておきます。
これらは、今回の理解に、不可欠だとは思えません。
しかし、いつか分かる日が来るかもしれません。
・単位sは、何?
・「コドン・セット」の正式名称は何?
(これは、1つのタンパク質を作るDNAの1組を、僕が勝手に名前付けしたものです)
・分子の素材は何処から調達するの?(これは、mRNAもtRNAも含まれます)




