2012-02-16 3 views
0

の混乱、私を助けてください...は、私がこのケースに理解していないが、これは私にとって本当に重要であり、「アクセス違反」

void __fastcall TForm1::Button4Click(TObject *Sender) 
{ 
    String masuk, keluar, kosong; 
    int i, x, j, n = 0; 

    masuk = Edit2->Text; 
    keluar = masuk; 
    kosong = " "; 
    n = 0; 
    x = 0; 

mulai: 
    i = 1; 
    j = 0; 
    j = j + n; 
    i = i + j; 
    if (masuk[i] == 'a') 
    { 
     keluar[i] = 't'; 
    } 
    else if (masuk[i] == 't') 
    { 
     keluar[i] = 'a'; 
    } 
    else if (masuk[i] == 'c') 
    { 
     keluar[i] = 'g'; 
    } 
    else if (masuk[i] == 'g') 
    { 
     keluar[i] = 'c'; 
    } 
    else 
    { 
     Application->MessageBoxA("Masukan Anda Salah", "Peringatan", MB_OK | MB_ICONWARNING); 
     keluar = kosong; 
     goto end; 
    } 
    n = n + 1; 
    if (i < 10) 
     goto mulai; 
    else 
     goto end; 

end: 
    Memo1->Text = keluar; 
} 

私はmasukan作る場合、10以上の(I < 10 (デフォルト値として10))、それはOKですが、10未満の場合、メッセージ例外クラスEAccessViolationを行います..

+1

なぜ正しいループではなく 'goto'ですか? –

+0

アクセス違反は通常、現在のメモリブロックで使用できないメモリにアクセスしようとしていることを意味します。つまり、アレイ(文字列)の境界を超えてしまいました。また、gotoを使用しないでください。 – MGZero

+1

DNA/RNAに関連するもののように見えます。私は、t、g、cはアデノシン、グアニン、チミン、シトシンであると仮定しています。 –

答えて

1

暗闇の中で撮影していますが、私は実際に何をしようとしているのだろうと思いますこれです。私はあなたがゲノムの半分を表す10文字の単一の文字列を取り、ペア値の別の文字列を生成していると仮定しています。

void __fastcall TForm1::Button4Click(TObject *Sender) 
{ 
    String masuk, keluar; 
    masuk = Edit2->Text; 
    keluar = masuk; 

    char kosong = ' '; 

    for (int i=0; i < 10; i++) 
    { 
    switch(masuk[i]) { 
     case 'a': 
     keluar[i] = 't'; 
     break; 
     case 't': 
     keluar[i] = 'a'; 
     break; 
     case 'c': 
     keluar[i] = 'g'; 
     break; 
     case 'g': 
     keluar[i] = 'c'; 
     break; 
     default: 
     Application->MessageBoxA("Masukan Anda Salah", "Peringatan", MB_OK | MB_ICONWARNING); 
     keluar[i] = kosong; 
     break; 
    } 
    Memo1->Text = keluar; 
} 
+0

私はこれまでにそのようにしてきましたが、私のプログラムはループを読むことができません.. 私は(int i = 0; i <10; i ++)、私のプログラムshow AccessViolation。 それが私が "goto"を使った理由です。 –

関連する問題