忍者ブログ
バイオインフォマティックス技術者試験、情報処理試験など、IT系の試験を基礎から勉強します。また、Javaなどプログラミングを勉強します。

【VBAスタンダード対策】Do Until ・・・ Loop の終了条件と制御構造を攻略!

Do While が「条件を満たしている間」ループを続けるのに対し、Do Until「条件を満たすまで(満たした瞬間に終了)」ループを続ける構造を持っています。この2つの「条件の判定基準の違い」を完璧に整理しましょう。

1. 問題:Do Until ループの処理フローと実行結果

【 問題 】 下記のコードを実行して UntilTest プロシージャを呼び出した際、メッセージボックスに表示される数値はいくつでしょうか?

Sub UntilTest()
    Dim n As Integer
    n = 1

    Do Until n >= 5
        n = n + 2
    Loop

    MsgBox n
End Sub

① 3
② 5
③ 7
④ 条件が最初から満たされていないため、ループは1回も回らず 1 と表示される

2. 正解:Do Until ループの条件判定に関する正解

正解: ② 5

3. 解説:「条件が成立(True)したら脱出」という構造

Do Until を読み解く最大の鍵は、「条件式が True になった瞬間に、ループの処理を止めて外へ抜ける」という判定構造にあります。

[ Do Until の実行フロー構造 ]

条件式:n >= 5 (nが5以上になったら終了!)

・スタート時:n = 1
1回目判定:1 >= 5 は不成立(False)⇒ まだ終了しない(実行!) ⇒ n = 1 + 2 = 3
2回目判定:3 >= 5 は不成立(False)⇒ まだ終了しない(実行!) ⇒ n = 3 + 2 = 5
3回目判定:5 >= 5 は成立(True!)ここでループ終了(脱出!)

★ したがって、ループを抜けた直後の n の値は 5 になります。

ここが試験に出る!: スタンダード試験では、「同じ処理を Do WhileDo Until で書き換える」という問題が頻出します。今回のコードを While で書くなら、条件式は真逆の Do While n < 5 になります。「Until の条件式は、ループを抜けたい時の最終ゴールを書く」という構造の違いを絶対に忘れないでください。


4. まとめ

「Untilは条件がTrueになったら終わり(ゴール)。それまでは回り続ける」。この構造さえ押さえておけば、「セルが空白(="")になるまで処理を続ける」といった実務の大量データ処理も、終了条件を迷わずに一発で記述できるようになります。


PR

【BI技術者認定試験対策】ゲノムの格納技術!「ヒストンとクロマチン」を攻略

人間の細胞1個の中には、長さ約2メートルにも及ぶDNAが収められています。この膨大なデータを直径わずか数マイクロメートルの核内にコンパクトに折りたたむ、生命の見事な収納テクニックを学びましょう。

1. 問題:DNAの折りたたみ構造

【 問題 】 真核生物の細胞核内において、長いDNAが巻き付いている土台となるタンパク質( A )と、その全体が折りたたまれて形成される複合体の構造( B )の組み合わせとして正しいものはどれでしょうか?

① A:ケラチン、B:染色体
② A:ヒストン、B:クロマチン(染色質)
③ A:クロマチン(染色質)、B:ヒストン
④ A:アクチン、B:リボソーム

2. 正解:核内構造に関する正解

正解: ② A:ヒストン、B:クロマチン(染色質)

3. 解説:ボビンに糸を巻き付けるように

マイナスの電荷を持つDNAは、プラスの電荷を持つ「ヒストン」というタンパク質に引き寄せられ、糸巻き(ボビン)のように巻き付きます。

[ ゲノム収納のステップ ]
ヌクレオソーム:DNAがヒストン(8量体)に約1.65周巻き付いた、構造の最小単位です。「糸に通したビーズ」のように見えます。
クロマチン(染色質):ヌクレオソームがさらに規則正しく折れ畳まれ、繊維状にまとまった構造全体のことを指します。
染色体:細胞分裂のときに、クロマチンがさらに高度に凝縮して、顕微鏡で見える太い棒状になったものです。

