精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方

Slides:



Advertisements
Similar presentations
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
Advertisements

復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
情報処理演習C2 ファイル操作について (2).
IO - 入出力 小西 亨.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
基礎プログラミングおよび演習 第9回
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
C言語 第2講 生物機能制御学講座 濱田 農学部7号館209室.
文字配列の課題1 解説 /* a */ #include <stdio.h> main( ) { int i;
第13回 プログラミングⅡ 第13回
12: コマンドライン引数 C プログラミング入門 総機1 (月1) Linux にログインし、以下の講義ページ を開いておくこと
12: コマンドライン引数 C プログラミング入門 基幹7 (水5) Linux にログインし、以下の講義ページ を開いておくこと
第8回 プログラミングⅡ 第8回
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
第6章 2重ループ&配列 2重ループと配列をやります.
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
ファイル操作と文字列の利用.
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
第10回 プログラミングⅡ 第10回
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング論 II 2008年10月30日 文字列
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第2回 ファイル処理 情報・知能工学系 山本一公
精密工学科プログラミング基礎 第10回資料 (12/18実施)
第10章 これはかなり大変な事項!! ~ポインタ~
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
今までの練習問題の復習.
前回の練習問題.
第7回 プログラミングⅡ 第7回
地域情報学 C言語プログラミング 第5回 ポインタ、関数、ファイル入出力 2017年11月17日
第11回 プログラミングⅡ 第11回
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
高度プログラミング演習 (05).
プログラミング基礎B 文字列の扱い.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
第4回 ファイル入出力方法.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
精密工学科プログラミング基礎Ⅱ 第5回資料 今回の授業で習得してほしいこと: 構造体 (教科書 91 ページ)
C言語 はじめに 2016年 吉田研究室.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
プログラミング基礎a 第6回 C言語によるプログラミング入門 配列と文字列(その2)
プログラミング演習I 2003年7月2日(第11回) 木村巌.
第13章 文字の取り扱い方 13.1 文字と文字型変数 13.2 文字列 13.3 文字型配列への文字列の代入
ファイルの読み込み, ファイルからのデータの取り出し, ファイルの書き出し
12: コマンドライン引数 C プログラミング入門 基幹7 (水5) Linux にログインし、以下の講義ページを開いておく こと
精密工学科プログラミング基礎 第7回資料 (11/27実施)
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
プログラミング 4 文字列.
アルゴリズムとデータ構造 補足資料6-1 「サンプルプログラムcat1.c」
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
第7章 そろそろ int 以外も使ってみよう! ~データ型 double , bool~
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
プログラミング入門2 第5回 配列 変数宣言、初期化について
プログラミング演習I 補講用課題
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
第1章 文字の表示と計算 printfと演算子をやります.
12: コマンドライン引数 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
第3回Bashゼミ for文処理について 発表者 直江 宗紀.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方 1次元配列の復習 文字とアスキーコードの関係 ファイル入出力の方法 コマンドライン引数の使い方 資料のURL : http://www.den.t.u-tokyo.ac.jp/prog/ 1

文字列とは? char 型の1次元配列 (文字の配列) 文字列 : Hi ! 文字列の最後には終りの記号 ’\0’ が入っている char st[5]; st[0] = ’H’; st[1] = ’i’; st[2] = ’ ’; st[2] = ’!’; st[3] = ’\0’; 文字列 : Hi ! 文字列にだけ使える 初期化の方法 char st[5] = ”Hi !”; ※ 一文字なら ’ ’ , まとめてなら ” ” で囲む. 2

文字列の入出力 一文字ずつなら: %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”); 一文字 づつなら 3

コマンドライン引数 main 関数へ渡す文字列の引数 例1 : emacs test.c (emacs の main 関数へ開きたいファイル名を渡した) 例2 : cp file1 file2 (cp へコピー元ファイルとコピー先ファイルを渡した) 引数の数+1 引数の値 (文字列の配列) int main( int argc, char *argv[ ] ){ printf(”%d”, argc); printf(”%s\n”, argv[1]); } % ./a.out abc efg 3 abc 実行 0 番には コマンド名が入っている ※ 1番から

文字列から数値へ変換 文字列を数字に変換したいなら以下を使う 整数 int 型 : atoi(文字列) 小数 double 型 : atof(文字列) #include <stdlib.h> を入れる 2つの文字列を整数に変換して足し算をする char st1[ ] = ”123”; char st2[ ] = ”100”; int a,b; a = atoi(st1); b = atoi(st2); printf(“%d\n”, a+b); 5

ファイル入出力 ファイルからデータを読み書きする 複数のファイルから入出力を行える. (リダイレクション “<”,”>” は1つのファイル操作のみ) オープンとクローズの操作が加わるだけで、 使い方は printf, scanf と同じ ファイル test.txt から 変数 a に値を読み込み ファイル test.txt へ 変数 a の値を書き出す read int a = 10; FILE* f; f = fopen(”test.txt”, ”w”); fprintf(f, ”%d”, a); fclose(f); write int a; FILE* f; f = fopen(”test.txt”, ”r”); fscanf(f, ”%d”, &a); fclose(f); ファイル型

課題 (1) scanf を使って単語を読み込み以下を行え 文字数のカウント 逆さ文字にして表示 アスキーコードを表示 大文字⇔小文字変換 ”Word” なら 4 になる 逆さ文字にして表示 ”Word” なら ”droW” になる アスキーコードを表示 ’A’ と ’a’ , ’B’ と ’b’ の関係はどうなっている? 大文字⇔小文字変換 ”Word” なら ”wORD” になる 各アルファベットの出現を数える 大文字・小文字の区別はなし カウンタ26個は配列で用意する ”Exercises” なら出力例は c:1, e:3, i:1, r:1, s:2, x:1

課題 (2) 以下のプログラムをコマンドライン引数を用いて作成せよ 数列を引数として渡し、それらの和を計算する ./a.out 1 2 3 4 とすると 10 が表示される 整数列が書かれた2つのファイルを指定し,                     総和を計算せよ. ./a.out data1.txt data2.txt とすると             ファイル中の数の和が表示される. 入力ファイルの文字列を, 1文字おきに2つのファイルへ交互に出力する ./a.out in.txt odd.txt even.txt とすると奇数番目の文字は odd.txt へ,偶数番目は even.txt へ書き出される 課題(2)-3で作成した2つのファイルを元に戻す ./a.out odd.txt even.txt out.txt とすると out.txt へ元のファイルが復元される