Microsoft Word - cpro_m_13.doc

Size: px
Start display at page:

Download "Microsoft Word - cpro_m_13.doc"

Transcription

1 第 13 章ファイル入出力 問題 13-1 ファイルのアクセスに関する次の記述中の (1)~(8) にあてはまる適切な字句を解答群 から選び, 解答欄に記号で記入しなさい ファイルを扱う場合, まず使用するファイルをfopen 関数でオープンする この関数 には引数が二つあり, 最初の引数には (1) が格納されている領域へのポインタ を指定するが, このポインタは (2) 型のポインタである また,2 番目の引数 には (3) を指定する この関数はファイルにアクセスするために (4) を返すが, この (4) を格納する変数の型は (5) 型である (3) は, ファイルにアクセスするための方法を指定する テキストファイル に対して, 入力専用でファイルを開く場合は (6) を指定し, 出力専用で開く場 合は (7) を, ファイルに追加書込みする場合は (8) を指定する (1),(3),(4) の解答群アファイル イファイル名 ウファイルモード エファイルポインタ オオープンモード (2),(5) の解答群ア int イ char ウ FILE エ FILE * (6)~(8) の解答群ア 'a' イ 'b' ウ 'r' エ 'w' オ "a" カ "b" キ "r" ク "w" 解答欄 (1) (2) (3) (4) (5) (6) (7) (8) 問題 13-2 ファイルの入出力に関する次の記述に最も関係のある関数の使用例を解答群から選び, 解答欄に記号で記入しなさい (1) ファイルを読書き ( 更新 ) モードでオープンする ただし, 処理するファイルが存 1

2 在しないときは,NULL を返す (2) ファイルポインタで指定したファイルをクローズする (3) ファイルポインタで指定したファイルへ, 変数に格納された文字を出力する (4) ファイルポインタで指定したファイルから 1 文字取得する 解答群 ア close(fp) ウ getc(fp) オ putc(fp) キ fopen(" ファイル名 ", 'r+') ケ fopen(" ファイル名 ", 'w+') イ fclose(fp) エ getc(c, fp) カ putc(c, fp) ク fopen(" ファイル名 ", "r+") コ fopen(" ファイル名 ", "w+") 解答欄 (1) (2) (3) (4) 問題 13-3 次のプログラムの説明及びプログラムを読んで, プログラム中の (1)~(4) にあてはまる適切な字句を解答群から選び, 解答欄に記号で記入しなさい <プログラムの説明 > ファイル a( ファイル名 :original.txt) を読み込み, そのままファイル b( ファイル名 :detect.txt) に複写コピーする ファイルがオープンできない場合, エラーメッセージを出力し, 返却値として 1 を返す <プログラム> #include <stdio.h> int main(void) { FILE *fp, *fq; int c; if ((fp = (1) ) == NULL) { /* 入力ファイルのオープンエラー */ printf(" 入力ファイルがオープン不能 n"); return 1; if ( (2) ) { /* 出力ファイルのオープンエラー */ printf(" 出力ファイルがオープン不能 n"); return 1; 2

3 while ( (3) ) /* 1 文字ずつ取り出して複写 */ (4) ; fclose(fp); fclose(fq); return 0; (1) の解答群ア fopen(original.txt, 'a') ウ fopen(original.txt, "a") オ fopen("original.txt", "w") イ fopen("original.txt", 'r') エ fopen("original.txt", "r") (2) の解答群ア fq = fopen("detect.txt", "w") == EOF イ fq = fopen("detect.txt", "a") == NULL ウ (fq = fopen("detect.txt", "w"))!= EOF エ (fq = fopen("detect.txt", "a"))!= NULL オ fq = fopen("detect.txt", "a") == EOF カ fq = fopen("detect.txt", "w")!= NULL キ (fq = fopen("detect.txt", "a"))!= EOF ク (fq = fopen("detect.txt", "w")) == NULL (3) の解答群ア getc(c, fp)!= EOF ウ scanf(fp, "%c", c)!= NULL オ (c = getc(fp))!= NULL イ getc(c, fp)!= NULL エ (c = getc(fp))!= EOF カ scanf("%c", c, fp)!= EOF (4) の解答群ア putc(c) イ putc(fq) ウ putc(c, fq) エ putc(fq, c) オ fq = c カ printf(fq, "%c", c) キ printf("%c", c, fq) 解答欄 (1) (2) (3) (4) 3

4 問題 13-4 次のプログラムの説明及びプログラムを読んで, プログラム中の (1)~(5) にあてはまる適切な字句を解答群から選び, 解答欄に記号で記入しなさい <プログラムの説明 > 1 行 80 文字からなるテキストファイルを読み込み, 他のファイルに複写する ファイル名は, 次のようにコマンドラインから入力する なお, ファイルがオープンできない場合, エラーメッセージを出力し, 返却値として 1 を返す コマンド入力ファイル名出力ファイル名 < プログラム > #include <stdio.h> int main(int argc, char *argv[]) { FILE *fp, *fq; char s[82]; if ((1) ) { printf(" コマンドパラメータエラー n"); return 1; if ((fp = (2) ) == NULL) { printf(" 入力ファイルオープンエラー n"); return 1; if ((fq = (3) ) == NULL) { printf(" 出力ファイルオープンエラー n"); return 1; while ( (4) ) (5) ; fclose(fp); fclose(fq); return 0; (1) の解答群 ア argc!= 3 イ argv!= 3 ウ argc < 3 エ argv < 3 オ argv[0]!= 3 4

5 (2) の解答群ア fopen(argv[0], "r") ウ fopen(argv[2], "r") オ fopen(argv[2], "w") (3) の解答群ア fopen(argv[0], "w") ウ fopen(argv[2], "w") オ fopen("argv[2]", "r") (4) の解答群ア (s = fgetc(fp))!= EOF ウ fgets(s, 81, fp)!= NULL オ fgets(fp, "%s", s)!= NULL イ fopen(argv[1], "r") エ fopen(argv[1], "w") カ fopen("argv", "w") イ fopen(argv[1], "w") エ fopen("argv[3]", "w") カ fopen("argc", "w") イ fgets(s, 80, fp)!= NULL エ fgets(s, 82, fp)!= NULL カ fscanf(s, 81, fp)!= EOF (5) の解答群 ア putc(s) イ putc(fq, s) ウ fputs(s, fq) エ fq = s オ printf(fq, "%s", s) 解答欄 (1) (2) (3) (4) (5) 問題 13-5 次のプログラムの説明及びプログラムを読んで, プログラム中の (1)~(5) にあてはまる適切な字句を解答群から選び, 解答欄に記号で記入しなさい < プログラムの説明 > 次のような構造をもつファイルがある 商品コード商品名商品単価 商品コードで昇順に整列済みの二つのファイルfile1,file2 を入力して, 一つのファイルfile3 に併合する なお, 商品コードは英数字 5 桁の固定長である <プログラム> #include <stdio.h> #include <string.h> #define END_F "zzzzz" struct record { /* レコードの構造 */ char scode[6]; /* 商品コード */ char sname[20]; /* 商品名 */ 5

