生物機能制御学概論 農学部応用生物化学コース

C言語
第1講
生物機能制御学講座 濱田
農学部7号館209室
1
本日の講義内容
•
•
•
•
•
•
•
先日のアンケート集計結果
プログラミングのコツ
Mule について
C言語をはじめよう
C言語の基本
アンケート
テキスト
やさしいC 第2版 高橋麻奈著
ソフトバンク 社
2
アンケート結果
1.生化学反応系、代謝制御の具体例を
あげてください。
有効回答 35
解糖系
TCA回路
電子伝達系
Lacオペロン
フィードバック作用
インスリン機構
光合成
その他
0
10
20
30
3
アンケート結果
2.モデリングといえば、何を想像しますか?
有効回答 35
わからない ?
遺伝子発現
22
3
創造モデルを具現化! 1
自動制御に関する・・
2
数式やコンピュータを使って
生化学を研究する
1
その他・・
5
現象・作用を数式化して
演繹する
1
4
アンケート結果
3.これまでに利用したことがあるコンピュータ、OS
および言語を教えてください。 有効回答 35
Windows
Macintosh
Pascal
BASIC
C
Word
Excel
PPT
まったく使ってない
0
10
20
30
5
プログラミングのこつ
1.とにかく、手本をまねる
2.様々なテキストを参考にする
3.プログラムには、おまじないが
含まれていることを認知しておく
4.構文があることを悟る
5.とりあえず、1つの言語を修める
6
Muleについて
プログラムを記述する編集画面(エディタ)です。
Muleは、アプリケーションサーバーにて起動するた
め、Tera termを用います。
特徴
ファイルの読み込み、保存、終了、カーソルの移動
など、全て、「Ctrl+?」で実行します。
したがって、予め、操作に必要なキー割当を理解し
ておかなければなりません ^^;
7
Muleについて
Muleの起動 (Tera termにて!)
% ← プロンプト といいます 講義用のフォルダを
作成しましょう!
% cd BioCtrl
% mkdir BioCtrl
% ls
% mule test
mule : mule を起動するコマンド
test : 開くファイル名 (任意)
8
Muleについて
Muleの終了
Mule の画面にて、
Ctrl+X + Ctrl+C
を入力すると、保存するか否か?尋ねられる。
「Y」を入力すると、終了する。
終了後、編集画面は、
%
← プロンプトにもどる !
9
Muleについて
Mule を用いて以下の文書を作成しよう!
ファイル名は任意です。
=================================
2003/Oct/15
生物機能制御学概論 水曜日 1時限目
氏名: ****
学籍番号: *******
今日の講義
1.プログラミングのこつ 2.Muleについて
3.C言語をはじめよう!
Sincerely yours. 10
Muleについて
Muleのコマンド一覧
Ctrl+G
:コマンドの中止 (困ったときは!)
Ctrl+X +U :直前の操作の取り消し (Undo)
Ctrl+F
:1文字右へ移動 →
Ctrl+B
:1文字左へ移動 ←
Ctrl+P
:1文字上へ移動 ↑
Ctrl+N
:1文字下へ移動 ↓
Ctrl+A
:行の先頭へ
Ctrl+E
:行の末尾へ
11
Muleについて
Muleのコマンド一覧
Ctrl+D
:カーソル上の1文字を消去
Ctrl+K
:カーソルから行末までを消去
Ctrl+Spc :領域の開始位置の設定
Ctrl+W :領域開始位置からカーソル手前まで
切り取り
Ctrl+Y
:切り取りまたはコピーした箇所の貼付
Ctrl+X - Ctrl+C :Muleの終了
Ctrl+X - Ctrl+S :ファイルの上書き保存
Ctrl+X - Ctrl+W :ファイルの名前をつけて保存
12
Muleについて
Muleのコマンド一覧 (日本語入力)
Ctrl+¥ :半角と倍角(日本語)切替
Ctrl+P
:漢字変換モード 前候補
Ctrl+O
:漢字変換モード 文節を伸ばす
Ctrl+ I
:漢字変換モード 文節を縮める
Space
:漢字変換モード 次の候補
Enter
:漢字変換モード 確定
13
C言語をはじめよう
C言語について <歴史>
① 1969年に米国ベル研究所で、アセンブラという
言語を用いて、UNIXというOSの開発が始まる。
② 1970年、アセンブラは機種依存性が高いので、
それよりも依存性の低いBCPL言語が開発された。
③ 1971年、計算機の進歩に追いつけないことが
判明したB言語を改良して、C言語が開発された。
④ 1973年、C言語を用いてUNIXが最開発され、
現在の計算機システムの基礎が構築された。
14
C言語をはじめよう
C言語について <言語の比較>
C言語は現在の言語開発の根幹にある
言語
低
難易度
BASIC
★
COBOL
★
FORTRAN
★
PASCAL
★
C++
★
JAVA
C
高
★
15
C言語をはじめよう
C言語の特徴(長所と短所)
① 覚えることが非常に少なく、例外が少ない
② 処理を構造化するので、作業の手順化が容易
③ 計算機資源が小さくても運用可能
④ ビット単位でデータを扱える!
⑤ データの型がたくさんあり、データを纏れる
⑥ スタンダード言語であり、参考書が多い
⑦ 難解なプログラムを作成する危険がある
⑧ 下手なプログラムは実行時エラーを招きやすい
16
C言語をはじめよう
プログラムの作成手順
キーワード
処理手順の流れを熟考
アルゴリズム・フローチャート
編集画面でソースコードを作成
コーディング・プログラミング
ソースコードをコンパイル
コンパイル ・ リンク
ソースコードのエラーを駆除
デバッグ
プログラムの実行
a.out ・ エグゼ
17
C言語をはじめよう
Mule を起動して、C言語をコーディングしょう!
① BioCtrlというディレクトリー内に、Muleを用いて
「prog1.c」というファイルを作成します。
% pwd ← 現在のディレクトリーの確認
% cd BioCtrl ← BioCtrlへの移動
% mule prog1.c
↑ C言語のファイルは、拡張子「.c」
~ mule Open ~
18
C言語をはじめよう
Mule を起動して、C言語をコーディングしょう!
② 以下のソースコードを作成します。
#include <stdio.h>
← おまじない
main()
← main 関数
{
← begin に該当
printf(“△○×■\n”); ← writelnに該当
}
← end に該当
△○×■ には、自分の氏名(英数半角)を記載
19
C言語をはじめよう
Mule を終了して、プログラムをコンパイルしょう!
③ 「prog1.c」を保存する。
Ctrl+X+Ctrl+S ← ファイルの保存
Ctrl+X+Ctrl+C ← muleの終了
④ 「prog1.c」をコンパイルする。
% cc prog1.c
← cc:コンパイルコマンド
%
← エラーはでた?
⑤ ファイルの確認
% ls
「prog1.c」 と 「a.out」 はありますか? 20
C言語をはじめよう
実行ファイルを実行しよう!
⑥ ファイルの確認
「prog1.c」 ソースファイル プログラミング言語
「a.out」
実行ファイル 機械語
⑦ プログラムの実行
% a.out
△○×■
← 自分の名前
%
21
C言語をはじめよう
以下のソースコードを作成し、実行しよう!
#include <stdio.h>
←
main()
← main
{
←
printf(“△○×■\n”);
printf(“*%$#\n”);
}
←
おまじない
関数
begin に該当
← writeln に該当
← writeln に該当
end に該当
% a.out
△○×■
△○×■
には、自分の氏名(英数半角)を記載
*%$#
*%$# には、自分の氏名(漢字仮名)を記載
22
C言語をはじめよう
以下のソースコードを作成し、実行しよう!
#include <stdio.h>
←
main()
← main
{
←
printf(“△○×■”);
printf(“*%$#”);
}
←
% a.out
△○×■*%$#
おまじない
関数
begin に該当
← write に該当
← write に該当
end に該当
△○×■ には、自分の氏名(英数半角)を記載
*%$# には、自分の氏名(漢字仮名)を記載
23
C言語をはじめよう
ここまでのまとめ
○ プログラムはコンピュータに特定の仕事を付与
○ ソースコードはエディタ(Mule)にて作成
○ ソースコードは英数半角を用いて作成
○ ソースコードは大文字・小文字を区別して作成
○ 実行ファイルはソースコードをコンパイルし作成
○ 実行ファイルは指示した「仕事」を実行
24
C言語の基本
/* コメント */
←
#include <stdio.h>
←
main()
← main
{
printf(“△○×■\n”);
←
printf(“*%$#\n”); ←
}
← main
コメント文
画面出力に使用
関数の開始部
最初に実行
次に実行
関数の終了部
C言語は、main関数に記載された1文ずつ(処理の順)実行
する。段落ごとにインデントを利用するとわかりやすい。また
コメント文を記載するとコードの内容が理解しやすくなる。 25
C言語の基本
#include <stdio.h>
main()
{
printf(“%cは文字です\n”, ‘A’); ← 文字を出力
printf(“%dは整数です\n”, 123); ← 整数を出力
printf(“%fは小数です\n”, 10.5); ← 小数を出力
}
% a.out
A は文字です
123は整数です
10.500000は小数です
26
C言語の基本
#include <stdio.h>
main()
{
printf(“%cは文字です\n”, ‘ABC’); ← 文字を出力
printf(“%dは整数です\n”, 123.5); ← 整数を出力
printf(“%fは小数です\n”, 10);
← 小数を出力
}
% a.out
A は文字です
107***は整数です
0.000000は小数です
型の不一致による誤り
27
C言語の基本
#include <stdio.h>
main()
{
printf(“%cは文字 %dは整数\n”, ‘A’, 123);
printf(“%dは整数 %fは小数\n”, 123,10.5);
}
2つ以上の文字または数字の出力
% a.out
A は文字 123は整数
28
123は整数 10.500000は小数
C言語の基本
問題 以下の出力を実行するプログラムを作成して
ください。
% a.out
10+5.5=15.500000
#include
#include<stdio.h>
<stdio.h>
main()
#include <stdio.h>
main()
10-5.5=4.500000
{{ main()
{
10*5=50printf(“%d+%f=%f\n”,10,5.5,10+5.5);
printf(“%d+%f=%f\n”,10,5.5,15.5);
printf(“%d-%f=%f\n”,10,5.5,10-5.5);
printf(“10+5.5=15.500000\n”);
printf(“%d-%f=%f\n”,10,5.5,4.5);
10/4=2.500000
printf(“%d*%d=%d\n”,10,5,10*5);
printf(“10-5.5=4.500000\n”);
printf(“%d*%d=%d\n”,10,5,50);
printf(“%d/%d=%f\n”,10,4,10.0/4.0);
printf(“10*5=50\n”);
printf(“%d/%d=%f\n”,10,4,2.5);
%
}} printf(“10/4=2.5\n”);
}
29
おわりに
• さて、問題です。
1. プログラミングのこつは?
2. UNIXは何言語で開発されたでしょうか?
3. 「%d」は何型でしょうか?
4. その他 質問など
30