sjgau 發表於 12-4-10 09:09

cococharles 發表於 12-4-10 08:57 static/image/common/back.gif
long 是 4 bytes, range 也是到 2,147,483,647
int 是 system dependent, 隨著系統是 16bit, 32bit,64bit ...

樓上的 答案

完全正確

值得嘉獎


wtkao 發表於 12-4-10 09:15

本帖最後由 wtkao 於 12-4-10 09:19 編輯

sjgau 發表於 12-4-10 08:33 static/image/common/back.gif
(a + 1) < a



我把printf這行用 cout << "b = " << b << " a = " << a << endl; 代替
以Dev-C++執行,跑不出結果(DOS視窗沒出現任何文字訊息)

我印象中群益MultiCharts有送10年份的台股交易資料,應該不需要重新製造車輪吧? @@

sjgau 發表於 12-4-10 09:32

wtkao 發表於 12-4-10 09:15 static/image/common/back.gif
我把printf這行用 cout

我的 Dev-C++ 可以

不是 重複 製造 車輪的問題,

是 ,。。。
說來話長,慢慢 說,。。。



   printf("b= a + 1= %.3lf, \na=      %.3lf \n", b, a);
   cout << "b = " << b << " a = " << a << endl;

   /*

b= a + 1= 9008425760425376.000,
a=      9008425760425376.000
b = 9.00843e+015 a = 9.00843e+015
請按任意鍵繼續 . . .

   */


   system("PAUSE");


wtkao 發表於 12-4-10 09:43

b= a + 1= 9008425760425376.000,
a=      9008425760425376.000

b 與 a 的值都相同?
考慮將 b、a 設成 double 型態,會不會好一些? @@

sjgau 發表於 12-4-10 09:52

已經是 double 了

我會慢慢的 詳細的解釋

why?

jinace 發表於 12-4-10 11:27

sjgau 發表於 12-4-10 08:33 static/image/common/back.gif
(a + 1) < a




a無上限累加
b永遠為a+1, 說明b會比a提前溢位, 便造成a>b

philipz 發表於 12-4-10 11:55

原來已經從分析一分鐘K,變成C語言教學,會不會跳太遠啦?哈哈!但既然要用C來寫交易策略,當然是要搞清楚語言特性。不過以效率而言,使用Python等Script語言會不會更快更早面對策略上的問題。小弟小小建議啦~

sjgau 發表於 12-4-10 12:20

philipz 發表於 12-4-10 11:55 static/image/common/back.gif
原來已經從分析一分鐘K,變成C語言教學,會不會跳太遠啦?哈哈!但既然要用C來寫交易策略,當然是要搞清楚 ...

沒有學過 Python

我想,還是從自己熟悉的工具開始


sjgau 發表於 12-4-10 12:56

很簡單的一個副程式,就把一個學生保送進入
期交所工作。

這個問題,大概就是

系統所提供的亂數的範圍很窄。
大概只有 x 到 y,
x= ?
y= ?

如何改進?
必須考慮速度的因素,
產生十億個亂數,你需要多久?

這一題,答對的朋友,送 30元 coco

jinace 發表於 12-4-10 13:01

philipz 發表於 12-4-10 11:55 static/image/common/back.gif
原來已經從分析一分鐘K,變成C語言教學,會不會跳太遠啦?哈哈!但既然要用C來寫交易策略,當然是要搞清楚 ...

是阿!完全變成程式設計教室了...

wtkao 發表於 12-4-10 13:19

C or C++ 具有執行效能上的優勢

Facebook 也透過自家開發的HipHop,將PHP code 轉換為 C++ code @@

sjgau 發表於 12-4-10 13:21

jinace 發表於 12-4-10 13:01 static/image/common/back.gif
是阿!完全變成程式設計教室了...

不想看的,可以忽略。

現在是 剛剛開始,
以後,保證會很精采。

到時候,程度跟不上,
不要怪我

philipz 發表於 12-4-10 13:39

