2017-04-27 53 views
-3

我做了一個程序,我需要把所有可能的字符放在一個數組中。 在這裏,我創造我的變量只是讀名稱爲什麼我不能在數組中放入我需要的所有字符?

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

然後我試圖把所有的字符數組內,例如,如果你的名字是約翰,數組是:J-,喬,荷蘭Joh,約翰

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

然後讀它,我想使置換計劃,我寫:

numb = name1.length+ 1 
numb2 = anotherVariable.length + 1 
numb.times {|j| 
    numb2.times {|k| 
     perm = [arrayNames[j],theSecondArray[k]] 
     p perm 
     file1.puts 
    } 
} 
當然

我有文件1發,我已經第二陣列塔完全相同的代碼在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犯規work.then我只是給他們打電話,創建文件

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

您是否在ruby shell中逐行運行命令?你認爲在這個過程中arrayNames(或麻木)的價值是什麼?此外,slice(0,i)的值的術語是'前綴' –

+0

是的,我做過。切片(0,i)工作時,我把它放在一邊,數組名稱顯示我說過,約翰 – marcos

+0

的例子是最後一部分是什麼不工作,第三個 – marcos

回答

0

我不知道正是你正在嘗試做的,但Ruby的內置Array方法會讓你的生活變得更輕鬆:

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

相關問題