045 | Wirtualny Komputer - Wakacje'01

poprzednia kartka - spis tre╢ci - nastΩpna kartka   

Poprzednia strona
 

Kurs Pascala

C Y B E R ª W I A T    

Witam w pierwszej czΩ╢ci kursu programowania w jΩzyku Pascal. Jest to kurs dla pocz▒tkuj▒cych, dlatego te┐ teksty bΩd▒ napisane w prostym jΩzyku i zrozumia│ym dla zwyk│ego u┐ytkownika. Enjoy!

Najpierw trochΩ historii. JΩzyk Pascal napisany zosta│ na bazie jΩzyka Algol pod koniec lat sze╢µdziesi▒tych przez Niklauasa Wirtha. Jest to jeden z najbardziej popularnych jΩzyk≤w programowania, w kt≤rym bardzo │atwo i profesjonalnie mo┐na opisywaµ algorytmy i wstawiaµ w│asne struktury. Na komputery osobiste ten jΩzyk zosta│ wprowadzony przez firmΩ Borland. Powsta│ te┐ 'Windowsowy Pascal', czyli Delphi wydany r≤wnie┐ przez Borland. To tyle, je┐eli chodzi o pochodzenie Pascala. Przejd╝my do konkret≤w. Z pierwszej czΩ╢ci kursu dowiecie siΩ jak zacz▒µ programowaµ w Pascalu. Na pocz▒tek radzi│bym zaopatrzyµ siΩ w kompilator Turbo Pascala. Mo┐na go ╢ci▒gn▒µ z internetu lub po┐yczyµ od kogo╢, kto go ma. Turbo Pascal moim zdaniem bΩdzie najlepszy dla pocz▒tkuj▒cych programist≤w, poniewa┐ jest │atwy w obs│udze i zawiera edytor sprawdzaj▒cy na bie┐▒co b│Ωdy. Je┐eli zamierzacie ╢ci▒gn▒µ kompilator z internetu, to najlepiej wpiszcie w wyszukiwarce internetowej 'pascal compiler' itp. Adres napopularnieszej wyszukiwarki to: www.altavista.com

Gdy mamy ju┐ kompilator to mo┐emy zabraµ siΩ do pisania program≤w. Po ich napisaniu mo┐emy skompilowaµ je do postaci pliku wykonywalnego (*.exe). Zrobimy to otwieraj▒c Turbo Pascala i postΩpuj▒c zgodnie z poni┐szymi instrukcjami:
1) otwieramy nasz plik
2) Wciskamy po kolei menu Compile/Destination Memory, tak, aby zmieni│o siΩ to na Destinatio disk
3) wciskamy nastΩpnie Compile/Compile i sprawdzamy czy kompilator nie wykry│ ┐adnego b│Ωdu, nastΩpnie wciskamy Compile/Make i ju┐ mamy gotowy plik exe w katalogu z naszym plikiem .pas o takiej samej nazwie.
4) uruchamiamy go np. spod Dosa poleceniem nazwa_programu.exe 

Nic wiΩcej do szczΩ╢cia nie potrzeba, poza tym, ┐e musimy nauczyµ siΩ programowaµ ;), ale o tym poni┐ej.

A wiΩc zacznijmy. Na pocz▒tek prosty podstawowy program, kt≤ry wypisuje na ekranie zdanie 'Moj pierwszy program'. Program jest gotowy do skopiowania i wklejenia w kompilatorze, jednak nale┐y pomin▒µ znaczki np. /1/ , poniewa┐ s▒ to moje znaczki u│atwiaj▒ce t│umaczenie. Zaczynamy!

program podstawy; /1/
uses crt; /2/

begin /3/
clrscr; /4/
writeln('Moj pierwszy program'); /5/
repeat until keypressed; /6/
end. /7/

