Postup:
- Uložte si tenhle soubor (text viz níže) na svůj disk.
- Do stejné složky k němu vytvořte textový soubor s názvem "muj.txt". Obsah tohoto textového souboru může být libovolný. Měl by však obsahovat několik řádků (zhruba 200 znaků či více).
- Spusťte pascalský program z této ukázky.
- Tento program
- otevře textový soubor "muj.txt"
- načte soubor "muj.txt"
- vypíše tento soubor na obrazovku
- po stisknutí klávesy skončí
- zavře soubor "muj.txt"
Úkol:
Upravte tento program tak, aby vstupem byl textový soubor a výstupem byla melodie hraná pomocí SOUND.
Vstup bude tvořen dvojicemi číslic frekvence, délka tónu.
uses crt;
var f: text;
pom: string;
begin
assign(f, 'muj.txt'); (* přiřadíme jméno *)
reset(f); (* otevřeme soubor *)
while not eof(f) do begin (* dokud nedojdeme na poslední řádek *)
readln(f, pom); (* načteme řádek do proměnné *)
writeln(pom); (* vypíšeme řádek na obrazovku *)
repeat until keypressed;
end;
close(f); (* ukončíme práci se souborem *)
end.
řešení úkolu:
- vytvoř si textový soubor "muj.txt"
- do něj zapiš číslice, které reprezentují frekvenci, která bude "hrát"
- tyto číslice budou pod sebou
- do stejné složky jako je uložen "muj.txt" ulož následující soubor v jazyce pascal (viz níže)
- tento soubor bude přehrávat melodii zadanou textovým souborem
nevýhoda: textový soubor určuje frekvenci, ignoruje však délku tónu, ta je napevno nastavena v programu
nutno makat dál...
uses crt;
var f: text;
n, pom : word;
procedure pipni (F, T : word);
{F jako Frekvence, T jako do, kterou to bude pištět na oné frekvenci}
{interval vhodných F je ideální zjistit experimentem nebo vygooglit}
begin
Sound(F); { Píp }
Delay(T); { na T ms }
NoSound; { Úleva! Blaho! }
end;
begin
assign(f, 'muj.txt'); (* přiřadíme jméno *)
reset(f); (* otevřeme soubor *)
while not eof(f) do begin (* dokud nedojdeme na poslední řádek *)
readln(f, pom); (* načteme řádek do proměnné *)
writeln(pom); (* vypíšeme řádek na obrazovku *)
pipni (pom,300); (* vesele pípneme s nastavenou frekvencí načtenou ze souboru "muj.txt", ale s pevnou délkou nastavenou zde *)
end;
repeat until keypressed;
close(f); (* ukončíme práci se souborem *)
end.
Žádné komentáře:
Okomentovat