看板 C_and_CPP 關於我們 聯絡資訊
小弟最近在寫一個程式,是將記事本的檔案讀出之後做計算再存入excel 想了很久終於有初步成果,可是現在遇到麻煩了。 我終於成功把data複製在excel上,接下來只要計算後面兩項就可(r和fruit) (本人把data做註解在最上面程式碼上) 接下來我要讀取data裡30筆資料的X和Y,將兩筆資料做點到點距離的平方根 再存入excel檔案裡(例如第1筆X,Y和第2筆X,Y做完之後,接者換第1筆X,Y和第3筆做, 以此類推做到第30筆X,Y;接者再從第2筆和第3筆開始做,也是做 第30筆之後換第3筆和第4筆做....以此類推做到第29筆到第30 筆結束) <----此部分不止30份數據,只是想請版友教我存入 excel和for loop的應用 接者再經過種種計算(小弟自己做),便有30個數據 程式碼如下: http://codepad.org/bpzPzFq6 本人真的事試了很久也想了一整天,請各位指點迷津 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.152.239
akasan:... csv not excel 05/23 01:52
wodada:我用.csv檔開的時候是excel,哪裡有錯??= =a 05/23 02:12
tropical72:那是因為你電腦裡面 csv 是設用 excel 開的 05/23 03:03
tropical72:回到問題,有N筆資料,你是要算N*(N-1)次的距離?怎存? 05/23 03:07
angleevil:你要分兩次讀檔,第一次讀檔是把30筆資料儲存到陣列 05/23 08:45
angleevil:接著fclose->rewind->fopen,這動作你可以視為重新讀檔 05/23 08:47
angleevil:接下來你就可以每讀一筆,就去跟其他筆數去比較. 05/23 08:48
angleevil:可是為什麼要問讀檔?我看你知道怎麼讀阿 05/23 08:50
angleevil:存入excel<==你已經用csv做到了,為何還要請教? 05/23 08:52
loveme00835:@_@ 05/23 11:20
angleevil:?.? 05/23 12:14
wodada:抱歉,我早上去上課現在才回來.... 05/23 12:51
james732:其實我不懂你的問題點在哪裡... 05/23 12:52
wodada:事實上我是想將X,Y讀出來之後在程式裡計算,接者在帶公式 05/23 12:53
james732:那你的問題是不會讀、不會計算還是不會代公式? 05/23 12:56
wodada:計算出來後再存到r選項裡面,可是現再我想要把上述每一筆 05/23 12:56
wodada:的X,Y做SQRT(),例如:SQRT((X1-X2)^2+(Y1-Y2)^2) 05/23 12:59
wodada:接者再做SQRT((X1-X3)^2+(Y1-Y3)^2) 05/23 13:01
wodada:做到SQRT((X1-X30)^2+(Y1-Y30)^2)完後,換第二筆X,Y資料 05/23 13:02
wodada:因為SQRT((X2-X1)^2+(Y2-Y1)^2)與先前的值一樣所以不算 05/23 13:05
wodada:直接從SQRT((X2-X3)^2+(Y2-Y3)^2)開始做,做到第30筆資料 05/23 13:07
wodada:也就是SQRT((X2-X30)^2+(Y2-Y30)^2)時換第三筆X,Y開始做 05/23 13:08
wodada:以此類推....做到SQRT((X29-X30)^2+(Y29-Y30)^2)便可結束 05/23 13:09
loveme00835:先到記憶體, 之後再慢慢算 05/23 13:11
loveme00835: ^存 05/23 13:11
james732:看原po推了一堆,我還是不知道"問題點"是什麼...XD 05/23 13:11
wodada:緊接者挑一項最大值的數值代入公式(我程式裡有growth, 05/23 13:14
loveme00835:問題就是他想要在剛好讀完檔的時間點, 也剛好把計算完 05/23 13:15
loveme00835:的結果都輸出 05/23 13:15
wodada:和fruit的註解公式),計算完後分別存入r和fruit數值在excel 05/23 13:15
wodada:我最主要是邊寫邊COMPILE時無法把數值存到r裡面,不知道該如 05/23 13:17
wodada:是好??如果沒有要求讀檔的話,我有把握寫出.... 05/23 13:19
wodada:可是老師要我們讀它所附的檔案(註解在程式最上面),做出後面 05/23 13:20
loveme00835:讀不讀檔有差嗎? 這只是你記憶體運用的策略而已 05/23 13:20
wodada:的兩個數值在存入檔案...這我真的就寫了很久.....= =|| 05/23 13:21
james732:你的檔案應該只是數字跟空格而已 不難處理的 05/23 13:22
loveme00835:先用stdin當輸入阿 05/23 13:22
james732:不然你先把計算部份完成吧 05/23 13:23
wodada:OK,我在試試看!! 05/23 13:24
angleevil:~"~你被自己的害怕混亂思緒,1.fscanf<==讀文字檔 05/23 13:43
angleevil:2.fprintf就可以將計算的結果寫入到excel 05/23 13:44
angleevil:3.你一定是要先把讀取的數據,放入array,再重新讀檔一次 05/23 13:45
angleevil:每讀一筆去跟其他的資料做計算,不論你有怎樣的記憶空間 05/23 13:47
angleevil:策略,記住人類無法預測未來,機器也是.我去找找我以前的 05/23 13:49
angleevil:作業給你參考吧 05/23 13:49
angleevil:= =後來看那個作業,用大量的vector和overload,幫助不大 05/23 13:54
angleevil:不放上來了 05/23 13:54
loveme00835:那個欄位蠻整齊的, 隨機存取應該可做, 這樣就不用陣列 05/23 14:04
angleevil:~"~版主是對的,http://0rz.tw/9tMCT 裡面有隨機讀檔 05/23 14:28
angleevil:觀念 05/23 14:28