/1/ Komend▒ program <!!!ALIEN - wyszczegolniej jakos nazwy komend, najlepiej boldem!!!> zaczynamy ka┐dy program, a nazwa, kt≤ra nastΩpuje po nim, to wymy╢lona przeze mnie nazwa, w tym przypadku 'podstawy'. Mo┐na tam wstawiµ, co siΩ zechce.
/2/ Komenda uses okre╢la, jaki modu│ nasz program bΩdzie wykorzystywa│. Crt to podstawowy modu│ do│▒czony do ka┐dego Pascala. Z biegiem czasu bΩdzie siΩ dopisywa│o inne modu│y, ale teraz nie o tym, po prostu w ka┐dym programie musi byµ crt.
/3/ Begin to rozpoczΩcie g│≤wnej procedury.
/4/ Clrscr to nic innego jak odmiana dosowej komendy cls czyli czyszczenie ekranu.
/5/ Komenda writeln wypisuje na ekran to co napiszemy miΩdzy ' a ', w naszym przypadku: Moj pierwszy program. Je┐eli chcemy napisaµ co╢, co bΩdzie siΩ mie╢ci│o w jednej linijce to zamiast writeln piszemy write.
/6/ Ta komenda czeka po prostu a┐ naci╢niesz jaki╢ przycisk po to, ┐eby zako±czyµ program.
/7/ End to komenda ko±cz▒ca program, je┐eli bΩdzie wiΩcej begin≤w np. dwa to wtedy bΩd▒ dwa end-y z czego pierwszy zamiast kropki bΩdzie mia│ ╢rednik, czyli ; . Dlatego trzeba zawsze sprawdzaµ program na zasadzie: begin - end itp.
No my╢lΩ, ┐e zrozumieli╢cie.

Teraz zajmiemy siΩ trochΩ bardziej z│o┐onym programem, jakim jest program, kt≤ry liczy podane przez nas liczby. W tym programie zostan▒ dodane do siebie dwie liczby. Program dzia│a z wykorzystaniem zmiennych liczbowych (zmienna integer - liczby ca│kowite).
Przyk│ad:

program kalkulator;
uses crt;
var liczba1,liczba2,wynik:integer; /1/

begin
clrscr;
write('Podaj pierwsza liczbe:');
readln(liczba1); /2/
write('Podaj druga liczbe');
readln(liczba2);
wynik:=liczba1+liczba2; /3/
writeln('Wynik dodawania to:',wynik); /4/
repeat until keypressed;
end.

/1/ Var jest to deklaracja zmiennej. Integer to rodzaj zmiennej i chodzi w niej o to, ┐e pierwsza i druga liczba oraz wynik bΩd▒ liczbami ca│kowitymi, dlatego te┐ nie mo┐emy uzyskaµ w powy┐szym dzia│aniu dzielenia. Je┐eli chcemy dzieliµ to musimy napisaµ co╢ takiego: liczba1,liczba2:integer; a poni┐ej wynik:real; , chodzi o to, ┐e gdy podzielimy pierwsz▒ liczbΩ przez drug▒, otrzymamy wynik z dok│adno╢ci▒ do 14 miejsc po przecinku!

Zmienna real mo┐e zapamiΩtywaµ liczby nie tylko ca│kowite.
/2/ Komenda readln odczytuje liczbΩ z klawiatury i zapisuje j▒ do zmiennej (w naszym przypadku 'liczba1') .
/3/ Wynik zosta│ nazwany przeze mnie 'wynik' tak wiΩc w/w r≤wna siΩ po prostu liczba1 plus liczba2. Znaczek mno┐enia to '*' a dzielenia '/'.
/4/ Pocz▒tek tej komendy znacie, ale... no w│a╢nie, aby uzyskaµ wynik nale┐y text zako±czyµ ' , aby zaraz potem postawiµ przecinek i napisaµ nazwΩ wyniku; w naszym przypadku jest to wynik :). My╢lΩ, ┐e wszystko zosta│o zrozumiane i mo┐emy przej╢µ do nastΩpnej czΩ╢ci, a w niej o pΩtlach.

PΩtle, czyli co╢, co wykonuje dan▒ procedure wiΩcej ni┐ jeden raz lub nie przestaje jej wykonywaµ podczas wykonywania innej. Jest kilka typ≤w pΩtli, ja, ┐eby wam nie zamieszaµ, podam tylko dwie i jeden warunek. Nic tak nie przem≤wi wam do rozumu jak ma│y przyk│adzik :). W pierwszym przypadku opisujΩ pΩtlΩ repeat, czyli pΩtle, kt≤ra powtarza jak▒╢ procedurΩ. W tym programie pro╢ba o liczbΩ zostanie powtarzana a┐ nie podamy liczby 0.

program repeat;
uses crt;
var liczba:integer

begin
clrscr;
repeat /1/
write('Podaj liczbΩ');
readln(liczba);
until liczba=0; /2/
end.

