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

Size: px
Start display at page:

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

Transcription

1 第 5 回バイオインフォマティクスアルゴリズム アラインメントアルゴリズム (3) 慶應義塾大学先端生命科学研究所

2 アラインメント 置換 挿入 欠損を考慮して塩基配列あるいは アミノ酸配列の似た部分をそろえることギャップ - を挿入する CAAGACATTTTAC CATACACTTTAC CA-AGACATTTTAC CATACAC--TTTAC ** * ** *****

3 アラインメントはグラフで表現できる seq2 A A C G A seq1 C G A-CG AACG

4 直前のノード MS(i,j) を位置 (i,j) における最大スコアと定義 MS(i-1,j-1) MS(i-1,j) +SC(seq1(i),seq2(j)) +GP MS(i,j-1) +GP MS(i,j)

5 最大スコアの再帰的定義最大スコアの再帰的定義 = = = 1)) 2( 1), 1( ( 1) 1, ( ) 1, ( 1), ( max or if ), ( j seq i SC seq j i MS GP j i MS GP j i MS j i j i MS

6 動的計画法を使う (C 言語 ) MS(i,j) 各ノード (i,j) について (1) 最大スコア MS(i,j) と (2) 方角 direction(i,j) を記録しておく struct { int score; /* そのノードに至ったときの最大スコア */ int direction; /* そのノードに到達して最大スコアになったときの直前のノードの方角 */ } score_path_matrix[max_seq_len][max_seq_len]; /* MAX_SEQ_LEN は扱える最大の配列長さ */ score_path_matrix[i][j].score = max_score; score_path_matrix[i][j].direction = max_dir;

7 最大スコア方向の情報からアラインメントを求める seq2 A T C G A a_seq1: G a_seq2: G C C - T A A seq1 C G a_seq1: A-CG a_seq2: ATCG

8 void board_to_alignment(char a_seq1[], char a_seq2[], int m, int n){ /* a_seq にアラインメント結果を格納する m, n は 2 つの入力配列のそれぞれの長さ */ int i, j, p; /* i,j が現在注目対象となっている 2 つの配列の塩基の位置 p がアラインメント格納位置 char tmp; } for(p =, i = m, j = n; i!= j!= ;){ switch(score_path_matrix[i][j].direction){ case V: a_seq1[p] = seq1[ -- i]; a_seq2[p] = GAPM; p ++; break; case H:??????????????????? case D:??????????????????? } } a_seq1[p] = ' '; a_seq2[p] = ' '; strrev(a_seq1); strrev(a_seq2); C 言

9 アラインメントの呼び出し (C 言語 ) main(){ static char a_seq1[1], a_seq2[1]; strcpy(seq1, "acg"); strcpy(seq2, "aacg"); seq1_len = strlen(seq1); seq2_len = strlen(seq2); printf("%d n", find_max_score(seq1_len, seq2_len)); } board_to_alignment(a_seq1, a_seq2, seq1_len, seq2_len); printf("%s n%s n", a_seq1, a_seq2);

10 sub board_to_alignment($$){ my($m, $n) /* $m, $n は 2 つの入力配列のそれぞれの長さ */ /* アラインメント結果を格納する配列 */ my($i, $j, $p); /* $i, $j が現在注目対象となっている 2 つの配列の塩基の位置 $p がアラインメント格納位置 */ my($tmp); for($p =, $i = $m, $j = $n; $i!= $j!= ;){ my $d = $score_path_matrix[$i]->[$j]->{"direction"}; if($d eq "V"){ $a_seq1[$p] = substr($seq1, --$i, 1); $a_seq2[$p] = $::GAPM; $p ++; } elsif($d eq "H"){ #????????????????????????? } elsif($d eq "D"){ #????????????????????????? } = = reverse(@a_seq2); } return Perl

11 アラインメントの呼び出し (Perl) $seq1 = "acg"; $seq2 = "atcg"; my $seq1_len = length($seq1); my $seq2_len = length($seq2); printf("%d n", find_max_score($seq1_len, $seq2_len)); my($a_seq1, $a_seq2) = board_to_alignment($seq1_len, $seq2_len); printf("%s n%s n", $a_seq1, $a_seq2);

12 変数の中味の具体例 (1) seq2 i = 1 A A T C G seq1: A C G seq2: A T C G seq1 C j = 2 p = 1 G a_seq1: G C a_seq2: G C

13 変数の中味の具体例 (2) seq2 i = 1 A A T C G seq1: A C G seq2: A T C G seq1 C j = 1 p = 2 G a_seq1: G C - a_seq2: G C T

14 結局どこが動的計画法だったのか? アラインメントの問題を 各位置について 以下のように分割 配列 1 と 2 の塩基をマッチさせる場合 配列 1 に GAP を入れる場合 配列 2 に GAP を入れる場合 各ノードに以下の途中経過を記録し 高速化 そのノードまでの最大スコア ( そのノードで最大スコアになるときの直前のノード )

15 ローカルアラインメント (1) 配列 1 配列 2 cagtagctgatcgatgctagctgat tttatgat gatgctagctacactac 切り捨てたい部 本当に似ている部 アラインメントを開始したいポイント

16 ローカルアラインメント (2) seq2 A T C G A seq1 C G 負のスコアに未来はない? 7

17 ローカルアラインメントローカルアラインメント (3) (3) = = = 1)) 2( 1), 1( ( 1) 1, ( ) 1, ( 1), ( max or if ), ( j seq i SC seq j i MS GP j i MS GP j i MS j i j i MS

18 最大スコアと方角の記録 (1) seq2 T A G C C seq1 A G 1 6 4

19 最大スコアと方角の記録 (2) ローカルアラインメントは MS(i,j) が最も高い位置から始める seq2 T A G C seq1 C A 3 a_seq1: GA a_seq2: GA G a_seq1: AG a_seq2: AG

20 より根拠のあるアラインメントのスコア体系 ゲノム配列には生物学的にどのような変異が生じやすいかを考えてアラインメントのスコア体系を構築すべき DNA でどのような変異が起こりやすいか スペーサ 繰り返し配列 プロモータ タンパク質のコード領域 ( コドンの第 1~3 塩基 ) Etc. タンパク質の配列でどのような変異が起こりやすいかの方が考慮すべき要素が減り 考えやすい 疎水性のアミノ酸は他の疎水性のアミノ酸に変化しやすい 正電荷を持つアミノ酸は他の正電荷を持つアミノ酸に変化しやい Etc.

21 基本的な考え方 : 同一祖先由来と思われるタンパク質を収集し 置換率を考える 例 : ロイシンジッパーを含むタンパク質 ACA2_YEAST P4535 KRARLLERNRIAASKCRQRKKVAQLQLQKEFNEIKDENRIL AP1_HUMAN P5412 KAERKRMRNRIAASKCRKRKLERIARLEEKVKTLKAQNSEL K K K L K E 4 箇 1 箇 1 箇 置換率に基づいてスコア体系を決めより正確には アミノ酸 aとbがアラインメントされたときのスコアは aとbの組み合わせが同一祖先からの置換によって生じる確率 log aとbの組み合わせがランダム抽出で得られる確率

22 標準的に使用されているスコア体系 A R N D C Q E G H I L K M F P S T W Y V B Z X * A R N D C Q E G H I L K M F P S T W Y V B Z X * BLOSUM62 PAM Dayhoff et al タンパク質の全長の類似性に基づいて導出された BLOSUM Henikoff and Henikoff, 1992 タンパク質の高い保存性を持つ部分配列に基づいて導出された BLAST など有名なツールにも使用されている

23 より根拠のあるアラインメントのスコア体系 (2) 塩基の挿入 欠損はまとめて起こりやすい CCCAAAAAAAAAAGGG CCCAAAAAGGG CCCAAAAAAAAAAGGG CCCA-A-A-A-A-GGG CCCAAAAAAAAAAGGG CCCAAAAA-----GGG どちらが良いアラインメント?

24 より複雑な GAP のペナルティ GAP open penalty GAP の始まりに対して付けられるペナルティー (ex. -5) GAP extension penalty 連続して GAP が入っている領域の 2 番目以降の GAP に対して付けられるペナルティー (ex. -1) CCCAAAAAAAAAAGGG CCCA-A-A-A-A-GGG CCCAAAAAAAAAAGGG CCCAAAAA-----GGG GAP ペナルティーが一定でない 再帰式の変更が必要

25 もはや GAP ペナルティーは一定ではない MS(i,j) を位置 (i,j) における最大スコアと定義 MS(i-1,j-1) MS(i-1,j) +SC(seq1(i),seq2(j)) +GP open?,+gp ext? MS(i,j-1) MS(i,j) +GP open?,+gp ext?

26 最大スコアの場合分け MS(i, j) を位置 (i, j) における最大スコアと定義 MS H (i, j) を直前のノードが位置 (i, j-1) だったときの位置 (i, j) における最大スコアと定義 MS D (i,j) MS H (i,j) MS V (i,j) MS(i,j) MS( i, j) = MS MS MS H V D ( i, ( i, ( i, j) j) j)

27 2 つ前まで見れば 経路のペナルティーは一定 (i-1,j-2) MS H = MS max MS D H ( i, j ( i, j 1) + GP 1) + GP open ext MS D (i,j-1) (i,j-2) +GP open MS H (i,j) MS H (i,j-1) + GP ext

28 アラインメントの準最適解を求めるもの BLAST (Altschul SF et al. 199) 基本的に GAP なし高速 FASTA (Lipman DJ et al. 1985) GAP を扱うことができるそこそこ速い パッケージ中の ssearch は最適解を求める BLAT (Kent J et al. 22) BLAST より精度が落ちるとされるが とても高速

29 BLAST word の抽出 Query を word(n アミノ酸単位 ) に分割 データベース中の word に一致する部分の検出 Hit からの拡張 Hit 部分の統合

30 マルチプルアラインメント 2 本の配列のアラインメントをペアワイズアラインメントという 3 本以上の配列のアラインメントをマルチプルアラインメントという ツールとしては CLUSTALW(Thompson JD et al. 1994) などが有名 AC-GT-A ACCAT-A GC--T-A GC--TCA

31 マルチプルアラインメントを行う手法 ツリーベース法 ACGTA ACCATA GCTA GCTCA AC-GTA ACCATA GCT-A GCTCA AC-GT-A ACCAT-A GC--T-A GC--TCA シミュレーテッドアニーリング法 隠れマルコフモデル

bioinfo-a10s-4_align

bioinfo-a10s-4_align 4 (2) ATCAATCGATCGATC ATCCATTGAACCATC ATCAATCGATCGATC ATCAATCGAGGAGGATCGATC ATCAATCGATCGATC ATCAACGATC - CAAGACATTTTAC CATACACTTTAC CA-AGACATTTTAC CATACAC--TTTAC ** * ** ***** seq2 A A C G A seq1 C G A-CG

More information

タイトル

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

More information

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

PowerPoint Presentation

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

More information

Microsoft PowerPoint - lecture a.pptx

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

More information

生命情報学

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

More information

生命情報学

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

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

アルゴリズム入門

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

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング初級 第 7 回 2017 年 5 月 29 日 配列 ( 復習 )~ 文字列 1 配列とは 2 配列 : 複数の変数をグループとしてまとめて扱うもの 配列 変数 int data[10]; 整数型の配列 同種のデータ型を連続して確保したものを配列とよぶ = 整数がそれぞれにひとつずつ入る箱を 10 個用意したようなもの int data; 整数型の変数 = 整数がひとつ入る dataという名前の箱を用意したようなもの

More information

PowerPoint Presentation

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

More information

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (

More information

Microsoft PowerPoint - lec10.ppt

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

More information

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

Taro-再帰関数Ⅲ(公開版).jtd 0. 目次 1 1. ソート 1 1. 1 挿入ソート 1 1. 2 クイックソート 1 1. 3 マージソート - 1 - 1 1. ソート 1 1. 1 挿入ソート 挿入ソートを再帰関数 isort を用いて書く 整列しているデータ (a[1] から a[n-1] まで ) に a[n] を挿入する操作を繰り返す 再帰的定義 isort(a[1],,a[n]) = insert(isort(a[1],,a[n-1]),a[n])

More information

アラインメントはグラフで表現できる

アラインメントはグラフで表現できる 2009 年度春学期バイオインフォマティクスアルゴリズム隠れマルコフモデル (1) 慶應義塾大学 環境情報学部 この世の現象の多くは偶然性に支配されている? 決定的でない現象の例 : コインを投げたときの裏表 サイコロの目 天気 ( 降水確率 ) 野球の打者の安打? ( 打率 ) 偶然性にはどのような法則があるのか? 確率モデルとは? 確率を取り入れた模型 抽象化 部分的にはでたらめに見える 全体的には秩序があり

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

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

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

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

Taro-最大値探索法の開発(公開版

Taro-最大値探索法の開発(公開版 最大値探索法の開発 0. 目次 1. 開発過程 1 目標 1 : 4 個のデータの最大値を求める 目標 2 : 4 個のデータの最大値を求める 改良 : 多数のデータに対応するため 配列を使う 目標 3 : n 個のデータの最大値を求める 改良 : コードを簡潔に記述するため for 文を使う 目標 4 : n 個のデータの最大値を求める 改良 : プログラムをわかりやすくするため 関数を使う 目標

More information

11yama

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

More information

Microsoft PowerPoint - ca ppt [互換モード]

Microsoft PowerPoint - ca ppt [互換モード] 大阪電気通信大学情報通信工学部光システム工学科 2 年次配当科目 コンピュータアルゴリズム 良いアルゴリズムとは 第 2 講 : 平成 20 年 10 月 10 日 ( 金 ) 4 限 E252 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ 第 1 講の復習

More information

Prog1_10th

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

More information

memo

memo 計数工学プログラミング演習 ( 第 4 回 ) 2016/05/10 DEPARTMENT OF MATHEMATICA INFORMATICS 1 内容 リスト 疎行列 2 連結リスト (inked ists) オブジェクトをある線形順序に並べて格納するデータ構造 単方向連結リスト (signly linked list) の要素 x キーフィールド key ポインタフィールド next x->next:

More information

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード] if 文 (a と b の大きい方を表示 ) C 言語 Ⅰ の復習 条件判定 (if, 条件式 ) ループ (for[ 二重まで ], while, do) 配列 ( 次元 次元 ) トレース int a, b; printf( 整数 a: ); scanf( %d, &a); printf( 整数 b: ); scanf( %d, &b); //つのif 文で表現する場合間違えやすい どっちに =

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

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード] 情報工学実験 II 実験 2 アルゴリズム ( リスト構造とハッシュ ) 実験を始める前に... C 言語を復習しよう 0. プログラム書ける? 1. アドレスとポインタ 2. 構造体 3. 構造体とポインタ 0. プログラム書ける? 講義を聴いているだけで OK? 言語の要素技術を覚えれば OK? 目的のプログラム? 要素技術 データ型 配列 文字列 関数 オブジェクト クラス ポインタ 2 0.

More information

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - 09.pptx 情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源

More information

Nakamura

Nakamura FASTA, BLAST, PSI-BLAST, HMMPFAM 4-1 4-2 4-3 MEDSI (2003) 4-4 DOROTHYCROWFOOTHODGKIN DOROTHY--------HODGKIN MEDSI (2003) 4-5 4-6 !Altschul, S.F., Gish, W., Miller, W., Myers, E.W. & Lipman, D.J. (1990)!

More information

分子系統解析における様々な問題について 田辺晶史

分子系統解析における様々な問題について 田辺晶史 分子系統解析における様々な問題について 田辺晶史 そもそもどこの配列を使うべき? そもそもどこの配列を使うべき? 置換が早すぎず遅すぎない (= 多すぎず少なすぎない ) そもそもどこの配列を使うべき? 置換が早すぎず遅すぎない (= 多すぎず少なすぎない ) 連続長は長い方が良い そもそもどこの配列を使うべき? 置換が早すぎず遅すぎない (= 多すぎず少なすぎない ) 連続長は長い方が良い 遺伝子重複が起きていない

More information

program7app.ppt

program7app.ppt プログラム理論と言語第 7 回 ポインタと配列, 高階関数, まとめ 有村博紀 吉岡真治 公開スライド PDF( 情報知識ネットワーク研 HP/ 授業 ) http://www-ikn.ist.hokudai.ac.jp/~arim/pub/proriron/ 本スライドは,2015 北海道大学吉岡真治 プログラム理論と言語, に基づいて, 現著者の承諾のもとに, 改訂者 ( 有村 ) が加筆修正しています.

More information

ex04_2012.ppt

ex04_2012.ppt 2012 年度計算機システム演習第 4 回 2012.05.07 第 2 回課題の補足 } TSUBAMEへのログイン } TSUBAMEは学内からのログインはパスワードで可能 } } } } しかし 演習室ではパスワードでログインできない設定 } 公開鍵認証でログイン 公開鍵, 秘密鍵の生成 } ターミナルを開く } $ ssh-keygen } Enter file in which to save

