1 / 18

情報科学1( G1)  # 9

情報科学1( G1)  # 9. 演算と型 文字列の演算 英語の名詞を読み、その複数形を出力する. 変数(および定数)の型 (Type) と演算. 異なる型の間の演算は定義されていないこともある 同じ 演算子でも異なる演算を行なうことが ある ‘+’ 整数 同士なら加算,文字列同士なら 連結. 2つの文字列を 読み取り連結 して出力するプログラム. 2つの整数を 読み取り加算 して出力するプログラム. program Add; var x,y,z : integer; begin readln (x); readln (y);

Download Presentation

情報科学1( G1)  # 9

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 情報科学1(G1) #9 • 演算と型 • 文字列の演算 • 英語の名詞を読み、その複数形を出力する

  2. 変数(および定数)の型(Type)と演算 • 異なる型の間の演算は定義されていないこともある • 同じ演算子でも異なる演算を行なうことがある ‘+’ 整数同士なら加算,文字列同士なら連結

  3. 2つの文字列を読み取り連結して出力するプログラム2つの文字列を読み取り連結して出力するプログラム 2つの整数を読み取り加算して出力するプログラム program Add; var x,y,z : integer; begin readln(x); readln(y); z := x+y; writeln('z is ',z); end. program Concat; var x,y,z : string[255]; begin readln(x); readln(y); z := x+y; writeln('z is ',z); end.

  4. 2つの文字列を読み取り連結して出力するプログラム2つの文字列を読み取り連結して出力するプログラム 2つの整数を読み取り加算して出力するプログラム program Concat; var x,y,z : string[255]; begin readln(x); readln(y); z := x+y; writeln('z is ',z); end. program Add; var x,y,z : integer; begin readln(x); readln(y); z := x+y; writeln('z is ',z); end.

  5. 整数と文字列を読み取り (連結/加算)して出力するプログラム program Adderror; var y,z : string[255]; x : integer; begin readln(x); readln(y); z := x+y; writeln('z is ',z); end. 整数の加算: (integer) + (integer) = (integer) 文字列の連結: (string) + (string)= (string) 整数と文字列の演算は定義されていない. (integer) + (string)= ?

  6. adderr.pas: In main program: adderr.pas:8: error: invalid operands to `+’ 演算子 + のoperand(演算される値)がおかしい

  7. 値の比較 • 数値は大小関係がある • 文字列の比較はいわゆる辞書順 a<b a>b a>=b a<=b a=b a<>b

  8. 文字列の比較 数値の比較 program SmallerStringFirst; var x,y : string[255]; begin writeln('Type two string.'); readln(x); readln(y); writeln('In order, they are'); if x > y then writeln(y,' ',x) else writeln(x,' ',y); end. program SmallerIntegerFirst; var x,y : integer; begin writeln('Type two integers.'); readln(x); readln(y); writeln('In order, they are'); if x > y then writeln(y,' ',x) else writeln(x,' ',y); end.

  9. 整数の演算 +加算 ー減算 *乗算 div 除算(余りは切り捨て) mod 剰余 / 除算(結果は実数型)

  10. 文字列の演算 + 文字列の連結 copy(str, start, nchar) 文字列strのstart番目からnchar文字 length(str) 文字列strの長さ pos(x,y) 文字列yの中の文字列xの位置

  11. copy(str,start,nchar) 文字列strのstart番目からnchar文字を取り出す x = 'abcdefgh'である時 y := copy(x,3,4) y = 'cdef' y := copy(x,1,1) y = 'a' y := copy(x,6,1) y = 'f' y := copy(x,9,2) y = ‘’  (長さ0の文字列)

  12. length(str) 文字列strの長さ 以下のプログラムは4を出力する program FindLength; var x : string[255]; y : integer; begin x := 'abcd'; y := length(x); writeln(y); end.

  13. length(str)文字列strの長さ 出力される値は? program FindIt; var x,y : string[255]; begin readln(x); y := copy(x,length(x),1); writeln(y); end.

  14. copyとlengthを組み合わせる copy(x,length(x)-1,1) xの最後から2番目の文字 copy(x,length(x)-2,1) xの最後から3番目の文字 copy(x,length(x)-1,2) xの最後の2文字 copy(x,1,1) xの最初の1文字 copy(x,1,2) xの最初の2文字 copy(x,1,length(x)-1) xの最後の1文字を除いた文字列 copy(x,2,length(x)-1) xの最初の1文字を除いた文字列 copy(x,2,length(x)-2) xの最初と最後の1文字を除いた文字列 copy(c,1,length(x) div 2) xの前半分の文字列

  15. pos(x,y)文字列yの中の文字列xの位置 x = 'cde’y = 'abcdef’ pos(x,y) = 3 x = 'de’ y = 'abcdef’ pos(x,y) = 4 x = 'def’ y = 'abcdef’ pos(x,y) = 4 x = 'aa’ y = 'abcdef’ pos(x,y) = 0 x = 'bc’ y = 'abcbcbc’ pos(x,y) = 2 x = 'cbc’ y = 'abcbcbc’ pos(x,y) = 3 x = 'a’ y = 'abcdef’ pos(x,y) = 1 x = 'abcd’ y = 'abc' pos(x,y) = 0 xがyの中にないならば,0となる

  16. 英語の名詞を読み取り,その複数形を書き出すプログラム英語の名詞を読み取り,その複数形を書き出すプログラム bird birds whale whales cow cows pony ponies bunny bunnies sheep sheep mouse mice

  17. 英語の名詞を読み取り,その複数形を書き出すプログラム英語の名詞を読み取り,その複数形を書き出すプログラム 基本的な考え方: 入力される名詞が特殊なら,その複数形を出力,そうでないなら,規則を適用

  18. アルゴリズム 1.名詞を入力する 2.それが,既知の特殊なケースかどうかを調べる 3.特殊ならその複数形を選択し作業終了の印を付ける 4.特殊でない場合名詞が‘y’で終わっているかを調べる  (a)‘y’で終わっていたら,‘y’を削除して,‘ies’をつける  (b)それ以外は‘s’をつける 5.複数形を書き出す

More Related