配列アラインメント Sequence alignment

Size: px
Start display at page:

Download "配列アラインメント Sequence alignment"

Transcription

1 Traceback 以下の図に示すように 最大重みパスを D[ を用いて頂点 (m,n) から逆にたどりながら アラインメントを後ろから前へと計算していけばよい トレースバック i-,j-)=9 j-)= d=- トレースバック i-,j-)=8 j-)= d=- Traceback Procedure Traceback ( ) k ; i m; j n; while i or j do if i or D[ D[ j ] d do ' '; s [ ; j j ; else if j or D[ D[ i j, d do s [ i]; ' '; i i ; else do s [ i]; s [ ; i i ; j j ; k k ; t (... k ]) return ( t, t ); t (... k ]) ; ; i-,=8 d=- = d=- i-,= = ここで s は s を反転させた配列を表す 例えば s=gtの場合 s TG とする 9+= -= 8/4/4 8/4/4 Traceback Procedure Traceback ( ) k ; i m; j n; while i or j do if i or D[ D[ d do ' '; s [ ; j j ; else if j or D[ D[ i j, d do s [ i]; ' '; i i ; else do s [ i]; ' s [ '; i i ; j j ; k k ; t (... k ]) t (... k ]) return ( t, t ); 計算時間 : ループを 回実行するごとに i か j の少なくともどちらか一方は だけ減少することがわかる 8/4/4 3 ; ; Traceback Procedure Traceback ( ) k ; i m; j n; while i or j do if i or D[ D[ d do ' '; s [ ; j j ; else if j or D[ D[ i j, d do s [ i]; ' '; i i ; else do s [ i]; ' s [ '; i i ; j j ; k k ; t (... k ]) t (... k ]) return ( t, t ); 8/4/4 4 よって ループをたかだか n+m 回実行することによって i=j= となることがわかる ループ 回あたりの計算時間は明らかに定数時間であり ループ全体でかかる時間は O(m+n) となる ; ;

2 Traceback Procedure Traceback ( ) k ; i m; j n; while i or j do if i or D[ D[ d do ' '; s [ ; j j ; else if j or D[ D[ i j, d do s [ i]; ' '; i i ; else do s [ i]; ' s [ '; i i ; j j ; k k ; t (... k ]) t (... k ]) return ( t, t ); ; ; 動的計画法の計算時間 定理 線形ギャップスコアの下での 個の配列に対する最適大域アラインメントは O(mn) 時間及び O(mn) 領域で計算できる 配列の反転は明らかに線形時間で実行できるので 全体の計算時間は O(m+n) となる このように 動的計画法を用いて計算したデーブルの値から それを逆方向にたどって最適解を復元する手続きは一般に トレースバック (traceback) とよばれる 8/4/4 5 問題を定義する : 二本配列 SEQX and SEQY, * 単純スコアリングシステム (MTH, MISMTH, and gap INDEL 変数を定義する #define SEQX "TTT" #define SEQY "TGTGT" #define MTH #define MISMTH - #define GP - #include <stdlib.h> #include <stdio.h> #include <string.h> int main(void) { char *x,*y; /* 二本配列, x_..m and y_..n */ int M,N; /* 配列の長さ x,y */ int j; /* 座標 in x and y */ int **S; /* 動的計画法の行列 */ char *ax,*ay; /* 結果 : アラインメントした二本配列 */ int K; /* pairwise alignment の長さ */ int k; /* pairwise alignmentの変数,..k- */ int sc; /* tmp best pathを探すの変数 */ char tmp; /* tmp swap charsするための変数 */

3 再帰法 : 初期化 M = strlen(seqx); N = strlen(seqy); x = malloc(sizeof(char) * (M+)); /* +: leading blank, and trailing */ y = malloc(sizeof(char) * (N+)); strcpy(x+, SEQX); /* x_..x_m now defined; x_ undefined */ strcpy(y+, SEQY); /* y_..y_n now defined; y_ undefined */ /*, /* 動的計画法の行列..M rows by..n columns.*/ S = malloc(sizeof(int *) * (M+)); for (i = ; i <= M; i++) S[i] = malloc(sizeof(int) * (N+)); S[][] = ; for (i = ; i <= M; i++) S[i][] = i * GP; for (j = ; j <= N; j++) S[][ = j * GP; 再帰法 : DP lgorithm for (i = ; i <= M; i++) for (j = ; j <= N; j++) { /* case #: j are aligned */ if (x[i] == y[) S[i][ = S[i-][j-] + MTH; else S[i][ = S[i-][j-] + MISMTH; sc = S[i-][ + GP; /* case #: i aligned to - */ if (sc > S[i][) S[i][ = sc; sc = S[i][j-] + GP; /* case #3: j aligned to - */ if (sc > S[i][) S[i][ = sc; /* The result (optimal alignment score) is in S[M][N]. */ Traceback ( see also above) /* llocate for our aligned strings (which will be..k-)*/ ax = malloc(sizeof(char) * (M+N+)); ay = malloc(sizeof(char) * (M+N+)); /* Start at M,N; work backwards */ i = M; j = N; k = ; while (i > && j > ) { /* ase : best was x_i aligned to x_j? */ if (i > && j > ) { /* watch out for boundaries */ sc = S[i-][j-]; if (x[i] == y[) sc += MTH; else sc += MISMTH; if (sc == S[i][) { /* residue i aligns to j: */ ax[ = x[i]; ay[ = y[; k++; /* record the alignment */ i--; j--; /* move to next cell in trace */ continue; 3

4 /* ase : best was x_i aligned to -? */ if (i > ) { /* watch out for boundaries */ if (S[i-][ + GP == S[i][) { ax[ = x[i]; ay[ = '-'; k++; /* record the alignment */ i--; /* move to next cell in trace */ continue; /* ase 3: best was - aligned to y_j? */ if (j > ) { /* watch out for boundaries */ if (S[i][j-] + GP == S[i][) { ax[ = '-'; ay[ = y[; k++; /* record the alignment */ j--; /* move to next cell in trace */ continue; /* Done with the traceback. * Now ax[..k-] and ay[..k-] are aligned strings, but backwards; * and k is our alignment length. * Reverse the strings and we're done. */ K = k; /* K = remember the alignment length */ for (k = ; k < K/; k++) { /* a sly, efficient in-place reversal by swapping pairs of chars: */ tmp = ax[k-k-]; ax[k-k-] = ax[; ax[ = tmp; tmp = ay[k-k-]; ay[k-k-] = ay[; ay[ = tmp; Output printf("sequence X: %s n", x+); printf("sequence Y: %s n", y+); printf("scoring system: %d for match; %d for mismatch; %d for gap n", MTH, MISMTH, GP); printf(" n"); printf("dynamic programming matrix: n"); for (j = -; j <= N; j++) printf(" %c ", j >? y[ : ' '); printf(" n"); for (i = ; i <= M; i++) { printf(" %c ", i >? x[i] : ' '); for (j = ; j <= N; j++) printf("%4d ", S[i][); printf(" n"); printf(" n"); printf("lignment: n"); printf("x: %s n", ax); printf("y: %s n", ay); printf("optimum alignment score: %d n n", S[M][N]); exit(); 4

5 G G T G 宿題 (3): G G T T G T T G G T T G T T G G T G G G T T G T T G G T -8 - G - -4 GGTTGTT GG- T- G = +7-8= GGTTGTT GGT- - G = +7-8 = - G T G Example: T T G T

6 G T G トレースバック T T G T 配列アラインメント Sequence alignment -Smith-Waterman (SW) algorithm- Local sequence alignment ローカルアライメント 配列アライメントから分かること 二つの DN の有機体は相似点と相違点を特定するのに重要である 以下のことを理解しやすくする : どのように 二つの有機体が進化するのか? ( 例 : 人間とチンパンジーの相違点 ) なぜ? どのように? インフルエンザのウィルスが変化するのか? なぜ病気になりやすい人がいるのか? ( 例 :DN 塩基の変化 ) 遺伝子をターゲットにした特定の薬を特定する DN 大域アラインメント DN ローカルアライメント 6

7 グローバルアライメントとローカルアライメント ローカル対グローバル ( 大域 ) 前回学んだアルゴリズム グローバルアライメント では あまり似ていない配列の比較は? ローカルアライメント ( よく似ているところだけそろえてみる ) 大域アラインメントは二本の配列に対して最適アラインメントを見つける DLGVFLDRYFQ DLGRTQN-DRYYQ 類似領域だけを見つける ローカルアラインメントは部分配列中に類似領域 ( ドメイン ) を見つける DLG DRYFQ DLG DRYYQ 例 : Global lignment --T ---GT -TTGT-GGGGG -GTGG-G TTGG-GTGT-T-TTG-----GTTTG T-GT-- Local lignment better alignment to find evolutionary-conserved segments ローカルアラインメント : 進化的保存部分列を発見するためのよりよいアラインメントである aattgccgccgtcgttttcaggtttgtgatc tccgtttgtggggacacgagcatgcagagac Smith-Waterman アルゴリズム 初期化,)=,,=, )= d はギャップのペナルティ ( スコア ) d= - 再帰式で 最大スコアを行列中から探し そこから があるところまでトレースバック ローカルアライメントのアルゴリズム New! i, j ) w( s[i], t[) max i, d j ) d w( x, x) x yのときw( x, y) New! New! 7

8 Example: グローバルアライメント 対角 対角 T T ?? - -4?? マッチノの重み + ミスマッチの重み - ギャップの重み T Example: ローカルアライメント 対角 対角 T T???? マッチの重み + ミスマッチの重み - ギャップの重み - T MX + = - - = = - 4 MX - = = -6 + = - MX + = - = - - = - MX = - - = - = - 例 : ローカルアライメント 例 : ローカルアライメント T G T G T T 8

9 例 : ローカルアライメント 例 : ローカルアライメント T G T + + T G T Local alignment 例 : ローカルアライメント 例 : ローカルアライメント G T G T T G T 初期化 T T G T T G T G T

10 例 : ローカルアライメント 初期化 行列中の最大スコア T T G T T G T G T 例 : ローカルアライメント 初期化 があるところに到達するまでトレースバック GT GT Local alignment T T G T T G T G T DN { G T { 4 文字 :DN 塩基 今まで 大域アラインメントローカルアライメント 今後 たんぱく質のアライメント 今まで 二本のDN 配列を比較して来ました 今から たんぱく質配列の場合を研究しましょう そんなに違わない たんぱく質 { 文字 : アミノ酸 大域アラインメント ローカルアライメント たんぱく質を比較するとき 単純スコアリングシステム ( 例えば : マッチの時は + ミスマッチの時ー ) は十分ではない

11 タンパク質の大域アラインメント : 動的計画法 New! DN 大域アラインメント DN ローカルアライメント i max, j ) M ( s[i], t[) i, d j ) d M Matrix G T G T M: アミノ酸の類似性行列 ( 例えば :BLOSUM6, or PM5 ) DN similarity matrix. たんぱく質大域アラインメンたんぱく質アライメント G T G T M Matrix PM5 BLOSUM6

12 Example: PM 5 Example : Blosum6 derived from block where the sequences share at least 6% identity 配列はすくなくとも 6% の類似度がある 類似なアミノ酸がより大きいスコアになる タンパク質のローカルアラインメント : Smith-Waterman (local alignment) i, j ) M ( s[i], t[) max i, d j ) d M: アミノ酸の類似性行列 (BLOSUM6, or PM5 for example) New! タンパク質の大域アラインメント : 動的計画法 S P E R E S H K E These values are copied from the PM5 matrix (see earlier slide) PM5, Gap =6 S -6 H - -8 K -4 E -3 S P E R E SPERE S-HKE

13 タンパク質の大域アラインメント : 動的計画法 S P E R E S H K E These values are copied from the PM5 matrix (see earlier slide) PM5, Gap =6 S P E R E S H K E SPERE S-HKE - タンパク質の大域アラインメント : 動的計画法 S P E R E S H K E These values are copied from the PM5 matrix (see earlier slide) PM5, Gap =6 S P E R E S H K E SPERE S-HKE - たんぱく質はアミノ酸で構成される 進化中のアミノ酸の置換は生化学的性質による PM 進化はたんぱく質を比較するのに重要である 3

14 PM: Percent of ccepted Mutation matrix Example: PM 5 PM 中の化学的類似性 : PM は似かよった化学的性質を持ったアミノ酸には より大きなスコアを与える cids & mides D,E,N,Q (sp, Glu, sn, Gln) Basic H,K,R (His, Lys, rg) romatic ( 芳香族 ) F,Y,W (Phe, Tyr, Trp) Hydrophilic ( 親水性 ),,G,P,S,T, (la, ys, Gly, Pro, Ser,Thr) Hydrophobic ( 疎水性 ) L,M,V,I (Ile, Leu, Met, Val) Similar amino acids have greater score 類似アミノ酸がより大きいスコアになる PM Matrices PM 5 Family of matrices PM 8, PM, PM 5 行列のグループ The numbers with PM matrices represent evolutionary distance. 数字は進化距離を示す Greater numbers are greater distances より大きな数はより進化距離 () スコアが 以上のペアアミノ酸は 両方とも似た機能を持つ () スコアが 以下のペアアミノ酸は 両方とも違う機能を持つ 4

15 Example: sp & Glu OO - OO - + H 3 N HH H + H 3 N HH H BLOSUM O O - spartate (sp, D) Score = 3 O HH O - Glutamate (Glu, E) BLOSUM: Blocks Substitution Matrix Based on BLOKS database BLOKS databaseによる ~ blocks from 5 families of related proteins 5の関係たんぱく質のグループの中に blocks がある Families of proteins with identical function たんぱく質のグループは同じ機能を持っている Blocks are short conserved patterns of 3-6 long without gaps ブロックは3から6ののギャップ無しの長さのパターンです BD BBD DBD..BBBB BBBDB.B D.DBDB BDB.DBBD BB BLOSUM Matrices () BLOSUMn は少なくとも類似度が n % の配列による () BLOSUM6 は BLOSUM45 よりさらに配列は似ている 5

16 Example : Blosum6 Entry (i) is greater than any entry (, ji. (i) エントリは最大です derived from block where the sequences share at least 6% identity すくなくとも 6% の類似度がある BLOSUM6 Symmetric matrix 対称行列 of x entries Dynamic programming PM5, Gap =6 S P E R E S H K E These values are copied from the PM5 matrix (see earlier slide) タンパク質のグローバルアライメント S -6 H - -8 K -4 E -3 S P E R E Global alignment Dynamic programming PM5, Gap =6 S P E R E S H K E These values are copied from the PM5 matrix (see earlier slide) S P E R E S H K E SPERE S-HKE - 6

17 This matrix is constructed using the PM5 matrix S P E R E S H K E Global alignment between proteins Dynamic Programming PM5, Gap =6 S P E R E S H K E SPERE S-HKE - 問題 : K P R T P E K end Protein Scoring Systems Sequence Sequence PTHPLSKTQILPEDLSEDLTI PTHPLGERIGLRLEEDFGM Blosum6 Scoring matrix S T P G N D.. 9 S - 4 T - 5 P G N D T:G = - T:T = 5 Score = 48 7

18 Dynamic programming for global alignment: Proteins. Dynamic programming for protein sequences: Smith-Waterman (local alignment) i max, j ) M ( s[i], t[) i, d j ) d d=- M: Similarity matrix for amino-acids (BLOSUM6, or PM5 for example) i, j ) M ( s[i], t[) max i, d j ) d d=- M: Similarity matrix for amino-acids (BLOSUM6, or PM5 for example) Global alignment Dynamic programming PM5, Gap =6 S P E R E S H K E These values are copied from the PM5 matrix (see earlier slide) S -6 H - -8 K -4 E -3 S P E R E Global alignment Dynamic programming PM5, Gap =6 S P E R E S H K E These values are copied from the PM5 matrix (see earlier slide) S P E R E S H K E SPERE S-HKE - 8

19 This matrix is constructed using the PM5 matrix S P E R E S H K E Global alignment between proteins Dynamic Programming PM5, Gap =6 S P E R E S H K E SPERE S-HKE - 問題 : K P R T P E K 9

A Constructive Approach to Gene Expression Dynamics

A Constructive Approach to Gene Expression Dynamics 配列アラインメント (I): 大域アラインメント http://www.lab.tohou.ac.jp/sci/is/nacher/eaching/bioinformatics/ week.pdf 08/4/0 08/4/0 基本的な考え方 バイオインフォマティクスにはさまざまなアルゴリズムがありますが その多くにおいて基本的な考え方は 配列が類似していれば 機能も類似している というものである 例えば

More information

1_alignment.ppt

1_alignment.ppt " " " " n " n n " n " n n n " n n n n " n LGPSSKQTGKGW-SRIWDN! + +! LN-ITKSAGKGAIMRLGDA! " n -------TGKG--------!! -------AGKG--------! " n w w w " n w w " " " 11 12 " n w w w " n w w A! M! O! A!

More information

生命情報学

生命情報学 生命情報学 (2) 配列解析基礎 阿久津達也 京都大学化学研究所 バイオインフォマティクスセンター 配列アラインメントとは? 配列検索 バイオインフォマティクスにおける基本原理 配列が似ていれば機能も似ている ただし 例外はある 配列検索の利用法 実験を行い機能未知の配列が見つかったデータベース中で類似の配列を検索機能既知の類似の配列が見つかれば その配列と似た機能を持つと推定 機能未知の配列 VLPIKSKLP...

More information

PowerPoint Presentation

PowerPoint Presentation パターン認識入門 パターン認識 音や画像に中に隠れたパターンを認識する 音素 音節 単語 文 基本図形 文字 指紋 物体 人物 顔 パターン は唯一のデータではなく 似通ったデータの集まりを表している 多様性 ノイズ 等しい から 似ている へ ~ だ から ~ らしい へ 等しい から 似ている へ 完全に等しいかどうかではなく 似ているか どうかを判定する パターンを代表する模範的データとどのくらい似ているか

More information

アルゴリズム入門

アルゴリズム入門 アルゴリズム入門 第 11 回 ~ パターン認識 (1)~ 情報理工学系研究科 創造情報学専攻 中山英樹 1 今日の内容 パターン認識問題の 1 つ : アラインメント アルゴリズム 再帰 動的計画法 2 パターン認識 音や画像の中に隠れたパターンを認識する 音素 音節 単語 文 基本図形 文字 指紋 物体 人物 顔 パターン は唯一のデータではなく 似通ったデータの集まりを表している 多様性 ノイズ

More information

PowerPoint Presentation

PowerPoint Presentation パターン認識入門 今回の話題 : パターン認識 長大な列 ( 例えば文章 ) から興味深い部分 ( 例えばある文字列を含む部分 ) を取り出したい ある文字列を含む web ページを抽出 プログラム中の特定の関数の呼び出しを DNA から面白そうな塩基配列を 例えば特定の塩基をたくさん含む場所を スパムメールの識別 B-CAS だけでなく B-C@S なども検出したい 2 簡単なパターン認識 : 文字列検索

More information

/* do-while */ #include <stdio.h> #include <math.h> int main(void) double val1, val2, arith_mean, geo_mean; printf( \n ); do printf( ); scanf( %lf, &v

/* do-while */ #include <stdio.h> #include <math.h> int main(void) double val1, val2, arith_mean, geo_mean; printf( \n ); do printf( ); scanf( %lf, &v 1 http://www7.bpe.es.osaka-u.ac.jp/~kota/classes/jse.html kota@fbs.osaka-u.ac.jp /* do-while */ #include #include int main(void) double val1, val2, arith_mean, geo_mean; printf( \n );

More information

C¥×¥í¥°¥é¥ß¥ó¥° ÆþÌç

C¥×¥í¥°¥é¥ß¥ó¥° ÆþÌç C (3) if else switch AND && OR (NOT)! 1 BMI BMI BMI = 10 4 [kg]) ( [cm]) 2 bmi1.c Input your height[cm]: 173.2 Enter Input your weight[kg]: 60.3 Enter Your BMI is 20.1. 10 4 = 10000.0 1 BMI BMI BMI = 10

More information

第4回バイオインフォマティクスアルゴリズム実習

第4回バイオインフォマティクスアルゴリズム実習 第 5 回バイオインフォマティクスアルゴリズム アラインメントアルゴリズム (3) 慶應義塾大学先端生命科学研究所 アラインメント 置換 挿入 欠損を考慮して塩基配列あるいは アミノ酸配列の似た部分をそろえることギャップ - を挿入する CAAGACATTTTAC CATACACTTTAC CA-AGACATTTTAC CATACAC--TTTAC ** * ** ***** アラインメントはグラフで表現できる

More information

Microsoft PowerPoint - lecture a.pptx

Microsoft PowerPoint - lecture a.pptx 本日 (3 時限目 ) の内容 バイオインフォマティクス ( 生命情報学 ) 応用生命科学 情報生命学第 3 回配列解析入門 生物学と情報学の学際領域の学問分野 目的 生物データに対する情報解析技術の開発 情報解析技術を利用した新たな生物学的知識の発見 生物学の実験技術の革新 ( 例 : 次世代シークエンサー ) 大量のデータ ウェット ( 実験 ) とドライ ( 解析 ) の協力が不可欠 2 3

More information

‚æ4›ñ

‚æ4›ñ ( ) ( ) ( ) 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 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 0 1 2 3 4 5 6 7 8 9 (OUS) 9 26 1 / 28 ( ) ( ) ( ) A B C D Z a b c d z 0 1 2 9 (OUS) 9

More information

XMPによる並列化実装2

XMPによる並列化実装2 2 3 C Fortran Exercise 1 Exercise 2 Serial init.c init.f90 XMP xmp_init.c xmp_init.f90 Serial laplace.c laplace.f90 XMP xmp_laplace.c xmp_laplace.f90 #include int a[10]; program init integer

More information

h23w1.dvi

h23w1.dvi 24 I 24 2 8 10:00 12:30 1),. Do not open this problem booklet until the start of the examination is announced. 2) 3.. Answer the following 3 problems. Use the designated answer sheet for each problem.

More information

,,,,., C Java,,.,,.,., ,,.,, i

,,,,., C Java,,.,,.,., ,,.,, i 24 Development of the programming s learning tool for children be derived from maze 1130353 2013 3 1 ,,,,., C Java,,.,,.,., 1 6 1 2.,,.,, i Abstract Development of the programming s learning tool for children

More information

™·”õ/sec3_p63_84/fiü“eflÅ

™·”õ/sec3_p63_84/fiü“eflÅ Section3 64 1 65 Section 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 Babara E. Ainsworth et al. Med. Sci. Sports. Exevc.1993 66 67 Section 3 1 10 9 8 1 2 3 4 7 6 5 6 7 5 1 2 3 4 68 69 Section 3 2 70 Section 3

More information

1 # include < stdio.h> 2 # include < string.h> 3 4 int main (){ 5 char str [222]; 6 scanf ("%s", str ); 7 int n= strlen ( str ); 8 for ( int i=n -2; i

1 # include < stdio.h> 2 # include < string.h> 3 4 int main (){ 5 char str [222]; 6 scanf (%s, str ); 7 int n= strlen ( str ); 8 for ( int i=n -2; i ABC066 / ARC077 writer: nuip 2017 7 1 For International Readers: English editorial starts from page 8. A : ringring a + b b + c a + c a, b, c a + b + c 1 # include < stdio.h> 2 3 int main (){ 4 int a,

More information

pptx

pptx iphone 2010 8 18 C xkozima@myu.ac.jp C Hello, World! Hello World hello.c! printf( Hello, World!\n );! os> ls! hello.c! os> cc hello.c o hello! os> ls! hello!!hello.c! os>./hello! Hello, World!! os>! os>

More information

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D II 8 2003 11 12 1 6 ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 Daisuke 8 =>. 73 Daisuke 35 Hiroshi 64 Ichiro 87 Junko

More information

Taro-リストⅠ(公開版).jtd

Taro-リストⅠ(公開版).jtd 0. 目次 1. 再帰的なデータ構造によるリストの表現 1. 1 リストの作成と表示 1. 1. 1 リストの先頭に追加する方法 1. 1. 2 リストの末尾に追加する方法 1. 1. 3 昇順を保存してリストに追加する方法 1. 2 問題 問題 1 問題 2-1 - 1. 再帰的なデータ構造によるリストの表現 リストは データの一部に次のデータの記憶場所を示す情報 ( ポインタという ) を持つ構造をいう

More information

2) TA Hercules CAA 5 [6], [7] CAA BOSS [8] 2. C II C. ( 1 ) C. ( 2 ). ( 3 ) 100. ( 4 ) () HTML NFS Hercules ( )

2) TA Hercules CAA 5 [6], [7] CAA BOSS [8] 2. C II C. ( 1 ) C. ( 2 ). ( 3 ) 100. ( 4 ) () HTML NFS Hercules ( ) 1,a) 2 4 WC C WC C Grading Student programs for visualizing progress in classroom Naito Hiroshi 1,a) Saito Takashi 2 Abstract: To grade student programs in Computer-Aided Assessment system, we propose

More information

Microsoft PowerPoint - lecture a.pptx

Microsoft PowerPoint - lecture a.pptx 応用生命科学 情報生命学第 3 回配列解析入門 7 月 14 日 ( 木 ) 3 時限目加藤有己大阪大学大学院医学系研究科講義資料 http://www.med.osakau.ac.p/pub/rna/ykato/lecture/bonfo16/ 授業目的 情報科学と生命科学の融合領域である情報生命科学の基本的な手法を理解することを目的とする 日程 3 時限目 4 時限目 6 月 30 日 ( 木

More information

Taro-再帰関数Ⅱ(公開版).jtd

Taro-再帰関数Ⅱ(公開版).jtd 0. 目次 6. 2 項係数 7. 二分探索 8. 最大値探索 9. 集合 {1,2,,n} 上の部分集合生成 - 1 - 6. 2 項係数 再帰的定義 2 項係数 c(n,r) は つぎのように 定義される c(n,r) = c(n-1,r) + c(n-1,r-1) (n 2,1 r n-1) = 1 (n 0, r=0 ) = 1 (n 1, r=n ) c(n,r) 0 1 2 3 4 5

More information

C言語によるアルゴリズムとデータ構造

C言語によるアルゴリズムとデータ構造 Algorithms and Data Structures in C 4 algorithm List - /* */ #include List - int main(void) { int a, b, c; int max; /* */ Ÿ 3Ÿ 2Ÿ 3 printf(""); printf(""); printf(""); scanf("%d", &a); scanf("%d",

More information

Prog1_10th

Prog1_10th 2012 年 6 月 20 日 ( 木 ) 実施ポインタ変数と文字列前回は, ポインタ演算が用いられる典型的な例として, ポインタ変数が 1 次元配列を指す場合を挙げたが, 特に,char 型の配列に格納された文字列に対し, ポインタ変数に配列の 0 番の要素の先頭アドレスを代入して文字列を指すことで, 配列そのものを操作するよりも便利な利用法が存在する なお, 文字列リテラルは, その文字列が格納されている領域の先頭アドレスを表すので,

More information

:30 12:00 I. I VI II. III. IV. a d V. VI

:30 12:00 I. I VI II. III. IV. a d V. VI 2018 2018 08 02 10:30 12:00 I. I VI II. III. IV. a d V. VI. 80 100 60 1 I. Backus-Naur BNF N N y N x N xy yx : yxxyxy N N x, y N (parse tree) (1) yxyyx (2) xyxyxy (3) yxxyxyy (4) yxxxyxxy N y N x N yx

More information

DA RA

DA RA II 3ADT2206 19 3 1 1 1 5 2 5 2.1 DA................................................ 5 2.2 RA................................................ 7 2.3.......................................... 8 2.4....................................

More information

進捗状況の確認 1. gj も gjp も動いた 2. gj は動いた 3. gj も動かない 2

進捗状況の確認 1. gj も gjp も動いた 2. gj は動いた 3. gj も動かない 2 連立 1 次方程式の数値解法 小規模な連立 1 次方程式の解法 消去法 Gauss 消去法 Gauss-Jordan 法 ( 大規模な連立 1 次方程式の解法 ) ( 反復法 ) (Jacobi 法 ) 講義では扱わない 1 進捗状況の確認 1. gj も gjp も動いた 2. gj は動いた 3. gj も動かない 2 パターン認識入門 パターン認識 音や画像に中に隠れたパターンを認識する 音素

More information

生命情報学

生命情報学 生命情報学 5 隠れマルコフモデル 阿久津達也 京都大学化学研究所 バイオインフォマティクスセンター 内容 配列モチーフ 最尤推定 ベイズ推定 M 推定 隠れマルコフモデル HMM Verアルゴリズム EMアルゴリズム Baum-Welchアルゴリズム 前向きアルゴリズム 後向きアルゴリズム プロファイル HMM 配列モチーフ モチーフ発見 配列モチーフ : 同じ機能を持つ遺伝子配列などに見られる共通の文字列パターン

More information

練習&演習問題

練習&演習問題 練習問題 ファイル入出力 練習問題 1 ファイルへのデータ出力 配列 a[ ] の値をファイル data.txt に出力するプログラムを作成しなさい #include #include /* srand(), rand() */ #include /* time() */ int main(void) { int i; double a[5];

More information

I. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) + x * x + x x (4) * *

I. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) + x * x + x x (4) * * 2015 2015 07 30 10:30 12:00 I. I VI II. III. IV. a d V. VI. 80 100 60 1 I. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) +

More information

25 II :30 16:00 (1),. Do not open this problem booklet until the start of the examination is announced. (2) 3.. Answer the following 3 proble

25 II :30 16:00 (1),. Do not open this problem booklet until the start of the examination is announced. (2) 3.. Answer the following 3 proble 25 II 25 2 6 13:30 16:00 (1),. Do not open this problem boolet until the start of the examination is announced. (2) 3.. Answer the following 3 problems. Use the designated answer sheet for each problem.

More information

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* ( 2016 2016 07 28 10:30 12:00 I. I VI II. III. IV. a d V. VI. 80 100 60 1 I. Backus-Naur BNF : 11011 N N 0 N N 11 1001 N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) 1100100 (2) 1111011 (3) 1110010 (4) 1001011

More information

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - lec10.ppt 今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ

More information

:30 12:00 I. I VI II. III. IV. a d V. VI

:30 12:00 I. I VI II. III. IV. a d V. VI 2017 2017 08 03 10:30 12:00 I. I VI II. III. IV. a d V. VI. 80 100 60 1 I. Backus-Naur BNF X [ S ] a S S ; X X X, S [, a, ], ; BNF X (parse tree) (1) [a;a] (2) [[a]] (3) [a;[a]] (4) [[a];a] : [a] X 2 222222

More information

第2回

第2回 第 4 回基本データ構造 1 明星大学情報学科 2 3 年前期 アルゴリズムとデータ構造 Ⅰ 第 4 回 Page 1 配列 スタック キューとその操作 4-1. 配列とその操作 配列型 同じ型の変数を並べたもの 配列にする型は 基本型 配列型 構造体 ポインタいずれでもよい 要素の並べ方を 次元 という 1 次元配列 ( 直線状 ) 2 次元配列 ( 平面状 ) 3 次元配列 ( 立体状 ) a[5]

More information

11yama

11yama 連立 1 次方程式の数値解法 小規模な連立 1 次方程式の解法 消去法 Gauss 消去法 Gauss-Jordan 法 ( 大規模な連立 1 次方程式の解法 ) ( 反復法 ) (Jacobi 法 ) 講義では扱わない 1 進捗状況の確認 1. gj も gjp も動いた 2. gj は動いた 3. gj も動かない 2 パターン認識入門 パターン認識 音や画像に中に隠れたパターンを認識する 音素

More information

Microsoft PowerPoint - C_Programming(3).pptx

Microsoft PowerPoint - C_Programming(3).pptx H23 年度秋学期情報スキル活用 入門 担当 : 田中基彦 ( 工学部共通教育科 ) Email: ak_tanaka@isc.chubu.ac.jp 授業のホームページ学術情報センター > 教育支援 > 情報リテラシー 授業の日程 講義内容提出課題 連絡事項を掲載 > 定期的にアクセスして確認する C 言語によるプログラミング (3) 制御文 繰り返し文 if, while, switch, for,

More information

プログラミング基礎

プログラミング基礎 C プログラミング 演習 アルゴリズム基礎論 演習 第 10 回 今後の予定 12/22( 月 ) 期末試験 (60 分間 ) 場所 :A1611 時間 :16:20~17:20 課題の最終提出締切 :12/19( 金 ) これ以降の新規提出は評価されない 12/22までに最終状況を提示するので, 提出したのに や になってる人は自分の提出内容や提出先を再確認した上で12/26までに問い合わせること

More information

Taro-スタック(公開版).jtd

Taro-スタック(公開版).jtd 0. 目次 1. 1. 1 配列によるの実現 1. 2 再帰的なデータ構造によるの実現 1. 3 地図情報処理 1. 4 問題 問題 1 グラフ探索問題 - 1 - 1. は データの出し入れが一カ所で行われ 操作は追加と削除ができるデータ構造をいう 出入口 追加 削除 操作 最初 111 追加 111 222 追加 111 222 333 追加 111 222 333 444 追加 111 222

More information

新版明解C言語 実践編

新版明解C言語 実践編 2 List - "max.h" a, b max List - max "max.h" #define max(a, b) ((a) > (b)? (a) : (b)) max List -2 List -2 max #include "max.h" int x, y; printf("x"); printf("y"); scanf("%d", &x); scanf("%d", &y); printf("max(x,

More information

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; Point; 問題 18. 問題 17 の Point を用いて 2 点の座標を入力するとその 2 点間の距 離を表示するプログラムを作成せよ 平方根は

More information

kiso2-09.key

kiso2-09.key 座席指定はありません 計算機基礎実習II 2018 のウェブページか 第9回 ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第7回の復習課題(rev07) 第9回の基本課題(base09) 第8回試験の結果 中間試験に関するコメント コンパイルできない不完全なプログラムなど プログラミングに慣れていない あるいは複雑な問題は 要件 をバラして段階的にプログラムを作成する exam08-2.c

More information

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Microsoft PowerPoint - CproNt02.ppt [互換モード] 第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント

More information

tuat1.dvi

tuat1.dvi ( 1 ) http://ist.ksc.kwansei.ac.jp/ tutimura/ 2012 6 23 ( 1 ) 1 / 58 C ( 1 ) 2 / 58 2008 9 2002 2005 T E X ptetex3, ptexlive pt E X UTF-8 xdvi-jp 3 ( 1 ) 3 / 58 ( 1 ) 4 / 58 C,... ( 1 ) 5 / 58 6/23( )

More information

6 文字列処理 ( 教科書 p.301p.332) 今回は 言語の文字列処理について復習し, 文字列の探索手法について学びます. 文字列とはプログラム上での文字の並びを表すのが文字列です. これは中身が空であっても同様に呼ばれます. 言語では "STRING" のように文字の並びを二重引用符 " で囲んだものを文字列リテラルと呼びます. SII コードの場合, 割り当てられる数値は図 1 のようになっています.

More information

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó  ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡ (2018) 2018 5 17 0 0 if switch if if ( ) if ( 0) if ( ) if ( 0) if ( ) (0) if ( 0) if ( ) (0) ( ) ; if else if ( ) 1 else 2 if else ( 0) 1 if ( ) 1 else 2 if else ( 0) 1 if ( ) 1 else 2 (0) 2 if else

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 4 回再帰的構造体 前回の出席確認演習 #include int main() { FILE *fp; int c, linecount, length, maxlength; fp=fopen("/usr/share/dict/words","r"); if (fp == NULL) return 1; linecount=0; length=0;

More information

Microsoft Word - no15.docx

Microsoft Word - no15.docx 7. ファイルいままでは プログラムを実行したとき その結果を画面で確認していました 簡単なものならそれでもいいのですか 複雑な結果は画面で見るだけでなく ファイルに保存できればよいでしょう ここでは このファイルについて説明します 使う関数のプロトタイプは次のとおりです FILE *fopen(const char *filename, const char *mode); ファイルを読み書きできるようにする

More information

C のコード例 (Z80 と同機能 ) int main(void) { int i,sum=0; for (i=1; i<=10; i++) sum=sum + i; printf ("sum=%d n",sum); 2

C のコード例 (Z80 と同機能 ) int main(void) { int i,sum=0; for (i=1; i<=10; i++) sum=sum + i; printf (sum=%d n,sum); 2 アセンブラ (Z80) の例 ORG 100H LD B,10 SUB A LOOP: ADD A,B DEC B JR NZ,LOOP LD (SUM),A HALT ORG 200H SUM: DEFS 1 END 1 C のコード例 (Z80 と同機能 ) int main(void) { int i,sum=0; for (i=1; i

More information

Microsoft Word - no12.doc

Microsoft Word - no12.doc 7.5 ポインタと構造体 構造体もメモリのどこかに値が格納されているのですから 構造体へのポインタ も存在します また ポインタも変数ですから 構造体のメンバに含めることができます まずは 構造体へのポインタをあつかってみます ex53.c /* 成績表 */ #define IDLENGTH 7 /* 学籍番号の長さ */ #define MAX 100 /* 最大人数 */ /* 成績管理用の構造体の定義

More information

Taro-プログラミングの基礎Ⅱ(公

Taro-プログラミングの基礎Ⅱ(公 0. 目次 2. プログラムの作成 2. 1 コラッツ問題 自然数 n から出発して n が偶数ならば 2 で割り n が奇数ならば 3 倍して 1 を足す操作を行う この操作を繰り返すと最後に 1 になると予想されている 問題 1 自然数 aの操作回数を求めよ 問題 2 自然数 aから bまでのなかで 最大操作回数となる自然数を求めよ 2. 2 耐久数 正整数の各桁の数字を掛け 得られた結果についても同様の操作を繰り返す

More information

新・明解C言語 実践編

新・明解C言語 実践編 第 1 章 見 21 1-1 見えないエラー 見 List 1-1 "max2x1.h" a, b max2 List 1-1 chap01/max2x1.h max2 "max2x1.h" #define max2(a, b) ((a) > (b)? (a) : (b)) max2 List 1-2 List 1-2 chap01/max2x1test.c max2 #include

More information

10D16.dvi

10D16.dvi D IEEJ Transactions on Industry Applications Vol.136 No.10 pp.686 691 DOI: 10.1541/ieejias.136.686 NW Accelerating Techniques for Sequence Alignment based on an Extended NW Algorithm Jin Okaze, Non-member,

More information

GPGPU

GPGPU GPGPU 2013 1008 2015 1 23 Abstract In recent years, with the advance of microscope technology, the alive cells have been able to observe. On the other hand, from the standpoint of image processing, the

More information

18 C ( ) hello world.c 1 #include <stdio.h> 2 3 main() 4 { 5 printf("hello World\n"); 6 } [ ] [ ] #include <stdio.h> % cc hello_world.c %./a.o

18 C ( ) hello world.c 1 #include <stdio.h> 2 3 main() 4 { 5 printf(hello World\n); 6 } [ ] [ ] #include <stdio.h> % cc hello_world.c %./a.o 18 C ( ) 1 1 1.1 hello world.c 5 printf("hello World\n"); 6 } [ ] [ ] #include % cc hello_world.c %./a.out Hello World [a.out ] % cc hello_world.c -o hello_world [ ( ) ] (K&R 4.1.1) #include

More information

Program Design (プログラム設計)

Program Design  (プログラム設計) 7. モジュール化設計 内容 : モジュールの定義モジュールの強度又は結合力モジュール連結モジュールの間の交信 7.1 モジュールの定義 プログラムモジュールとは 次の特徴を持つプログラムの単位である モジュールは 一定の機能を提供する 例えば 入力によって ある出力を出す モジュールは 同じ機能仕様を実装しているほかのモジュールに置き換えられる この変化によって プログラム全体に影響をあまり与えない

More information

Microsoft Word - no206.docx

Microsoft Word - no206.docx 3.2 双方向リスト 今までのリストは 前から順にたどることしかできませんでした 今度は逆にもたどることができる 双方向リストを扱います この場合は 構造体には次を表すポインタの他に前を表すポインタを持つ ことになります 今回は最初と最後をポインタを使うと取り扱いが面倒になるので 最初 (start) と最後 (end) を どちらとも構造体 ( 値は意味を持たない ) を使うことにします こうすることによって

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅰ 条件分岐 if~else if~else 文,switch 文 条件分岐 if~else if~else 文 if~else if~else 文 複数の条件で処理を分ける if~else if~else 文の書式 if( 条件式 1){ 文 1-1; 文 1-2; else if( 条件式 2){ 文 2-1; 文 2-2; else { 文 3-1; 文 3-2; 真条件式

More information

Nov12_2009.pptx

Nov12_2009.pptx h"p://www.ebi.ac.uk/tools/emboss/align/index.html UNIPROT TPIS_HUMAN, TPIS_RABIT FASTA Run #########################################! Program: needle# Rundate: Tue Nov 10 02:40:01 2009! #########################################!

More information

Microsoft Word - Cプログラミング演習(8)

Microsoft Word - Cプログラミング演習(8) 第 8 回 (6/11) プログラミングスタイルなど [1] 名前のつけかた グローバル変数にはわかりやすい名前を, ローカル変数には短い名前を 関連性のあるものには関連性のある名前をつけて, 統一しよう 関数には能動的な名前を 名前は的確に 例題 1 次のコードの名前と値の選び方についてコメントせよ? #define TRUE 0? #define FALSE 1?? if ((ch = getchar())

More information

[1] #include<stdio.h> main() { printf("hello, world."); return 0; } (G1) int long int float ± ±

[1] #include<stdio.h> main() { printf(hello, world.); return 0; } (G1) int long int float ± ± [1] #include printf("hello, world."); (G1) int -32768 32767 long int -2147483648 2147483647 float ±3.4 10 38 ±3.4 10 38 double ±1.7 10 308 ±1.7 10 308 char [2] #include int a, b, c, d,

More information

r08.dvi

r08.dvi 19 8 ( ) 019.4.0 1 1.1 (linked list) ( ) next ( 1) (head) (tail) ( ) top head tail head data next 1: NULL nil ( ) NULL ( NULL ) ( 1 ) (double linked list ) ( ) 1 next 1 prev 1 head cur tail head cur prev

More information

I ASCII ( ) NUL 16 DLE SP P p 1 SOH 17 DC1! 1 A Q a q STX 2 18 DC2 " 2 B R b

I ASCII ( ) NUL 16 DLE SP P p 1 SOH 17 DC1! 1 A Q a q STX 2 18 DC2  2 B R b I 4 003 4 30 1 ASCII ( ) 0 17 0 NUL 16 DLE SP 0 @ P 3 48 64 80 96 11 p 1 SOH 17 DC1! 1 A Q a 33 49 65 81 97 113 q STX 18 DC " B R b 34 50 66 8 98 114 r 3 ETX 19 DC3 # 3 C S c 35 51 67 83 99 115 s 4 EOT

More information

joho09.ppt

joho09.ppt s M B e E s: (+ or -) M: B: (=2) e: E: ax 2 + bx + c = 0 y = ax 2 + bx + c x a, b y +/- [a, b] a, b y (a+b) / 2 1-2 1-3 x 1 A a, b y 1. 2. a, b 3. for Loop (b-a)/ 4. y=a*x*x + b*x + c 5. y==0.0 y (y2)

More information

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1 4. ソート ( 教科書 p.205-p.273) 整列すなわちソートは アプリケーションを作成する際には良く使われる基本的な操作であり 今までに数多くのソートのアルゴリズムが考えられてきた 今回はこれらソートのアルゴリズムについて学習していく ソートとはソートとは与えられたデータの集合をキーとなる項目の値の大小関係に基づき 一定の順序で並べ替える操作である ソートには図 1 に示すように キーの値の小さいデータを先頭に並べる

More information

ohp03.dvi

ohp03.dvi 19 3 ( ) 2019.4.20 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void int main(int argc, char *argv[]) {... 2 (2) argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0

More information

slide5.pptx

slide5.pptx ソフトウェア工学入門 第 5 回コマンド作成 1 head コマンド作成 1 早速ですが 次のプログラムを head.c という名前で作成してください #include #include static void do_head(file *f, long nlines); int main(int argc, char *argv[]) { if (argc!=

More information

講習No.12

講習No.12 前回までの関数のまとめ 関数は main() 関数または他の関数から呼び出されて実行される. 関数を呼び出す側の実引数の値が関数内の仮引数 ( 変数 ) にコピーされる. 関数内で定義した変数は, 関数の外からは用いることができない ( ローカル変数 ). 一般に関数内で仮引数を変化しても, 呼び出し側の変数は変化しない ( 値渡し ). 関数内で求めた値は return 文によって関数値として呼び出し側に戻される.

More information

p _08森.qxd

p _08森.qxd Foster care is a system to provide a new home and family to an abused child or to a child with no parents. Most foster children are youngsters who could not deepen the sense of attachment and relationship

More information

PC Windows 95, Windows 98, Windows NT, Windows 2000, MS-DOS, UNIX CPU

PC Windows 95, Windows 98, Windows NT, Windows 2000, MS-DOS, UNIX CPU 1. 1.1. 1.2. 1 PC Windows 95, Windows 98, Windows NT, Windows 2000, MS-DOS, UNIX CPU 2. 2.1. 2 1 2 C a b N: PC BC c 3C ac b 3 4 a F7 b Y c 6 5 a ctrl+f5) 4 2.2. main 2.3. main 2.4. 3 4 5 6 7 printf printf

More information

Prog1_6th

Prog1_6th 2012 年 5 月 24 日 ( 木 ) 実施 多分岐のプログラム 前回は多段階の 2 分岐を組み合わせて 3 種類以上の場合分けを実現したが, 式の値の評価によって, 一度に多種類の場合分けを行う多分岐の利用によって見通しのよいプログラムを作成できる場合がある ( 流れ図は右図 ) 式の評価 : 値 1 : 値 2 : 値 n : 該当値無し 処理 1 処理 2 処理 n 既定の処理 switch

More information

バイオインフォマティクスⅠ

バイオインフォマティクスⅠ バイオインフォマティクス ( 第 3 回 ) 慶應義塾大学生命情報学科 榊原康文 アセンブリの演習問題 ( 解 ) CGTCCGT CATCG 5 3 4 ATCCAT TCCGTAT 5 3 3 4 GTATC CGTCCGT-------- --TCCGTAT------ -----GTATC----- -------ATCCAT-- ----------CATCG ===============

More information

3. ( 1 ) Linear Congruential Generator:LCG 6) (Mersenne Twister:MT ), L 1 ( 2 ) 4 4 G (i,j) < G > < G 2 > < G > 2 g (ij) i= L j= N

3. ( 1 ) Linear Congruential Generator:LCG 6) (Mersenne Twister:MT ), L 1 ( 2 ) 4 4 G (i,j) < G > < G 2 > < G > 2 g (ij) i= L j= N RMT 1 1 1 N L Q=L/N (RMT), RMT,,,., Box-Muller, 3.,. Testing Randomness by Means of RMT Formula Xin Yang, 1 Ryota Itoi 1 and Mieko Tanaka-Yamawaki 1 Random matrix theory derives, at the limit of both dimension

More information

プログラミングI第10回

プログラミングI第10回 プログラミング 1 第 10 回 構造体 (3) 応用 リスト操作 この資料にあるサンプルプログラムは /home/course/prog1/public_html/2007/hw/lec/sources/ 下に置いてありますから 各自自分のディレクトリにコピーして コンパイル 実行してみてください Prog1 2007 Lec 101 Programming1 Group 19992007 データ構造

More information

Taro-リストⅢ(公開版).jtd

Taro-リストⅢ(公開版).jtd リスト Ⅲ 0. 目次 2. 基本的な操作 2. 1 リストから要素の削除 2. 2 リストの複写 2. 3 リストの連結 2. 4 問題 問題 1 問題 2-1 - 2. 基本的な操作 2. 1 リストから要素の削除 まず 一般的な処理を書き つぎに 特別な処理を書く 一般的な処理は 処理 1 : リスト中に 削除するデータを見つけ 削除する場合への対応 特別な処理は 処理 2 : 先頭のデータを削除する場合への対応

More information

BW BW

BW BW Induced Sorting BW 11T2042B 2015 3 23 1 1 1.1................................ 1 1.2................................... 1 2 BW 1 2.1..................................... 2 2.2 BW.................................

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2016/04/26 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタ malloc 構造体 2 ポインタ あるメモリ領域 ( アドレス ) を代入できる変数 型は一致している必要がある 定義時には値は不定 ( 何も指していない ) 実際にはどこかのメモリを指しているので, #include

More information

Microsoft PowerPoint - BI_okuno_

Microsoft PowerPoint - BI_okuno_ バイオインフォマティクス ( 配列検索 ) & ケモインフォマティクス ( 構造検索 ) 統合薬学教育開発分野 奥野恭史 創薬におけるインフォマティクス ゲノム情報 ゲノム基盤ターゲット研究探索 ターゲット バリデーション 創薬リード探索 創薬リード最適化 前臨床研究臨床研究 創薬 ゲノム情報 (~2 万 2 千遺伝子 ) 化合物ライブラリー (10^60 化合物 ) バイオインフォマティクス ケモインフォマティクス

More information

関数 C 言語は関数の言語 関数とは 関数の定義 : f(x) = x * x ; 使うときは : y = f(x) 戻り値 引数

関数 C 言語は関数の言語 関数とは 関数の定義 : f(x) = x * x ; 使うときは : y = f(x) 戻り値 引数 関数 C 言語は関数の言語 関数とは 関数の定義 : f(x) = x * x ; 使うときは : y = f(x) 戻り値 引数 関数の定義 戻り値の型 関数名 引数の型 引数の名前 int funcname ( int a, char b) { int c ; c = a * b ; return c ; 引数の型 引数の名前 戻り値 戻り値の型は int 変数 c の型も int return

More information

Microsoft PowerPoint - 計算機言語 第7回.ppt

Microsoft PowerPoint - 計算機言語 第7回.ppt 計算機言語第 7 回 長宗高樹 目的 関数について理解する. 入力 X 関数 f 出力 Y Y=f(X) 関数の例 関数の型 #include int tasu(int a, int b); main(void) int x1, x2, y; x1 = 2; x2 = 3; y = tasu(x1,x2); 実引数 printf( %d + %d = %d, x1, x2, y);

More information

lexex.dvi

lexex.dvi (2018, c ) http://istksckwanseiacjp/ ishiura/cpl/ 4 41 1 mini-c lexc,, 2 testlexc, lexc mini-c 1 ( ) mini-c ( ) (int, char, if, else, while, return 6 ) ( ) (+, -, *, /, %, &, =, ==,!=, >, >=,

More information

untitled

untitled II yacc 005 : 1, 1 1 1 %{ int lineno=0; 3 int wordno=0; 4 int charno=0; 5 6 %} 7 8 %% 9 [ \t]+ { charno+=strlen(yytext); } 10 "\n" { lineno++; charno++; } 11 [^ \t\n]+ { wordno++; charno+=strlen(yytext);}

More information

Microsoft Word - no202.docx

Microsoft Word - no202.docx 1.4 ポインタと配列 ポインタ変数は前回説明したように 値の入っているアドレスを示す変数です では 配列はどの ようにメモリ上に格納されるか調べてみましょう ex07.c /* ポインタと配列の関係 */ int a[3]={1, 2, 3; /* int 型の大きさ 3 の配列として宣言 */ int *i; /* int 型へのポインタとして宣言 */ double x[3] = {1.0,

More information

bioinfo pptx

bioinfo pptx IT BIO バイオインフォマティクス第 2 回 藤博幸 アラインメントのアルゴリズムについて - 動的計画法 (dynamic programing) - 動的計画法は組み合わせ最適化の一般的な手法であり 配列アラインメントばかりでなくバイオインフォマティクスの様々な分野で利用されている 二本の配列から可能なアラインメントの例 ギャップ ペナルティ g(l)=α+β(l-1) :L はギャップの長さ

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 2018/10/05 竹島研究室創成課題 第 2 回 C 言語演習 変数と演算 東京工科大学 加納徹 前回の復習 Hello, world! と表示するプログラム 1 #include 2 3 int main(void) { 4 printf("hello, world! n"); 5 return 0; 6 } 2 プログラム実行の流れ 1. 作業ディレクトリへの移動 $ cd

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

橡Pro PDF

橡Pro PDF 1 void main( ) char c; /* int c; */ int sum=0; while ((c = getchar())!= EOF) if(isdigit(c) ) sum += (c-'0'); printf("%d\n", sum); main()int i,sum=0; for(i=0;i

More information

ohp08.dvi

ohp08.dvi 19 8 ( ) 2019.4.20 1 (linked list) ( ) next ( 1) (head) (tail) ( ) top head tail head data next 1: 2 (2) NULL nil ( ) NULL ( NULL ) ( 1 ) (double linked list ) ( 2) 3 (3) head cur tail head cur prev data

More information

第1回 プログラミング演習3 センサーアプリケーション

第1回 プログラミング演習3 センサーアプリケーション C プログラミング - ポインタなんて恐くない! - 藤田悟 fujita_s@hosei.ac.jp 目標 C 言語プログラムとメモリ ポインタの関係を深く理解する C 言語プログラムは メモリを素のまま利用できます これが原因のエラーが多く発生します メモリマップをよく頭にいれて ポインタの動きを理解できれば C 言語もこわくありません 1. ポインタ入門編 ディレクトリの作成と移動 mkdir

More information

Taro-ポインタ変数Ⅰ(公開版).j

Taro-ポインタ変数Ⅰ(公開版).j 0. 目次 1. ポインタ変数と変数 2. ポインタ変数と配列 3. ポインタ変数と構造体 4. ポインタ変数と線形リスト 5. 問題 問題 1 問題 2-1 - 1. ポインタ変数と変数 ポインタ変数には 記憶領域の番地が格納されている 通常の変数にはデータが格納されている 宣言 int *a; float *b; char *c; 意味ポインタ変数 aは 整数型データが保存されている番地を格納している

More information

kiso2-06.key

kiso2-06.key 座席指定があります Linux を起動して下さい 第6回 計算機基礎実習II 計算機基礎実習II 2018 のウェブページか ら 以下の課題に自力で取り組んで下さい 第5回の復習課題(rev05) 第6回の基本課題(base06) 第5回課題の回答例 ex05-2.c 1. キーボードから整数値 a を入力すると a*a*a の値を出力することを繰り返すプログラムを作成しなさい 2. ただし 入力された

More information

1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf("hello World!!\n"); return 0; 戻り値 1: main() 2.2 C main

1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf(hello World!!\n); return 0; 戻り値 1: main() 2.2 C main C 2007 5 29 C 1 11 2 2.1 main() 1 FORTRAN C main() main main() main() 1 return 1 1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf("hello World!!\n"); return

More information

講習No.9

講習No.9 日本語は通常 2 バイトの文字コード.JIS コード, シフト JIS コード, Unicode (UTF-8) 等の様々な文字コードがある. アスキーコード表 (ASCII code) アスキーコード ( 値 ) 漢字変換無しでキーボードから直接入力できる半角文字 32 48 0 64 @ 80 P 96 ` 112 p 33! 49 1 65 A 81 Q 97 a 113 q 34 " 50

More information

Prog1_15th

Prog1_15th 2012 年 7 月 26 日 ( 木 ) 実施構造体と typedef typedef 宣言によって,struct 構造体タグ名という表記を再定義し, データ型名のように扱うことができる 構文は typedef struct 構造体タグ名 再定義名 ; となり, この場合の構造体変数の宣言は, 再定義名を用いて行うことができる なお, ここでは 構造体タグ名は省略可能である 構造体を指すポインタ

More information

タイトル

タイトル 第 3 回バイオインフォマティクスアルゴリズム アラインメントアルゴリズム 慶應義塾大学先端生命科学研究所 基本的なアルゴリズム設計技法 再帰法 分割統治法 動的計画法 分割統治法とは? (1) 例 :(18, 37, 21, 14, 7, 12, 19, 6) を小さいものから順に並べ替えることを考える 最小値 2 番目に小さい値 3 番目に小さい値 を求めていくやり方では数列の長さを n とすると

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅱ 演習 2-1(a) BMI による判定 文字列, 身長 height(double 型 ), 体重 weight (double 型 ) をメンバとする構造体 Data を定義し, それぞれのメンバの値をキーボードから入力した後, BMI を計算するプログラムを作成しなさい BMI の計算は関数化すること ( ) [ ] [ ] [ ] BMI = 体重 kg 身長 m 身長

More information

Cプログラミング1(再) 第2回

Cプログラミング1(再) 第2回 C プログラミング 1( 再 ) 第 2 回 講義では Cプログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ 1 前回のレポートから 前回の宿題 数あてゲーム の説明において 次のように書いていたものがいた : これはコンピュータがランダムに設定した数字を人間が当てるゲームである この説明でどこかおかしなところはないだろうか? 2 コンピュータの用語と日常的な用語の違い 物理において

More information

文字数は1~6なので 同じ本数の枝を持つパスで生成される呪文の長さは最大で6 倍の差がある 例えば 上図のようなケースを考える 1サイクル終了した時点では スター節点のところに最強呪文として aaaaaac が求まる しかしながら サイクルを繰り返していくと やがてスター節点のところに aaaaaa

文字数は1~6なので 同じ本数の枝を持つパスで生成される呪文の長さは最大で6 倍の差がある 例えば 上図のようなケースを考える 1サイクル終了した時点では スター節点のところに最強呪文として aaaaaac が求まる しかしながら サイクルを繰り返していくと やがてスター節点のところに aaaaaa [Problem E] 最強の呪文 例えば 上図のような場合を考えると 節点 0( スター ) から節点 1 に至るパスの最強の呪文は aa であるが 節点 0 から節点 2 に至るパスの最強の呪文は aabc であり 節点 0 と節点 1 の間のパスとして最強の aa は用いられていない したがって スターから各節点への最強の呪文を求めていく方法は旨く機能しないと考えられる 一方 上図において 節点

More information

QR

QR 1 7 16 13 1 13.1 QR...................................... 2 13.1.1............................................ 2 13.1.2..................................... 3 13.1.3 QR........................................

More information

1. A0 A B A0 A : A1,...,A5 B : B1,...,B

1. A0 A B A0 A : A1,...,A5 B : B1,...,B 1. A0 A B A0 A : A1,...,A5 B : B1,...,B12 2. 3. 4. 5. A0 A B f : A B 4 (i) f (ii) f (iii) C 2 g, h: C A f g = f h g = h (iv) C 2 g, h: B C g f = h f g = h 4 (1) (i) (iii) (2) (iii) (i) (3) (ii) (iv) (4)

More information