ryuchan00 / basic_programing

UEC
0 stars 0 forks source link

知らねーのか!4つのものから1つ選ぶのは縁起が悪いんだぜ! #4

Open hayato0718 opened 5 years ago

hayato0718 commented 5 years ago

ぼくのかんがえたクソコード


    if x == m
        if m == a[0]
            a.each do |x|
                return 'OK'
            end
        end
hayato0718 commented 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 
hayato0718 commented 5 years ago

くそこーど

def examine(a) if m != a[0] a.each_index do |i| m = m / a.length return m end end

hayato0718 commented 5 years ago

せいかい


コ   m = 0.0
ウ   a.each_index do |i|
サ    m = m + a[i]
イ   end
ソ   return m
イ end
hayato0718 commented 5 years ago

張り付ける順番間違えました。。。

ryuchan00 commented 5 years ago

ミスタ!

ryuchan00 commented 5 years ago

伊東さん!あれっす!提出前に end の数を確認したほうがいいっす!

hayato0718 commented 5 years ago

あー、そうか。 でも、たぶん間違えてますね。。。 勉強しなおさんとやばい。

ryuchan00 commented 5 years ago
    if x == m
        if m == a[0]
            a.each do |x|
                return 'OK'
            end
        end

パッと見てインデントがおかしい!と思ったら要注意です。

ryuchan00 commented 5 years ago

僕もよく間違えるので人のこと言えないのですが

hayato0718 commented 5 years ago

[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> 

きょうの遍歴じゃい!!!
hayato0718 commented 5 years ago

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
hayato0718 commented 5 years ago

   a = Array.new(n, 0)
    1.step(n, 2) do |i| a[i] = 1 end
   return a
end
hayato0718 commented 5 years ago

   a = Array.new(n, 0)
    ((n/2).floor).step(n - 1, 1) do |i| a[i] = 1 end
   return a
end
hayato0718 commented 5 years ago

   a = Array.new(n, 0)
    n.times do |i| a[i] = n - i end
   return a
end
hayato0718 commented 5 years ago

$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
hayato0718 commented 5 years ago

$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
ryuchan00 commented 5 years ago

活動内容報告 #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. リフレクション(今回の課題で分かったこと)・感想・要望をどうぞ。 グローバル変数はメソッドの外でも値を保存してくれることがわかりました。

hayato0718 commented 5 years ago

学籍番号: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. リフレクション(今回の課題で分かったこと)・感想・要望をどうぞ。
たのしかった。
 
hayato0718 commented 5 years ago

コ   m = 0.0
ウ   a.each_index do |i|
サ    m = m + a[i]
イ   end
ソ   return m
イ end
hayato0718 commented 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) 
タ   m = a[0]
ウ   a.each do |x| 
キ     if x != m 
ニ       return 'NO'
イ     end 
イ   end 
ナ   return 'OK'
イ end 

別解の方がすっきりしててわかりやすいですね。
hayato0718 commented 5 years ago

学籍番号: 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. リフレクション(今回の課題で分かったこと)・感想・要望をどうぞ。
もっといろいろな技を市って自分で立派なコードが書けるようになりたいです。
hayato0718 commented 5 years ago

防備録


=> 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