kostenloser Webspace werbefrei: lima-city


Verschiedene Tonhöhen mit C++ .. wie?

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    karikato

    Kostenloser Webspace von karikato

    karikato hat kostenlosen Webspace.

    Hall?chen,

    ich w?rde mit C++ gern mal verschiedene Tonh?hen ausgeben
    und nicht einfach nur immer das eine Beep mit dem Befehl \a
    Kann mir da jemand weiter helfen?

    Ich habe mal irgendwo den Befehl geh?rt ..
    wei? es aber leider nicht mehr :(
    Es m?sste ja irgendwie ein Befehl sein,
    dessen Frequenz man in Klammern definieren muss.

    Danke sehr schonmal ^^
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. s********r

    ?hnlich wie in Turbo-Pascal kann auch in C++ ein Ton mit dem Befehl sound('Frequenz'); ausgegeben werden. Der Befehl

    sound(440); w?rde ganz einfach ein A ausgeben.

    Mit dem Befehl delay(200) ist es m?glich den Ton einige Zeit auszuhalten (in diesem Fall 200ms) und mit dem Befehl nosound(); kann der Ton wieder ausgeschalten werden. Das ist wichtig, damit der Ton nicht w?hrend der ganzen Laufzeit des Programmes ausgegeben wird. Jeder Ton muss einzeln ausgegeben werden, aber es w?re nat?rlich m?glich eine "Soundunit" zu schreiben oder eine einfachere Funktion, mit der die Frequenz und die L?nge bestimmt werden kann. (zb. sound_ausgeben(440, 200);

    MfG sebigisler
  4. Autor dieses Themas

    karikato

    Kostenloser Webspace von karikato

    karikato hat kostenlosen Webspace.

    Klasse, genau da hab ich gesucht.

    Aber irgendwie sagt mir mein Compiler, dass da was nicht stimmt
    bzw. er erkennt z.B. den Befehl sound(440) nicht als g?ltigen Befehl.
    Da fehlt auch kein Symikolon oder so.

    Kann das wom?glich am Compiler liegen oder hab ich da wieder etwas ?bersehen oder falsch gemacht? ^^
    Der Compiler ist DevC++

    Hier w?re mal ein Ausschnitt aus dem Code:



    else if (zahl==33)
    {
    sound(440,500);
    sound(587,500);
    sound(659,500);
    sound(698,500);
    sound(784,500);
    cout << "Herzlichen Gl?ckwunsch, du hast geschummelt und die Zahl erraten :P\n";
    cout << "Oder du hast tats?chlich richtig geraten ^^\n\n";
    cin.get();
    }




    Edit: Ach ja, der Compiler meldet ?brigens, dass sound nicht klar deklariert ist. Wie deklariere ich es denn richtig?

    Beitrag ge?ndert: 6.10.2006 21:51:59 von karikato
  5. c*********c

    oben genannte Funktionen zur Wiedergabe eines bestimmten Tons sind in dos.h definiert.
  6. Autor dieses Themas

    karikato

    Kostenloser Webspace von karikato

    karikato hat kostenlosen Webspace.

    Nun habe ich #include <dos.h> dazugetan, aber er sagt immernoch, dass da was nicht stimmt :(

    29 C:\Dev-Cpp\Projekte\Zahl erraten.cpp `sound' undeclared (first use this function)
  7. Findest sich vielleicht weiter oben noch eine Meldung der Art "dos.h File not found"? ?berpr?fe mal wo die Datei zu finden ist und ob der Pfad auch im Suchpfad des Compilers enthalten ist. Ggf. den Suchpfad erg?nzen oder einen absoluten Pfad im #include angeben.

    Nat?rlich musst du, damit das ganze ?berhaupt funktionieren kann, an einem DOS-System sitzen (bzw. Windows mit DOS-Kompatibilit?t) :P

    MfG,
    thw
  8. Autor dieses Themas

    karikato

    Kostenloser Webspace von karikato

    karikato hat kostenlosen Webspace.

    Hmm also die dos include ist vorhanden und die direkte Quellenangabe daf?r hilft leider auch nicht.
    Und nat?rlich benutze ich ein Windows, dass auch DOS freundlich ist :P

    Was sonst so im Fehlerfenster steht w?re das hier:


    C:\Dev-Cpp\Projekte\Zahl erraten.cpp In function `int main(int, char**)':
    29 C:\Dev-Cpp\Projekte\Zahl erraten.cpp `sound' undeclared (first use this function)
    (Each undeclared identifier is reported only once for each function it appears in.)


    Hilft euch das weiter? ^^
    Den ersten Fehler ber?cksichtige ich nicht so wirklich, weil das eigentlich meistens kommt, wenn ich mich recht erinnere.
    Oder sagt es doch viel aus?
  9. Naja, es sagt halt aus dass ein Bezeichner "sound" nicht deklariert worden ist. Versuchst du vielleicht, ihn als eine Variable zu verwenden? Poste doch mal die main-Funktion bzw. die Zeile 29...

    Ansonsten schau dir mal die dos.h an, ob dort wirklich eine Funktion namens sound deklariert wurde. Wenn nicht, dann gibt's die dort nicht und der Fehler ist absolut nachvollziehbar.

    MfG,
    thw
  10. Autor dieses Themas

    karikato

    Kostenloser Webspace von karikato

    karikato hat kostenlosen Webspace.

    Aaah das ist es.
    Ich habe mal genauer reingeschaut und es ist tats?chlich kein "sound" deklariert in der dos datei ^^
    Naja, dann lass ich es wohl lieber f?rs Erste, weil ich mich mit den include Dateien nicht allzusehr auskenne bisher.
    Danke weiser thw :)
  11. h******0

    Für C++ gibt es sogar etwas sehr nettes.
    Die Funktion Beep(); aus der Windows API.

    Mit Dieser kann man Eine bestimmte frequenz ausgeben, und man kann die dauer in Milisekunden angeben.

    Beispiel:

    #include <windows.h>
    int main(int argc; char *argv[]) {
    Beep(50,1000);
    return 0,
    }




    würde die Frequenz ( 50 ) 1 sekunde lang ausgeben.
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!