# | 月日 | 内容 |
---|---|---|
1 | 4月14日 | ガイダンス |
2 | 4月21日 | Linuxの利用方法 (柳本先生担当) |
3 | 4月28日 | |
4 | 5月12日 | |
5 | 5月19日 | |
6 | 5月26日 | |
7 | 6月 2日 | プログラミング環境(1、2章) |
8 | 6月 9日 | 変数とデータ型(3章) 、演算子(4章) |
9 | 6月16日 | コンソール入出力(6章) 、配列(3章)、数学処理の標準ライブラリ(11章) |
10 | 6月23日 | 制御文1 (テキスト5章) |
11 | 6月30日 | 制御文2 (テキスト5章) |
12 | 7月 7日 | 関数(テキスト7章)、プリプロセッサ(テキスト10章) |
13 | 7月14日 | 応用プログラム |
14 | 7月21日 | 総合演習 (谷川先生担当) |
15 | 7月28日 |
演習後半ではC言語をやります。 林 晴比古著の 「新C言語入門 ビギナー編」 を参考にします。
「今はまっているもの」または「これからやってみようと思っていること」を書いて、メールで送って下さい。送信先メールアドレスは cs.osakafu-u.ac.jp@masa の @ の前後を逆にしたものです。サブジェクトは「知能情報工学演習I:課題」としてください。
本文の例: 学籍番号:1234567890 氏名:府大 工太郎
私は、高校時代に○○部に所属し、××に青春を捧げてまい
りました。大学では。。。
BMI値=体重(kg)/(身長(m)*身長(m))
ただし、身長と体重は適当でよく、ゴジラのBMI等でもよい。※コメントの書き方(テキストP.30):「/*」と「*/」で囲まれた文字列はコメントとして扱われ、コンパイルのときに無視されます。
角度(度) | ラジアン |
0 | 0 |
30 | π/6 |
45 | π/3 |
90 | π/2 |
180 | π |
360 | 2π |
※コメントがあれば、プログラムソースの中に書いてください。
1から3まで足すプログラム |
#include <stdio.h> int main(void) { int i, sum=0; for(i=1; i<=3; i++) { sum += i; /* sum = sum+iと同じ */ } printf("1から3までの合計は %d です。\n", sum); return 0; } |
※コメントがあれば、プログラムソースの中に書いてください。
int a, b, tmp; tmp=a; a=b; b=tmp;ヒント:for文を二重に使うとよい。
for文を二重に使うプログラム(0、1、2、3の全組合せを取る) |
#include <stdio.h> int main(void){ int i,j; /* 外側のforループ 実は(for (i=0; i<4; i++))でも結果は同じになります。 */ for (i=0; i<3; i++) { /* 内側のforループ */ for (j=i+1; j<4; j++) { /* iとjの表示 */ printf("i=%d, j=%d\n",i,j); } } return 0; } |
課題は「学籍番号-課題番号.c」、「学籍番号.dvi」というファイル名で提出してください。提出締切に遅れたレポートは原則として見ません。
printfの書式の指定方法(の一部)のプログラム例 |
#include <stdio.h> int main(void) { int i; int a[]={-10,300,5,7,19}; for (i=0; i<5; i++) { printf("%4d",a[i]); } printf("\n"); return 0; } |
絶対値のプログラム例 |
#include <stdio.h> #include <stdlib.h> int main(void) { int a, b; a=-1; b=abs(a); printf("a=%d, b=%d\n",a,b); } |
Segmentation faultが発生するプログラム:aaa.c |
#include <stdio.h> int main(void) { int a[2]; a[0] = 10; a[1] = 20; a[100000] = 30; printf("a[0] = %d\n", a[0]); printf("a[1] = %d\n", a[1]); printf("a[100000] = %d\n", a[100000]); return 0; } |
gcc aaa.c -g
gdb a.out
GNU gdb Red Hat Linux (6.0post-0.20040223.17rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb)
(gdb) run Starting program: /home/nt/tmi00113/unix/a.out Program received signal SIGSEGV, Segmentation fault. main () at aaa.c:7 7 a[100000] = 30; (gdb)
(gdb) quit The program is running. Exit anyway? (y or n) y
参考:ファイヤープロジェクト
10進数 | 8進数 | 16進数 |
---|---|---|
0 | 0 | 0 |
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
4 | 4 | 4 |
5 | 5 | 5 |
6 | 6 | 6 |
7 | 7 | 7 |
8 | 10 | 8 |
9 | 11 | 9 |
10 | 12 | A |
11 | 13 | B |
12 | 14 | C |
13 | 15 | D |
14 | 16 | E |
15 | 17 | F |
16 | 20 | 10 |