6 int tanka; /* 商品単価 */ ; void get_file(struct record *, FILE *); void put_file(struct record, FILE *); int main(void) { FILE *fp1, *fp2, *fout; struct record record1, record2, *rec1, *rec2; strcpy(record1.scode, ""); strcpy(record1.sname, ""); record1.tanka = 0; strcpy(record2.scode, ""); strcpy(record2.sname, ""); record2.tanka = 0; rec1 = &record1; rec2 = &record2; fp1 = fopen("file1", "r"); fp2 = fopen("file2", "r"); fout = fopen("file3", "w"); get_file(rec1, fp1); /* ファイル 1 を読む */ get_file(rec2, fp2); /* ファイル 2 を読む */ while ( (1) ) { /* 二つのファイルが終了するまで繰り返す */ if (strcmp(rec1->scode, rec2->scode) <= 0) { (2) ; /* ファイル 3 に書き出す */ (3) ; /* ファイルを読む */ else { (4) ; /* ファイル 3 に書き出す */ (5) ; /* ファイルを読む */ fclose(fp1); fclose(fp2); fclose(fout); return 0; void get_file(struct record *rec, FILE *p) /* ファイルの読込み */ 6

7 { if (fscanf(p, "%s", rec->scode) == EOF) strcpy(rec->scode, END_F); /* ファイル終了後の処理 */ else { fscanf(p, "%s", rec->sname); fscanf(p, "%d", &rec->tanka); void put_file(struct record rec, FILE *p) /* ファイルへの書出し */ { fprintf(p, "%s %s %d n", rec.scode, rec.sname, rec.tanka); (1) の解答群ア strcmp(rec1.scode, END_F)!= 0 strcmp(rec2, scode, END_F)!= 0 イ strcmp(rec1->scode, END_F)!= 0 strcmp(rec2->scode, END_F)!= 0 ウ strcmp(rec1.scode, EOF)!= 0 strcmp(rec2, scode, EOF)!= 0 エ strcmp(rec1->scode, EOF)!= 0 strcmp(rec2->scode, EOF)!=0 オ rec1->scode!= END_F rec2->scode!= END_F カ rec1->scode!= EOF rec2->scode!= EOF (2) の解答群ア fputs(rec1, fout) イ fprintf(fout, "%s", rec1) ウ put_file(*rec1, fout) エ fputs(rec2, fout) オ fprintf(fout, "%s", rec2) カ put_file(*rec2, fout) (3) の解答群ア fgets(rec1, 27, fp1) ウ get_file(rec1, fp1) オ fscanf(fp2, "%s", rec2) イ fscanf(fp1, "%s", rec1) エ fgets(rec2, 27, fp2) カ get_file(rec2, fp2) (4) の解答群ア fputs(rec1, fout) イ fprintf(fout, "%s", rec1) ウ put_file(*rec1, fout) エ fputs(rec2, fout) オ fprintf (fout, "%s", rec2) カ put_file(*rec2, fout) (5) の解答群ア fgets(rec1, 27, fp1) ウ get_file(rec1, fp1) オ fscanf(fp2, "%s", rec2) イ fscanf(fp1, "%s", rec1) エ fgets(rec2, 27, fp2) カ get_file(rec2, fp2) 7

8 解答欄 (1) (2) (3) (4) (5) 問題 13-6 次のプログラムの説明及びプログラムを読んで, プログラム中の (1)~(4) にあてはまる適切な字句を解答群から選び, 解答欄に記号で記入しなさい <プログラムの説明 > 受験者別の獲得正解数を格納したデータを入力して, 得点の計算を行い,20 点刻みの得点分布表を作成するプログラムである (1) プログラムは, 正解数ファイル (SEIKAI) から, データを 1 件ずつ入力し, 各問に対応した配点から受験者の得点の計算を行い, 得点の範囲別に集計し, その結果を表示する (2) 正解数ファイルは,1 人分のテストの正解数を 1 レコードとして格納している 1 レコード様式は図 1 のとおりである また, レコードの区切りには, 改行コードが格納されている 生徒番号 空白 問 1 問 2 問 3 改行コード 6 けた 1けた 2 けた 2けた 1 けた n 図 1 正解数ファイルのレコード様式 2 各問の設問数は, 問 1 が 20 設問, 問 2 が 10 設問, 問 3 が 3 設問で, 正解数がそれぞれ 10 進文字で格納されている (3) 各問の1 設問あたりの配点は, 問 1 が 1 点, 問 2 が 5 点, 問 3 が 10 点で, 合計 100 点となる (4) 集計は,20 点刻みで行い, 図 2 に示す六つの範囲で集計される 0~19 点 20~39 点 40~59 点 60~79 点 80~99 点 100 点 図 2 集計範囲 8

9 (5) 得点分布表は, 図 3 のように出力される I I I tokuten I bunpu I I I 0 19 I... I I...*. I I...*...*... I I...*...*...*...*... I I...*...*...*... I 100 I...* I I 図 3 得点分布表出力例 <プログラム> #include <stdio.h> #define HANISU 6 #define RECLEN 14 #define P1 1 #define P5 5 #define P10 10 int main(void) { FILE *fp; int bunp[hanisu]; char rdata[][10] = { {" 0 19 ", {" ", {" ", {" ", {" ", {" 100 " ; char buf[reclen], gno[7]; int ten1, ten2, ten3; int tokuten; int i, j, k; /* 初期値設定 */ for ( i = 0; i < HANISU; i++ ) 9

10 bunp[i] = 0; fp = fopen("seikai", "r"); /* データ集計 */ while (fgets( buf, RECLEN, fp)!= NULL ){ sscanf( (1) ); tokuten = ten1 * P1 + ten2 * P5 + ten3 * P10; (2) ; fclose(fp); /* 分布表表示 */ printf("i i n"); printf("i tokuten I bunpu n"); printf("i i n"); for ( i = 0; i < HANISU; i++ ){ k = 5; printf("i%si", rdata[i]); (3) { if ( j >= k ){ printf("*"); (4) ; else printf("."); printf(" n"); printf("i i n"); return 0; (1) の解答群ア buf, "%6s %s%s%s", gno, &ten1, &ten2, &ten3 イ buf, "%s %d%d%d", &gno, &ten1, &ten2, &ten3 ウ buf, "%6s %2d%2d%1d", &gno, &ten1, &ten2, &ten3 エ buf, "%s %2d%2d%1d", gno, &ten1, &ten2, &ten3 10

11 (2) の解答群ア bunp[tokuten]++ イ bunp[tokuten % 20]++ ウ bunp[tokuten / 20]++ エ bunp[atoi(tokuten)]++ (3) の解答群ア for ( j = 0; j < bunp[i]; j++ ) イ for ( j = 0; j <= bunp[i]; j++ ) ウ for ( j = 1; j < bunp[i]; j++ ) エ for ( j = 1; j <= bunp[i]; j++ ) (4) の解答群ア k++ イ k-- ウ k += 5 エ k -= 5 解答欄 (1) (2) (3) (4) 問題 13-7 次のプログラムの説明及びプログラムを読んで, プログラム中の (1)~(4) にあてはまる適切な字句を解答群から選び, 解答欄に記号で記入しなさい <プログラムの説明 > 試験の点数が格納された得点ファイルを読み込み, 平均と標準偏差を求めるプログラムである (1) 得点ファイルのレコード様式は, 図 1 のとおりである 得点ファイルでは,1 人分の 3 科目の得点を 1 レコードとして格納している また, レコードの区切りには, 改行コードが格納されている 受験番号空白国語空白英語空白数学改行コード ( n) 6 けた 1 けた 3 けた 1 けた 3 けた 1 けた 3 けた 1 けた 図 1 得点ファイルのレコード様式 (2) プログラムは, 得点ファイルのレコード (tokuten.txt) より, データを 1 件ずつ入力し, 受験者の 3 科目の合計得点を求める (3) 各受験者の合計得点から全受験者の合計得点を集計し, 平均点と標準偏差を求める 1 平均は, 集計結果を受験者数で割った値である 2 標準偏差は, 分散の平方根 ( 0) である また, 分散は, 次の式で計算する 11

12 s = 1 n {(x1 - X) 2 + (x2 - X) (xn - X) 2 n : 受験者数 x1 ~ xn: 各受験者の得点 s : 分散 X :(x1 ~ xn) の平均 (4) 受験者数は 500 人以内とし,500 件を越えるレコードが読み込まれた場合は, エラーメッセージを表示し, プログラムを終了させる (5) 得点ファイルのレコードは,1 以上あるものとする (6) 得点ファイルのレコードの内容が, 図 2 で示すとおりであった場合の処理結果は, 次のとおりである ( 処理結果例 ) 受験者数 :20 平均 : 標準偏差 : <プログラム> #include <stdio.h> #include <stdlib.h> #include <math.h> #define MAX 500 #define LNG 20 図 2 得点ファイルの内容例 int main(void) 12

13 { FILE *fp; int i, n; int kokugo, eigo, sugaku; double s1, s2, wkd; double dat[max]; char buf[lng], wkc[8]; n = 0; s1 = s2 = 0; fp = fopen("tokuten.txt", "r"); while ( fgets(buf, LNG, fp)!= NULL ){ if ( (1) ){ printf("data Over!! n"); return 1; sscanf(buf, "%s %d %d %d", wkc, &kokugo, &eigo, &sugaku); wkd = kokugo + eigo + sugaku; (2) ; s1 += wkd; s1 /= n; for ( i = 0; i < n; i++ ){ (3) ; s2 += wkd * wkd; (4) ; printf(" 受験者数 :%d 平均 :%f 標準偏差 :%f n", n, s1, s2); return 0; (1) の解答群 ア n < 0 ウ n > MAX イ n <= MAX エ n >= MAX (2) の解答群 ア dat[n] = wkd ウ dat[n++] = wkd イ dat[n] += wkd エ dat[++n] = wkd 13

14 (3) の解答群 ア wkd = dat[i] ウ wkd = dat[i] - s1 イ wkd = dat[i] / n エ wkd = dat[i] % s1 (4) の解答群 ア s2 = sqrt( s1 / n ) イ s2 = sqrt( s1 / (n + 1) ) ウ s2 = sqrt( s2 / n ) エ s2 = sqrt( s2 / (n + 1) ) 解答欄 (1) (2) (3) (4) 問題 13-8 次のプログラムの説明及びプログラムを読んで, プログラム中の (1)~(6) にあてはまる適切な字句を解答群から選び, 解答欄に記号で記入しなさい < プログラムの説明 > テキストファイル (file.txt) に格納された英文を読み込んで単語に分割し, その頻度と共にアルファベット順に出力するプログラムである (1) 英文は1 行最大 255 文字で, 行の最後は改行文字である (2) 英文は英字及び区切文字 (,,., 空白文字, 改行文字のみ ) からなり, 各単語は区切り文字によって区切られている すなわち, 単語が複数行にまたがって格納されていることはない また, 英字と区切文字以外の文字は格納されていない (3) 各行の先頭は, 英字又は空白文字である また, 空白文字は連続することがある ただし,, と. は連続して現れることはない (4) 英字は大文字と小文字が混在するため, すべて小文字に変換して処理する (5) 単語は次のような構造体配列に格納する なお, 単語の長さは 20 文字以内とし, 単語の個数は 200 個以内とする struct tango { char word[21]; /* 単語 */ int count; /* 頻度 */ tbl[200]; (6) すべての英文を単語に分割後, アルファベット順に並べ替えてその頻度と共に出力する 14

15 <プログラム> #include <stdio.h> #include <string.h> #include <ctype.h> struct tango { char word[21]; int count; tbl[200]; int main(void) { FILE *fp; char work[21]; int ch, i, j = 0, k = 0; struct tango stwk; fp = fopen("file.txt", "r"); while ( (1) ) { /* 1 文字ずつ読み込む */ if (isalpha(ch)) { if (isupper(ch)) ch = tolower(ch); /* 小文字に変換 */ (2) ; else { if ( j == 0 ) continue; (3) ; for ( i = 0; i < k; i++ ) /* 既出単語かどうか */ if ( (4) ) { tbl[i].count++; break; if ( i == k ) { strcpy(tbl[k].word, work); tbl[k].count = 1; k++; (5) ; 15

16 for ( i = 0; i < k - 1; i++ ) { /* 整列処理 */ for ( j = i + 1; j < k; j++ ) { if ( (6) ) { stwk = tbl[i]; tbl[i] = tbl[j]; tbl[j] = stwk; for ( i = 0; i < k; i++ ) printf("%20s : %2d n", tbl[i].word, tbl[i].count); return 0; (1) の解答群ア (ch = getchar())!= EOF ウ (ch = fgetc(fp))!= EOF イ (ch = getchar())!= NULL エ (ch = fgetc(fp))!= NULL (2),(3),(5) の解答群 ア work[j] = ch イ work[++j] = ch ウ work[j++] = ch エ work[j] = ' 0' オ work[++j] = ' 0' カ j = 0 キ j++ ク j = k (4),(6) の解答群ア strcmp(tbl[i].word, work) < 0 イ strcmp(tbl[i].word, work) == 0 ウ strcmp(tbl[i].word, work) > 0 エ strcmp(tbl[i].word, tbl[j].word) < 0 オ strcmp(tbl[i].word, tbl[j].word) == 0 カ strcmp(tbl[i].word, tbl[j].word) > 0 解答欄 (1) (2) (3) (4) (5) (6) 16

17 第 13 章ファイル入出力解答 問題 13-1 (1) イ (2) イ (3) オ (4) エ (5) エ (6) キ (7) ク (8) オ fopen 関数の書式は, 次のとおりである FILE *fopen(const char *filename, const char *openmode) (1),(2) 最初の引数は, ファイル名を示すポインタで, データ型はcharである (3) 2 番目の引数は, オープンモードを指定する (4),(5) この関数はファイルにアクセスするためにファイルポインタを返す このファイルポインタは FILE * 型であり, ファイルのオープンに失敗した場合は, NULL を返す (6)~(8) オープンモードには, 次のようなモード指定がある "r" 読込み "w" 書込み "a" 追加書込み "r+" 読書き ( 更新 ) "w+" 読書き ( 更新 ) "a+" 追加のための読書きバイナリファイルに対して行う場合には各モードに b を付ける 問題 13-2 (1) ク (2) イ (3) カ (4) ウ (1) ファイルのオープンはfopen 関数で行い, 読書き ( 更新 ) モードでオープンするには, モード r+ を指定する モードはダブルクォーテーションで囲む (2) ファイルをクローズするにはfclose 関数を使用する fclose 関数は, 引数で渡したファイルポインタが示すファイルをクローズする ファイルへのアクセスが終了したときには, 割り当てられたバッファを解放する ファイルポインタは FILE * 型であり, ファイルのクローズに失敗した場合は, EOF を返す (3) ファイルへ 1 文字出力するには,putc 関数を使用する putc 関数は, 出力する文字とファイルポインタを引数で渡し, 引数で指定した文字をファイルポインタの示すファイルへ出力する 変数に格納された文字を出力する ので, putc(c, fp) となる (4) ファイルから 1 文字取得するには,getc 関数を使用する getc 関数は, ファイルポインタを引数で渡し, そのファイルポインタの示すファイルから 1 文字取得 17

18 し, 文字を整数型の戻り値で返すので, getc(fp) となる 問題 13-3 (1) エ (2) ク (3) エ (4) ウ (1) 入力ファイルをオープンするには fopen 関数を使用し, 入力ファイル名 original.txt とモード r を引数で渡す (2) fopen 関数は, ファイルのオープンに失敗した場合, NULL を返す 出力ファイルをオープンするには fopen 関数を使用し, 出力ファイル名 detect.txt とモード w を引数で渡す (3) ファイルから 1 文字取得するには,getc 関数を使用する getc 関数は, ファイルポインタを引数で渡し, そのファイルポインタの示すファイルから 1 文字取得し, 文字を整数型の戻り値で返す 読み込んだ文字が EOF でなければ, 繰返し処理を行う (4) ファイルへ 1 文字出力するには,putc 関数を使用する putc 関数は, 出力する文字とファイルポインタを引数で渡し, 引数で指定した文字をファイルポインタの示すファイルへ出力する 問題 13-4 (1) ア (2) イ (3) ウ (4) エ (5) ウ (1) コマンドラインでの入力が, コマンド入力ファイル名出力ファイル名 であるから, 入力文字数が 3 以外はパラメータエラーとなる (2) 入力ファイルをオープンするには fopen 関数を使用し, コマンドラインから入力された入力ファイル名と OPEN モード r を引数で渡す なお,fopen 関数は, ファイルのオープンに失敗した場合, NULL を返す (3) 出力ファイルをオープンするには fopen 関数を使用し, コマンドラインから入力された出力ファイル名と OPEN モード w を引数で渡す (4) ファイルからデータの入力を行うには fgets 関数を使用し, 文字列の格納先と 1 行の最大文字数とファイルポインタを引数で渡し, そのファイルポインタの示すファイルから 1 行分の文字列を取得し指定された場所へ格納する 1 行分の文字列は末尾の改行文字を含めると 81 となるが,fgets 関数が読み込むのはn-1 文字なので, 最大文字数には 82 を指定する なお, 入力する際, 最後に ' 0' が付加されるため,82 文字分の領域を確保している (5) ファイルへデータの出力を行うには fputs 関数を使用し, 文字列とファイルポインタを引数で渡し, そのファイルポインタの示すファイルに文字列を出力する 引数の順序は, 文字列, ファイルポインタの順であり, fputs(s, fq) となる 18

19 問題 13-5 (1) イ (2) ウ (3) ウ (4) カ (5) カ (1) ファイルポインタを宣言するには, FILE * ポインタ名 ; と記述する 二つのファイルからそれぞれ 1 データずつ取得し, 両方のscodeの値がEND_Fにならない間は繰返し処理する なお, ファイルが終了したら, 商品コードに最大値 ( ここでは "zzzzz") を格納し, 商品コードの比較に備える (2) scodeの大小比較を行い,file1 のscodeが小さいとき, 出力ファイルfile3 へデータを出力する (3) 出力した直後に, 出力した方のfile1 のレコードを読み込む (4) file2 のscodeが小さいので, 出力ファイルfile3 へデータを出力する (5) 出力した直後に, 出力した方のfile2 のレコードを読み込む 問題 13-6 (1) エ (2) ウ (3) エ (4) ウ (1) 図 1 の正解数ファイルのレコード形式にあわせて, 読み込まれたレコード内容を buf に格納する sscanf 関数を使用して, 指定された書式に従って, 変数にデータを読み込む コード形式は,"%s %2d%2d%1d", gno, &ten1, &ten2, &ten3 となる (2) 3 科目の得点合計を算出する その後, 得点分布の集計を行うため,20 点刻みの添字を求め, 該当する集計エリアにカウントアップする (3) ヒストグラムを表示する処理である 各得点の縦見出しを表示した直後から, 各範囲の集計数を. と * で表示する 変数 j を 1 から bunp[i] 以下の間, 各範囲の集計数の表示処理を繰り返す (4) * の表示は,5 の倍数の値のときに表示する 変数 k の初期値を 5 として,5 の倍数になるように, 値を操作する 問題 13-7 (1) エ (2) ウ (3) ウ (4) ウ (1) 受験者数は 500 人以内であるため,500 件を超えるレコードが読み込まれた場合は, エラーメッセージを表示してプログラムを終了する ここでは,500 件を超えるレコードが読みまれたか否かの判定である (2) 各受験者の 3 科目の合計を求め, 配列 dat へ順に格納する (3) 標準偏差を求める公式中の各受験者の合計得点から全受験者の平均を差し引く処理である (4) 分散を求めた直後の処理である 標準偏差は, 分散の平方根であることから, 標準ライブラリ関数である sqrt 関数で平方根を求める 19

20 問題 13-8 (1) ウ (2) ウ (3) エ (4) イ (5) カ (6) カ (1) テキストファイルから 1 文字ずつ取り出すので,fgetc 関数 ( 又はgetc 関数 ) を使う テキストファイルが終了した場合は,EOFを返す (2) 取り出した英字を配列 workに格納するが, 添字 jはインクリメントしておく必要がある このとき,work[0] から格納するのでj++ となる ++jとした場合は, work[1] から格納されてしまう (3) 区切文字を検出したら, 配列 workに保存した文字列を単語として登録するため, 配列 workの最後に ' 0' を格納しておく必要がある (4) 既出の単語かどうかを構造体配列 tbl 内の単語と比較する (5) 見つけた単語を構造体に登録したら, 次の単語を配列 workに格納するため, 添字 jを 0 にしておかなければならない (6) 構造体配列内の単語をアルファベット順に整列するため,i 番目の単語とj 番目の単語の順番を入れ換えるかどうかを調べる必要がある そのためにstrcmp 関数を使うが, 入替えが必要なのは strcmp(tbl[i].word, tbl[j].word) > 0 の場合である なお, 数値データと同様に, 構造体は丸ごとコピーすることが可能である 20

Taro-ファイル処理(公開版).jtd

Taro-ファイル処理(公開版).jtd ファイル処理 0. 目次 1. はじめに 2. ファイル内容の表示 3. ファイル内容の複写 3. 1 文字単位 3. 2 行単位 4. 書式付き入出力 5. 文字配列への入出力 6. 課題 6. 1 課題 1 ( ファイル圧縮 復元 ) - 1 - 1. はじめに ファイル処理プログラムの形は次のようになる #include main() { FILE *fp1,*fp2; ファイルポインタの宣言

More information

ファイル入出力

ファイル入出力 C プログラミング Ⅱ の基礎 とは ファイルへデータを書き込んだり ( 出力 ), ファイルからデータを読み込んだり ( 入力 ) する C 言語では キーボードからの入力 画面への出力と同じようなコードで 処理を実現できる プログラム 入力 出力 ファイル 出力 入力 2 入出力の基本 ストリーム プログラム上で様々な装置への入出力を行う機構様々な入出力装置を統一的な方法で扱うことができる ハードディスクなどではファイルデータによって入出力が行われる

More information

ファイル入出力

ファイル入出力 C プログラミング Ⅱ の基礎 とは ファイルへデータを書き込んだり ( 出力 ), ファイルからデータを読み込んだり ( 入力 ) する C 言語では キーボードからの入力 画面への出力と同じようなコードで 処理を実現できる プログラム 入力 出力 ファイル 出力 入力 2 入出力の基本 ストリーム プログラム上で様々な装置への入出力を行う機構様々な入出力装置を統一的な方法で扱うことができる ハードディスクなどではファイルデータによって入出力が行われる

More information

2006年10月5日(木)実施

2006年10月5日(木)実施 2010 年 7 月 2 日 ( 金 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

Prog1_12th

Prog1_12th 2013 年 7 月 4 日 ( 木 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

Microsoft PowerPoint - kougi6.ppt

Microsoft PowerPoint - kougi6.ppt C プログラミング演習 第 6 回ファイル処理と配列 1 ファイル処理 2 ファイル読み込み ファイル プログラム ファイルの中身は変わらない 3 ファイル書き出し ファイル プログラム ファイルの中身が変わる ファイルは伸び縮みすることがある 4 例題 1. テキストファイル形式の ファイルからのデータ読み込み 次のような名簿ファイル ( テキストファイル形式 ) を読み込んで,1 列目の氏名と,3

More information

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

Microsoft Word - Cプログラミング演習(9) 第 9 回 (6/18) 3. ファイルとその応用 外部記憶装置に記録されたプログラムやデータを, ファイルと呼ぶ シーケンシャルファイルやランダムファイルへのデータの記録や読み出し, 更新の手順について学習する (1) ファイルとレコードファイル複数の関連したデータを一つに集めたり プログラムを外部記憶装置に保存したものレコードファイルを構成する一塊のデータ ex. 個人カードフィールドレコードを構成する個別の要素

More information

gengo1-12

gengo1-12 外部変数 関数の外で定義される変数を外部変数 ( 大域変数 ) と呼ぶ 外部変数のスコープは広域的 ( プログラム全体 ) 全ての関数で参照可能 int a=10; double x=3.14159; printf( a = %d\n, a); sample(); printf( %f\n, x); void sample(void) printf( %f\n, x); x += 1.0; 外部変数

More information

1. ファイルにアクセスするには ファイルにアクセスするには 1. ファイルを開く 2. アクセスする 3. ファイルを閉じるという手順を踏まなければなりません 1.1. ファイルを読み込む まずはファイルの内容を画面に表示させるプログラムを作りましょう 開始 FILE *fp char fname

1. ファイルにアクセスするには ファイルにアクセスするには 1. ファイルを開く 2. アクセスする 3. ファイルを閉じるという手順を踏まなければなりません 1.1. ファイルを読み込む まずはファイルの内容を画面に表示させるプログラムを作りましょう 開始 FILE *fp char fname ファイル入出力 三池克明 ファイルのデータを読込む あるいは書込む方法と CSV 形式のファイル処理 について解説します 目次 1. ファイルにアクセスするには... 1 1.1. ファイルを読み込む...1 1.2. ソースコードを簡潔にする...9 1.3. ファイルに書き込む...11 2. CSV ファイルにアクセスする... 14 2.1. CSV ファイルを作成する...14 2.2.

More information

情報処理演習 B8クラス

情報処理演習 B8クラス 予定スケジュール ( 全 15 回 ) 1 1. 終了 プログラミング言語の基礎 2. 終了 演算と型 3. 終了 プログラムの流れの分岐 (if 文,switch 文など ) 4. 終了 プログラムの流れの繰返し (do, while, for 文など ) 5. 終了 中間レポート1 6. 終了 配列 7. 終了 関数 8. 終了 文字列 ( 文字列の配列, 文字列の操作 ) 9. 終了 ポインタ

More information

gengo1-12

gengo1-12 外部変数 関数の外で定義される変数を外部変数 ( 大域変数 ) と呼ぶ 外部変数のスコープは広域的 ( プログラム全体 ) 全ての関数で参照可能 int a=10; double x=3.14159; printf( a = %d\n, a); sample(); printf( %f\n, x); void sample(void) printf( %f\n, x); x += 1.0; 外部変数

More information

プログラミング基礎

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

More information

演算増幅器

演算増幅器 ファイルこれまでにデータの入力方法として キーボードからの入力を用いてきた 構造体を習った際に実感してもらえたと思うが 入力データ量が多いときにはその作業は大変なものとなり 入力するデータを間違えた場合には最初からやり直しになる そこで今回はこれらの問題を解決するため あらかじめ入力データをテキストエディタなどで編集し ファイルとして保存したものを入力データとして用いる方法を習っていく さらにプログラムで作成したデータをファイルに出力する方法も併せて習っていく

More information

gengo1-12

gengo1-12 外部変数 関数の外で定義される変数を外部変数 ( 大域変数 ) と呼ぶ 外部変数のスコープは広域的 ( プログラム全体 ) 全ての関数で参照可能 int a=10; double x=3.14159; printf( a = %d\n, a); sample(); printf( %f\n, x); void sample(void) printf( %f\n, x); x += 1.0; 外部変数

More information

計算機プログラミング

計算機プログラミング プログラミング言語 C 第 8 講 システム標準関数 ( 入出力関数 ) システム標準関数 システムに備え付けの関数 例 ) printf( ); scanf( ); 標準出力関数 標準入力関数 A. 入出力用の関数 高水準入出力関数 高水準言語 (OS に依存しない ) 低水準入出力関数 機械語レベル (OS に依存 ) B. それ以外の関数 引数と関数の型 ( 戻り値 ) に注目しましょう 例

More information

C言語講座 ~ファイル入出力編~

C言語講座 ~ファイル入出力編~ C 言語講座 ~ ファイル入出力編 ~ ポインタ使います 例 2 練習問題 3 初めに プログラムを組む上での話と今回の演習について 例えばこの画面の場合 背景の動画の描写 ノーツを流れてくるようにする ボタンを押したら違反亭ライン近くのノーツは消えるようにする処理 曲の難易度ごとに判定を追加とか残りの処理 完成 演習 1 クリア 演習 2 クリア 過程は各自で考えてください 演習 3 クリア ファイルの出入力でこれからやること

More information

PowerPoint Presentation

PowerPoint Presentation ファイルの入出力 芝浦工業大学情報工学科 青木義満 今回の講義内容 ファイル入出力 ファイルからのデータ読込み ファイルと配列 2 1 ファイルへのデータ書き込み ( 復習 ) ソースファイル名 :fileio1.c データをファイルに書き込み #include int main(void) { ファイルポインタ宣言 int student_id = 100; char name[

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 Word - no15.docx

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

More information

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

Microsoft PowerPoint - CproNt11.ppt [互換モード] 第 11 章入出力関数とライブラリ関数 CPro:11-01 概要 getchar putchar gets puts scanf printf strcat strcmp strcpy strlen atoi atof sprint sscanf 11.1 コンソール入出力関数 11-02 入力 出力 getchar putchar 一文字 gets puts 文字列 ( 一行 ) scanf printf

More information

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

Microsoft Word - Cプログラミング演習(12) 第 12 回 (7/9) 4. いくつかのトピック (5)main 関数の引数を利用したファイル処理 main 関数は, 起動する環境から引数を受け取ることができる 例えば 次に示すように,main 関数に引数を用いたプログラムを作成する 01 /* sample */ 02 /* main 関数の引数 */ 03 #include 04 05 main(int argc, char

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

Microsoft PowerPoint - 第3回目.ppt [互換モード]

Microsoft PowerPoint - 第3回目.ppt [互換モード] 第 3 回プログラミング応用 目的ファイル入出力 1. ファイルの概念 2. ファイルの読み込み 3. ファイルの書き込み CPU 演算 判断 ファイルの概念 内部記憶装置 OS 機械語プログラム 入力装置 キーボード 出力装置 ディスプレイ ファイル 外部記憶装置ハードディスク CD-ROM CPU が外部とデータをやり取りするための媒介 printf 関数や scanf 関数でもうすでにファイルのやり取りの基本は学んでいる

More information

PowerPoint プレゼンテーション

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

More information

ポインタ変数

ポインタ変数 プログラミング及び実習 7 馬青 1 文字列処理 文字列 文字列は " ( ダブルクォーテーション ) で囲んで表現される 文字列というデータ型が存在しないので 文字列は文字の配列 あるいはポインタ変数として扱われる また 文字の配列あるいはポインタ変数を宣言するときのデータ型は char を用いる 従って char s[]="ryukoku Uni."; あるいは char *s="ryukoku

More information

DVIOUT

DVIOUT 2009 年度情報科学 & 情報科学演習レポート 9 学生用 学籍番号 : 氏名 : 下記の注意事項を守り 次ページ以降の問いに答え レポートを完成させなさい 提出期限 : 2009 年 6 月 30 日 ( 火 ) 13:00 まで提出場所 : 理学部棟正面玄関内に設置のレポートボックス 注意事項 : (1) このページを印刷し 必要事項を記入の上 ( 学籍番号欄と氏名欄は 2 箇所あるので忘れずに記入すること

More information

スライド タイトルなし

スライド タイトルなし ファイル入出力 (2) これまでのおさらい ( 入出力 ) これまでの入出力は 入力 scanf 出力 printf キーボードと画面 ( 端末 ) scanf/printf は 書式つき入出力 フォーマットを指定する 標準入出力を対象とする 何もしなければ 標準入出力は キーボードと画面 ストリームという考え方 ストリーム (stream) = データの列 キーボードから打つ文字列 画面に出力される文字列

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 10: ファイル入出力 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-06-15 1 標準ライブラリ関数によりファイルの出力を行う 画像ファイルの生成を例題として 配列の作成を復習する 今日の内容 関数を作ってプログラムを構造化する

More information

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

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

More information

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

Microsoft Word - Cプログラミング演習(10) 第 10 回 (6/25) 3. ファイルとその応用 (3) ファイルの更新 シーケンシャルファイルの更新 シーケンシャルファイルでは, 各レコードが可変長で連続して格納されており, その中の特定のレコードを変更することができない そこで一般的には, マスタファイルからデータを取り出し, 更新処理を行ったあとに新マスタファイルに書き込む 注 ) マスタファイル : 主ファイル, 基本ファイルと呼ばれるファイルで内容は比較的固定的であり,

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 構造体 (struct) 構造体の宣言 typedef 宣言 配列では 複数のデータをひとまとまりにして操作することが出来る しかし それぞれのデータは同じ型 ( 例えば整数 あるいは浮動小数点数 ) 出なければならない 型の違うデータをひとまとまりにして扱う方法に 構造体がある 構造体 文文文文名前字 ( 文字列字字 ) 字 整数学籍番号 ( 整数 ) 身長 ( 浮動小数点数 ) 文字 配列 3

More information

文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Lin

文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Lin 文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Linux では 一般的に 標準入力装置としてキーボードが 標準出力装置としてディスプレイが割り当てられている

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 1 10: ファイル入出力 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/teachers/w48369 2/CPR1/ 2016-06-15 今日の内容 2 標準ライブラリ関数によりファイルの出力を行う画像ファイルの生成を例題として 配列の作成を復習する 文字列の扱いを復習する

More information

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

Microsoft PowerPoint - 14th.ppt [互換モード] 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 14 回 2011 年 1 月 20 日 1 今日のテーマ ファイル入出力 ですが, キーボード入力などもおさらいします 2 標準入力 キーボードで入力 : 標準入力という例 )scanf( %d,&i) 前回までの講義でファイルからデータを読み込む場合に使用した関数 : fscanf 例 )fscanf(fin,

More information

プログラミング基礎

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

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 3 回構造体, ファイル入出力 先週の出席確認へのコメント 暗号を破りたいが 平文の候補が多すぎる 人間の目で確認する代わりに どんなプログラムがあればよいか? 辞書を挙げた人が多かった 正しい着眼です 何億個もの平文候補が想定されるので 形態素解析や品詞判別を挙げた人もいます 辞書に近い回答で悪くはないのですが 平文候補ごとにあまり高機能なものを呼び出すと時間がかかる

More information

プログラミング演習3 - Cプログラミング -

プログラミング演習3 - Cプログラミング - プログラミング演習 3 - C プログラミング - 第 1 回資料 & 課題花泉弘 この回の目標 1. テキストファイルからのデータの読み出し ファイルの open と close 1 文字ずつの入力 1 行ずつの入力 C 言語に限らず ファイルからデータを読み込む場合 必要になるのは ファイル名と場所 ( どのディレクトリにあるか ) プログラム上でデータを受け取るバッファ ( 変数の型に注意 )

More information

Microsoft Word - 06

Microsoft Word - 06 平成 24 年度講義 アルゴリズムとデータ構造 第 6 回ファイル入出力 担当 : 富井尚志 (tommy@ynu.ac.jp) 第 6 回 ファイル入出力 前回 ( 第 5 回 ) 配列を扱うアルゴリズム (2) とポインタ の復習 集合を扱う 集合の表現, 配列を使った表現, 要素の列 を 集合 にする, 要素, 積, 和, 差 文字列 C 言語における文字列, 文字列を扱うプログラム 計算機の記憶とポインタ

More information

memo

memo 数理情報工学演習第一 C ( 第 12 回 ) 2016/07/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : ファイルの入出力 コマンドライン引数 2 分探索 クイックソート ( ライブラリ ) 文字列検索 2 ファイル操作の手続き : ファイル操作 ファイルからのデータ読み込み ファイルへのデータ書き出し 基本的な手順 読みこむ / 書き出すファイルを開く

More information

練習&演習問題

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

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング初級 第 13 回 2017 年 7 月 10 日 標準ライブラリ関数 1 標準ライブラリ関数とは 関数には (1) 自分で作る関数 (2) はじめから用意されている関数特に C 言語用用意されているもの : 標準ライブラリ関数 文字列の代入文字列の長さを求める文字列の比較文字列の連結 strcpy strlen strcmp strcat 2 文字列の操作 - 具体例を通して (141

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

Microsoft PowerPoint pptx

Microsoft PowerPoint pptx 情報処理 Ⅱ 第 12 13回 2011 年 1 月 31 17 日 ( 月 ) 本日学ぶこと ファイル入出力, 標準入力 標準出力 記憶域管理関数 (malloc など ) 問題 ファイルを入力にとり, 先頭に行番号をつけて出力できる? 行列の積を, ファイルを介して読み書き 計算できる? Wakayama University./line 1:Wakayama 2:University 3 2

More information

slide4.pptx

slide4.pptx ソフトウェア工学入門 第 4 回ライブラリ関数 ライブラリ関数 stdio stdio : 標準入出力ライブラリ カーネルレベルのストリームに API を追加し インタフェースを提供する カーネル fd read(2) write(2) stdio バッファ BUFSIZ プログラム BUFSIZ ごと 小さい単位 バッファ : 一時的にデータを保存しておく場所のことバッファリング : バッファを経由してデータをやり取りすること

More information

memo

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

More information

Microsoft Word - no204.docx

Microsoft Word - no204.docx 2. ファイル処理 2.1 ファイル処理の基本いままでは プログラムを実行したとき 入力はキーボードから入れていました また その結果を画面で確認していました 簡単なものならそれでもいいのですが 複雑な入力はファイルから読み込んだり 結果は画面で見るだけでなくファイルに保存できればよいでしょう ここでは ファイル処理について説明します 使う関数のプロトタイプは次のとおりです FILE *fopen(const

More information

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a = 問 1 配列の宣言整数型配列 data1 にデータが初期設定されている この配列 data1 のデータを下図のように 整数型配列 data2 に代入しなさい また data2 の内容を printf( "data2[0] = %d\n", data2[0] ); printf( "data2[5] = %d\n", data2[5] ); を用いて出力しなさい 実行結果 data2[0] = 76

More information

Microsoft PowerPoint - prog06.ppt

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

More information

ポインタ変数

ポインタ変数 プログラミング及び実習 6 馬青 1 例 : ファイルデータの整形 以下の ipt.dat ファイルを opt.dat ファイルに変換するプログラム ipt.dat の中の空白は空白かタブであり opt.dat の中の No と番号の間は 1 個の空白で 番号と点数の間は 1 個のタブである 2 データ ipt.dat no.1 79 no.2 73 no.3 89 no.4 67 no.5 99

More information

ポインタ変数

ポインタ変数 プログラミング及び実習 5 馬青 1 文字処理 数値処理 : 整数 浮動小数点数 単一の文字は と ( シングルクォーテーション ) で囲んで表現される 文字のデータ型は char または int である int を用いたほうが ライブラリの関数の引数の型と一致する 以下は全部 int の使用に統一する 従って int ch; で文字変数を宣言しておくと ch= A ; のように ch に文字 A

More information

Microsoft PowerPoint - kougi4.ppt

Microsoft PowerPoint - kougi4.ppt C の実行モデル 自由落下距離 前回の授業の 例題 1 の復習と重要事項 の確認 地上で物を落とし始めた後の自由落下距離を 求める 重力加速度 g は 9.8 とする 自由落下距離を求めるために, プログラム中に, 計算式 y = ( 9.8 / 2.0 ) * x * x を書く C++ ソースファイルの編集 編集画面 編集中のファイル名 関係するファイルなどが表示される ビルド結果などが表示される画面

More information

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作ります FORTRAN の場合 OPEN 文でファイルを開いた後 標準入力の場合と同様に READ 文でデータを読みこみます

More information

ゲームエンジンの構成要素

ゲームエンジンの構成要素 cp-3. 計算 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 自由落下距離四則演算例題 2. 三角形の面積浮動小数の変数, 入力文, 出力文, 代入文例題 3. sin 関数による三角形の面積ライブラリ関数 2 今日の到達目標 プログラムを使って, 自分の思い通りの計算ができるようになる

More information

V

V V WWW Web IP DMZ DMZ ID Web PC CD DVD USB SD off SPAM SPAM SPAM SPAM Web Windows XP Vista Windows Update Mac OS X Linux FAX 100% Web SSL=HTTPS URL Web WinMX, Winny, Napstere, Donkey2000,

More information

Microsoft PowerPoint - kougi11.ppt

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

More information

Microsoft PowerPoint - kougi2.ppt

Microsoft PowerPoint - kougi2.ppt C プログラミング演習 第 2 回 Microsoft Visual Studio.NET を使ってみよう 説明 例題 1. プログラム実行の体験 コンピュータを役に立つ道具として実感する 次ページのプログラムを使って, Microsoft Visual Studio.NETでの C++ ソースファイル編集, ビルド, テスト実行の一連の過程を体験する 例題 1 のプログラムの機能 計算の繰り返し

More information

Prog1_15th

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

More information

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

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

More information

※ ポイント ※

※ ポイント ※ 4S-RO ロボティクス実験 参考資料 ファイル入出力 : ファイルの読み込み 1 周目に計測した生体情報データを読み込み プログラムにより信号処理を行うが その際にファイルの 入出力が必要となる 実験前半ですでに学習しているが必要に応じて本資料を参考にすること 以下のようにすると指定したファイルを読み込むことができる ( 詳細は後から記述 ) int i; double --------; char

More information

ポインタ変数

ポインタ変数 プログラミング及び実習 8 馬青 1 文字列処理の標準ライブラリ関数 (1/2) これらの関数を使うためには ヘッダファイル をインクルードしておく必要がある ( 変数 s:char *, 変数 t:const char *, 変数 n: int) 関数 char *strcpy(s, t) char *strncpy(s, t, n) char *strcat(s, t) char

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

Prog1_10th

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

More information

プログラミング演習3 - Cプログラミング -

プログラミング演習3 - Cプログラミング - プログラミング演習 3 - 集中講義版 - 1 日目資料 & 課題花泉弘 この回の目標 1. テキストファイルからのデータの読み出し ファイルの open と close 1 文字ずつの入力と 1 行ずつの入力とを行う readnext( ) を作成する C 言語に限らず ファイルからデータを読み込む場合 必要になるのは ファイル名と場所 ( どのディレクトリにあるか ) プログラム上でデータを受け取るバッファ

More information

講習No.12

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

More information

PowerPoint Presentation

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

More information

ポインタ変数

ポインタ変数 プログラミング及び実習 5 馬青 1 文字処理 数値処理 : 整数 浮動小数点数 単一の文字は と ( シングルクォーテーション ) で囲んで表現される 文字のデータ型は char または int である int を用いたほうが ライブラリの関数の引数の型と一致する 以下は全部 int の使用に統一する 従って int ch; で文字変数を宣言しておくと ch= A ; のように ch に文字 A

More information

データ構造

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

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 12: コマンドライン引数 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-06-29 1 まとめ : ポインタを使った処理 内容呼び出し元の変数を書き換える文字列を渡す 配列を渡すファイルポインタ複数の値を返す大きな領域を確保する

More information

データ構造

データ構造 アルゴリズム及び実習 9 馬青 1 文字列の探索 文字列探索 (string searching) は文字列照合 (string pattern matching) ともいう テキストと呼ばれる文字列の中に パターンと呼ばれる文字列に一致する部分があるかどうかを調べる問題である そのような部分が見つかった場合には その場所を答えとする テキストエディターにおける探索コマンドやテキストデータベースにおける検索などに使われる

More information

C言語入門

C言語入門 1 C 言語入門 第 7 週 プログラミング言語 Ⅰ( 実習を含む ), 計算機言語 Ⅰ 計算機言語演習 Ⅰ, 情報処理言語 Ⅰ( 実習を含む ) 2 吐き出し法 ( ガウスの消去法 ) のピボッティング 前回の復習 3 連立一次方程式を行列で計算する 吐き出し法 ( ガウスの消去法 ) ステップ 1: 前進消去 ( 上三角行列の作成 ) gaussian_elimination1.c // step1

More information

Microsoft PowerPoint - kougi8.ppt

Microsoft PowerPoint - kougi8.ppt C プログラミング演習 第 8 回構造体とレコードデータファイル 1 例題 1. バイナリファイル形式のファイル からのデータ読み込み 次のような名簿ファイル ( バイナリファイル形式 ) を読み込んで, 画面に表示するプログラムを作る name Ken Bill Mike age 20 32 35 address NewYork HongKong Paris 名簿ファイル 2 #include "stdafx.h"

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

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 2 ( 月 4) 09: ポインタ 文字列 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2014-06-09 1 関数できなかったこと 配列を引数として渡す, 戻り値として返す 文字列を扱う 呼び出し元の変数を直接書き換える 例 : 2 つの変数の値を入れ替える関数

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 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include 2. #include /*troupper,islower,isupper,tolowerを使うため宣言*/ 3. 4. int get_n(char *); 5. void replace(char

More information

卒 業 研 究 報 告.PDF

卒 業 研 究 報 告.PDF C 13 2 9 1 1-1. 1-2. 2 2-1. 2-2. 2-3. 2-4. 3 3-1. 3-2. 3-3. 3-4. 3-5. 3-5-1. 3-5-2. 3-6. 3-6-1. 3-6-2. 4 5 6 7-1 - 1 1 1-1. 1-2. ++ Lisp Pascal Java Purl HTML Windows - 2-2 2 2-1. 1972 D.M. (Dennis M Ritchie)

More information

2

2 問題 次の設問に答えよ 設問. Java のソースコードをコンパイルするコマンドはどれか a) java b) javac c) javadoc d) javaw 設問. Java のバイトコード ( コンパイル結果 ) を実行するコマンドはどれか a) java b) javac c) javadoc d).jar 設問. Java のソースコードの拡張子はどれか a).c b).java c).class

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 09: ポインタ 文字列 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-06-08 1 関数できなかったこと 配列を引数として渡す, 戻り値として返す 文字列を扱う 呼び出し元の変数を直接書き換える 例 : 2 つの変数の値を入れ替える関数

More information

Microsoft Word - no12.doc

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

More information

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

Microsoft Word - Cプログラミング演習(3) 第 3 回 (5/7) 5. ループ ( 繰り返し ) 1 for 文 例題 1-15 正の数 n をキーボードから入力すると,1 から n までの整数の和を出力するプログラムをつくりなさい 出力結果 1-15 2 以上の整数を入力してください! 357 1 + + 357 = 63903 考え方合計を保持する変数を long 型で宣言し, 入力した数値 n までループ処理で累積する 正しい数値が入力されたとき

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

b,c に関する解答群ア cur_w += space_w イ cur_w += str_w ウ cur_w = 0 エ cur_w = space_w オ cur_w = space_w + str_w カ cur_w = str_w d に関する解答群ア *str!= *char_list[id

b,c に関する解答群ア cur_w += space_w イ cur_w += str_w ウ cur_w = 0 エ cur_w = space_w オ cur_w = space_w + str_w カ cur_w = str_w d に関する解答群ア *str!= *char_list[id 平成 17 年度春期 FE 午後問題 C 言語 問 6 次の C プログラムの説明及びプログラムを読んで, 設問に答えよ プログラムの説明 関数 print_string は, 欧文ピッチ処理 ( 文字固有の字幅に従って字送りする ) を行って印刷するとき, 単語の途中で改行されないように英文を出力するプログラムである (1) 関数 print_string の引数は, 次のとおりである line_w

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション シミュレーション基礎 (8) 第 6 章ファイル入出力 7.2 テキストファイルの読み書き ファイルに書き込む : EX70201: X=1:10;Y=[X;X.^2]; Fid=fopen('datal.txt', wt'); fprintf(fid,'%2d%5d n',y); C 言語と同じ手順 : ファイルをオープンするファイルに変数の値を書き込む ( 整数 2 桁, 整数 5 桁, 改行

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

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 09: ポインタ 文字列 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/teachers/w 483692/CPR/ 207-06-4 関数できなかったこと 2 配列を引数として渡す, 戻り値として返す 文字列を扱う 呼び出し元の変数を直接書き換える 例 : 2 つの変数の値を入れ替える関数

More information

memo

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

More information

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

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

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 1 12: コマンドライン引数 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/teachers/w48369 2/CPR1/ 2017-07-05 まとめ : ポインタを使った処理 2 内容呼び出し元の変数を書き換える文字列を渡す 配列を渡すファイルポインタ複数の値を返す大きな領域を確保する

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

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

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

More information

gengo1-8

gengo1-8 問題提起その 1 一文字ずつ文字 ( 数字 ) を読み込み それぞれの文字が何回入力されたかを数えて出力するプログラム int code, count_0=0, count_1=0, count_2=0, count_3=0,..., count_9=0; while( (code=getchar())!= EOF ){ } switch(code){ case 0 : count_0++; break;

More information

PowerPoint Presentation

PowerPoint Presentation 第 7 回文字列数学関数ファイルの入出力 芝浦工業大学情報工学科青木義満 今回の講義内容 文字列 文字列の配列の扱い 関数への受け渡し 数学関数の利用 平方根, べき乗, 三角関数など ファイル入出力 文字列とは? (p.0) 文字列リテラル 文字 つつ : A, B, 複数の文字の並び= 文字列 puts( ぷろぐらみんぐ入門 ); で囲まれた部分 = 文字列リテラルという 文字列リテラルとナル文字

More information

数値計算

数値計算 数値計算 垣谷公徳 17 号館 3 階電子メール : kimi@ee.ous.ac.jp プログラミング言語の一般論 データ型 ( 定数と変数 配列 ) 代入 基本演算 ( 四則演算 ) 入出力 分岐 繰返処理 関数 外部手続き 1 2 入力関数 入出力 getchar, getc, fgetc ; 一文字入力 gets, fgets, fread ; 文字列 ( データ列 ) 入力 scanf,

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

memo

memo 数理情報工学演習第一 C ( 第 12 回 ) 2017/07/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : ファイルの入出力 コマンドライン引数 2 分探索 最長単調増加列 2 ファイル操作の手続き : ファイル操作 ファイルからのデータ読み込み ファイルへのデータ書き出し 基本的な手順 読みこむ / 書き出すファイルを開く (fopen)

More information

今までの復習 プログラムで最低限必要なもの 入力 ( キーボードから ファイルから ) 出力 ( 画面へ ファイルへ ) 条件分岐 : 条件の成立 不成立により 異なる動作をする 繰り返し : 一定の回数の繰返し 条件成立の間の繰返し 関数の定義 関数の呼び出し C ではそれ以外に ポインタ データ

今までの復習 プログラムで最低限必要なもの 入力 ( キーボードから ファイルから ) 出力 ( 画面へ ファイルへ ) 条件分岐 : 条件の成立 不成立により 異なる動作をする 繰り返し : 一定の回数の繰返し 条件成立の間の繰返し 関数の定義 関数の呼び出し C ではそれ以外に ポインタ データ C プログラミング演習 1( 再 ) 7 講義では C プログラミングの基本を学び演習では 実践的なプログラミングを通して学ぶ 今までの復習 プログラムで最低限必要なもの 入力 ( キーボードから ファイルから ) 出力 ( 画面へ ファイルへ ) 条件分岐 : 条件の成立 不成立により 異なる動作をする 繰り返し : 一定の回数の繰返し 条件成立の間の繰返し 関数の定義 関数の呼び出し C ではそれ以外に

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

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

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

More information

2

2 問題 1 次の設問 1~5 に答えよ 設問 1. Java のソースプログラムをコンパイルするコマンドはどれか a) java b) javac c) javadoc d) jdb 設問 2. Java のバイトコード ( コンパイル結果 ) を実行するコマンドはどれか a) java b) javac c) javadoc d) jdb 設問 3. Java のソースプログラムの拡張子はどれか a).c

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用 第 15 回 知的情報システム学科張 暁華 プログラミング応用 1 授業のマナー ------ 人の話を聞くときの社会常識 1. 欠席者のかわりに登録を行わない 倫理に反することをやらない あなたの信を問われている蟻の穴から堤防が決壊 2. 私語しないこと : 質問 意見は手を挙げて大きな声ではっきりと意思表示 3. 授業以外のことをしない : 携帯をカバンにいれ イヤホンを使って音楽等を聞かない授業中ゲームを遊ばない

More information