Kurs języka Turbo Pascal.pdf

(316 KB) Pobierz
Kurs języka Turbo Pascal
KursjęzykaTurboPascal
Wersja1.00(10.03.2004)
Prawaautorskie
PoniewaŜuwaŜamzabezsenspłaceniezaksiąŜkętypu"Pascaldlaopornych"gdzienajbardziej
opornymjestautor,przeszukałemnet,odgrzebałemdyskietkizestudiówizabrałemsiędopracy.
Opracowująctenkurs,korzystałemzinnychkursów(którepewniekorzystałyzinnychkursów,
poniewaŜwielerzeczysięwnichpowtarza,aniktotymniewspominaprzedstawiająckaŜdykurs
jakoswojedzieło),zksiąŜek,materiałówzokresustudiów,zatemwykorzystujtenkursjakCisię
podoba.JeśliudaCisięnatymzarobićchwałaCi,ŜeCisiętoudałokupmiFerraribędziemy
kwita.
KurstenopracowałemwcelachedukacyjnychinieodnoszęŜadnychkorzyścimaterialnych.Nie
bioręodpowiedzialnościzawszelkieszkodypowstałewwynikustosowaniategokursu.Wszystko
robisznawłasnąodpowiedzialność,jaknapiszeszprogramikktórysformatuje(albocogorsza
zamaŜe)CidyskTWOJAsprawa.
Wszelkieinformacjeiuwagidotyczącekursu(zwłaszczadotyczącebłędów,literówekczybłędów
ortograficznych)sądlamniebezcenneiproszęprzesyłaćemailemjeśliłaska.
PrzygodęzprogramowaniemrozpoczynałemodjęzykaBASICnamaszynieCommodore64,potem
czasprzyszedłnaFortran,PascalDelphi,C/C++,aobecnieprzesiadłemsięnaGNU/GPLLinuxi
poznajePerlaiJavę.Wsumieniemaznaczeniejakiznaszjęzyk(no,moŜeBASICbyłwyjątkowy)
kwestiabudowaniaalgorytmówjestnajwaŜniejsza,implementacjatotylkozapispomysłu.
Kurswykorzystujestylekaskadowe(CSS),amenuładujeskrypt(JavaScript).Dobrarozdzielczość
to1024x768.
TurboPascalwczasachwizualizacjidokonańswojejpracy,gdyskupiamysięnadefektownościąa
nienadefektywnościąswojejpracyjestpostrzeganyjakoanachronizm.Niestetywobecnych
czasachjestnimwistocie,poniewaŜjuŜdawnoprzestanouŜywaćDOS'ajakopowaŜnegosystemu
operacyjnego.UŜywającokienkowegosystemuzapominamy,Ŝepośredniczyontylkopomiędzy
namiakomputerem,tłumaczywszystkienaszekliknięcanakodmaszynowyktóryjest
prawdziwymjęzykiemkomputera.
133867310.007.png 133867310.008.png
Pisanieprogramutosztukaporozumieniasięzkimśwobcymdlanasjęzyku,któryczęstoskłada
sięjedyniezkilkudziesięciusłów(nomoŜewięcej:)).Musimywytłumaczyćtemukomuś(czyli
naszemubiednemukomputerowi)jakwykonaćdanączynność,októrejonniemapojęcia.Dotego
słuŜyalgorytmczyliprzepispostępowania.Wyobraźmysobie,Ŝemusimynauczyćkomputer
parzyćherbatę.Jakwyglądałbytakialgorytm?OtóŜ:1.Nalejwodydoczajnika,2.Postawczajnik
nagazie,3.Podpalgaz,4.ZaczekajaŜzagwiŜdŜe.Proste,nie?Tylkoskądkomputermawiedzieć
cotojestczajnik?Niemówiącoslangowym"postawnagazie".PonieśliśmypełnąporaŜkę,ucząc
komputergotowaćwodę.
Jakkomputerwykonujewszystkieteoperacjeoktóregogrzecznieprosimy?OtóŜsystem
operacyjnyiwszystkieprogramyktórychuŜywamysąnapisanewsposóbktórykomputer
zrozumie.DotegosłuŜąjęzykiprogramowania,ajednymznichjestPASCAL.Pascalbyłkiedyś
nazywanyjęzykiemwyŜszegorzędu.Dlatego,Ŝewporównaniudokodumaszynowegobył
zrozumiałydlaczytelnika.JegonowszaodmiananosinazwęDelphiijestjuŜzaawansowanym
narzędziemprogramistycznym,lecznienaleŜyzapominać,ŜepowstaławłaśniezPascal'a.
Delphijestobiektowymjęzykiemprogramowaniazorientowanymnazdarzenia.Oznaczato,Ŝe
programującwDelphi,musimypoznaćjakieobiektymamydodyspozycji,orazjakmoŜemyje
wykorzystać.PASCALmoŜewykorzystywaćobiekty,alewsensiealgorytmizacjikodujest
znakomitymnarzędziemdonauki.Przenoszenieprocedur(programów)doDelphijestkwestią
kopiuj/wklej,orazdostosowaniaspecyficznychniuansówskładniowych.
Mamjednaknadzieję,ŜePascalnieupadnie,poniewaŜjestznakomitymnarzędziemdonauki
algorytmikiswojejpracy,ponadtojaakuratrozpocząłemodPascalaznajomośćjednegojęzyka
programowaniagwarantujenam(pozaznajomieniusięzeskładniąinnegojęzyka)programowanie
wdowolnymjęzykujakC,PerlczyJava.Kwestiąjestprzestawieniesięnainnesłownictwo,a
podstawy,mechanizmyjęzykawwiększościpozostajątesame.
PonapisaniukodujęzykawyŜszegorzędu,naleŜyprzetłumaczyćgonajęzykzrozumiałydla
komputeradotegosłuŜąkompilatoryjęzykanakodmaszynowy(asemblery).Poskompilowaniu
kodudostajemygotowydouŜywaniaprogram.IstniejętakŜedezasemblery,czyliprogramyktóre
potrafiązaanalizowaćkodprogramuiprzetworzyćgonadanyjęzykprogramowania.
PrzyopisywaniujęzykaPascalposługiwałemsiętrzemakursamiznalezionymiwsieci(niestety
znalazłemjejeszczezastudenckichczasów,zatemniemogępowiedziećktojestautoremnie
zachowałomisięto),podręcznikiem,tzw."biblią""TurboPascal7.0"orazwłasnymi
doświadczeniamiwyniesionymizokresustudiówwykładamiiwłasnymiprogramamiw
szczególnościmojapracamagisterskabyłanapisanawDelphi(nt.Iteracyjemetodyrozwiązywania
wielomianówczycośwtymstylu).Gdyterazczytamswójwłasnykodsprzedkilkulat,nie
ukrywam,Ŝeteraznapisałbymgowniecobardziejeleganckisposób,alepomińmyto.Zdajesobie
sprawę,Ŝeporuszyłemjedyniewierzchołekgórylodowej,aleprzynajmniejgotrochęuszczknąłem
;).
Algorytmyischematyblokowe
Programtodlakomputerazestawinstrukcjicozrobićwdanymwypadku.Przypominatospiskrok
pokroku,cowdanejsytuacjirobić.Tenspisnazywamyalgorytmempostępowania.Musibyćon
ułoŜonywsposóbprzewidującywszystkiemoŜliwesytuacje(byprogramwykonującyalgorytmnie
zabrnąłwślepąuliczkęisięniezawiesił)orazwsensownysposóbprowadzącyoddanych
wprowadzanychdodanychwyjściowych.
Pozapisaniualgorytmuwjęzykuprogramowaniajestontłumaczonyprzezkompilatornakod
maszynowy,któryjestjuŜkonkretnymipoleceniamidlaprocesora.
Schematyblokowesąnajlepsząmetodąnaukialgorytmiki,poniewaŜpozwalająnaprześledzenie
kolejnychposunięćprogramupodczaswykonywanianaszychpoleceń.WartosobieułoŜyćtaki
schemat,wiedzącjednaknajpierwjakiesposobymoŜemywykorzystać.
Językprogramowaniaoferujenamkilkarodzajówpoleceń,zapomocąktórychmoŜemydokonywać
operacjilogicznych.SątoinstrukcjewarunkowewktórychmoŜemywykorzystywaćbramkilogiczne
OR(lub),AND(i,oraz)iwynikającąznichXOR(albo).Roląinstrukcjiwarunkowejjestrozstrzygnąć
prawdziwośćjakiegośwarunkuiwykonanieodpowiednichinstrukcjiwzaleŜnościczydanywarunek
jestprawdziwyczyteŜnie.Logikadwuwartościowajestpodstawąalgorytmikidowolnegoproblemu.
Jakrozpocząćpisanieprogramukomputerowego?Proste,naleŜyuzbroićsięwkartkępapieru,
ołówekigumkę.NIEśARTUJĘ!Jeśliktośrozpoczynapisaniekoduodpisaniakodutoczekago
długadrogapoprawianiakodudooptymalnegowyniku,czyligdywzględniedziała,iniewiadomo
dlaczego(ajesttakbardzoczęsto!)alenasnieinteresujejapońskametoda"jakotako"
Prześledźmyalgorytmnapodstawierozwiązaniarównaniakwadratowego.Jestto
najpowszechniejszyprzykładcelowegodziałania,uzaleŜnionegowtrakcieobliczeńodwynikudelty.
AlgorytmpostępowaniamoŜnazapisaćwpunktach:
POLECENIE:rozwiąŜrównaniekwadratoweax 2 +bx+c=0
1.Wczytajwspółczynnikia,b,cdoprogramu
2.Obliczdeltę=b 2 4ac
3.Jeślidelta>0toobliczx 1 x 2
4.Jeślidelta=0obliczx 1/2
5.Jeślidelta<0towyświetlkomunikat"brakrozwiązań"
6.Podajodpowiedźwynikobliczeń.
coschematemblokowymmoŜemyzapisaćwsposób:
133867310.009.png 133867310.010.png
iodtakiegorozrysowaniasobiestrukturyprogramupowinniśmyrozpocząćnasząpracę.Wtrakcie
kolejnychpodpunktów,pokaŜę,jaktakiprogramnapisać...
PoułoŜeniualgorytmu,jakiponapisaniuprogramutestujemygo,czyprzewidzieliśmywszystkie
sytuacje,czyprogrambędziedziałałniezawodnie,czy(tochybanajwaŜniejsze)liczytocomu
kazaliśmy.Nieocenionątutajmetodą,jest"metodakumpla"poniewaŜnambrakujeczęsto
obiektywnegospojrzeniananaszedzieło,akolegapotrafizawiesićnaszesuper"idiotoodporne"
algorytmyśredniow15sekund.
Testującsaminaszprogram,testujemygonadanychtypowych(czydziała),nadanych
brzegowych(czyliszczagólnychsytuacjach),oraznadanychspozazakresudziałania(czylina
przykładwprowadzającprzypadkoweczybłędnedane)bysprawdzić,czyprogramsięgdzieśnie
wysypie.
Pamiętajmy,ŜenaszprogramponapisaniujestconajwyŜejtakdoskonałyjakmysami(często
nawetnie)zatemzawszeznajdziesięktośktogorozłoŜynałopatki,azdarzysięŜeizmieszaz
błotem.
133867310.001.png 133867310.002.png
Środowiskoprogramistyczne
ŚrodowiskiemprogramistycznymTurboPascalajestedytortekstuzintegrowanyz
kompilatoremjęzyka,któryzamieniaplikźródłowyjęzykapascalformatunazwa_pliku.pasnaplik
nazwa_pliku.exejakoplikuwykonywalnego.Toprzyjazneśrodowisko,którepozwalanaedycję
plikuźródłowego,jegokompilowanieorazdebuggingczyliwyszukiwaniebłędów.
PozainstalowaniupakietuoprogramowaniaTurboPascaluruchomplikturbo.exewpodkatalogu
C:\BP\BIN\lubC:\TP\BIN\.JeśliTurboPascalabędzieszuŜywaćnakomputerzezprocesorem
PentiumPro200MHzlubszybszym,naleŜyzainstalowaćpatch'a,czyliłatkę,boinaczejwyskakiwać
nambędziecałyczasbłądkompilacji!).Zatemprzechodzimydokataloguc:\tp\biniwydajemy
polecenieturbo.exepoczymujrzymy:
gdziekomendymoŜemywydawaćzapomocąmyszylubskrótówklawiaturówych.Domenu
moŜemywchodzićtakŜenaciskającF10.
W poszczególnych menu moŜemy (opisuje tylko najprzydatniejsze polecenia):
MenuFILE:
MenuEDIT:
·
NEWtworzynowypliknoname.pas
·
CUT(del)wycinazaznaczonytekst
·
OPENotwieradokumentzdysku
·
COPY(ctrl+ins)kopiujetekstdo
schowka(clipboard)
·
SAVEzapisujeplik*.pas
·
CHANGEDIRzmieniakatalog
domyślny
·
PASTE(shift+ins)wstawiatekstze
schowka
·
OSSHELLpozwalanaczasowe
opuszczenieśrodowiskaiprzejściedo
DOS,powrótdośrodowiskaPascal'a
·
SHOWCLIPBOARDpokazujeschowek
ZaznaczaćtekstdooperacjiblokowychmoŜemy
133867310.003.png 133867310.004.png 133867310.005.png 133867310.006.png
Zgłoś jeśli naruszono regulamin