More information

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

Microsoft PowerPoint - 10.ppt [互換モード] 第 10 回関数と再帰 1 今回の目標 再帰的な考え方に慣れる C 言語における再帰関数を理解する 階乗を求める再帰的な関数を作成し その関数を利用するプログラムを作成する 2 階乗 n! の 2 つの数学的表現 (1) 繰り返しによる表現 n! = 1 2 i n n = ii i= 1 ( n 1 のとき ) ( なお 0!=1) (2) 漸化式による表現 n! = 1 n = 0のとき n (

More information

Microsoft Word - no13.docx

Microsoft Word - no13.docx 4. 構造体 4.1 構造体とは たとえば 分数をそのまま扱うときを考えてみましょう 分数は分子と分母の 2 つの部分からな っていることから 2 つの変数を用いて表すことが必要です ここでは約分も行うこととします ex34.c /* 分数の計算 */ int gcd(int m, int n); int a_num, a_den; /* 分数 a */ int b_num, b_den; /* 分数

More information

メソッドのまとめ

メソッドのまとめ メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか

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

Bioinformatics2

Bioinformatics2 バイオインフォマティクス配列データ解析 2 藤 博幸 データベース検索 (1) ブラウザで NCBI を検索 (2)NCBI で配列データの取得 (3)NCBI で BLAST 検索 ブラウザで NCBI を検索 ブラウザで NCBI を検索 クリック ブラウザで NCBI を検索 NCBI トップページ National Center for Biotechnology Information 分

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

Microsoft Word - no12.doc

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

More information

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

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

More information

02

02 54 163116831 02 1 168 54 158 53 162 53 148 52 152 52 10,000 0 40,000 30,000 20,000 50,000 70,000 60,000 1,000 500 1,500 2,000 0 2,500 3,000 4,000 3,500 4,500 168 54 158 53 162 53 148 52 152 52 03 52148

More information

memo

memo 数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 5 回演習 前回までのお話 ポインタ ポインタを用いた文字列処理 構造体 ファイル 再帰的構造体 リスト構造 動的メモリ管理 今日のお題 ポインタやファイルなど これまでの内容の練習 教材 以前 以下に単語を収録したファイルがあることを紹介した : /usr/share/dict/words この中からランダムに単語を取り出したファイルを用意した http://sun.ac.jp/prof/yamagu/2019app/

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

memo

memo 計数工学プログラミング演習 ( 第 6 回 ) 2016/05/24 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : 再帰呼び出し 2 分探索木 深さ優先探索 課題 : 2 分探索木を用いたソート 2 再帰呼び出し 関数が, 自分自身を呼び出すこと (recursive call, recursion) 再帰を使ってアルゴリズムを設計すると, 簡単になることが多い

More information

7-1(DNA配列から遺伝子を探す).ppt

7-1(DNA配列から遺伝子を探す).ppt DNA 配列の中から遺伝子を探す Blast 解析.6 Query DNA 塩基配列アミノ酸配列 DNA 塩基配列をアミノ酸配列に変換アミノ酸配列 DNA 塩基配列をアミノ酸配列に変換 データベース DNA 塩基配列アミノ酸配列アミノ酸配列 DNA 塩基配列をアミノ酸配列に変換 DNA 塩基配列をアミノ酸配列に変換 1. 2. 3. TATGGCTTA---- T G L TATGGCTTA----

More information

Microsoft PowerPoint - 05.pptx

Microsoft PowerPoint - 05.pptx アルゴリズムとデータ構造第 5 回 : データ構造 (1) 探索問題に対応するデータ構造 担当 : 上原隆平 (uehara) 2015/04/17 アルゴリズムとデータ構造 アルゴリズム : 問題を解く手順を記述 データ構造 : データや計算の途中結果を蓄える形式 計算の効率に大きく影響を与える 例 : 配列 連結リスト スタック キュー 優先順位付きキュー 木構造 今回と次回で探索問題を例に説明

More information

gengo1-11

gengo1-11 関数の再帰定義 自然数 n の階乗 n! を計算する関数を定義してみる 引数は整数 返却値も整数 n! = 1*2*3*... * (n 1)*n である ただし 0! = 1 とする int factorial(int n) int i, tmp=1; if( n>0 ) for(i=1; i

More information

 

  早稲田大学大学院理工学研究科 博士論文概要 論文題目 An algorithm for alignment of multiple biological sequences with generalized gap penalty functions 一般化ギャップペナルティ関数を用いた生物配列のマルチプルアラインメントアルゴリズム 申請者 山田 Shinsuke 真介 Yamada 情報 ネットワーク専攻並列

More information

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx シーケンスに基づく検索モデルの検索精度について 東京工芸大学工学部コンピュータ応用学科宇田川佳久 (1/3) (2/3) 要員数 情報システム開発のイメージソースコード検索機能 他人が作ったプログラムを保守する必要がある 実務面での応用 1 バグあるいは脆弱なコードを探す ( 品質の高いシステムを開発する ) 2 プログラム理解を支援する ( 第 3 者が書いたコードを保守する ) 要件定義外部設計内部設計

More information

Microsoft PowerPoint - kougi9.ppt

Microsoft PowerPoint - kougi9.ppt C プログラミング演習 第 9 回ポインタとリンクドリストデータ構造 1 今まで説明してきた変数 #include "stdafx.h" #include int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE*

More information

< F2D837C E95CF CF68A4A94C5816A2E6A>

< F2D837C E95CF CF68A4A94C5816A2E6A> 0. 目次 6. ポインタ変数と文字処理 6. 1 文字 6. 2 文字列定数 6. 3 文字列 6. 4 文字列配列 7. ポインタ変数と関数 8. 問題 7. 1 引数とポインタ変数 7. 1. 1 変数が引数の場合 7. 1. 2 ポインタ変数が引数の場合 7. 2 引数と配列 7. 3 戻り値とポインタ変数 問題 1 問題 2-1 - 6. ポインタ変数と文字処理 6. 1 文字 文字の宣言

More information

cp-7. 配列

cp-7. 配列 cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標

More information

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

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

More information

Microsoft PowerPoint - 06.pptx

Microsoft PowerPoint - 06.pptx アルゴリズムとデータ構造第 6 回 : 探索問題に対応するデータ構造 (2) 担当 : 上原隆平 (uehara) 2015/04/22 内容 スタック (stack): 最後に追加されたデータが最初に取り出される 待ち行列 / キュー (queue): 最初に追加されたデータが最初に取り出される ヒープ (heap): 蓄えられたデータのうち小さいものから順に取り出される 配列による実装 連結リストによる実装

More information

Taro-2分探索木Ⅱ(公開版).jtd

Taro-2分探索木Ⅱ(公開版).jtd 2 分探索木 Ⅱ 0. 目次 5. 2 分探索木の操作 5. 1 要素の探索 5. 2 直前の要素の探索 5. 3 直後の要素の探索 5. 4 要素の削除 5. 5 問題 問題 1-1 - 5. 2 分探索木の操作 5. 1 要素の探索 要素 44 の探索 (1) 要素 と 44 を比較して 左部分木をたどる (2) 要素 33 と 44 を比較して 右部分木をたどる (3) 要素 44 を見つけた

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

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

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く 変数 入出力 演算子ここまでに C 言語プログラミングの様子を知ってもらうため printf 文 変数 scanf 文 if 文を使った簡単なプログラムを紹介した 今回は変数の詳細について習い それに併せて使い方が増える入出力処理の方法を習う また 演算子についての復習と供に新しい演算子を紹介する 変数の宣言プログラムでデータを取り扱う場合には対象となるデータを保存する必要がでてくる このデータを保存する場所のことを

More information

データ構造

データ構造 アルゴリズム及び実習 7 馬青 1 表探索 定義表探索とは 表の形で格納されているデータの中から条件に合ったデータを取り出してくる操作である 但し 表は配列 ( 連結 ) リストなどで実現できるので 以降 表 の代わりに直接 配列 や リスト などの表現を用いる場合が多い 表探索をただ 探索 と呼ぶ場合が多い 用語レコード : 表の中にある個々のデータをレコード (record) と呼ぶ フィールド

More information

PowerPoint Template

PowerPoint Template プログラミング演習 Ⅲ Linked List P. Ravindra S. De Silva e-mail: ravi@cs.tut.ac.jp, Room F-413 URL: www.icd.cs.tut.ac.jp/~ravi/prog3/index_j.html 連結リストとは? 一つひとつの要素がその前後の要素との参照関係をもつデータ構造 A B C D 連結リストを使用する利点 - 通常の配列はサイズが固定されている

More information

Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 78

Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 78 Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 788) 抽出できない依存関係 Understand の C 言語の解析 (Fuzzy/Strict) で

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

第2回

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

More information

GEC-Java

GEC-Java Copyright (C) Junko Shirogane, Waseda University 2019, All rights reserved. 1 プログラミング初級 (Java) 第 14 回継承 白銀純子 第 14 回の内容 継承 オーバーライド ポリモーフィズム Copyright (C) Junko Shirogane, Waseda University 2019, All rights

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンパイラとプログラミング言語 第 3 4 週 プログラミング言語の形式的な記述 2014 年 4 月 23 日 金岡晃 授業計画 第 1 週 (4/9) コンパイラの概要 第 8 週 (5/28) 下向き構文解析 / 構文解析プログラム 第 2 週 (4/16) コンパイラの構成 第 9 週 (6/4) 中間表現と意味解析 第 3 週 (4/23) プログラミング言語の形式的な記述 第 10 週

More information

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1 7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 10001 番地とすると, そこから int 型のサイズ, つまり 4 バイト分の領域が確保される.1

More information

kiso2-09.key

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

More information

Prog1_6th

Prog1_6th 2019 年 10 月 31 日 ( 木 ) 実施配列同種のデータ型を有する複数のデータ ( 要素 ) を番号付けして, ひとまとまりの対象として扱うものを配列と呼ぶ 要素 point[0] point[1] point[2] point[3] point[4] 配列 配列の取り扱いに関して, 次のような特徴がある 1. プログラム中で用いる配列変数 ( 配列の本体を参照する参照型の変数 ) は必ず宣言しておく

More information

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用 RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用体型のローカル変数を文字列操作関数で操作する場合の注意事項 (RXC#013) 配列型構造体または共用体の配列型メンバから読み出した値を動的初期化に用いる場合の注意事項

More information

Microsoft Word - no103.docx

Microsoft Word - no103.docx 次は 数える例です ex19.c /* Zeller の公式によって 1 日の曜日の分布を求めるプログラム */ int year, month, c, y, m, wnumber, count[7] = {0, i; for(year = 2001; year

More information

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード] 第 3 回 Java 基本技術講義 クラス構造と生成 33 クラスの概念 前回の基本文法でも少し出てきたが, オブジェクト指向プログラミングは という概念をうまく活用した手法である. C 言語で言う関数に似ている オブジェクト指向プログラミングはこれら状態と振る舞いを持つオブジェクトの概念をソフトウェア開発の中に適用し 様々な機能を実現する クラス= = いろんなプログラムで使いまわせる 34 クラスの概念

More information

Microsoft Word - no11.docx

Microsoft Word - no11.docx 3. 関数 3.1 関数関数は数学の関数と同じようなイメージを持つと良いでしょう 例えば三角関数の様に一つの実数値 ( 角度 ) から値を求めますし 対数関数の様に二つの値から一つの値を出すものもあるでしょう これをイメージしてもらえば結構です つまり 何らかの値を渡し それをもとに何かの作業や計算を行い その結果を返すのが関数です C 言語の関数も基本は同じです 0 cos 1 cos(0) =

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 8 回メソッド (2) 授業開始前に自己点検 前回までの必須課題はすべてできていますか 前回までの学習項目であいまいな所はありませんか 理解できたかどうかは自分自身の基準をもとう Java 1 第 8 回 2 前回のテーマ メソッドとは いくつかの命令の列を束ねて 一つの命令として扱えるようにしたもの 今回学ぶメソッドの役割は その他のプログラミング言語では関数またはサブルーチンと呼ばれることがある

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 12 回目クラス 今日の講義で学ぶ内容 クラスとは クラスの宣言と利用 クラスの応用 クラス クラスとは 異なる複数の型の変数を内部にもつ型です 直観的に表現すると int 型や double 型は 1 1 つの値を管理できます int 型の変数 配列型は 2 5 8 6 3 7 同じ型の複数の変数を管理できます 配列型の変数 ( 配列変数 ) クラスは double

More information

Prog1_6th

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

More information

モデリングとは

モデリングとは コンピュータグラフィックス基礎 第 5 回曲線 曲面の表現 ベジェ曲線 金森由博 学習の目標 滑らかな曲線を扱う方法を学習する パラメトリック曲線について理解する 広く一般的に使われているベジェ曲線を理解する 制御点を入力することで ベジェ曲線を描画するアプリケーションの開発を行えるようになる C++ 言語の便利な機能を使えるようになる 要素数が可変な配列としての std::vector の活用 計算機による曲線の表現

More information

PowerPoint Presentation

PowerPoint Presentation 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない

More information

このルールをそのまま正規表現として書くと 下記のようになります ^A[0-9]{2}00[0-9]{3}([0-9]{2})?$ ちょっと難しく見えるかもしれませんが 下記のような対応になっています 最初 固定 年度 固定 通番 ( 枝番 ) 最後 ルール "A" 数字 2 桁 0 を 2 桁 数字

このルールをそのまま正規表現として書くと 下記のようになります ^A[0-9]{2}00[0-9]{3}([0-9]{2})?$ ちょっと難しく見えるかもしれませんが 下記のような対応になっています 最初 固定 年度 固定 通番 ( 枝番 ) 最後 ルール A 数字 2 桁 0 を 2 桁 数字 正規表現について 作成日 : 2016/01/21 作成者 : 西村 正規表現? 正規表現 (Regular Expression Regex) というと難しいもののように感じますが 正規表現 というのは 文字のパターンを表したもの です ( 例 ) これはソエルで使用している見積書の番号です A1500033 この番号は 下記のルールで付けられています 固定 年度 固定 通番 ( 枝番 ) ルール

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

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

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

More information

Microsoft PowerPoint - BIセンターセミナー2013.pptx[読み取り専用]

Microsoft PowerPoint - BIセンターセミナー2013.pptx[読み取り専用] 遺伝子配列解析の基礎 genome=gene+ome DNA 配列からタンパク質へ cgtgctttccacgacggtgacacgcttccctggattggccagactgccttccgggtcactgccatggaggagccgcagtcagatcctagcgtcgagccccctctga gtcaggaaacattttcagacctatggaaactacttcctgaaaacaacgttctgtcccccttgccgtcccaagcaatggatgatttgatgctgtccccggacgatattga

More information

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){ ソフトゼミ A 第 6 回 関数 プログラムは関数の組み合わせでできています 今までのゼミAでも printf や scanf など様々な関数を使ってきましたが なんと関数は自分で作ることもできるのです!! 今日は自作関数を中心に扱っていきます ゲーム制作でも自作関数は避けては通れないので頑張りましょう そもそもまず 関数とは 基本的には 受け取った値に関数によって定められた操作をして その結果の値を返す

More information

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

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

More information

PowerPoint Presentation

PowerPoint Presentation 算法数理工学 第 2 回 定兼邦彦 クイックソート n 個の数に対して最悪実行時間 (n 2 ) のソーティングアルゴリズム 平均実行時間は (n log n) 記法に隠された定数も小さい in-place ( 一時的な配列が必要ない ) 2 クイックソートの記述 分割統治法に基づく 部分配列 A[p..r] のソーティング. 部分問題への分割 : 配列 A[p..r] を 2 つの部分配列 A[p..q]

More information

デジタル表現論・第4回

デジタル表現論・第4回 デジタル表現論 第 4 回 劉雪峰 ( リュウシュウフォン ) 2016 年 5 月 2 日 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 4 回 2016 年 5 月 2 日 1 / 14 本日の目標 Java プログラミングの基礎 出力の復習 メソッドの定義と使用 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 4 回 2016 年 5 月 2 日 2 / 14 出力 Systemoutprint()

More information

[Problem F] 古い記憶 良さそうな方法は思いつかなかった アイディア募集中!!! かなり強引に解いている 各判定データに対して 30 秒程度かかる 元の文章と改ざん文章の関係を考える ウィルス感染の可能性は高々 2 回であり 各々の感染では 1 文字削除 1 文字追加 1 文字変更が行われ

[Problem F] 古い記憶 良さそうな方法は思いつかなかった アイディア募集中!!! かなり強引に解いている 各判定データに対して 30 秒程度かかる 元の文章と改ざん文章の関係を考える ウィルス感染の可能性は高々 2 回であり 各々の感染では 1 文字削除 1 文字追加 1 文字変更が行われ [Problem F] 古い記憶 良さそうな方法は思いつかなかった アイディア募集中!!! かなり強引に解いている 各判定データに対して 30 秒程度かかる 元の文章と改ざん文章の関係を考える ウィルス感染の可能性は高々 2 回であり 各々の感染では 1 文字削除 1 文字追加 1 文字変更が行われる 削除と追加は双対な関係であるので 改ざん文章に対して 改ざん文章そのもの ( 実際にはウィルス感染が起こっていなかった

More information

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

Microsoft PowerPoint - handout07.ppt [互換モード] Outline プログラミング演習第 7 回構造体 on 2012.12.06 電気通信大学情報理工学部知能機械工学科長井隆行 今日の主眼 構造体 構造体の配列 構造体とポインタ 演習課題 2 今日の主眼 配列を使うと 複数の ( 異なる型を含む ) データを扱いたい 例えば 成績データの管理 複数のデータを扱う 配列を使う! 名前学籍番号点数 ( 英語 ) 点数 ( 数学 ) Aomori 1 59.4

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 4 回再帰的構造体 プログラミングを 余談 : 教えることの難しさ 丁寧に説明しないと分かってもらえない 説明すると 小難しくなる学生が目指すべきところプログラム例を説明されて理解できる違うやり方でも良いので自力で解決できる おっけー 動けば良い という意識でプログラミング 正しく動くことのチェックは必要 解答例と自分のやり方との比較が勉強になる 今日のお題 再帰的構造体

More information

Microsoft PowerPoint - kougi11.ppt

Microsoft PowerPoint - kougi11.ppt C プログラミング演習 中間まとめ 2 1 ソフトウエア開発の流れ 機能設計 外部仕様 ( プログラムの入力と出力の取り決め ) 構成設計 詳細設計 論理試験 内部データ構造や関数呼び出し方法などに関する取り決めソースプログラムの記述正しい入力データから正しい結果が得られるかテスト関数単位からテストをおこなう 耐性試験 異常な入力データに対して, 異常を検出できるかテスト異常終了することはないかテスト

More information

Java講座

Java講座 ~ 第 1 回 ~ 情報科学部コンピュータ科学科 2 年竹中優 プログラムを書く上で Hello world 基礎事項 演算子 構文 2 コメントアウト (//, /* */, /** */) をしよう! インデントをしよう! 変数などにはわかりやすい名前をつけよう! 要するに 他人が見て理解しやすいコードを書こうということです 3 1. Eclipse を起動 2. ファイル 新規 javaプロジェクト

More information

Microsoft Word - 3new.doc

Microsoft Word - 3new.doc プログラミング演習 II 講義資料 3 ポインタ I - ポインタの基礎 1 ポインタとは ポインタとはポインタは, アドレス ( データが格納されている場所 ) を扱うデータ型です つまり, アドレスを通してデータを間接的に処理します ポインタを使用する場合の, 処理の手順は以下のようになります 1 ポインタ変数を宣言する 2 ポインタ変数へアドレスを割り当てる 3 ポインタ変数を用いて処理 (

More information

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63> C 言語講座第 2 回 作成 : ハルト 前回の復習基本的に main () の中カッコの中にプログラムを書く また 変数 ( int, float ) はC 言語では main() の中カッコの先頭で宣言する 1 画面へ出力 printf() 2 キーボードから入力 scanf() printf / scanf で整数を表示 / 入力 %d 小数を表示 / 入力 %f 3 整数を扱う int 型を使う

More information

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

Microsoft PowerPoint - 12.ppt [互換モード] 第 12 回構造体 1 今回の目標 構造体を理解する 構造体の定義の仕方を理解する 構造体型を理解する 構造体型の変数 引数 戻り値を理解する 複素数同士を足し算する関数を作成し その関数を利用するプログラムを作成する 2 複素数の足し算 複素数は実部と虚部の2つの実数で 表現される 表現される z = a+ bi 2 つの複素数 z 1 = a 1+ bi 1 と z2 = a2 + b2i の和

More information

Taro-2分探索木Ⅰ(公開版).jtd

Taro-2分探索木Ⅰ(公開版).jtd 2 分探索木 Ⅰ 0. 目次 1. 2 分探索木とは 2. 2 分探索木の作成 3. 2 分探索木の走査 3. 1 前走査 3. 2 中走査 3. 3 問題 問題 1 問題 2 後走査 4. 2 分探索木の表示 - 1 - 1. 2 分探索木とは 木はいくつかの節点と節点同士を結ぶ辺から構成される 2 つの節点 u,v が直接辺で結ばれているとき 一方を親節点 他方を子節点という ある節点の親節点は高々

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 03 変数と式 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp 3.1 変数と型 変数とは p.60 C 言語のプログラム中で, 入力あるいは計算された数や文字を保持するには, 変数を使用する. 名前がついていて値を入れられる箱, というイメージ. 変数定義 : 変数は変数定義 ( 宣言 ) してからでないと使うことはできない. 代入 : 変数には値を代入できる.

More information

Microsoft PowerPoint - prog04.ppt

Microsoft PowerPoint - prog04.ppt プログラミング言語 2 第 04 回 (2007 年 05 月 14 日 ) 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 05 月 14 日分と書いてある部分が 本日の教材です 本日の内容

More information

5_motif 公開版.ppt

5_motif 公開版.ppt 配列モチーフ 機能ドメイン 機能部位 機能的 構造的に重要な部位 は進化の過程で保存 される傾向がある 進化的に保存された ドメイン 配列モチーフ 機能ドメイン中の特徴的な 保存配列パターン マルチプルアライメント から抽出 配列モチーフの表現方法 パターン プロファイル 2 n n n n n n n n ENCODE n PROSITE パターンの例 n C-x(2,4)-C-x(3)-[LIVMFYWC]-x(8)-H-x(3,5)-H.

More information

スライド 1

スライド 1 生物配列解析アルゴリズム RNA 編 渋谷 東京大学医科学研究所ヒトゲノム解析センター ( 兼 ) 情報理工学系研究科コンピュータ科学専攻 http://www.hgc.jp/~tshibuya 今回の話題 RNA 構造予測アルゴリズム Nussikov Zuker Akutsu 準最適解アルゴリズム Eppstein 木の edit distance について RNA とその構造 RNA ( リボ核酸

More information

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx 情報ネットワーク導入ユニット Ⅰ C 言語 配列 5 章 : 配列同じ型 (int, double など ) の変数の集まりを 番号 ( 添字 ) で管理する変数 int vc[5]; // 要素数が 5 の配列 vc[0] = 1; vc[1] = 2; vc[2] = 3; vc[3] = 4; vc[4] = 5; printf("vc[0] = %d n", vc[0] ); printf("vc[1]

More information