第9回 基礎プログラミング I レポート課題 氏名:久保田 瑛一郎 学籍番号:c109058 語学クラス:英語1 コース:社会福祉 1 筆記問題 以下の問題を解答するにあたり、以下の表を用いる。 10進数 16進数対応表 10進 16進 2進 0 0 0 1 1 1 2 2 10 3 3 11 4 4 100 5 5 101 6 6 110 7 7 111 8 8 1000 9 9 1001 10 a 1010 11 b 1011 12 c 1100 13 d 1101 14 e 1110 15 f 1111 16 10 10000 17 11 10001 18 12 10010 19 13 10011 20 14 10100 21 15 10101 22 16 10110 23 17 10111 24 18 11000 25 19 11001 26 1a 11010 なお解答方法は16進数を10進数に変換し、そこで求めた2つの10進数を足し、そ の和を16進数に変換するものとする。 A 0x13を10進数に変換する  1 / 3ーーー(1) 1 / 3ーーー(2) * *ーーー(4) 16の1乗 / 16の0乗ーーー(3) 16 + 3 =19ーーー(5) 説明 ( )内の数字の順番で解く (1)16進数を1文字ずつ分ける (2) (1)で分けた16進数を対応表を用いて、10進数に変換 (3) (1)で分けた桁数分だけ後ろから16の累乗の指数を0から1ずつ足して書く。 例えば … 16の3乗、16の2乗、16の1乗、16の0乗 (4) (2)の累乗の値を求め、それを(1)で分けた数字と掛ける。 ただし0乗は0であるため「無視をして」その前の数字を書く。 例 1*16**0 =1 ↑ 上で述べた「その前の数字」 例 5*16**0 =5 ↑ 上で述べた「その前の数字」 (5) (3)で並べた数字をたす よって0x13=0d19となる 0x24を10進数に変換する。 2 / 4ーーー(1) 2 / 4ーーー(2) * *ーーー(4) 16の1乗 / 16の0乗ーーー(3) 32 / 4 =36ーーー(5) 説明 ( )内の数字の順番で解く (1)16進数を1文字ずつ分ける (2) (1)で分けた16進数を対応表を用いて、10進数に変換 (3) (1)で分けた桁数分だけ後ろから16の累乗の指数を0から1ずつ足して書く。 例えば … 16の3乗、16の2乗、16の1乗、16の0乗 (4) (2)の累乗の値を求め、それを(1)で分けた数字と掛ける。 ただし0乗は0であるため「無視をして」その前の数字を書く。 (5) (3)で並べた数字をたす よって0x24=0d36となる よってこの2つの数字を足せば19+36=55となる 0x55を16進数に変換 16 /55 16 /3----7↑ 0----3↑ 手順 基本的には2進数でなく、16進数に変換するので「16」で割る 後は2進数と同じように求めていく 最後に16より小さく割れなくなった場合、答えを[0あまり「前までに残っている 数」]として終了 矢印の方向に数字を読む よって0d24=0x37となる 解答 0x37 B 0x23を10進数に変換する  2 / 3ーーー(1) 2 / 3ーーー(2) * *ーーー(4) 16の1乗 / 16の0乗ーーー(3) 32 + 3 =35ーーー(5) 説明 ( )内の数字の順番で解く (1)16進数を1文字ずつ分ける (2) (1)で分けた16進数を対応表を用いて、10進数に変換 (3) (1)で分けた桁数分だけ後ろから16の累乗の指数を0から1ずつ足して書く。 例えば … 16の3乗、16の2乗、16の1乗、16の0乗 (4) (2)の累乗の値を求め、それを(1)で分けた数字と掛ける。 ただし0乗は0であるため「無視をして」その前の数字を書く。 例 1*16**0 =1 ↑ 上で述べた「その前の数字」 例 5*16**0 =5 ↑ 上で述べた「その前の数字」 (5) (3)で並べた数字をたす よって0x23=0d35となる 0x1eを10進数に変換する。 1 / eーーー(1) 1 / 14ーーー(2) * *ーーー(4) 16の1乗 / 16の0乗ーーー(3) 16 / 14 =30ーーー(5) 説明 ( )内の数字の順番で解く (1)16進数を1文字ずつ分ける (2) (1)で分けた16進数を対応表を用いて、10進数に変換 (3) (1)で分けた桁数分だけ後ろから16の累乗の指数を0から1ずつ足して書く。 例えば … 16の3乗、16の2乗、16の1乗、16の0乗 (4) (2)の累乗の値を求め、それを(1)で分けた数字と掛ける。 ただし0乗は0であるため「無視をして」その前の数字を書く。 (5) (3)で並べた数字をたす よって0x1e=0d30となる よってこの2つの数字を足せば35+30=65となる 0d65を16進数に変換 16 /65 16 /4----1↑ 0----4↑ 手順 基本的には2進数でなく、16進数に変換するので「16」で割る 後は2進数と同じように求めていく 最後に16より小さく割れなくなった場合、答えを[0あまり「前までに残っている 数」]として終了 矢印の方向に数字を読む よって0d65=0x41となる 解答 0x41 c 0xaaを10進数に変換する  a / aーーー(1) 10 / 10ーーー(2) * *ーーー(4) 16の1乗 / 16の0乗ーーー(3) 160 + 10 =170ーーー(5) 説明 ( )内の数字の順番で解く (1)16進数を1文字ずつ分ける (2) (1)で分けた16進数を対応表を用いて、10進数に変換 (3) (1)で分けた桁数分だけ後ろから16の累乗の指数を0から1ずつ足して書く。 例えば … 16の3乗、16の2乗、16の1乗、16の0乗 (4) (2)の累乗の値を求め、それを(1)で分けた数字と掛ける。 ただし0乗は0であるため「無視をして」その前の数字を書く。 例 1*16**0 =1 ↑ 上で述べた「その前の数字」 例 5*16**0 =5 ↑ 上で述べた「その前の数字」 (5) (3)で並べた数字をたす よって0xaa=0d170となる 0x33を10進数に変換する。 3 / 3ーーー(1) 3 / 3ーーー(2) * *ーーー(4) 16の1乗 / 16の0乗ーーー(3) 48 + 3 =51ーーー(5) 説明 ( )内の数字の順番で解く (1)16進数を1文字ずつ分ける (2) (1)で分けた16進数を対応表を用いて、10進数に変換 (3) (1)で分けた桁数分だけ後ろから16の累乗の指数を0から1ずつ足して書く。 例えば … 16の3乗、16の2乗、16の1乗、16の0乗 (4) (2)の累乗の値を求め、それを(1)で分けた数字と掛ける。 ただし0乗は0であるため「無視をして」その前の数字を書く。 (5) (3)で並べた数字をたす よって0x33=0d51となる よってこの2つの数字を足せば170-51=119となる 0d65を16進数に変換 16 /119 16 /7----7↑ 0----7↑ 手順 基本的には2進数でなく、16進数に変換するので「16」で割る 後は2進数と同じように求めていく 最後に16より小さく割れなくなった場合、答えを[0あまり「前までに残っている 数」]として終了 矢印の方向に数字を読む よって0d119=0x77となる 解答 0x77 プログラム問題 A 広告ホームページは http://roy/~c109058/advertise/ である なお実用部門にエントリーする。 B a 考えた設定 最近は簿記検定も人気がある。更に最近は経理も「コンピューター化」が進んで いる。そうした背景からオンラインで損益計算書を作成できる0615_bl.rbと結果 をhtmlで表示するときに使用するoption.cssを作成した。 b もとにしたプログラム あまり「もとにした」というようなプログラムは無いが、argv_ticet.rbは参照 した。 c作成したプログラム 0615_pl.rb #!/usr/koeki/bin/ruby #インタプリタ宣言文 hiyoutotal =0 syuuekitotal = 0 print("会計期間開始日を入力します\n") #これからすることを表示 STDERR.print("商店名を入力して下さい:") syouten=gets.chomp STDERR.print("会計期間西暦年を入力して下さい:") #質問表示 kikanyear = gets.chomp.to_i #その数字の改行文字をとり、整数に見なす STDERR.print("会計期間の開始の月を入力して下さい:") #質問表示 biginmonth =gets.chomp.to_i #その数字の改行文字をとり、整数に見なす if biginmonth>12 #もし12以上の文字が入力されたら(12月以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わ STDERR.print("会計期間の開始の日を入力して下さい:") #質問表示 biginday =gets.chomp.to_i #その数字の改行文字をとり、整数に見なす if biginmonth==1 #もし1とbiginmonth入力されたら(1月だったら) if biginday >31 #もし31以上入力されたら(1月は31日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==2 #もし2とbiginmonth入力されたら(2月だったら) if biginday >30 #もし30以上入力されたら(2月は30日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==3 #もし3とbiginmonth入力されたら(3月だったら) if biginday>31 #もし31以上入力されたら(3月は31日以上はないから) print("無効です/n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==4 #もし4とbiginmonth入力されたら(4月だったら) if biginday >30 #もし30以上入力されたら(4月は30日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==5 #もし5とbiginmonth入力されたら(5月だったら) if biginday>31 #もし31以上入力されたら(5月は31日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==6 #もし6とbiginmonth入力されたら(6月だったら) if biginday >30 #もし30以上入力されたら(6月は30日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==7 #もし7とbiginmonth入力されたら(7月だったら) if biginday>31 #もし31以上入力されたら(7月は31日以上はないから) print("無効です/n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==8 #もし8とbiginmonth入力されたら(1月だったら) if biginday>31 #もし31以上入力されたら(8月は31日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==9 #もし9とbiginmonth入力されたら(9月だったら) if biginday >30 #もし30以上入力されたら(9月は30日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==10 #もし10とbiginmonth入力されたら(10月だったら) if biginday>31 #もし31以上入力されたら(10月は31日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==11 #もし11とbiginmonth入力されたら(11月だったら) if biginday >30 #もし30以上入力されたら(11月は30日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif biginmonth==12 #もし12とbiginmonth入力されたら(12月だったら) if biginday>31 #もし31以上入力されたら(12月は31日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり end #2つめのifの終わり STDERR.print("会計期間の終了の月を入力して下さい:") #質問表示 finishmonth =gets.chomp.to_i #その数字の改行文字をとり、整数に見なす if finishmonth >13 #もし12以上の文字が入力されたら(12月以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり STDERR.print("会計期間の終了の日を入力して下さい:") #質問表示 finishday =gets.chomp.to_i #その数字の改行文字をとり、整数に見なす if finishmonth==1 #もし1とfinishmontに入力されたら(1月だったら) if finishday >31 #もし31以上入力されたら(1月は31日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==2 #もし2とfinishmonthに入力されたら(2月だったら) if finishday >30 #もし30以上入力されたら(2月は30日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==3 #もし3とfinishmonthに入力されたら(3月だったら) if finishday>31 #もし31以上入力されたら(3月は31日以上はないから) print("無効です/n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==4 #もし4とfinishmontに入力されたら(4月だったら) if finishday >30 #もし30以上入力されたら(4月は30日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==5 #もし5とbiginmonth入力されたら(5月だったら) if finishday>31 #もし31以上入力されたら(5月は31日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==6 #もし6とfinishmonth入力されたら(6月だったら) if finishday >30 #もし30以上入力されたら(6月は30日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==7 #もし7ととfinishmonth入力されたら(7月だったら) if finishday>31 #もし31以上入力されたら(7月は31日以上はないから) print("無効です/n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==8 #もし8とfinishmonthに入力されたら(1月だったら) if finishday>31 #もし31以上入力されたら(8月は31日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==9 #もし9とfinishmonth入力されたら(9月だったら) if finishday >30 #もし30以上入力されたら(9月は30日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==10 #もし10とfinishmonthに入力されたら(10月だったら) if finishday>31 #もし31以上入力されたら(10月は31日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==11 #もし11と入力されたら(11月だったら) if finishday >30 #もし30以上入力されたら(11月は30日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 end #ifの終わり elsif finishmonth==12 #もし12とfinishmonthに入力されたら(12月だったら) if finishday>31 #もし31以上入力されたら(12月は31日以上はないから) print("無効です\n") #結果表示 exit(0) #異常終了 p biginmonth biginday finishday end #ifの終わり end #2つ目のifのおわり print("費用を入力します\n") #説明 STDERR.print("売上原価の金額を入力して下さい:") #質問表示 uriagegenka =gets.chomp.to_i #それを10進数と見なし変数に入れる hiyoutotal+=uriagegenka #それを総費用の変数に入れる STDERR.print("給料の金額を入力して下さい:") #質問表示 kyuryou =gets.chomp.to_i #それを10進数と見なし変数に入れる hiyoutotal +=kyuryou #それを総費用の変数に入れる STDERR.print("支払家賃の金額を入力して下さい:") #質問表示 siharaiyatin =gets.chomp.to_i hiyoutotal +=siharaiyatin #それを総費用の変数に入れる STDERR.print("減価償却の金額を入力して下さい:") #質問表示 genkasyoukyaku =gets.chomp.to_i #それを10進数と見なし変数に入れる hiyoutotal +=genkasyoukyaku #それを総費用の変数に入れる STDERR.print("貸倒償却の金額を入力して下さい:") #質問表示 kasidaoresyoukyaku=gets.chomp.to_i #それを10進数と見なし変数に入れる hiyoutotal +=kasidaoresyoukyaku #それを総費用の変数に入れる STDERR.print("有価証券評価損の金額を入力して下さい:") #質問表示 yuukasyoukenhyoukason=gets.chomp.to_i #それを10進数と見なし変数に入れる hiyoutotal +=yuukasyoukenhyoukason #それを10進数と見なし変数に入れる STDERR.print("旅費交通費の金額を入力して下さい:") #質問表示 ryohikoutuuhi =gets.chomp.to_i #それを10進数と見なし変数に入れる hiyoutotal +=ryohikoutuuhi #それを総費用の変数に入れる STDERR.print("水道光熱費の金額を入力して下さい:") #質問表示 suidoukounetuhi =gets.chomp.to_i #それを10進数と見なし変数に入れ hiyoutotal +=suidoukounetuhi #それを総費用の変数に入れる STDERR.print("広告費の金額を入力して下さい:") #質問表示 koukokuhi =gets.chomp.to_i hiyoutotal +=koukokuhi #それを総費用の変数に入れる STDERR.print("雜費の金額を入力して下さい:") #質問表示 zappi =gets.chomp.to_i #それを10進数と見なし変数に入れる hiyoutotal +=zappi #それを総費用の変数に入れる STDERR.print("租税公課の金額を入力して下さい:") #質問表示 sozeikouka =gets.chomp.to_i #それを10進数と見なし変数に入れる hiyoutotal +=sozeikouka #それを総費用の変数に入れる print("収益を入力します\n") #説明 STDERR.print("売上の金額を入力して下さい:") #質問表示 uriage=gets.chomp.to_i #それを10進数とみなし、変数に入れる syuuekitotal+=uriage #それを総収益の変数に入れる STDERR.print("受取手数料の金額を入力して下さい:") #質問表示 uketoritesuuryou =gets.chomp.to_i #それを10進数とみなし、変数に入れる syuuekitotal+=uketoritesuuryou #それを総収益の変数に入れる STDERR.print("受取利息の金額を入力して下さい:") #質問表示 uketoririsoku =gets.chomp.to_i #それを10進数とみなし、変数に入れる syuuekitotal+=uketoririsoku #それを総収益の変数に入れる rieki =syuuekitotal -hiyoutotal #利益計算 open("0615_pl.html","w") do |keisan| #0615_pl.htmlに書込みを始める keisan.print("\n") #css設定 keisan.print("\n") #htmlのはじまりであることを宣言 keisan.print("\n") keisan.print("\n") #本文であることを宣言 keisan.print("

