ページ 11

比率について

Posted: 2008年9月03日(水) 19:06
by ミシェル
Aを3秒表示させ、その後Bを7秒表示させ、それを繰り返すプログラムを書きたいのですが
3:7に分けるにはどうしたら良いのですか?

Re:比率について

Posted: 2008年9月03日(水) 19:19
by 管理人
まず、何で表現したいのか、環境は何なのか教えて下さい。
コマンドプロンプトに表示させたいのかDXライブラリで作ったウィンドウになのかだけでも
プログラムは大きく違ってきます。

Re:比率について

Posted: 2008年9月03日(水) 22:57
by たかぎ
多くの環境(ただしホスト環境限定)では、
#include <stdio.h>
#include <time.h>

int main()
{
  clock_t t;

  setbuf(stdout, NULL);

  for (;;)
  {
    fputs("\rA", stdout);
    t = clock();
    while ((clock() - t) / CLOCKS_PER_SEC < 3)
      ;

    fputs("\rB", stdout);
    t = clock();
    while ((clock() - t) / CLOCKS_PER_SEC < 7)
      ;
  }
  return 0;
}
で大丈夫かと思います。
ただし、これが期待しているものかどうかまでは知りません。

Re:比率について

Posted: 2008年9月04日(木) 00:30
by lbfuvab
眠いので我ながらヘンなプログラムですが
/***************************************
*                                      *
*     PCを起動してから10秒未満の時と   *
*     49.7日起動させている時の動作は   *
*     動作は良く分からない。           *
*                                      *
*                                      *
***************************************/

#include<stdio.h>
#include<windows.h>

int main(){
    DWORD dwCount=GetTickCount()-10000;
    
    while(1){
        while(GetTickCount()-dwCount<7000);  //7秒の計測
        dwCount=GetTickCount();
        printf("A\r");
        Sleep(2500);        //2.5秒眠らす
        while(GetTickCount()-dwCount<3000);  //3秒の計測
        dwCount=GetTickCount();
        printf("B\r");
        Sleep(6500);        //6.5秒眠らす
    }
    return 0;
}