wtkao 發表於 12-4-10 13:19 static/image/common/back.gif
C or C++ 具有執行效能上的優勢

Facebook 也透過自家開發的HipHop,將PHP code 轉換為 C++ code @@ ...

是沒錯啦~但是FB一秒的query量這麼大,才有必要針對PHP作優化。



http://www.google.com/uds/css/small-logo.png
那...,各位還是加油吧~

sjgau 發表於 12-4-10 14:36

兩個 副程式提供分享

skip()
為了 輸出的段落分明,
用來提供 跳行


pause()
程式暫停的功能





#include <cstdlib>
#include <iostream>

using namespace std;
// ----------------------------------------------

#include <math.h>
#include <conio.h>
// ----------------------------------------------

//   skip(-3);
void skip(int no)
{
   int i;
      
   // 限制 no 在 1 到 20 中間
   if ((no >= 1) && (no <= 20)) {// OK
      for (i=1;i<=no;i++) {
         printf("\n");
      }
   }
   else {// no 不在 1 到 20 中間
      printf("\n");
   }// end if
}// end of skip()
// ----------------------------------------------

//   pause();
void pause(void)
{
   int ch1;
   
   // remove type ahead
   while (kbhit()) {
      ch1= getch();
   }// end while
   
   printf("\n Press for program stop! other key for continue ...");
   do {
      // wait for keyPressed
   } while(!kbhit());
   printf("\n");
   ch1= getch();
   
   if (ch1 == 0x1b) {// key be pressed
      exit(1);// exit the program
   }
   
   // remove extra key
   while (kbhit()) {
      ch1= getch();
   }
}// end of pause()
// ----------------------------------------------

int main(int argc, char *argv[])
{
   int i;
   
   for (i=1;i<=20;i++) {
      skip(i);
      printf("i= %5d, i*i= %5d, sqrt(i)= %10.6lf \n", i, i*i, sqrt(i));
      pause();
   }// end for
   system("pause");
   return EXIT_SUCCESS;
}// end of main()

sjgau 發表於 12-4-11 08:27

// 這個 計算時間的副程式,可以精確到 (1/64)秒

#include <cstdlib>
#include <iostream>

using namespace std;
// ----------------------------------------------

#include <math.h>
#include <conio.h>
#include <sys/timeb.h>
#include <time.h>
// ----------------------------------------------

#include "sj-01.h"
// ----------------------------------------------

//   time1(    &t1);
void time1(int *t1)
{
   struct _timeb timebuffer;
   _ftime( &timebuffer );
   
   int sec, ms;
   sec= timebuffer.time % (24L*24*60*60);// 對 24天的秒數取餘數
   // max.= 24.855 天
   
   ms= timebuffer.millitm;
   *t1= (sec*1000) + ms;
}// end of time1()
// ----------------------------------------------

//   time2(    t1,      &dt);
void time2(int t1, double *dt)
{
   // get time now
   int t2;
   time1(&t2);
   
   (*dt)= (t2 - t1)/1000.0;   
   
   // (*dt) must >= 0
   if ((*dt) < 0) {
      // (24L*24*60*60);// 對 24天的秒數取餘數
      (*dt)+= (24L*24*60*60);
   }
}// end of time2()
// ----------------------------------------------

int main(int argc, char *argv[])
{
   // for time1(), time2()
   
   int no, i, sum, t1, t2;
   double dt;
   
   no= 10;
   while (no > 0) {
      time1(&t1);
      sum= 0;
      for (i=1;i<=no;i++) {
         sum+= i;
      }// end for
      time2(t1, &dt);
      
      printf("no= %12ld, sum= %12ld, dt= %10.3lf\n", no, sum, dt);
      no= (int) (no*1.125);
   }// end while
   pause();
   
   return EXIT_SUCCESS;
}// end of main()
頁: 1 [2] 3
查看完整版本: 我想要寫 C語言程式設計 分析十年一分鐘K線資料