2013-05-18 2 views
-2

Ruby 숙제에 문제가 있습니다. 1000 개 문자 (각 라인 당 하나)
있는 txt 파일이 있습니다색인으로 txt 특정 문자 찾기

그래서 프로그램은 9 개 숫자가

예 찾아서 파일에서 인쇄 9 개 문자해야 후 0..999
에 대한 사용자 요청 출력

1. 번호 0-999 사이 보내기 444
보내기 2. 수 사이 999 : 756
보내기 3. 번호 0-999 사이 223
보내기 4. 번호 사이 999 : 999
0-999 사이 번호 제 보내기
23 : 0
보내기 제 번호 사이 999 : 123
보내기 제 번호 0-999 사이의 44 가지 적어
제 번호 0-999 사이 보내기 0-999 사이 9. 수 : 533
워드는 여기에 내 코드

#coding:utf-8 
path = "7-3_tiedosto.txt" 
lst = Array.new 
word = Array.new 
text = "" 

puts "Luodaan salasana." 

for i in 1..9 
    print "Anna #{i}. luku väliltä 0-999: " 
    lst.push(gets.to_i) 
end 

my = File.open(path, "r") 
my.each{|line| word.push(line.chomp)} 
my.close 

for i in 0..8 
    a = lst[i] 
    text = text << word[a] 
end 

puts "Ohjelma loi salasanan #{text}" 
+4

무엇이 당신의 질문입니까? –

+0

마지막 for 루프에서 오류가 발생합니다. 처럼 단어 배열에 nil이 포함되어 있습니다. txt에서 특정 줄을 가져 오는 방법은 무엇이며 왜 배열 "word"에 nil이 포함될 수 있습니까 ?? – Satael

+0

+1 숙제 고백을 위해 +1 –

답변

0

이 루비 디버깅을 숙지 할 수있는 좋은 기회처럼 보이는 것입니다 ryqbaAsQn

입니다. 프로그램 상태가 예상과 다른 경우 이러한 문제가 발생합니다. 상태가 예상과 다른 이유를 파악한 다음 올바른 조치를 취하는 것은 사용자의 몫입니다.

1) put 문을 사용하여 프로그램이 실행되는 동안 프로그램 상태를 출력하거나 2) 루비 디버거를 사용하여 상태를 확인하기 위해 실행중인 프로그램을 단계별로 실행하는 것이 좋습니다.

여기 디버깅 프라이머의 : http://ruby.about.com/od/advancedruby/a/debugging.htm

희망하는 데 도움이! 이러한 종류의 문제는 항상 발생하므로 접근 방법을 배우는 것이 중요합니다. 행운을 빌어 요.