/1/ Komenda repeat zaczyna pΩtlΩ.
/2/ Ta komenda ko±czy pΩtlΩ i ca│y program, gdy podamy liczbΩ zero. Powy┐ej w pierwszym programie by│o co╢ takiego: until keypressed, czyli keypressed to funkcja zako±cznia programu po wci╢niΩciu przycisku. Until jest przed ka┐d▒ tak▒ procedur▒, w tym przypadku przed liczba=0. Musimy spe│niµ warunek podany po until, aby zako±czyµ program. Tak┐e program bΩdzie powtarza│ pro╢bΩ o liczbΩ a┐ nie poda mu siΩ liczby 0.
Przechodzimy do kolejnego typu pΩtli jakim jest pΩtla 'for to', czyli co╢ zacznie siΩ powtarzaµ od...do.

program for;
uses crt;
var i:byte; 

begin
clrscr;
for i:=1 to 10 do writeln('Petla for'); /1/
repeat until keypressed;
end.

/1/ Ta pΩtla wygl▒da dziwnie, ale jest bardzo prosta. Ot≤┐ napisany text w naszym przypadku: "Petla for" zostanie wy╢wietlony 10 razy. Co jeden napisany text zmienna 'i' zwiΩkszy siΩ o warto╢µ 1 i gdy osi▒gnie warto╢µ 10, to nast▒pi zako±czenie pΩtli.
Dwa przyk│ady pΩtli za nami, tak┐e mo┐emy przej╢µ do czego╢, co nazywa siΩ warunkiem.

Warunek if stosowany jest w wielu programach, poniewa┐ jest bardzo przydatny i ma du┐e mo┐liwo╢ci, najpierw mniej wiΩcej go opiszΩ, a potem bΩdzie kochany przyk│adzik :) .
Ot≤┐ ten warunek dzia│a na zasadzie uruchamiania jakiego╢ polecenia po spe│nieniu danej czyno╢ci, np. je┐eli zmienna 'i' bΩdzie siΩ r≤wna│a przypu╢µmy 'kursik' to zostanie wykonane dane polecenie. Warunek dzia│a na zasadzie je┐eli...to. No, nareszcie koniec glΩdzenia i przyk│ad :). A w nim prosty kalkulator dwudzia│aniowy, kt≤ry poprosi o pierwsz▒ i drug▒ liczbΩ oraz o rodzaj dzia│ania.

program if;
uses crt;
var liczba1,liczba2,wynik:real;
dzialanie:byte;

begin
clrscr;
write('Podaj pierwsza liczbe:');
readln(liczba1);
write('Podaj druga liczbe:');
readln(liczba2);
writeln('Podaj numer dzialania: 1. mnozenie 2. dzielenie');
readln(dzialanie);
if dzialanie=1 then wynik:=liczba1*liczba2; /1/
if dzialanie=2 then wynik:=liczba1/liczba2; /2/
write('Wynik wynosi:',wynik:0:4); /3/
repeat until keypressed;
end.

/1/ Warunek dzia│a tak: je┐eli wybierzemy klawisz 1, to wynik bΩdzie iloczynem dw≤ch wcze╢niej podanych liczb.
/2/ To co wy┐ej, tylko je┐eli naci╢niemy 2, to wynikiem bΩdzie dzielenie dw≤ch wcze╢niej podanych liczb.
/3/ Pierwsz▒ cze╢µ komendy znacie, a je╢li chodzi o 0:4 po s│owie wynik, to poprostu wynik zostanie zaokr▒glony do 4 liczb po przecinku, bo po co komu 14 liczb.

My╢lΩ, ┐e zrozumieli╢cie pierwsz▒ czΩ╢µ kusru programowania w Pascalu. Je┐eli znale╝li╢cie jaki╢ b│▒d, b▒d╝ nie rozumiecie czego╢, to piszcie na m≤j adres e-mail. Poni┐ej podaje tabelkΩ z rodzajami przedzia│≤w liczb wykorzystywanymi przez zmienne w programach licz▒cych i nie tylko. Do zobaczenia za miesi▒c w coraz trudniejszej czΩ╢ci kursu Pascala!

    Nazwa:

    Przedzia│:

    Integer     -32768..32767
    Longint     -2147483648..214748347
    Byte     0..255
    Word     0..65535

p i x e l      

NastΩpna strona

 
 045 | Wirtualny Komputer - Wakacje'01

poprzednia kartka - spis tre╢ci - nastΩpna kartka