2 ASCII コードと文字型変数 2-1 ASCII コード 文字 コードコードコードコードコードコードコードコード文字文字文字文字文字文字文字 10 進 10 進 10 進 10 進 10 進 10 進 10 進 10 進 0 16 SP P 80 ` 96 p 112

Similar documents
PowerPoint Presentation

ポインタ変数

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

Microsoft Word - no103.docx

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

ポインタ変数

解答編 第 9 章文字データの取り扱い 演習問題 9.1 文法事項 1 ) コンピュータにおける 文字データの取り扱いについて説明しなさい コンピュータでは 文字に整数の番号を割り当てて ( コード化して ) 文字コードとして扱います 実際に用いられる文字コードとして ASCII コード EUC コ

講習No.8

基礎プログラミング2015

第2回講義:まとめ

ポインタ変数

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

プログラミング実習I

講習No.1

6 関数 6-1 関数とは少し長いプログラムを作るようになると 同じ処理を何度も行う場面が出てくる そのたびに処 理を書いていたのでは明らかに無駄であるし プログラム全体の見通しも悪くなる そこで登場す るのが 関数 である 関数を使うことを 関数を呼び出す ともいう どのように使うのか 実際に見て

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

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

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft PowerPoint - prog03.ppt

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

Microsoft Word - 3new.doc

Microsoft Word - no11.docx

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

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

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

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

kiso2-09.key

ポインタ変数

Microsoft Word - no15.docx

PowerPoint プレゼンテーション

ガイダンス

PowerPoint プレゼンテーション

memo

Report#2.docx

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

ファイル入出力

Microsoft Word - no202.docx

Microsoft PowerPoint - prog04.ppt

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

物質工学科 田中晋

Microsoft PowerPoint - å®�æ−•è©¦é¨fi3ㆮ対ç�Œ.pptx

Prog1_2nd

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

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

プログラミング基礎

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

Microsoft Word - java a.doc

※ ポイント ※

3-4 switch 文 switch 文は 単一の式の値によって実行する内容を決める ( 変える ) 時に用いる 例えば if 文を使って次のようなプログラムを作ったとする /* 3 で割った余りを求める */ #include <stdio.h> main() { int a, b; } pri

講習No.9

PowerPoint Presentation

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

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

Microsoft Word - no204.docx

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

Word2013基礎 基本操作

I ASCII ( ) NUL 16 DLE SP P p 1 SOH 17 DC1! 1 A Q a q STX 2 18 DC2 " 2 B R b

JavaプログラミングⅠ

初歩のC言語ターミナル_2014_May.pages

1. 入力した文字列を得る 1.1. 関数 scanf() を使う まずは関数 scanf() を使ったプログラムを作ってみましょう 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: #include<stdio.h> #define SIZE 128 main(

Microsoft PowerPoint - prog03.ppt

情報処理Ⅰ演習

スライド 1

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

メソッドのまとめ

UNIX 初級講習会 (第一日目)

Microsoft Word - Training10_プリプロセッサ.docx

関数の動作 / printhw(); 7 printf(" n"); printhw(); printf("############ n"); 4 printhw(); 5 関数の作り方 ( 関数名 ) 戻り値 ( 後述 ) void である. 関数名 (

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

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

PowerPoint プレゼンテーション

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

ファイル入出力

PowerPoint プレゼンテーション

kiso2-03.key

02: 変数と標準入出力

Microsoft PowerPoint - prog06.ppt

02: 変数と標準入出力

Microsoft PowerPoint - 計算機言語 第7回.ppt

Report#2.docx

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

第1回 プログラミング演習3 センサーアプリケーション

Microsoft PowerPoint - 5Chap15.ppt

計算機プログラミング

講習No.12

Taro-ポインタ変数Ⅰ(公開版).j

Microsoft PowerPoint - prog07.ppt

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

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

Microsoft PowerPoint - w5.pptx

Microsoft PowerPoint - 11.pptx

Microsoft PowerPoint - 説明2_演算と型(C_guide2)【2015新教材対応確認済み】.pptx

02: 変数と標準入出力

スクールCOBOL2002

02: 変数と標準入出力

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

Microsoft PowerPoint ppt

Transcription:

2 ASCII コードと文字型変数 2-1 ASCII コード 文字 コードコードコードコードコードコードコードコード文字文字文字文字文字文字文字 10 進 10 進 10 進 10 進 10 進 10 進 10 進 10 進 0 16 SP 32 0 48 @ 64 P 80 ` 96 p 112 1 17! 33 1 49 A 65 Q 81 a 97 q 113 2 18 " 34 2 50 B 66 R 82 b 98 r 114 3 19 # 35 3 51 C 67 S 83 c 99 s 115 4 20 $ 36 4 52 D 68 T 84 d 100 t 116 5 21 % 37 5 53 E 69 U 85 e 101 u 117 6 22 & 38 6 54 F 70 V 86 f 102 v 118 \a 7 23 ' 39 7 55 G 71 W 87 g 103 w 119 \b 8 24 ( 40 8 56 H 72 X 88 h 104 x 120 \t 9 25 ) 41 9 57 I 73 Y 89 i 105 y 121 \n 10 26 * 42 : 58 J 74 Z 90 j 106 z 122 \v 11 27 + 43 ; 59 K 75 [ 91 k 107 123 \f 12 28, 44 < 60 L 76 \ 92 l 108 124 \r 13 29-45 = 61 M 77 ] 93 m 109 125 14 30. 46 > 62 N 78 ^ 94 n 110 ~ 126 15 31 / 47? 63 O 79 _ 95 o 111 DEL 127 \a(alert) : 警報音 ( ピーとかピッとか 機械によって違う ) を 1 回鳴らす \b(backspace) : 直前の位置へ移動する \t(horizontal tab) : 次の水平タブ位置へ移動する \n(new line) : 改行して 次の行の先頭へ移動する \r(carriage return) : 現在の行の先頭位置へ移動する SP(space) : スペース なお \f,\v はプリンタへの出力で用いられるので説明は略 また 128~255 までは半角カタカナなどが割り当てられているが 機種によって違う 半角カ タカナを使うと文字化けを起こすことがあるのは この為である

