Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 
Polski Portal COLOBOTa
COLOBOT Polish Portal

Turbo Pascal, Delphi Pascal - SoundGenerator By cezar.512

Raptor - 03-03-2011, 14:54
Temat postu: SoundGenerator By cezar.512
No dobra. Żeby nie było, że nic na tym forum nie robię, postanowiłem pokazać Wam swoje pierwsze "wypociny" w kierunku nauki Turbo Pascal.

Na początek przedstawiam Wam mój pierwszy, własny i prosty projekt, który nazwałem SoundGenerator By cezar.512 (Och! Jak to dumnie brzmi :lol: !). Jak sama nazwa wskazuje, program ten służy do generowania prostych sygnałów akustycznych z wbudowanego w niemal każdy komputer PC-Speakera (lubiłem się nimi bawić, podłączając do Mini-Jack ;-) ).

Pewnie spytacie, do czego to potrzebne? Odpowiem tak: przede wszystkim do nauki. Jak wiecie, w programowaniu jestem średni, zwłaszcza w CBot, więc postanowiłem zacząć od czegoś, co wg tego co słyszałem, jest prostsze. To oznacza, że pozwalam Wam na komentowanie, pouczanie i podawanie pomysłów, aby ten program "miał swoje nogi".

Drugie zastosowanie: pobieracie ten program na lekcji informatyki i denerwujecie dźwiękami (najlepiej o częstotliwości około 2200) nauczycieli i współuczniów :-P

Program oczywiście udostępniam z oddzielnymi kodami źródłowymi.

A oto kody źródłowe wszystkich trzech dotychczas wydanych przeze mnie:

SoundGenerator 1.0
Kod:
USES CRT;

VAR
frequency,time:longint;

BEGIN
write('SoundGenerator 1.0 By cezar.512:');
delay(5000);
clrscr;

writeln('Podaj cz©stotliwo˜† d«wi©ku:');
read(frequency);
clrscr;

writeln('Podaj czas d«wi©ku w sekundach, dodajĄc na koäcu trzy zera:');
read(time);
clrscr;

write('Trwa odtwarzanie zdefiniowanej scieľki...');
sound(frequency);
delay(time);
nosound;
clrscr;

write('Koniec zdefiniowanej scieľki.');
delay(2000);
clrscr;

write('Koniec programu. Autor - cezar.512.');
delay(2000);
END.

SoundGenerator 1.1
Kod:
USES CRT;

VAR
frequency,time:longint;

BEGIN
write('SoundGenerator 1.1 By cezar.512:');
readln;
clrscr;

writeln('Podaj cz©stotliwo˜† d«wi©ku:');
read(frequency);
clrscr;

writeln('Podaj czas d«wi©ku w sekundach, dodajĄc na koäcu trzy zera:');
read(time);
clrscr;

write('Trwa odtwarzanie zdefiniowanej scieľki...');
sound(frequency);
delay(time);
nosound;
clrscr;

write('Koniec zdefiniowanej scieľki.');
delay(2000);
clrscr;

write('Koniec programu. Autor - cezar.512.');
delay(2000);
END.

SoundGenerator 1.2
Kod:
USES CRT;

VAR
frequency,time,choose:longint;

LABEL start;

BEGIN
write('SoundGenerator 1.2 By cezar.512:');
readln;
start:
clrscr;

writeln('Podaj cz©stotliwo˜† d«wi©ku:');
read(frequency);
clrscr;

writeln('Podaj czas d«wi©ku w sekundach, dodajĄc na koäcu trzy zera:');
read(time);
clrscr;

write('Trwa odtwarzanie zdefiniowanej scieľki...');
sound(frequency);
delay(time);
nosound;
clrscr;

write('Koniec zdefiniowanej scieľki.');
delay(2000);
clrscr;

writeln('Wybierz, czy chcesz wyj˜† z programu:');
writeln('1. Kontynuuj...');
writeln('0. Wyjd«.');
read(choose);

if choose=1 then goto start;

if choose=0 then
   BEGIN
   clrscr;
   write('Koniec programu. Autor - cezar.512.');
   delay(2000);
   END;
END.


Liczę na Waszą pomoc w mojej nauce.

adiblol - 03-03-2011, 15:05

Przerzuć się na C++, odczujesz dużą ulgę :>
Simbax - 03-03-2011, 15:11

Zamiast kazać dopisywać 3 zera użytkownikowi pomnóż zmienną przez 1000. Możesz też dodać łatwo jakieś kolorki ;) I może jeszcze usuń ten dwukropek na końcu tekstu "SoundGenerator..." na początku programu, bo nie wiedziałem czy mam tam wpisać coś czy po prostu enter nacisnąć.

Tak wiem, proponuję tylko zmiany estetyczne, ale to jest również ważne :)

Raptor - 03-03-2011, 18:06

Simbax napisał/a:
Tak wiem, proponuję tylko zmiany estetyczne, ale to jest również ważne :)

W pełni się z Tobą zgadzam ;-) . Jutro spróbuję wstawić wersję 1.3, ale jak na razie bez kolorów (przechodzę dość dziwny kurs, w którym na razie nic o tym nie było).

Simbax - 03-03-2011, 20:09

To są tylko dwie proste funkcje.

http://www.pascal.eu.org/lekcja4.htm#textcolor

Jedynie problem może być z zapamiętaniem kolorów, ale przecież zawsze można zajrzeć do listy ;p

krzys_h - 03-03-2011, 21:42

Też kiedyś się bawiłem PC-Speakerem. Zrobiłem nawet pianinko i odtwarzacz :-) Jak znajde gdzieś na dysku albo płycie, to wrzuce.
Raptor - 04-03-2011, 14:42

Oto poprawiona przeze mnie wersja SoundGenerator, dzięki Simbax. Zaznaczam „pomógł”, gdyż zaproponował pomnożenie zmiennej time przez 1000. Że też sam na to nie wpadłem… Ale jestem małościsły…

Dodawanie wodotrysków (typu textcolor), do tego, jak i innych moich projektów (które niedługo się tu pojawią) zostawię sobie na później. Na razie trzeba myśleć o ogólnej strukturze programu.

SoundGenerator 1.3:
Kod:
USES CRT;

VAR
frequency,time,choose:longint;

LABEL start;

BEGIN
write('SoundGenerator 1.3 By cezar.512.');
readln;
start:
clrscr;

writeln('Podaj cz©stotliwo˜† d«wi©ku:');
read(frequency);
clrscr;

writeln('Podaj czas d«wi©ku (w sekundach):');
read(time);
clrscr;

write('Trwa odtwarzanie zdefiniowanej scieľki...');
sound(frequency);
delay(time*1000);
nosound;
clrscr;

write('Koniec zdefiniowanej scieľki.');
delay(2000);
clrscr;

writeln('Wybierz, czy chcesz wyj˜† z programu:');
writeln;
writeln('  1. Kontynuuj...');
writeln('  0. Wyjd«.');
read(choose);

if choose=1 then goto start;

if choose=0 then
   BEGIN
   clrscr;
   write('Koniec programu. Autor - cezar.512.');
   delay(2000);
   END;
END.


Powered by phpBB modified by Przemo & WRIM © 2003 phpBB Group