/* Programme permettant de sauvegarder des notes et des temps d'activation de ces notes */ #include #include #include #include #include void main (void) { int Do, Re, Mi, Fa, Sol, La ,Si, Do2, tps; int *pnote=new int[100]; int *ptps=new int[100]; int i=0; char Note; clock_t t; short a; //===============Assignation des fréquence aux notes======================== Do=262; Re=294; Mi=330; Fa=349; Sol=392; La=440; Si=494; Do2=523; printf("Veuillez tapper l'une des touches suivantes: d, r, m, f, s, l, i\n"); printf("(maximum 100)\n"); while(i<100) { while(!kbhit()); //tant que pas d'appuie sur une touche t = clock(); //t = heure actuelle //bloquage tant que touche activé: while((GetKeyState(68) & 0x8000)==0x8000)Beep(440,1); // Touche d while((GetKeyState(82) & 0x8000)==0x8000); //touche r while((GetKeyState(77) & 0x8000)==0x8000); //touche m while((GetKeyState(70) & 0x8000)==0x8000); //touche f while((GetKeyState(83) & 0x8000)==0x8000); //touche s while((GetKeyState(76) & 0x8000)==0x8000); //touche l while((GetKeyState(73) & 0x8000)==0x8000); //touche i Note = getch(); //Note = touche enfoncé t = clock() - t; // t = heure actuelle - heure sauvé dans t //donc t = temps d'appuie sur la touche *(ptps+i) = (int)t; //sauvegarde du temps en ms à l'adresse du pointeur //===========sauvegarde de la fréquence en fonction de la touche activée========= switch (Note) { case 'd' : *(pnote+i)=Do; break; case 'r' : *(pnote+i)=Re; break; case 'm' : *(pnote+i)=Mi; break; case 'f' : *(pnote+i)=Fa; break; case 's' : *(pnote+i)=Sol; break; case 'l' : *(pnote+i)=La; break; case 'i' : *(pnote+i)=Si; break; case 'p' : break; default : //si les touches ne sont pas celle attendu i--; //on décrémente i break; } printf("Frequence note:%i\nTemps:%i\n",*(pnote+i),*(ptps+i)); if (Note=='p') break; i++; } while(1) { for (int j=0; j < i+1; j++) { //on joue les notes en fonction des valeurs Beep(*(pnote+j),*(ptps+j)); //sauvegardées à l'adresse des pointeurs } } delete pnote; delete ptps; }