次のプログラムを実行してみよう ( イヤホンを付けること ボリューム注意 ) printf( a ahello n ); /* 警告音が 2 回鳴った後 Hello と表示される */ printf( Good night b b b b bmorning n ); /* Good morning と表示される */ printf( H te tl tl to n ); /* H e l l o と表示される */ printf( April rmay n ); /* Mayil と表示される */ 最初の printf は問題ないだろう 2 つめは Good night 表示した後カーソルが 5 つ戻って n の位置になり そこから morning を上書きするので Good morning となる 3 つめは 各文字の間にタブが入るので 離れて表示される 最後は April と表示した後 カーソルが先頭の A の位置になり そこから May が上書きされるので Mayil と表示される 問題 2-1 次のプログラムを実行するとどう表示されるか プログラムを実行せずに考えなさい ただし タブはスペース 4 文字文とする printf( Cat b bome bing n ); printf( tdog tpig n ); printf( Cool rhot n ); printf( Blue t bmoon n )

2-2 文字型 文字型 となっているが 実質は整数型で 0~255 または-127~127 までを範囲とする 文字型変数に文字を代入すると 入力した文字の ASCII コードが変数に格納される なお 文字型変数の宣言は char で行う また 文字型変数への代入は ASCII コードを数字で入力するか 代入したい文字 ( 一文字 ) を ( シングルクオーテーション ) でくくる char ch = b ; printf( ch = %c n, ch); printf( ch = %d n, ch); 実行結果 b 98 実行結果からも分るとおり %c で指定すると文字を %s で指定すると数字 ( 文字の ASCII コード ) を表示する また 文字型同士の演算も出来る char ch1 = f ; char ch2 = c ; printf( %d n, ch2 ch1); printf( %c n, a + 4); printf( %c n, 1 + 3 ); 実行結果 -3 e d

アルファベットの小文字を入力して それが何文字かを表示せよ ( a を 1 文字目とする ) また その文字の大文字を表示せよ という問題は 2 通りの書き方が出来る char ch; int num; printf(" アルファベットの小文字を入力して下さい :"); scanf("%c", &ch); num = ch - 96; printf("%c はアルファベットの %d 文字目です n", ch, num); printf("%c の大文字は %c です n", ch, 64 + num); char ch; int num; printf(" アルファベットの小文字を入力して下さい :"); scanf("%c", &ch); num = ch a ; printf("%c はアルファベットの %d 文字目です n", ch, num + 1); printf("%c の大文字は %c です n", ch, A + num); 上は 文字コードの数字を使って計算している 下は 文字そのものを使って計算している 英数字を使っている分にはどちらでも問題ないはずだが 万が一割り当てられたコード番号が違うような場合 下のような書き方をするとコード番号を意識せずプログラムを動かすことが出来る

問題 2-2 次のプログラムの間違いを訂正せよ なお 各行の左端は行番号なので気にしなくてよい 1:/* 入力したアルファベットの小文字を指定した文字数ずらし 2: さらに大文字に変換する暗号を作る */ 3: 4:main 5: 6: chara Cha; /* 入力された文字を格納する変数 */ 7: int shift; /* ずらす文字数を格納 8: imt new_c; /* 変換された文字の文字コードを格納 */ 9: 10: printf( アルファベットの小文字を入力して下さい :); 11: scanf( %d, &cha); 12: printf( 何文字ずらしますか : ) 13: scanf( %d, shift); 14: 15: new_c = (cha + shift a ) / 26 + A ; 16: printf( %c を変換すると %c になります n, &cha, &num);

問題解答 2-1 実行結果 Coming Dog Hotl BlueMoon Pig 1 行目は Cat と出力後 2 つ戻って ome を上書きして Come となり さらに一つ戻って ing を上書きして Coming になる 2 行目は Dog と Pig の前に それぞれタブが入る 3 行目は Cool と出力した後カーソルが先頭に戻って Hot と上書きするので Hotl となる 4 行目は Blue と入力した後タブが入る 次に \b で一文字戻るが タブも 1 文字なので e の次にカーソルが移動する そして Moon が出力されるので 全体で BlueMoon となる 2-2 4 行目 : main の後に() がない 6 行目 : char が chara になっている 7 行目 : コメントの最後の */ が抜けている 8 行目 : int が imt になっている 10 行目 : が抜けている 11 行目 : 文字の入力に %d が使われている 12 行目 : 最後の ; が抜けている 13 行目 : 変数の前の & が抜けている 16 行目 : 変数に & が付いている 最後の が抜けている 変数名を Cha で宣言しているのに cha を使っている 小文字と大文字は区別される なお 15 行目の計算は間違いではない コードの数字を使う代わりに コードが表す文字を使っている