ページ 11

fileに書き込むときのfor文のような動き

Posted: 2015年12月26日(土) 17:07
by mm
a.txtに配列の数字を書き込みたいのですが配列(arr)の数をfor文のような1-100までるようにしたいのですがどのようにすればいいでしょうか?
以下のプログラムですarr[0][0]を書いていくのをfor文でやらせたいです.

コード:

File.open("a.txt","a"){|file|
file.write "#{arr[0][0]}\n#{arr[0][1]}\n#{arr[1][0]}\n#{arr[1][1]}\n#{arr[2][0]}\n#{arr[2][1]}\n#{arr[3][0]}\n#{arr[3][1]}\n#{arr[4][0]}\n#{arr[4][1]}\n#{arr[5][0]}\n#{arr[5][1]}\n#{arr[6][0]}\n#{arr[6][1]}\n#{arr[7][0]}\n#{arr[7][1]}\n#{arr[8][0]}\n#{arr[8][1]}\n#{arr[9][0]}\n#{arr[9][1]}\n#{arr[10][0]}\n#{arr[10][1]}\n#{arr[11][0]}\n#{arr[11][1]}\n#{arr[12][0]}\n#{arr[12][1]}\n#{arr[13][0]}\n#{arr[13][1]}\n#{arr[14][0]}\n#{arr[14][1]}\n#{arr[15][0]}\n#{arr[15][1]}\n#{arr[16][0]}\n#{arr[16][1]}\n#{arr[17][0]}\n#{arr[17][1]}\n#{arr[18][0]}\n#{arr[18][1]}\n#{arr[19][0]}\n#{arr[19][1]}\n"
}

Re: fileに書き込むときのfor文のような動き

Posted: 2015年12月26日(土) 17:57
by みけCAT
普通にプログラムを書き、実行することでfor文でやらせればいいでしょう。
使用するプログラミング言語は何ですか?

Re: fileに書き込むときのfor文のような動き

Posted: 2015年12月26日(土) 19:30
by mm
for文のプログラムをfile openに書くやり方?がわかりません。言語はrubyです

Re: fileに書き込むときのfor文のような動き

Posted: 2015年12月26日(土) 20:48
by かずま
mm さんが書きました:for文のプログラムをfile openに書くやり方?がわかりません。言語はrubyです
まずは、質問に答えて、

コード:

arr = [
    [11, 12, 13, 14],
    [21, 22, 23, 24],
    [31, 32, 33, 34],
]
File.open("a.txt", "a") { |file|
    for i in 0..2 do
        for j in 0...4 do
            file.write "#{arr[i][j]}\n"
        end
    end
}
こっちのほうがいいと思うんですが、

コード:

arr = [
    [11, 12, 13, 14],
    [21, 22, 23, 24],
    [31, 32, 33, 34],
]
File.open("a.txt", "a") { |file|
    for a in arr do
        file.write "#{a}\n"
    end
}
for文を使わないやり方も

コード:

arr = [
    [11, 12, 13, 14],
    [21, 22, 23, 24],
    [31, 32, 33, 34],
]
File.open("a.txt", "a") { |file|
    3.times { |i|
        4.times { |j|
            file.write "#{arr[i][j]}\n"
        }
    }
}

Re: fileに書き込むときのfor文のような動き

Posted: 2015年12月26日(土) 23:26
by mm
できました!!ありがとうございます.丁寧にほかのやり方も教授していただき感謝します.

Re: fileに書き込むときのfor文のような動き

Posted: 2015年12月27日(日) 00:18
by かずま
mm さんが書きました:できました!!ありがとうございます.丁寧にほかのやり方も教授していただき感謝します.
0..2 と 0...4 に何か疑問を感じませんでしたか?
違いを説明してください。

Re: fileに書き込むときのfor文のような動き

Posted: 2015年12月27日(日) 00:30
by みけCAT
3や4といったマジックナンバーを使うのは良くないでしょう。

コード:

arr = [
  [11, 12, 13, 14],
  [21, 22, 23, 24],
  [31, 32, 33, 34]
]
File.open('a.txt', 'a') do |file|
  arr.each do |i|
    i.each do |j|
      file.write "#{j}\n"
    end
  end
end

Re: fileに書き込むときのfor文のような動き

Posted: 2015年12月27日(日) 10:49
by かずま
みけCAT さんが書きました:3や4といったマジックナンバーを使うのは良くないでしょう。
だから、... があるんでしょうね。

コード:

arr = [
	[11, 12, 13, 14],
	[21, 22, 23, 24],
	[31, 32, 33, 34],
]
file = File.open("a.txt", "a")
for i in 0...arr.size do
	for j in 0...arr[i].size do
		file.print arr[i][j], "\n"
	end
end
Ruby の .. は、Pascal の .. と同じ。
Swift の ... は、Ruby の .. と同じ。
Swift の ..< は、Ruby の ... と同じ。