損益計算書

\n") #結果表示 keisan.printf("

%d年%d月%d日〜翌年%d月%d日まで

\n",kikanyear,biginmonth,biginday,finishmonth,finishday) #結果表示 keisan.printf("

%s\n

",syouten) #結果表示 keisan.print("\n") #表のはじまりであることを宣言 keisan.print("\n") #1行のはじまりであることを宣言 keisan.print("\n") #結果表示 keisan.print("\n") #1行の終わりであることを宣言 keisan.print("\n") #1行のはじまりであることを宣言 keisan.printf("\n",uriagegenka,uriage) #結果表示 keisan.print("\n") #1行の終わりであることを宣言 keisan.print("") #1行のはじまりであることを宣言 keisan.printf("\n",kyuryou,uketoritesuuryou) #結果表示 keisan.print("") #1行の終わりであることを宣言 keisan.print("\n") #1行のはじまりであることを宣言 keisan.printf("\n",genkasyoukyaku,uketoririsoku) keisan.print("\n") #結果表示 keisan.print("\n") keisan.printf("\n",kasidaoresyoukyaku) keisan.print("\n") #1行の終わりであることを宣言 keisan.print("\n") #1行のはじまりであることを宣言 keisan.printf("\n",siharaiyatin) keisan.print("\n") #結果表示 keisan.print("\n") keisan.printf("\n",yuukasyoukenhyoukason) keisan.print("\n") #1行の終わりであることを宣言 keisan.print("\n") #1行のはじまりであることを宣言 keisan.printf("\n",ryohikoutuuhi) keisan.print("\n") keisan.print("\n") keisan.printf("\n",suidoukounetuhi) #結果表示 keisan.print("") keisan.print("") #1行のはじまりであることを宣言 keisan.printf("\n",koukokuhi) keisan.print("\n") #1行の終わりであることを宣言 keisan.print("\n") #1行のはじまりであることを宣言 keisan.printf("\n",zappi) #結果表示 keisan.print("\n") #1行の終わりであることを宣言 keisan.print("\n") #1行のはじまりであることを宣言 keisan.printf("\n",sozeikouka) #結果表示 keisan.print("\n") #1行の終わりであることを宣言 keisan.print("\n") #1行のはじまりであることを宣言 if rieki>=0 #もし利益が0以上だったら プラスだったら keisan.printf("\n",rieki) #プラスの結果表示 else #それ以外は keisan.printf("\n",rieki*-2 /2) #マイナスの結果表示 end #ifのおわり keisan.print("\n") #1行の終わりであることを宣言 keisan.print("\n") #1行のはじまりであることを宣言 if syuuekitotal >hiyoutotal #もし費用総額よりも収益総額の方が大きかったら keisan.printf("\n",syuuekitotal,syuuekitotal) #結果表示 else #それ以外は keisan.printf("\n",hiyoutotal,hiyoutotal) #結果表示 end #ifのおわり keisan.print("\n") #1行の終わりであることを宣言 keisan.print("
費用金額収益金額
売上原価%d売上%d
給料%d受取手数料%d
減価償却費%d受取利息%d
貸倒償却%d
支払家賃%d
有価証券評価損%d
旅費交通費%d
水道光熱費%d
広告費%d
雜費%d
租税公課%d
当期純利益%d当期純損失%d
%d%d%d%d
\n") #表の終わりであることを宣言 print("\n") #本文終わりであることを宣言 print("\n") print("\n") #htmlの終わりであることを宣言 end #open 書込みの終わり option.css table.a{ border:solid 1px #000000; border-collapse:separate; } td.a{border:solid 1px #ff0000;empty-cells:show;} td.b{border-bottom:double 5px #ff0000;} d 実行結果 パターン1 pan{c109058}% ./0615_pl.rb [~/public_html/advertise] 会計期間開始日を入力します 商店名を入力して下さい:1 会計期間西暦年を入力して下さい:1 会計期間の開始の月を入力して下さい:1 会計期間の開始の日を入力して下さい:1 会計期間の終了の月を入力して下さい:1 会計期間の終了の日を入力して下さい:1 費用を入力します 売上原価の金額を入力して下さい:1 給料の金額を入力して下さい:1 支払家賃の金額を入力して下さい:1 減価償却の金額を入力して下さい:1 貸倒償却の金額を入力して下さい:1 有価証券評価損の金額を入力して下さい:1 旅費交通費の金額を入力して下さい:1 水道光熱費の金額を入力して下さい:1 広告費の金額を入力して下さい:1 雜費の金額を入力して下さい:1 租税公課の金額を入力して下さい:1 収益を入力します 売上の金額を入力して下さい:1 受取手数料の金額を入力して下さい:1 受取利息の金額を入力して下さい:1 pan{c109058}% ./0615_pl.rb [~/public_html/advertise] 会計期間開始日を入力します 商店名を入力して下さい:東京商店 会計期間西暦年を入力して下さい:2009 会計期間の開始の月を入力して下さい:4 会計期間の開始の日を入力して下さい:1 会計期間の終了の月を入力して下さい:3 会計期間の終了の日を入力して下さい:31 費用を入力します 売上原価の金額を入力して下さい:120000 給料の金額を入力して下さい:100000 支払家賃の金額を入力して下さい:4000 減価償却の金額を入力して下さい:200 貸倒償却の金額を入力して下さい:3330 有価証券評価損の金額を入力して下さい:3344 旅費交通費の金額を入力して下さい:213 水道光熱費の金額を入力して下さい:444 広告費の金額を入力して下さい:500 雜費の金額を入力して下さい:577 租税公課の金額を入力して下さい:677 収益を入力します 売上の金額を入力して下さい:1200000 受取手数料の金額を入力して下さい:4000 受取利息の金額を入力して下さい:7000 pan{c109058}% cat 0615_pl.html [~/public_html/advertise]

