Processingプログラミング - ホームkamiya/pp/pp2018-pp1.pdf · •第15回:Java プログラミング(2) 条件分岐 •定期試験 後期:プログラミング基礎Ⅰへ続く
プログラミング Ⅰ ( 1 組) 第 4 回
description
Transcript of プログラミング Ⅰ ( 1 組) 第 4 回
タイピングソフト• 喰人王を使用して結果を記録する• ステージ:第一の店(中華)• Excel のシートにスコアを毎回記録していく– 残り時間 ⇒ FeedBack ページで報告– 総タイプ数– ミスタイプ数– 正確さ ⇒ FeedBack ページで報告– 喰いっぷり ⇒ FeedBack ページで報告
• このシートは,途中で提出してもらいます
char 型について• char 型は, 1 バイトの大きさ– 256 種類の値を表現できる( 16 進数で 00 ~
FF )
• char 型は ASCII コードとして利用される(注意:文字型だけでなく,整数も使え
る)
ASCII コード表 0 1 2 3 4 5 6 70 NUL DLE SP 0 @ P ` p1 SOH DC1 ! 1 A Q a q2 STX DC2 " 2 B R b r3 ETX DC3 # 3 C S c s4 EOT DC4 $ 4 D T d t5 ENQ NAK % 5 E U e u6 ACK SYN & 6 F V f v7 BEL ETB ' 7 G W g w8 BS CAN ( 8 H X h x9 HT EM ) 9 I Y i yA LF SUB * : J Z j zB VT ESC + ; K [ k {C FF IS4 , < L \ l |D CR IS3 - = M ] m }E SO IS2 . > N ^ n ~F SI IS1 / ? O _ o DEL
黄色:上位の桁緑色:下位の桁
ASCII コードの 48(16) は,「 H 」
ASCII コード表 0 1 2 3 4 5 6 70 NUL DLE SP 0 @ P ` p1 SOH DC1 ! 1 A Q a q2 STX DC2 " 2 B R b r3 ETX DC3 # 3 C S c s4 EOT DC4 $ 4 D T d t5 ENQ NAK % 5 E U e u6 ACK SYN & 6 F V f v7 BEL ETB ' 7 G W g w8 BS CAN ( 8 H X h x9 HT EM ) 9 I Y i yA LF SUB * : J Z j zB VT ESC + ; K [ k {C FF IS4 , < L \ l |D CR IS3 - = M ] m }E SO IS2 . > N ^ n ~F SI IS1 / ? O _ o DEL
黄色:上位の桁緑色:下位の桁
H e l l o W ro l d
48 65 6C 6C 6F 20 6F57 6C72 64 0A
SPACE
Line Feed( \n )
変数に値を入れる
① 30 = x; // 間違い② x = 10 + 20; //10+20 の計算結果を x に代入③ x = x + 1; //x + 1 の計算結果を x に代入④ x = 0x41 // 16進数の 41 をxに代入⑤ x = ‘A’; //x = 0x41 と同じこと
65 xxという変数に, 65 という整数値を格納(代入)
x = 65;
printf 関数
型 意味 例 結果d 整数を 10 進数で表示 a = 123; printf(“%d”,a); 123
x 整数を 16 進数で表示 a = 123; printf(“%x”,a); 7b
c 1文字を表示 a = ‘R’; printf(“%c”,a); R
s 文字列を表示 char *a=“ABC”; printf(“%s”,a); ABC
f 実数を 10 進数で表示 a = 123.45; printf(“%f”,a); 123.450000
• 変数の中身を表示することが可能• 書式を指定することが可能
演算複合演算子演算子 使用例 意味 算術演算子+= a += b a に b を加えた値を a に代入 a = a + b
-= a -= b a から b を引いた値を a に代入
a = a – b
*= a *= b a に b を掛けた値を a に代入 a = a * b
/= a /= b a を b で割った値を a に代入 a = a / b
%= a %= b a を b で割った余りを a に代入
a = a % b
前回の課題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 コード表 0 1 2 3 4 5 6 70 NUL DLE SP 0 @ P ` p1 SOH DC1 ! 1 A Q a q2 STX DC2 " 2 B R b r3 ETX DC3 # 3 C S c s4 EOT DC4 $ 4 D T d t5 ENQ NAK % 5 E U e u6 ACK SYN & 6 F V f v7 BEL ETB ' 7 G W g w8 BS CAN ( 8 H X h x9 HT EM ) 9 I Y i yA LF SUB * : J Z j zB VT ESC + ; K [ k {C FF IS4 , < L \ l |D CR IS3 - = M ] m }E SO IS2 . > N ^ n ~F SI IS1 / ? O _ o DEL
黄色:上位の桁緑色:下位の桁
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 コード表 0 1 2 3 4 5 6 70 NUL DLE SP 0 @ P ` p1 SOH DC1 ! 1 A Q a q2 STX DC2 " 2 B R b r3 ETX DC3 # 3 C S c s4 EOT DC4 $ 4 D T d t5 ENQ NAK % 5 E U e u6 ACK SYN & 6 F V f v7 BEL ETB ' 7 G W g w8 BS CAN ( 8 H X h x9 HT EM ) 9 I Y i yA LF SUB * : J Z j zB VT ESC + ; K [ k {C FF IS4 , < L \ l |D CR IS3 - = M ] m }E SO IS2 . > N ^ n ~F SI IS1 / ? O _ o DEL
黄色:上位の桁緑色:下位の桁
「 S 」 は, ASCII コードの 53(16)
前回の課題printf(“%x %x %x %x %x %x\n”, ‘S’, ‘u’, ‘n’, ‘d’, ‘a’, ‘y’);
%x : 16 進数の整数として表示
ASCII 文字の S
結果:53 75 6e 64 61 79
= 53(16)
前回の課題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 を評価
様々な演算• 不等号演算子– 「>」:左辺は右辺より大きい– 「<」:右辺は左辺より大きい– 「>=」:左辺は右辺より大きい,または等
しい– 「<=」:右辺は左辺より大きい,または等
しい「5>3」 ⇒ 真( True ):値は1「5<3」 ⇒ 偽( False ):値は0
様々な演算• 等価演算子と非等価演算子– 「==」:左辺と右辺は等しい– 「!=」:左辺と右辺は等しくない
a = 3;「 a == 3 」 ⇒ 真( True ):値は1「 a != 3 」 ⇒ 偽( False ):値は0