掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.25246

関数の使用について
投稿者---milky(2006/01/12 15:56:35)


セットした時刻になったらグラフィックを表示し音楽を鳴らすプログラムを作りたいんですが、下のプログラムをグラフィック処理、音楽処理、時間判定の処理を関数として書き、main()から呼び出す形にしたいんですが、つまり
int main(){
・・・
timecomp();
graphic();
music();
・・・
}

みたいなかんじなんですが、・・・の中身はどう書けばいいのでしょうか?
お願いします。関数の呼び出し方がよくわかりません。意味が分からない質問でしたらすいません。


#include <mmsystem.h>
#include <time.h>
#include <math.h>
#include <stdio.h>
#include "chinou3.h"
#include "chinougl.h"
#define N 6
#define M 150
#define MAX 0x7FFF

int  main(){
char ktime[255];
int hh=19,mm=5;
time_t tt;
FILE *fp;

int i, j, k, r, ip[N], data[M], nn=0;
double x=1.0, y, s, t, p[N],dot=0.0025,wt=0.5;
double a[] = {  0.05,  0.05,  0.46,  0.47,  0.43,  0.42 };
double b[] = {  0   ,  0   , -0.32, -0.15,  0.28,  0.26 };
double c[] = {  0   ,  0   ,  0.39,  0.17, -0.25, -0.35 };
double d[] = {  0.6 , -0.5 ,  0.38,  0.42,  0.45,  0.31 };
double e[] = {  0   ,  0   ,  0   ,  0   ,  0   ,  0    };
double f[] = {  0   ,  1   ,  0.6 ,  1.1 ,  1   ,  0.7  };

fp=fopen("timedata.txt","r");
fscanf(fp,"%d:%d",&hh,&mm);
Cinit(20,5);

//*************** Graphic *********************
s = 0;
    for (i = 0; i < N; i++) {
        p[i] = fabs(a[i] * d[i] - b[i] * c[i]);
        s += p[i];  ip[i] = i;
    }

    for (i = 0; i < N - 1; i++) {
        k = i;
        for (j = i + 1; j < N; j++)
            if (p[j] < p[k]) k = j;
        t = p[i];  p[i] = p[k];  p[k] = t;
        r = ip[i];  ip[i] = ip[k];  ip[k] = r;
    }

    r = M;
    for (i = 0; i < N; i++) {
        k = (int)(r * p[i] / s + 0.5);  s -= p[i];
        do {  data[--r] = ip[i];  } while (--k > 0);
    }

    x = y = 0;
    for (i = 0; i <120000; i++,nn++) {
        j = data[rand() / (MAX / M + 1)];
        t = a[j] * x + b[j] * y + e[j];
        y = c[j] * x + d[j] * y + f[j];
        x = t;
        if (i >= 0) {
            line(x, y-1.0, x+dot,y-1.0+dot);
        if (j==1||j==0)
            nn=0;
        if (nn<6)
            color(0.4,0.2,0.1);
        else
            color(0.0,0.8,0.0);
        }
    }

// *********************** Get time ***************************

     do {
        tt=time(NULL);
        sprintf(ktime,"%02d:%02d",(int)tt%(24*3600)/3600+9,(int)tt%(24*3600)%3600/60);
        Cprint(0,0,ktime);
        sleep(1000);
    }
      while((int)tt%(24*3600) < (hh-9)*3600+mm*60);


// ********************** Play Music **************************
   mciSendString("open timer.mp3 alias mcitest",NULL,0,NULL);
   mciSendString("play mcitest",NULL,0,NULL);

   gotogl();
   return 0;
}



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