損益計算書

2009年4月1日〜翌年3月31日まで

東京商店

費用金額収益金額
売上原価120000売上1200000
給料100000受取手数料4000
減価償却費200受取利息7000
貸倒償却3330
支払家賃4000
有価証券評価損3344
旅費交通費213
水道光熱費444
広告費500
雜費577
租税公課677
当期純利益977715
12110001211000
結果をホームページで確認後、当期純利益977715円と表示された パターン2 pan{c109058}% ./0615_pl.rb [~/public_html/advertise] 会計期間開始日を入力します 商店名を入力して下さい:名古屋商店 会計期間西暦年を入力して下さい:2010 会計期間の開始の月を入力して下さい:6 会計期間の開始の日を入力して下さい:1 会計期間の終了の月を入力して下さい:5 会計期間の終了の日を入力して下さい:31 費用を入力します 売上原価の金額を入力して下さい:120000 給料の金額を入力して下さい:400000 支払家賃の金額を入力して下さい:200000 減価償却の金額を入力して下さい:5000 貸倒償却の金額を入力して下さい:7567 有価証券評価損の金額を入力して下さい:5656 旅費交通費の金額を入力して下さい:45657 水道光熱費の金額を入力して下さい:554 広告費の金額を入力して下さい:6556 雜費の金額を入力して下さい:4330 租税公課の金額を入力して下さい:120000 収益を入力します 売上の金額を入力して下さい:400000 受取手数料の金額を入力して下さい:100 受取利息の金額を入力して下さい:100 pan{c109058}% cat 0615_pl.html [~/public_html/advertise]

