2017-04-27 5 views
-3

私はプログラムを作ったので、可能なすべての文字を配列に入れる必要があります。ここ 私はちょうどなぜ私は必要なすべての文字を配列の中に入れませんか?

print "write your name: " 
name1 = gets.chomp 

が、私はあなたの名前はジョンであれば、たとえば、配列内のすべての文字を入れてみてください名前を読み取るために、私の変数を作成し、配列は次のようになります。J、ジョー、ヨハ、ジョン

arrayNames = [] 
number = name1.length 
number.times {|i| 
    arrayNames[i] = name1.slice(0,i) 
} 
arrayNames << name1 

、その後、私は順列プログラムを作りたいと思って、それを読むために、私は書き込み:私はfile1が作った

もちろんの
numb = name1.length+ 1 
numb2 = anotherVariable.length + 1 
numb.times {|j| 
    numb2.times {|k| 
     perm = [arrayNames[j],theSecondArray[k]] 
     p perm 
     file1.puts 
    } 
} 

、と私は二番目の配列の股関節のためのまったく同じコードを持っていますn arrayNamesが動作していません。それはエラーを表示しません。すべてのコードを一緒に下に置く

class Data 
    def initialize 
    end 
    def dataIn 
     print "write your name: " 
     $name = gets.chomp 
     print "write your surname: " 
     $surname = gets.chomp 
    end 
    def dataName 
     $passwordName = [] 
     numb = $name.length 
     numb.times {|i| 
      $passwordName[i] = $name.slice(0,i) 
     $passwordName << $name 
    end 
    def dataSurn 
     $passwordSur = [] 
     numb = $surname.length 
     numb.times {|i| 
      $passwordSur[i] = $surname.slice(0,i) 
     } 
     $passwordSur << $surname 
    end 
    def alg1 
     numb = $name.length + 1 
     numb2 = $surname.length + 1 
     numb.times {|i| 
      numb2.times {|j| 
       perm = [$passwordName[i], $passwordSur[j]].permutation.map {|k| 
       k.join} 
       p perm 
       $archivos.puts perm     
      } 
     } 
    end 
end 

コード自体はもう少し複雑ですが、私の質問は同じです。メソッドALG1 doesntの私はちょうど

data = Data.new() 
datos.dataIn 
$archivos = File.new("passwords",'w+') 
File.open("passwords") 
data.datosName 
data.datosSurn 
data.alg1 
gets() 
+0

ruby​​シェルでコマンドを1行ずつ実行しましたか?プロセス内のarrayNames(または麻痺)の値は何で表示されますか?また、slice(0、i)の値の語は 'prefix' –

+0

はいでした。私がそれを置いたときに働いたスライス(0、私)と配列名は、前に言ったことを示しています。 – marcos

+0

最後の部分は何が起こっていないのですか?第3のもの – marcos

答えて

0

をそれらを呼び出すと、ファイルを作成work.then私はあなたがやろうとしている正確にわからないんだけど、Rubyの組み込みの配列方法は、あなたの人生がずっと楽になります。

>> name1 = 'John' 
=> "John" 
>> names = (0...name1.length).map { |i| name1[0..i] } 
=> ["J", "Jo", "Joh", "John"] 
>> other = ['dog', 'wolf', 'sheep'] 
=> ["dog", "wolf", "sheep"] 
>> result = names.product(other) 
=> [["J", "dog"], 
["J", "wolf"], 
["J", "sheep"], 
["Jo", "dog"], 
["Jo", "wolf"], 
["Jo", "sheep"], 
["Joh", "dog"], 
["Joh", "wolf"], 
["Joh", "sheep"], 
["John", "dog"], 
["John", "wolf"], 
["John", "sheep"]] 
+0

私のコードに完全に働いた – marcos

関連する問題