270 likes | 369 Views
プログラミング Ⅰ ( 1 組) 第 4 回. http://www.fit.ac.jp/~matsuki/lecture.html. 今日の内容. 前回の課題の 説明 前回 の復習 いろいろな演算. タイピングソフト. 喰人王を使用して結果を記録する ステージ:第一の店(中華) Excel のシートにスコアを毎回記録していく 残り時間 ⇒ FeedBack ページで報告 総タイプ数 ミスタイプ数 正確さ ⇒ FeedBack ページで報告 喰いっぷり ⇒ FeedBack ページで報告 このシートは,途中で提出してもらいます. char 型について.
E N D
プログラミングⅠ(1組)第4回 http://www.fit.ac.jp/~matsuki/lecture.html
今日の内容 • 前回の課題の説明 • 前回の復習 • いろいろな演算
タイピングソフト • 喰人王を使用して結果を記録する • ステージ:第一の店(中華) • Excelのシートにスコアを毎回記録していく • 残り時間⇒ FeedBackページで報告 • 総タイプ数 • ミスタイプ数 • 正確さ⇒ FeedBackページで報告 • 喰いっぷり ⇒ FeedBackページで報告 • このシートは,途中で提出してもらいます
char型について • char型は,1バイトの大きさ • 256種類の値を表現できる(16進数で00~FF) • char型はASCIIコードとして利用される (注意:文字型だけでなく,整数も使える)
文字について printf(“Hello World”); Hello Wolrd コンピュータの中で, 文字をどう扱っているの? 各文字に,予め番号が割り当てられている
黄色:上位の桁 緑色:下位の桁 ASCIIコード表 ASCIIコードの48(16)は,「H」
黄色:上位の桁 緑色:下位の桁 ASCIIコード表 SPACE Line Feed (\n) H e l l o W o r l d 48 65 6C 6C 6F 20 57 6F 72 6C 64 0A
変数に値を入れる ① 30 = x; //間違い ② x = 10 + 20; //10+20の計算結果をxに代入 ③ x = x + 1; //x + 1の計算結果をxに代入 ④ x = 0x41 //16進数の41をxに代入 ⑤ x = ‘A’; //x = 0x41と同じこと 65 x xという変数に,65という整数値を格納(代入) x = 65;
printf関数 • 変数の中身を表示することが可能 • 書式を指定することが可能
演算 複合演算子
前回の課題 1.次のプログラムを実行したら,何が表示されるか? #include <stdio.h> int main() { printf(“%c %c %c %c %c %c\n”, 0x4c, 0x6f, 0x6e, 0x64, 0x61, 0x79); return 0; }
前回の課題 printf(“%c %c %c %c %c %c\n”, 0x4c, 0x6f, 0x6e, 0x64, 0x61, 0x79); printf(“%c”,0x4c); 4C(16)に対応するASCII文字として表示
黄色:上位の桁 緑色:下位の桁 ASCIIコード表 ASCIIコードの4C(16)は,「L」
前回の課題 printf(“%c %c %c %c %c %c\n”, 0x4c, 0x6f, 0x6e, 0x64, 0x61, 0x79); printf(“%c”,0x4c); 4C(16)に対応するASCII文字として表示 結果: Londay
前回の課題 2.次のプログラムを実行したら,何が表示されるか? #include <stdio.h> int main() { printf(“%x %x %x %x %x %x\n”, ‘S’, ‘u’, ‘n’, ‘d’, ‘a’, ‘y’); return 0; }
前回の課題 printf(“%x %x %x %x %x %x\n”, ‘S’, ‘u’, ‘n’, ‘d’, ‘a’, ‘y’); %x : 16進数の整数として表示 文字の「S」 = ??(16) ASCIIコード表
黄色:上位の桁 緑色:下位の桁 ASCIIコード表 「S」 は,ASCIIコードの53(16)
前回の課題 printf(“%x %x %x %x %x %x\n”, ‘S’, ‘u’, ‘n’, ‘d’, ‘a’, ‘y’); %x : 16進数の整数として表示 ASCII文字のS = 53(16) 結果: 53 75 6e 64 61 79
前回の課題 3.printfの書式指定文字列について,以下の意味を説明せよ (1)%d: 10進の整数を指定 (2)%f: 浮動小数を指定 (3)%x: 16進の整数を指定 (4)%c: 文字変換を指定
前回の課題 4.C言語で次の演算を行った際,(1),(2)については演算結果を,(3)~(5)については変数aの値を答えなさい.ただし,変数a,bはint型で定義されており,演算前のa,bの値はそれぞれ12と4とする. (1)9 + 6 / 3 * 2 ⇒ 13 (2)a + b % 5 ⇒ 12 + 4 % 5 ⇒ 12 + 4 ⇒ 16 (3)a += b ⇒ a = a + b ⇒ 「aには12 + 4の結果16が入る」 (4)a *= b ⇒ a = a * b ⇒「aには12×4の結果48が入る」 (5)a %= (a / b) ⇒ a = a % (a / b) ⇒ a = a % 3 ⇒ 「aには12を3で割った余り(0)が入る」 括弧内から計算
演算について • 優先順位 • 優先順位の高い演算から順に行われる • (例) d = a + b * c (「*」,「+」,「=」の順) • 結合規則 • 同じ優先順位が複数ある場合は,結合規則(方向)に従って順に演算が行われる • (例)d = a / b * c (「/」と「*」は同じ順位なので,結合規則に従って,「左から右の順」に演算する)
様々な演算 • インクリメント a = a + 1; //aに1を加えて,その結果をaに代入 a++; //aを評価したのちに1を加算 ++a; //aに1を加算したのちにaを評価
様々な演算 • デクリメント a = a - 1; //aから1を減算し,その結果をaに代入 a--; //aを評価したのちに1減算 --a; //aを1減算したのちにaを評価
様々な演算 • 不等号演算子 • 「>」:左辺は右辺より大きい • 「<」:右辺は左辺より大きい • 「>=」:左辺は右辺より大きい,または等しい • 「<=」:右辺は左辺より大きい,または等しい 「5>3」 ⇒ 真(True):値は1 「5<3」 ⇒ 偽(False):値は0
様々な演算 • 等価演算子と非等価演算子 • 「==」:左辺と右辺は等しい • 「!=」:左辺と右辺は等しくない a = 3; 「a == 3」 ⇒ 真(True):値は1 「a!= 3」 ⇒ 偽(False):値は0
様々な演算 • キャスト演算子 • 型を変換することが目的 • 使い方: (キャストしたい型)変数名; y = (int)x; b = (double)a;
様々な演算 • キャスト演算子 • 型を変換することが目的 int a = 10, b = 3; double c; c = a / b; printf(“%f”, a / b); printf(“%f”, c); printf(“%f”, (double)a / b ); int型の値を%fで表示 切り捨てが発生 aをdouble型に変換