1. 試験のポイント: 「巻き付く相手のタンパク質 = ヒストン」、「それによってできる構造の全体像 = クロマチン」という主従関係をしっかり整理しましょう。選択肢③のように、名前が逆転した引っかけ問題が作られやすいポイントです。
2. バイオインフォの視点: DNAがヒストンにきつく巻き付いている部分は、外から酵素がアクセスできないため「遺伝子のスイッチがオフ」になります。逆に、巻き付きが緩んでいる部分は「オン」になります。バイオインフォマティクスでは、ATAC-SeqやChIP-Seqといったデータを利用して、ゲノムのどこが緩んでいて(オープンクロマチン領域)、どの遺伝子が活発に働いているかをエピゲノム解析によって突き止めます。


4. まとめ

「DNAはヒストンに巻き付き、クロマチンという構造を作る」。ただ押し込めるだけでなく、必要な時に必要な遺伝子データだけをスムーズに取り出せるように設計された、驚異的なストレージシステムですね!

【BI技術者認定試験対策】DNAの絶対ルール!「相補的な塩基対」を攻略

DNAの二重らせん構造を支える最も美しく、最も重要なルールが「塩基のペアリング」です。どの塩基とどの塩基がペアになるのか、確実に得点源にしましょう。

1. 問題:DNAの塩基対の組み合わせ

【 問題 】 二本鎖DNAにおいて、4種類の塩基(アデニン:A、チミン:T、グアニン:G、シトシン:C)は、互いに結合する相手が厳密に決まっています。この正しい組み合わせ(塩基対)はどれでしょうか?

① アデニン(A) = グアニン(G)   /   チミン(T) = シトシン(C)
② アデニン(A) = シトシン(C)   /   チミン(T) = グアニン(G)
③ アデニン(A) = チミン(T)   /   グアニン(G) = シトシン(C)
④ アデニン(A) = ウラシル(U)   /   グアニン(G) = シトシン(C)

2. 正解:塩基の相補性に関する正解

正解: ③ アデニン(A) = チミン(T) / グアニン(G) = シトシン(C)

3. 解説:鍵と鍵穴の関係(相補性)

DNAの2本の鎖は、ジッパーの歯が噛み合うように、特定の塩基同士が水素結合によって引きあうことで綺麗な二重らせんを作っています。この性質を「相補性(そうほせい)」と呼びます。

[ 塩基対(ベースペア:bp)のルール ]
A = T ペア:水素結合「2本」で結合します。
G = C ペア:水素結合「3本」で結合します(こちらの方が結合が強固です)。

[ シャルガフの規則 ]
・どんな生物のDNAを調べても、「Aの数とTの数は等しい」「Gの数とCの数は等しい」という法則があり、これが二重らせん発見の決定的なヒントになりました。

1. 試験のポイント: 選択肢④にある「ウラシル(U)」は、RNAにおいてチミン(T)の代わりに使われる塩基です。「DNAの問題か、RNAの問題か」で罠が仕掛けられることが多いので、問題文をよく読む癖をつけましょう。
2. バイオインフォの視点: 文字列としてのDNAデータを扱う際、片方の鎖が「5'-ATGC-3'」であれば、もう片方は自動的に「3'-TACG-5'」と確定します。プログラムでこの対面側の配列を作る処理を「相補鎖(Complementary strand)の生成」と呼び、ペアワイズアライメントやマッピングアルゴリズムを実装する際の超基本処理となります。


4. まとめ

AはTと、GはCと組む」。このシンプルなルールがあるからこそ、DNAは半分に分かれても(半保存的複製)元の情報を1文字の狂いもなく正確にコピーできます。バイオのあらゆる計算問題の起点となる知識ですので、完全に暗記しておきましょう!


【VBAスタンダード対策】ReDim Preserveの「保持」と「制約」を攻略!

動的配列のサイズを変更する際、以前の ReDim だけでは中身が消えてしまいました。既存のデータを守りながら箱を大きくするには Preserve キーワードが不可欠です。しかし、この「魔法の言葉」には多次元配列における厳しい構造的制限があります。

1. 問題:ReDim Preserveで変更可能な次元

【 問題 】 下記のように宣言・代入された二次元配列 DataList があります。Preserve を使ってデータを保持したままサイズを変更しようとした際、エラーにならずに実行できるコードはどれでしょうか?

