Skocz do zawartości
Forum komputerowe PC Centre

maciejorlos

Użytkownicy
  • Zawartość

    1
  • Rejestracja

  • Ostatnia wizyta

Reputacja

0 Neutralny

O maciejorlos

  • Tytuł
    Jestem tu nowy
  1. Muszę zrobić program który będzie zapisywał melodię zagraną przez użytkownika i później sam ją odtwarzał. Zrobiłem już całą klawiaturę dźwięków mam jednak problem z odczytaniem tych zapisanych. Nie wiem jaką zmienną mam sczytać jako melodie. Poniżej zamieszczam kod programu. Proszę o pomoc Program Kompozytor2; uses Crt; type mel=record nazwa:String; klawisz:Char; end; var klawisz:Char; melodia:mel; melodie: file of mel; procedure play(nuta:Integer;czas:Integer); begin Sound(nuta); Delay(czas); NoSound; end;{play} Procedure Kompozytor; const C1=33;D1=37;E1=41;F1=44;G1=49;A1=55;H1=62;C2=65;n=75; var Cis,Dis,Fis,Gis,Ais:Integer; koniec:Boolean; nuta:Integer; z,c:Integer; zapis:Char; begin ClrScr; writeln('Program sluzy do komponowania muzyki'); write('Klawiatura dzwiekow ma nastepujacy wyglad:'); writeln; writeln(' |w|e| |t|y|u|'); writeln(' |a|s|d|f|g|h|j|k|'); writeln('klawisze z i x zmieniaja oktawy'); writeln('klawisze v,b,n,m sluza do zmiany dlugosci dzwieku'); writeln('nacisniecie innego klawisza od wyzej wymienionych powoduje koniec programu'); Cis:=Round(Sqrt(C1*D1)); Dis:=Round(Sqrt(D1*E1)); Fis:=Round(Sqrt(F1*G1)); Gis:=Round(Sqrt(G1*A1)); Ais:=Round(Sqrt(A1*H1)); koniec:=False; c:=1; z:=n; repeat klawisz:=ReadKey; case klawisz of 'v':z:=n; 'b':z:=2*n; 'n':z:=4*n; 'm':z:=8*n; 'z':c:=2*c ; 'x':c:=round(c/2); 'a':play(C1*c,z); 's':play(D1*c,z); 'd':play(E1*c,z); 'f':play(F1*c,z); 'g':play(G1*c,z); 'h':play(A1*c,z); 'j':play(H1*c,z); 'k':play(C2*c,z); 'w':play(Cis*c,z); 'e':play(Dis*c,z); 't':play(Fis*c,z); 'y':play(Gis*c,z); 'u':play(Ais*c,z); else koniec:=True; end; if not koniec then begin write(klawisz:3); readln(klawisz); play(nuta,n); zapis:=klawisz; NoSound; end; until koniec; end; procedure zakladanie_pliku; var nazwa:String; begin assign(melodie,'C:\MELODIE.DAN'); writeln(' podaj nazwe piosenki'); rewrite(melodie); read(melodia.nazwa); kompozytor; write(klawisz); read(melodia.klawisz); write(melodie,melodia); Close(melodie); end;{zakladanie_pliku koniec} procedure odtwarzanie_melodii; begin assign(melodie,'C:\MELODIE.DAN'); reset(melodie); read(melodie,melodia); write(melodia.nazwa,melodia.klawisz); { while not eof(melodie) do begin read(melodie,melodia); writeln(melodia.nazwa,melodia.klawisz); end; } close(melodie); readln; end; Procedure Menu; var odp:char; begin writeln('wybierz opcje:'); writeln('1 kompozytor bez zapisywania melodii'); writeln('2 nagrywanie piosenki'); writeln('3 odtwarzanie melodii'); odp:=ReadKey; write(odp); case odp of '1':kompozytor; '2':zakladanie_pliku; '3':odtwarzanie_melodii; end; end; begin Clrscr; assign(melodie,'C:\MELODIE.DAN'); {program g˘wny} Menu; end.
×
×
  • Dodaj nową pozycję...