スポンサーリンク

C#でDNAの相補鎖を出すプログラム(1)

ありがたいことに、C言語で、DNAの相補鎖を出すプログラムを書いてくださっている方がいらっしゃるので、

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1068241890

これを変形?して、

「C#でDNAの相補鎖を出すプログラム」

を書きたい。

できれば、

http://www.vector.co.jp/soft/win95/edu/se378751.html

のように、windowsのプログラムとして作りたい!数週間かかりそうだが、すこしずつやっていこう。

●C言語の内容を解析

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1068241890

の内容をひとつずつ解析していこう。

C言語のソースコードはこちら。

(引用開始)
——————————————–
#include<stdio.h>
#include<string.h>

/*入力できるDNA配列の最大長*/
#define MAXLEN 100

int main(int argc,char* argv[]){

int i=0,j,temp;
int LEN;
char DNA[MAXLEN];

while(1){

/*DNA配列格納用のインデックスを初期化*/
i = 0;

/*DNA配列を入力*/
printf("Input DNA array –>");
fgets(DNA,MAXLEN,stdin);

/*0(または先頭に0)が入力されたらプログラムを終了*/
if(DNA[0] == '0’) return 0;

/*DNA配列の長さを取得*/
LEN = strlen(DNA);

/*A G C T変換 塩基以外の文字の削除*/
for(j=0;DNA[j] != ";j++){

switch(DNA[j]){

case 'a’:
DNA[i] = 't’;
i++;
break;

case 't’:
DNA[i] = 'a’;
i++;
break;

case 'g’:
DNA[i] = 'c’;
i++;
break;

case 'c’:
DNA[i] = 'g’;
i++;
break;

case 'A’:
DNA[i] = 'T’;
i++;
break;

case 'T’:
DNA[i] = 'A’;
i++;
break;

case 'G’:
DNA[i] = 'C’;
i++;
break;

case 'C’:
DNA[i] = 'G’;
i++;
break;

default: /*塩基以外の文字はDNA配列に格納しない*/
break;

}

}

/*文字列の最後はで止める*/
DNA[i] = ";

/*相補鎖化(配列の逆転)*/
for(j=0;j<i/2;j++){
temp = DNA[j];
DNA[j] = DNA[i-j-1];
DNA[i-j-1] = temp;
}

/*相補鎖化の結果の表示*/
printf("Yahoo! %sn",DNA);

}

return 0;

}

——————————————–

(引用終了)

これを、C#に「翻訳」できるようになることが、とりあえずの目標。。。うう。道のりは長い。。。

(1)

——————————————–
#include<stdio.h>
#include<string.h>
——————————————–

http://wisdom.sakura.ne.jp/programming/c/c2.html

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1011785090
C言語の事について知りたいのですが #include<stdio.h> int main(void) の2行…

/*
stdio.hとは標準入出力関数を使える様にする宣言。
これを宣言する事によりprintf関数などが使える様になる。
標準入出力関数については以下の様なサイトを覚えておいて必要に応じて調べる事。
http://cham.ne.jp/piro/p_stdfunc.html
ちなみにstdioとは standard input/output の略です。
*/

http://www.media.osaka-cu.ac.jp/~k-abe/99-JS-II/C-4.html
#include <string.h>       /* 文字列関係の関数を使うには string.h を #include する */

(2)

——————————————–
int main(int argc,char* argv[]){
——————————————–

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q129673452
C言語について質問です。 main(int argc,char *argv[]){ とは、どのような意味で…

http://gihyo.jp/dev/serial/01/c-programming-introduction/0020

Cプログラミング入門
第20回 Appendix 1 コマンドラインの引数

→結局、よくわからない。。。おまじない?これに対応するC#は?
とりあえず、次の行に行くか。。。

C#

Posted by twosquirrel