• 検索結果がありません。

精密工学科プログラミング基礎

N/A
N/A
Protected

Academic year: 2021

シェア "精密工学科プログラミング基礎"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

精密工学科プログラミング基礎

9

回資料

(12/11

実施

)

今回の授業で習得してほしいこと:

文字列の扱い

– 1

次元配列の復習

文字とアスキーコードの関係

ファイル入出力の方法

コマンドライン引数の使い方

資料の

URL : http://lecture.ecc.u-tokyo.ac.jp/~tohtake/

(2)

2 2

文字列とは?

• char

型の

1

次元配列

(

文字の配

)

文字列の最後には終りの記号

’ \0’

が入っている

char st[5];

st[0] = ’H’;

st[1] = ’i’;

st[2] = ’ ’;

st[2] = ’!’;

st[3] = ’\0’;

文字列

: Hi !

char st[5] =

”Hi !”;

文字列にだけ使える 初期化の方法

一文字なら ’ ’ , まとめてなら ” ” で囲む.

(3)

文字列の入出力

一文字ずつなら

: %c

まとめてなら

: %s (

スペース・改行で区切ら れる

)

数字

(

アスキーコード

)

としてなら

: %d

char st[255];

scanf(”%s”, st);

printf(”%s\n”, st);

int i;

for(i=0; st[i] != ’\0’;

i++){

printf(”%c”, st[i]);

}

printf(”\n”);

ある単語をスキャンしてプリント

づつなら一文字

(4)

4

コマンドライン引数

• main

関数へ渡す文字列の引数

1 : emacs test.c

(emacs

main

関数へ開きたいファイル名を渡した

)

2 : cp file1 file2

(cp

へコピー元ファイルとコピー先ファイルを渡した

)

int main( int argc, char

*argv[ ] ){

printf(”%d”, argc);

printf(”%s\n”, argv[1]);

}

引数の数

+1

引数の値

(

文字列の配列

)

※ 1 番から

実行

% ./a.out abc efg

3

abc

0 番には

コマンド名が入っている

(5)

5 5

文字列から数値へ変換

文字列を数字に変換したいなら以下を使う

整数

int

: atoi(

文字列

)

小数

double

: atof(

文字列

) – #include <stdlib.h>

を入れる

char st1[ ] =

”123”;

char st2[ ] =

”100”;

int a,b;

a = atoi(st1);

b = atoi(st2);

printf(“%d\n”, a+b);

2

つの文字列を整数に変換して足し算をする

(6)

6

ファイル入出力

ファイルからデータを読み書きする

複数のファイルから入出力を行える.

( リダイレクション “ <” ”>” 1 つのファイル操作のみ) – オープンとクローズの操作が加わるだけで、

使い方は printf, scanf と同じ

int a;

FILE* f;

f = fopen(”test.txt”, ”r”);

fscanf(f, ”%d”, &a);

fclose(f);

int a = 10;

FILE* f;

f = fopen(”test.txt”, ”w”);

fprintf(f, ”%d”, a);

fclose(f);

ファイル test.txt から

変数 a に値を読み込み ファイル test.txt 変数 a の値を書き出す

read write

ファイル型

(7)

課題 (1)

scanf

を使って単語を読み込み以下を行え

1.

文字数のカウント

– ”Word”

なら

4

になる

2.

逆さ文字にして表示

– ”Word”

なら ”

droW”

になる

3.

アスキーコードを表示

– ’A’

と ’

a’

, ’

B’

と ’

b’

の関係はどうなっている?

4.

大文字⇔小文字変換

– ”Word”

なら

” wORD”

になる

5.

各アルファベットの出現を数える

大文字・小文字の区別はなし

カウンタ

26

個は配列で用意する

– ”Exercises”

なら出力例は

c:1, e:3, i:1, r:1, s:2, x:1

(8)

8

課題 (2)

以下のプログラムをコマンドライン引数を用いて作成せよ

1.

数列を引数として渡し、それらの和を計算する

– ./a.out 1 2 3 4 とすると 10 が表示される

2.

整数列が書かれた

2

つのファイルを指定し,

      総和を計算 せよ.– ./a.out data1.txt data2.txt とすると

      ファイル中の数の和が表示される.

3.

入力ファイルの文字列を,

1

文字おきに

2

つのファイルへ交互に出力する

– ./a.out in.txt odd.txt even.txt とすると奇数番目の文字は odd.txt へ,偶数番目は even.txt へ書き出される

4.

課題

(2)-3

で作成した

2

つのファイルを元に戻す

– ./a.out odd.txt even.txt out.txt とすると out.txt へ元のファイル が復元される

参照

関連したドキュメント

理工学部・情報理工学部・生命科学部・薬学部 AO 英語基準入学試験【4 月入学】 国際関係学部・グローバル教養学部・情報理工学部 AO

[r]

“〇~□までの数字を表示する”というプログラムを組み、micro:bit

図 21 のように 3 種類の立体異性体が存在する。まずジアステレオマー(幾何異 性体)である cis 体と trans 体があるが、上下の cis

学部混合クラスで基礎的な英語運用能力を養成 対象:神・ 社 会・ 法・ 経 済・ 商・ 理 工・ 理・

国際地域理解入門B 国際学入門 日本経済基礎 Japanese Economy 基礎演習A 基礎演習B 国際移民論 研究演習Ⅰ 研究演習Ⅱ 卒業論文