Open hayato0718 opened 5 years ago
せいかい
タ m = a[0]
ツ c = 0
ウ a.each do |x|
カ if x == m
ト c = c + 1
イ end
イ end
コ if c == a.length
ナ return 'OK'
イ end
ニ return 'NO'
イ end
くそこーど
def examine(a) if m != a[0] a.each_index do |i| m = m / a.length return m end end
せいかい
コ m = 0.0
ウ a.each_index do |i|
サ m = m + a[i]
イ end
ソ return m
イ end
張り付ける順番間違えました。。。
ミスタ!
伊東さん!あれっす!提出前に end
の数を確認したほうがいいっす!
あー、そうか。 でも、たぶん間違えてますね。。。 勉強しなおさんとやばい。
if x == m
if m == a[0]
a.each do |x|
return 'OK'
end
end
パッと見てインデントがおかしい!と思ったら要注意です。
僕もよく間違えるので人のこと言えないのですが
[i1920003@itc115 ~/fp19]$ irb
irb(main):001:0> load '3/array01.rb'
LoadError: cannot load such file -- 3/array01.rb
from (irb):1:in `load'
from (irb):1
from /usr/bin/irb:12:in `<main>'
irb(main):002:0> ]load '4/array01.rb'
SyntaxError: (irb):2: syntax error, unexpected ']'
]load '4/array01.rb'
^
from /usr/bin/irb:12:in `<main>'
irb(main):003:0> array01
NameError: undefined local variable or method `array01' for main:Object
from (irb):3
from /usr/bin/irb:12:in `<main>'
irb(main):004:0> load '4/array01.rb'
=> true
irb(main):005:0> array01
=> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
irb(main):006:0> load '4/times.rb'
SyntaxError: 4/times.rb:5: syntax error, unexpected ':', expecting keyword_end
2*i+1: 1,3,5,7,9
^
from (irb):6:in `load'
from (irb):6
from /usr/bin/irb:12:in `<main>'
irb(main):007:0> load '4/times.rb'
=> true
irb(main):008:0> times
NameError: undefined local variable or method `times' for main:Object
from (irb):8
from /usr/bin/irb:12:in `<main>'
irb(main):009:0> times.rb
NameError: undefined local variable or method `times' for main:Object
from (irb):9
from /usr/bin/irb:12:in `<main>'
irb(main):010:0> array01times
=> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
irb(main):011:0> load '4/1_a.rb'
=> true
irb(main):012:0> array01(10)
=> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
irb(main):013:0> array01(20)
=> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
irb(main):014:0> load '4/1_b.rb'
=> true
irb(main):015:0> array01(2)
=> [0, 1, 1]
irb(main):016:0> array01(2)
=> [0, 1, 1]
irb(main):017:0> load '4/1_b.rb'
=> true
irb(main):018:0> array01(2)
=> [0, 1, 1]
irb(main):019:0> load '4/1_b.rb'
=> true
irb(main):020:0> array01(2)
=> [0, 1, 1]
irb(main):021:0> array01(2)
=> [0, 1, 1]
irb(main):022:0> load '4/1_b.rb'
=> true
irb(main):023:0> array01(2)
=> [0, 1]
irb(main):024:0> array01(4)
=> [0, 0, 1, 1]
irb(main):025:0> array01(3)
=> [0, 1, 1]
irb(main):026:0> array01(5)
=> [0, 0, 1, 1, 1]
irb(main):027:0> [3,2,1]
=> [3, 2, 1]
irb(main):028:0> [2,1]
=> [2, 1]
irb(main):029:0> Arrya.new(2)
NameError: uninitialized constant Arrya
from (irb):29
from /usr/bin/irb:12:in `<main>'
irb(main):030:0> Array.new(2)
=> [nil, nil]
irb(main):031:0> load '4/1_b.rb'
=> true
irb(main):032:0> array01(3)
=> [0, 1, 1]
irb(main):033:0> array01(2)
=> [0, 1]
irb(main):034:0> load '4/1_c.rb'
=> true
irb(main):035:0> array01(2)
=> [2, 1]
irb(main):036:0> array01(3)
=> [3, 2, 1]
irb(main):037:0> load '4/global.rb'
=> true
irb(main):038:0> sum(1)
=> 1
irb(main):039:0> sum(2)
=> 3
irb(main):040:0> load '4/global.rb'
=> true
irb(main):041:0> sum_not_global(1)
=> 1
irb(main):042:0> sum_not_global(2)
=> 2
irb(main):043:0> load '4/global.rb'
=> true
irb(main):044:0> sum(1)
=> 1
irb(main):045:0> sum(2)
=> 3
irb(main):046:0> puts $x
3
=> nil
irb(main):047:0> sum_not_global(1)
=> 1
irb(main):048:0> sum(2)
=> 5
irb(main):049:0> sum_not_global(2)
=> 2
irb(main):050:0> puts y
NameError: undefined local variable or method `y' for main:Object
from (irb):50
from /usr/bin/irb:12:in `<main>'
irb(main):051:0> load '4/global.rb'
=> true
irb(main):052:0> master?
=> "masterへ挑戦できる"
irb(main):053:0> load '4/global.rb'
=> true
irb(main):054:0> master?
=> "masterへ挑戦できない"
irb(main):055:0> load '4/global.rb'
=> true
irb(main):056:0> master?
=> "masterへ挑戦できない"
irb(main):057:0> clear
=> true
irb(main):058:0> master?
=> "masterへ挑戦できる"
irb(main):059:0> load '4/2_a.rb'
=> true
irb(main):060:0> sum(2)
=> 2
irb(main):061:0> p $x
2
=> 2
irb(main):062:0> dec(19
irb(main):063:1>
SyntaxError: (irb):62: syntax error, unexpected end-of-input, expecting ')'
from /usr/bin/irb:12:in `<main>'
[i1920003@itc115 ~/fp19]$ irb
irb(main):001:0> load '4\2_a.rb'
LoadError: cannot load such file -- 4\2_a.rb
from (irb):1:in `load'
from (irb):1
from /usr/bin/irb:12:in `<main>'
irb(main):002:0> load '4/2_a.rb'
=> true
irb(main):003:0> sum(2)
=> 2
irb(main):004:0> dec(1)
=> 1
irb(main):005:0> dec(1)
=> 0
irb(main):006:0> dec(1)
=> -1
irb(main):007:0> dec(1)
=> -2
irb(main):008:0> dec(1)
=> -3
irb(main):009:0> load '4/2_a.rb'
=> true
irb(main):010:0> sum(2)
=> 2
irb(main):011:0> reset
=> 0
irb(main):012:0> undo
=> 2
irb(main):013:0> p $x
2
=> 2
irb(main):014:0>
きょうの遍歴じゃい!!!
def sum(v)
$x = $x + v; return $x
end
def reset
$x = 0
end
```def array01times
a = Array.new(10, 0)
5.times do |i| a[2*i+1] = 1 end # i: 0,1,2,3,4 2*i+1: 1,3,5,7,9
return a
end
a = Array.new(n, 0)
1.step(n, 2) do |i| a[i] = 1 end
return a
end
a = Array.new(n, 0)
((n/2).floor).step(n - 1, 1) do |i| a[i] = 1 end
return a
end
a = Array.new(n, 0)
n.times do |i| a[i] = n - i end
return a
end
$master = false
def sum(v)
$x = $x + v
return $x
end
def sum_not_global(v)
y = 0
y = y + v
return y
end
def reset
$x = 0
end
def master?
if $master
return 'masterへ挑戦できる'
else
return 'masterへ挑戦できない'
end
end
def clear
$master = true
end
$x_before = 0
def sum(v)
$x = $x + v
return $x
end
def dec(v)
$x = $x - v
return $x
end
def reset
$x_before = $x
$x = 0
end
def undo
$x = $x_before
end
活動内容報告 #04 学籍番号:1920031 氏名:山川竜太郎 ペア学籍番号・氏名(または「個人作業」):1920003:伊東隼人 提出日付:2019/10/28
[作成したプログラム]
$x_before = 0
def sum(v)
$x = $x + v
return $x
end
def dec(v)
$x = $x - v
return $x
end
def reset
$x_before = $x
$x = 0
end
def undo
$x = $x_before
end
[実行例]
irb(main):009:0> load '4/2_a.rb'
=> true
irb(main):010:0> sum(2)
=> 2
irb(main):011:0> reset
=> 0
irb(main):012:0> undo
=> 2
irb(main):013:0> p $x
2
=> 2
[簡単な説明] 演習2bを実施した。これは、undoすると、resetを呼び出す前の$xを復元するものである。
[アンケート] Q1. 手続き/関数/広域変数について学びましたが、納得しましたか。 納得しました。
Q2. 再帰的な呼び出しについてはどうですか。 再帰は苦手です。
Q3. リフレクション(今回の課題で分かったこと)・感想・要望をどうぞ。 グローバル変数はメソッドの外でも値を保存してくれることがわかりました。
学籍番号:1920003
氏名:伊東 隼人
ペア学籍番号・氏名1920032 山川 竜太郎
提出日付:2019/10/28
[作成したプログラム]
$master = false
def sum(v)
$x = $x + v
return $x
end
def sum_not_global(v)
y = 0
y = y + v
return y
end
def reset
$x = 0
end
def master?
if $master
return 'masterへ挑戦できる'
else
return 'masterへ挑戦できない'
end
end
def clear
$master = true
end
[実行例]
irb(main):051:0> load '4/global.rb'
=> true
irb(main):052:0> master?
=> "masterへ挑戦できる"
irb(main):053:0> load '4/global.rb'
=> true
irb(main):054:0> master?
=> "masterへ挑戦できない"
irb(main):055:0> load '4/global.rb'
=> true
irb(main):056:0> master?
=> "masterへ挑戦できない"
irb(main):057:0> clear
=> true
irb(main):058:0> master?
=> "masterへ挑戦できる"
[簡単な説明]
$x変数を呼び出し、できる、できないの判定で遊びました。
[アンケート]
Q1. 手続き/関数/広域変数について学びましたが、納得しましたか。
友だちと理解しました。
Q2. 再帰的な呼び出しについてはどうですか。
難しいですね。慣れます。
Q3. リフレクション(今回の課題で分かったこと)・感想・要望をどうぞ。
たのしかった。
コ m = 0.0
ウ a.each_index do |i|
サ m = m + a[i]
イ end
ソ return m
イ end
タ m = a[0]
ツ c = 0
ウ a.each do |x|
カ if x == m
ト c = c + 1
イ end
イ end
コ if c == a.length
ナ return 'OK'
イ end
ニ return 'NO'
イ end
別解
```ア def examine(a)
タ m = a[0]
ウ a.each do |x|
キ if x != m
ニ return 'NO'
イ end
イ end
ナ return 'OK'
イ end
別解の方がすっきりしててわかりやすいですね。
学籍番号: 1920003
氏名:伊東 隼人
ペア学籍番号・氏名 1920031 : 山川 竜太郎
提出日付:2019/10/31
[課題の再掲]
[演習1]
(a).正の整数nを渡し、要素数がnで例題のように0、1が交互に入った配列を返す。
(b).要素数10で、前半分に0、後半分に1が入った配列を返す(正の整数nを渡してその要素数で同様にできるとなおよい)。
(c).要素数10で、10,9,...,1が順に入った配列を返す(正の整数nを...以下同文)。
[演習2]
(a).加える代わりに指定した値を引く機能dec(x)。
[プログラム・実行例とその説明]
[演習1]
source codeを貼り付けたあと実行したプログラムを再掲します。
(a)
def array01(n)
a = Array.new(n, 0)
1.step(n, 2) do |i| a[i] = 1 end
return a
end
irb(main):001:0> load '4/1_a.rb'
=> true
irb(main):002:0> array01(10)
=> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
irb(main):003:0> array01(20)
=> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
irb(main):004:0> array01(30)
=> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
(b)
def array01(n)
a = Array.new(n, 0)
((n/2).floor).step(n - 1, 1) do |i| a[i] = 1 end
return a
end
irb(main):005:0> load '4/1_b.rb'
=> true
irb(main):006:0> array01(2)
=> [0, 1]
irb(main):007:0> array01(4)
=> [0, 0, 1, 1]
irb(main):008:0> array01(3)
=> [0, 1, 1]
irb(main):009:0> array01(5)
=> [0, 0, 1, 1, 1]
irb(main):010:0> array01(7)
=> [0, 0, 0, 1, 1, 1, 1]
irb(main):011:0> array01(8)
=> [0, 0, 0, 0, 1, 1, 1, 1]
irb(main):012:0> array01(9)
=> [0, 0, 0, 0, 1, 1, 1, 1, 1]
(c)
def array01(n)
a = Array.new(n, 0)
n.times do |i| a[i] = n - i end
return a
end
irb(main):013:0> load '4/1_c.rb'
=> true
irb(main):014:0> array01(2)
=> [2, 1]
irb(main):015:0> array01(3)
=> [3, 2, 1]
irb(main):016:0> array01(4)
=> [4, 3, 2, 1]
irb(main):017:0> array01(5)
=> [5, 4, 3, 2, 1]
irb(main):018:0> array01(6)
=> [6, 5, 4, 3, 2, 1]
irb(main):019:0> array01(7)
=> [7, 6, 5, 4, 3, 2, 1]
[演習2]
source codeを貼り付けたあと実行したプログラムを再掲します。
(a),(b)
$x = 0
$x_before = 0
def sum(v)
$x = $x + v
return $x
end
def dec(v)
$x = $x - v
return $x
end
def reset
$x_before = $x
$x = 0
end
def undo
$x = $x_before
end
irb(main):001:0> load '4/2_a.rb'
=> true
irb(main):002:0> sum(3)
=> 3
irb(main):003:0> sum(1)
=> 4
irb(main):004:0> dec(1)
=> 3
irb(main):005:0> dec(1)
=> 2
irb(main):006:0> dec(1)
=> 1
irb(main):007:0> dec(1)
=> 0
irb(main):008:0> dec(1)
=> -1
irb(main):009:0> dec(1)
=> -2
irb(main):010:0> dec(1)
=> -3
irb(main):011:0> sum(2)
=> -1
irb(main):012:0> reset
=> 0
irb(main):013:0> undo
=> -1
irb(main):014:0> p $x
-1
=> -1
[課題に対する報告]
SyntaxError が多発しましたが、だいたいがスペルミスやタイピングミスでした。
[考察]
あとで考えます。
[アンケート]
Q1. 手続きが使いこなせるようになりましたか。
まだまだ、使いこなすほどではありません。ほとんど、友だちの力です。ですがだんだん理解してきていると実感があります。
Q2. 再帰的な呼び出しについてはどうですか。
簡単な仕組みは理解できたと思います。ですが、自分でコードに起こすことができるかといいますと自信ありません。
Q3. リフレクション(今回の課題で分かったこと)・感想・要望をどうぞ。
もっといろいろな技を市って自分で立派なコードが書けるようになりたいです。
防備録
=> true
irb(main):002:0> array01(10)
=> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
irb(main):003:0> array01(20)
=> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
irb(main):004:0> array01(30)
=> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
irb(main):005:0> load '4/1_b.rb'
=> true
irb(main):006:0> array01(2)
=> [0, 1]
irb(main):007:0> array01(4)
=> [0, 0, 1, 1]
irb(main):008:0> array01(3)
=> [0, 1, 1]
irb(main):009:0> array01(5)
=> [0, 0, 1, 1, 1]
irb(main):010:0> array01(7)
=> [0, 0, 0, 1, 1, 1, 1]
irb(main):011:0> array01(8)
=> [0, 0, 0, 0, 1, 1, 1, 1]
irb(main):012:0> array01(9)
=> [0, 0, 0, 0, 1, 1, 1, 1, 1]
irb(main):013:0> load '4/1_c.rb'
=> true
irb(main):014:0> array01(2)
=> [2, 1]
irb(main):015:0> array01(3)
=> [3, 2, 1]
irb(main):016:0> array01(4)
=> [4, 3, 2, 1]
irb(main):017:0> array01(5)
=> [5, 4, 3, 2, 1]
irb(main):018:0> array01(6)
=> [6, 5, 4, 3, 2, 1]
irb(main):019:0> array01(7)
=> [7, 6, 5, 4, 3, 2, 1]
irb(main):020:0> load '4/2_a.rb'
=> true
irb(main):021:0> sum(2)
=> 2
irb(main):022:0> dec(1)
=> 1
irb(main):023:0> dec(1)
=> 0
irb(main):024:0> dec(1)
=> -1
irb(main):001:0> load '4/2_a.rb'
=> true
irb(main):002:0> sum(3)
=> 3
irb(main):003:0> sum(1)
=> 4
irb(main):004:0> dec(1)
=> 3
irb(main):005:0> dec(1)
=> 2
irb(main):006:0> dec(1)
=> 1
irb(main):007:0> dec(1)
=> 0
irb(main):008:0> dec(1)
=> -1
irb(main):009:0> dec(1)
=> -2
irb(main):010:0> dec(1)
=> -3
irb(main):011:0> sum(2)
=> -1
irb(main):012:0> reset
=> 0
irb(main):013:0> undo
=> -1
irb(main):014:0> p $x
-1
=> -1
ぼくのかんがえたクソコード