損益計算書

2010年6月1日〜翌年5月31日まで

名古屋商店

費用金額収益金額
売上原価120000売上400000
給料400000受取手数料100
減価償却費5000受取利息100
貸倒償却7567
支払家賃200000
当期純損失515120
915320915320
結果はホームページにて、当期純損失、515120円と確認された e考察 bcーlで試算する。 パターン1 pan{c109058}% bc -l [~/public_html/advertise] 1200000+4000+7000 1211000 120000+100000+200+3330+4000+3344+213+444+500+577+677 233285 1211000-233285 977715 quit パターン2 pan{c109058}% bc -l [~/public_html/advertise] 400000+100+100 400200 120000+400000+5000+7567+200000+5656+45657+554+6556+4330+120000 915320 400200-915320 -515120 quit 以上の2パターンの結果から、このプログラムが正確であることが示された。 今回のプログラムの出来は、満足できているのだが、このプログラムだと会社法 改正などによる勘定科目(水道光熱費などの表記の変更)に対応できない。 したがって予め勘定科目を記載した配列を作っておき、openで読みこむというこ とも出来るだろう。 なお利益がマイナスのときも「損失」と明記されているため、普通マイナスはつ けないのだが、マイナスをつけないで、表示する際の考え方は以下のとおりであ る。 1 マイナスがついた利益が出る→「損失」と明記されているので純粋に数字だけ 表示したい。 2 1の数字を−2倍する。→「ー」*「ー」=「+」であるので。 3 このままだと数字も2倍されているので、2で割る。 f 感想 今回は最高傑作なので、今まで提出したプログラムよりも、格段に長くなった。 今回は自分の知識をいかして、会計プログラムを作成したが、私自身良い「思い だしの時間」になった。なおかつ楽しかった。この勢いで次回以降も頑張ってい きたい。 g参考文献 10進数 16進数 変換 http://7ujm.net/play/DECtoHEX/TOH.html はじめての簿記3級 http://www.bookkeep.info/boki8/syou3-9-16.html はじめての簿記3級 勘定科目一覧 http://www.bookkeep.info/kamoku/kamoku.html HTMLクイックリファレンス ボーダー 、背景、テーブル http://www.htmq.com/style/index.shtml 西村まどか 2010年講義ノート 基礎プログラミング I 第8回 table tag出力 ttp://roy.e.koeki-u.ac.jp/~madoka/2010/r1/08/08_09_theme_04_tabletag.html 西村まどか 2010年講義ノート 基礎プログラミング I 第8回 色を付けよう http://roy.e.koeki-u.ac.jp/~madoka/2010/r1/08/08_11_review_06_colorandfonts.html 西村まどか 2010年講義ノート 基礎プログラミング I 第8回 CSSの色見本 http://roy.e.koeki-u.ac.jp/~madoka/2010/r1/08/08_12_appendix_01_safecolor.html 西村まどか 2010年講義ノート 基礎プログラミング I 第8回 取り扱い説明書の 雛型 http://roy.e.koeki-u.ac.jp/~madoka/2009/r1/stringtheory/00readme なお、今回は作品の性格上、会計に関する問題を作成し、ホームページに掲載し、それを解くことにより、より購買力アップが図れるようにしたため、掲載した問題と解答もともに添付する。 共同学習者: 横山広樹/青木 千紗/大島藍