Dim DataList() As Variant
ReDim DataList(2, 3) ' --- 縦3×横4の配列として定義
DataList(0, 0) = "TEST"

' --- ここからサイズ変更を試みる ---

① ReDim Preserve DataList(5, 3)
② ReDim Preserve DataList(2, 5)
③ ReDim Preserve DataList(5, 5)
④ ReDim DataList(5, 5) '(Preserveなし)

2. 正解:サイズ変更の制約に関する正解

正解: ② ReDim Preserve DataList(2, 5)

3. 解説:「最後の次元」しかいじれない!

ReDim Preserve を使用して中身を保持する場合、VBAのメモリ構造上の理由から、変更できるのは「最後の次元のみ」という鉄の掟があります。

[ 二次元配列の構造イメージ ]

DataList( 1次元目 , 2次元目 )
              ↑         ↑
           変更不可   変更可能!

①がダメな理由:最初の次元(行方向)を変えようとしているためエラーになります。
②が正解の理由:最後の次元(列方向)のみを 3 から 5 に増やしているため、構造的に許可されます[cite: 1]。
④について:エラーにはなりませんが、Preserve がないため「TEST」というデータは消えてしまいます[cite: 1]。

1. ここが試験に出る!: 試験では「行方向(1次元目)を増やそうとしてエラーになるコード」が頻出します[cite: 1]。実務でどうしても行を増やしたい場合は、一度「行列を入れ替えてから拡張し、また戻す」というテクニックが必要になります。
2. エンジニアの視点: メモリを「連続した一行のデータ」として管理している古典的な言語構造ゆえの制約です。この制約があるからこそ、効率的に末尾にデータを追加できる設計になっています。理系NEOな開発者なら、最初から「変動する方を最後の次元にする」ように設計図を引くのが定石です。


4. まとめ

「データを守りたければPreserve。ただし、いじれるのは最後だけ」。このフレーズを丸暗記するだけで、配列の拡張に関するトラブルの8割は回避できます。制限を知ってこそ、動的配列の真のパワーを引き出すことができるのです。


【BI技術者認定試験対策】正確に引き継ぐ仕組み!「半保存的複製」を攻略

DNAが分裂して増えるとき、どのようにして正確にコピーが作られるのでしょうか?そのエレガントなコピー方式について学びましょう。

1. 問題:DNA複製の様式

【 問題 】 DNAが複製される際、二重らせんがほどけ、もとのDNA鎖(親鎖)の1本を型枠(テンプレート)として残し、それに新しい鎖を合成して2本の二重らせんを作る方式を何と呼ぶでしょうか?

① 全保存的複製   ② 半保存的複製   ③ 分散的複製   ④ 逆転写

2. 正解:DNA複製メカニズムに関する正解

正解: ② 半保存的複製

3. 解説:半分は「思い出」、半分は「新品」

この仕組みのおかげで、DNAの塩基配列の情報はミスが少なく、極めて正確に次の細胞へと受け継がれていきます。

[ 半保存的複製のポイント ]
仕組み:2本鎖がジッパーのように開き、それぞれの鎖に対して相補的な塩基(AにはT、GにはC)が結合して新しい鎖が作られます。
結果:新しくできた2本のDNAは、どちらも「古い鎖1本」と「新しい鎖1本」のペアになります。
証明:メセルソンとスタールが、重い窒素(15N)を使った実験によってこの方式を証明しました。

1. 試験のポイント: 「半分(1本)を保持(保存)して増える」から「半保存的」という名前がついています。DNAポリメラーゼという酵素が、型枠となる古い鎖の情報を読み取って新しい鎖を合成していくというプロセスとセットで覚えましょう。
2. バイオインフォの視点: 複製の際、稀に読み取りミス(置換や欠失)が起こります。これが「突然変異」です。バイオインフォマティクスでは、多くの個体のゲノム配列を比較することで、どこで複製ミスが起こりやすいのか、それが進化にどう影響したのかを計算によって解析します。


4. まとめ

「元の半分をテンプレートにする=半保存的複製」です。ワトソンとクリックがDNAの二重らせん構造を発見した際、直感的に「これなら簡単に、正確にコピーができるはずだ!」と確信した、生命の極めて合理的な仕組みですね!



        
  • 1
  • 2
  • 3