プログラミング 1 ( 手続き ) const n = 3; TVector = array[1..n] of integer; // 3 次元ベクトルを表示するための手続き procedure print(a:tvector); write('('); for i := 1 to n-1 do write(a[i],','); write(a[n],')'); // プログラム本体 vec: TVector; write(i, '>> '); readln(vec[i]); print(vec); 東海大学理学部情報数理学科 1
const n = 3; TVector = array[1..n] of integer; procedure print(a:tvector); write('('); for i := 1 to n-1 do write(a[i],','); write(a[n],')'); function plus(v1,v2:tvector):tvector; answer: TVector; answer[i] := v1[i] + v2[i]; plus := answer; vec1,vec2,vec3: TVector; 東海大学理学部情報数理学科 2
write(i, '>> '); readln(vec1[i]); write(i, '>> '); readln(vec2[i]); vec3 := plus(vec1,vec2); print(vec1); write('+'); print(vec2); write('='); print(vec3); procedure koukan(x,y:integer); tmp: integer; tmp := x; x := y; y :=tmp; a,b: integer; readln(a); 東海大学理学部情報数理学科 3
readln(b); writeln('a: ',a,'b: ',b); koukan(a,b); writeln('a: ',a,'b: ',b); procedure koukan( x,y:integer); tmp: integer; tmp := x; x := y; y :=tmp; a,b: integer; readln(a); readln(b); writeln('a: ',a,'b: ',b); koukan(a,b); writeln('a: ',a,'b: ',b); 東海大学理学部情報数理学科 4
// 平均を求めるプログラム const n = 5; TData = array[1..n] of integer; function average(data1:tdata):real; i,sum: integer; sum := 0; sum := sum + data1[i]; average := sum / n; procedure InputData( data1:tdata); readln(data1[i]); data: TData; 東海大学理学部情報数理学科 5
InputData(data); writeln(' 平均 : ',average(data):10:3); // 小文字を大文字に変換するプログラム const n = 30; TStr30 = string[n]; procedure henkan( s:tstr30); len, len := Length(s); for i := 1 to len do if (Ord(s[i]) >= 97) and (Ord(s[i]) <= 122) then s[i] := Chr(Ord(s[i])-32); str: TStr30; readln(str); henkan(str); writeln(' 変換後 : ',str); 東海大学理学部情報数理学科 6
// 整数を降順に並び替えるプログラム const n = 5; TData = array[1..n] of integer; procedure koujun( data1:tdata); i,j,tmp: integer; for i := 1 to n-1 do for j := i+1 to n do if data1[i] < data1[j] then tmp := data1[i]; data1[i] := data1[j]; data1[j] := tmp; procedure InputData( data1:tdata); readln(data1[i]); procedure OutputData(data1:TData); 東海大学理学部情報数理学科 7
writeln('<< ', data1[i]); data: TData; InputData(data); koujun(data); OutputData(data); 課題問題 1. 4 個の整数を読み込んで 2 行 2 列の行列を表示するプログラムを作成せよ ただし 行列を表示する部分は手続きを用いること 2. 2 行 2 列の行列の和を計算し 表示するプログラムを作成せよ ただし 行列の和を計算する部分は関数を用い 行列を表示する部分は手続きを用いること 3. 5 個の整数を読み込んで 横 1 列に表示するプログラムを作成せよ ただし 整数を横 1 列に表示する部分は手続きを用いること 4. 5 個の整数を読み込んで 横 1 列に昇順に表示するプログラムを作成せよ ただし 昇順に並び替える部分は関数を用い 横 1 列に表示する部分は手続きを用いること 5. 九九の表を書き出すプログラムを作成せよ ただし 九九の表を書き出す部分は手続きを用いること 6. 正整数 a,b を読み込んで a/b の分数表記をするプログラムを作成せよ ただし 分数表記をする部分は手続きを用いること 7. 複素数を書き出すプログラムを作成すること ただし 複素数を書き出す部分は手続きを用いること 8. 乱数を用いて 0 以上 1000 以下の整数を 100 個生成し 最大値を求めるプログラムを作成せよ ただし 整数を生成する部分は手続きを 最大値を求める部分は関数を用いること 9. 英字からなる文字列を読み込んで 先頭の文字を大文字に それ以降の文字のすべてを小文字に変換するプログラムを作成せよ ただし 変換する部分は手続きを用いること 東海大学理学部情報数理学科 8
10. 英字からなる文字列 str と文字 ch1, ch2 を読み込んで str に含まれる文字 ch1 を ch2 に置き換えてできる文字列を出力するプログラムを作成せよ ただし 変換する部分は手続きを用いること 11. サイズ 10 の整数の配列を別の配列にコピーするプログラムを作成せよ ただし テータを読み込む部分とコピーする部分は手続きを用いること 12. 正整数 a,b を読み込んで a/b の分数表記をするプログラムを作成せよ ただし a/b は既約分数とし 分数表記をする部分は手続きを 最大公約数を用いる部分は関数を用いること 東海大学理学部情報数理学科 9