PDA

Visualizza la versione completa : [C++] Chiamare la funzione Beep()


Smeral
09-12-2007, 22:29
qualcuno hai mai usato questa funzione?
Ci sono delle librerie da chiamare?
Ho cercato in rete ma non ho trovato implementazioni per il linguaggio C (ho trovato qualcosa per C++)
ciao ! :ciauz:

oregon
09-12-2007, 22:36
Ma che vuoi dire?

La funzione e' la Beep e la puoi usare facilmente a prescindere dal C o dal C++



#include <windows.h>

int main ()
{
Beep(1000, 500);

return 0;
}

jamesbomb
20-08-2011, 16:28
ciao! puoi richiamarla con la libreria <windows.h>

la funzione se non sbaglio si può utilizzare in almeno 2 modi; uno è con una scrittura simile a


_beep(frequenza, durata)
l'altra è

Beep(frequenza, durata)

di quest'ultima ne sono sicuro poichè sto creando un piccolo accordatore(corista)

jamesbomb
20-08-2011, 16:33
cmq io invece ho un altro problema, se qualcuno gentilmente mi può aiutare.
se metto un valore numerico nella funzione, il programma suona, se metto una variabile con un corrispondente valore numerico non suona, ecco il listato

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

void menu();
int chose(int);

int main(int argc, char*argv[])
{
int a;
float freq;
printf("Accordatore v. 1.0\n\n");
do{
menu();
scanf("%d", &a);
freq=chose(a);

Beep(freq, 10000);

}while(a!=8);
printf("\nCiao!\n");
sleep(500);
return 0;
}

void menu(){
printf("\n1) Mi2 82.4Hz 6a corda\n");
printf("2) La2 110Hz 5a corda\n");
printf("3) Re3 146.8Hz 4a corda\n");
printf("4) Sol3 196.0Hz 3a corda\n");
printf("5) Si3 246.92Hz 2a corda\n");
printf("6) Mi4 329.6Hz 1a corda\n");
printf("7) Tutte le corde\n");
printf("\n8) Esci\n");
printf("\nOpzione: ");
}

int chose(a){
char b;
float nota;
switch(a){
case '1': printf("Mi2 82.4Hz 6a corda\n");
nota=82.4;
break;
case '2': printf("La2 110Hz 5a corda\n");
nota=110;
break;
case '3': printf("Re3 146.8Hz 4a corda\n");
nota=146.8;
break;
case '4': printf("Sol3 196.0Hz 3a corda\n");
nota=196.0;
break;
case '5': printf("Si3 246.92Hz 2a corda\n");
nota=246.92;
break;
case '6': printf("Mi4 329.6Hz 1a corda\n");
nota=329.6;
break;
case '7': printf("Tutte le corde\n");
Beep(82.4, 700);
Beep(110, 700);
Beep(146.8, 700);
Beep(196.0, 700);
Beep(246.92, 700);
Beep(329.6, 700);
}

return nota;
}



nonostante il post sia vecchio spero che qualcuno si interessi. :D

alka
22-08-2011, 10:52
Originariamente inviato da jamesbomb
cmq io invece ho un altro problema, se qualcuno gentilmente mi può aiutare.
[...]
nonostante il post sia vecchio spero che qualcuno si interessi. :D

Non risollevare discussioni vecchie di mesi o anni per postare soluzioni oppure aggiungere nuove domande.

Leggi il Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887).

Apri una nuova discussione per trattare il tuo problema.

Ciao! :ciauz:

ESSE-EFFE
22-08-2011, 11:13
Originariamente inviato da jamesbomb


int chose(a){
char b;
float nota;
switch(a){
case '1': printf("Mi2 82.4Hz 6a corda\n");


La variabile a (che tra l'altro è un intero) contiene il valore in binario, non in ASCII. I case dovrebbero essere:

case 1
case 2
...

e non

case '1'
case '2'
...

Loading