Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00725 009524 11026116 na godz. na dobę w sumie
Praktyczny kurs Turbo Pascala. Wydanie IV - książka
Praktyczny kurs Turbo Pascala. Wydanie IV - książka
Autor: Liczba stron: 288
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-214-9 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> turbo pascal - programowanie
Porównaj ceny (książka, ebook, audiobook).

Turbo Pascal nie jest wprawdzie powszechnie używany przy pisaniu profesjonalnych aplikacji, stanowi jednak wspaniałą propozycję dla początkujących programistów. Dzięki Pascalowi możesz zacząć szybko pisać własne programy, ucząc się jednocześnie poprawnego programowania strukturalnego i obiektowego.

'Praktyczny kurs Turbo Pascala' to książka przeznaczona dla wszystkich tych, którzy chcieliby wykorzystać praktyczne aspekty programowania w Turbo Pascalu. Prezentowane w niej zagadnienia pozwolą Ci na stopniowe zapoznanie się z zasadami programowania oraz elementami języka na drodze doświadczeń i rozwiązywania problemów napotykanych w trakcie tworzenia aplikacji. Książka napisana jest żywym i przystępnym językiem, a stopień 'wtajemniczenia komputerowego' potrzebny do zrozumienia omówionych zagadnień jest minimalny.

Dzięki książce: To już czwarte, uzupełnione i rozszerzone wydanie bestsellera wydawnictwa Helion, opisujące wersję 7 TurboPascala. Dzięki poprzednim edycjom tej książki tysiące osób rozpoczęło swoją przygodę z programowaniem. Teraz i Ty możesz do nich dołączyć.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Praktyczny kurs Turbo Pascala. Wydanie IV Autor: Tomasz M. Sadowski ISBN: 83-7361-214-9 Format: B5, stron: 288 Turbo Pascal nie jest wprawdzie powszechnie u¿ywany przy pisaniu profesjonalnych aplikacji, stanowi jednak wspania³¹ propozycjê dla pocz¹tkuj¹cych programistów. Dziêki Pascalowi mo¿esz zacz¹æ szybko pisaæ w³asne programy, ucz¹c siê jednoczeġnie poprawnego programowania strukturalnego i obiektowego. „Praktyczny kurs Turbo Pascala” to ksi¹¿ka przeznaczona dla wszystkich tych, którzy chcieliby wykorzystaæ praktyczne aspekty programowania w Turbo Pascalu. Prezentowane w niej zagadnienia pozwol¹ Ci na stopniowe zapoznanie siê z zasadami programowania oraz elementami jêzyka na drodze doġwiadczeñ i rozwi¹zywania problemów napotykanych w trakcie tworzenia aplikacji. Ksi¹¿ka napisana jest ¿ywym i przystêpnym jêzykiem, a stopieñ „wtajemniczenia komputerowego” potrzebny do zrozumienia omówionych zagadnieñ jest minimalny. Dziêki ksi¹¿ce: • Poznasz ġrodowisko TurboPascala • Napiszesz swój pierwszy program w tym jêzyku • Poznasz instrukcje TurboPascala • Nauczysz siê definiowaæ zmienne i typy • Dowiesz siê, jak uruchamiaæ programy i usuwaæ b³êdy • Stworzysz w³asne funkcje i procedury • Poznasz programowanie obiektowe • Poznasz podstawy algorytmiki i optymalizacji programów • Zapoznasz siê z funkcjami biblioteki standardowej To ju¿ czwarte, uzupe³nione i rozszerzone wydanie bestsellera wydawnictwa Helion. Dziêki poprzednim edycjom tej ksi¹¿ki tysi¹ce osób rozpoczê³o swoj¹ przygodê z programowaniem. Teraz i Ty mo¿esz do nich do³¹czyæ. Spis treści Do Czytelnika ...................................................n................................. 5 Rozdział 1. Zaczynamy ...................................................n..................................... 7 Rozdział 2. Pierwszy program ...................................................n......................... 17 Rozdział 3. Kalkulator ...................................................n.................................... 23 Rozdział 4. Jak programista z komputerem...................................................n...... 29 Rozdział 5. Instrukcja warunkowa (i nie tylko) ...................................................n 37 Rozdział 6. Zapętlamy ...................................................n.................................... 43 Rozdział 7. Pojawia się więcej danych… ...................................................n......... 49 Rozdział 8. Czarna skrzynka, czyli procedury i funkcje ........................................ 59 Rozdział 9. Konwersacja z procedurami...................................................n........... 67 Rozdział 10. Definiujemy nowe typy ...................................................n.................. 77 Rozdział 11. Stałe ...................................................n............................................ 83 Rozdział 12. Porządki w danych ...................................................n........................ 89 Rozdział 13. Co zrobić, żeby nie stracić wyników pracy… ..................................... 97 Rozdział 14. Pliki tekstowe ...................................................n............................ 105 Rozdział 15. Co to takiego string? ...................................................n.................. 111 Rozdział 16. Wskaźniki...................................................n................................... 119 Rozdział 17. Moduły standardowe...................................................n................... 129 Rozdział 18. Coś dla relaksu — środki uruchomieniowe...................................... 137 Rozdział 19. Budujemy bazę danych...................................................n................ 143 Rozdział 20. Rekord + wskaźnik = lista...................................................n........... 149 Rozdział 21. Grafika ...................................................n....................................... 157 4 Praktyczny kurs Turbo Pascala Rozdział 22. Grafika w zastosowaniach ...................................................n............ 163 Rozdział 23. Własne moduły ...................................................n........................... 167 Rozdział 24. Obiekty w pigułce (dozwolone od wersji 5.5) .................................. 175 Rozdział 25. Dziedziczenie, polimorfizm i metody wirtualne .................................... 185 Rozdział 26. Nie tylko edytor: zaawansowane możliwości IDE ............................. 195 Rozdział 27. Błędy — rzecz ludzka ...................................................n.................. 201 Rozdział 28. Jak pisać dobre programy ...................................................n........... 211 Dodatek A Pytania i odpowiedzi ...................................................n................... 225 Dodatek B Instalacja i konfiguracja Turbo Pascala .......................................... 231 Dodatek C Odpowiedzi do zadań...................................................n................... 237 Dodatek D Zawartość płyty CD ...................................................n.................... 255 Dodatek E Kilka przydatnych pojęć komputerowych......................................... 257 Dodatek F Słowniczek angielsko-polski ...................................................n........ 267 Literatura ...................................................n................................... 271 Skorowidz...................................................n................................... 273 Rozdział 4. Jak programista z komputerem   Jak wprowadzić dane dla programu Zmienne, ich deklarowanie i inicjalizowanie  Typy proste  Operatory logiczne Przyjrzyjmy się ponownie naszemu programikowi-kalkulatorowi. Jego zasadnicza wada polega na tym, że aby uzyskać jakikolwiek wynik, należy za każdym razem wpisywać liczby do nawiasów procedury YTKVGNP i kompilować program. Istnieje oczywiście sposób, by tego nie robić. Jak w każdym przyzwoitym języku programowania, w Pascalu istnieje pojęcie zmiennej, która jest identyfikowanym przez nazwę pojemnikiem na wartość wykorzystywaną w trakcie działania programu. Pewną wadą zmiennych jest konieczność ich deklarowania, tj. informowania kompilatora, że dana zmienna jest okre- ślonego typu. W Pascalu deklaracja zmiennych ma postać: NKUVCPCYV[R Nazwy na NKħEKG oddziela się przecinkami, zaś grupa deklaracji musi rozpoczynać się słowem kluczowym XCT (ang. variables — zmienne). Nietrudno się domyślić, że de- klaracje zmiennych powinny poprzedzać ich użycie, a zatem należy je umieszczać po nagłówku programu, a przed otwierającym słowem DGIKP. Składnia języka zabrania deklarowania zmiennych w treści programu, tak więc próba umieszczenia takiej dekla- racji pomiędzy słowami DGIKP i GPF zakończy się błędem kompilacji. Załóżmy, że nasz kalkulatorek ma się zajmować mnożeniem dwóch dowolnych liczb rzeczywistych. Przyjmie on teraz postać: RTQITCO/PQGPKG 2TQITCOOPQľæE[FYKGFQYQNPGNKED[ MNOZ1.PAS XCT .KEDC.KEDCTGCN 30 Praktyczny kurs Turbo Pascala DGIKP TGCFNP .KEDC ]QFE[VCLNKED[MNCYKCVWT[_ TGCFNP .KEDC  YTKVGNP .KEDC .KEDC ]Y[ħYKGVNKEJKNQE[P_ GPF Po słowie DGIKP pojawiła się kolejna nowość: wywołanie standardowej procedury wejścia TGCFNP. Procedura ta jest „odwrotnością” poznanej poprzednio YTKVGNP, służy zaś do wprowadzenia wartości zmiennych .KEDC i .KEDC z klawiatury. Po uruchomieniu programu możemy wpisać z klawiatury dwie kolejne liczby, naci- skając po każdej klawisz Enter. Program obliczy i wyświetli ich iloczyn; zauważmy, że wynik jest wyświetlany właśnie we wspomnianej przed chwilą postaci naukowej, tj. liczbaEwykładnik. Jest ona bardziej pojemna, tj. łatwiej reprezentuje się w niej bar- dzo małe i bardzo duże liczby — ale mniej czytelna. Na szczęście już wkrótce pozna- my metodę pozwalającą na wyprowadzanie liczb w bardziezj zrozumiałej postaci. Podobnie jak w przypadku YTKVGNP, istnieje też odmiana procedury TGCFNP — TGCF, która przy kolejnych wywołaniach nie oczekuje znaku nowego wiersza. Jest ona sto- sowana dość rzadko i wymaga pewnej wprawy, nie będziemy się więc na razie nią zaj- mować. Ogólna postać wywołania procedury TGCFNP wygląda tak: TGCFNP NKUVCCTIWOGPVÎY gdzie NKUVCCTIWOGPVÎY to dowolnej długości ciąg zmiennych rozdzielonych prze- cinkami. Jak widać, TGCFNP umożliwia wprowadzenie za pomocą jednego wywołania kilku wartości, które w takim przypadku należy podczas wpisywania rozdzielić co naj- mniej jednym tzw. białym znakiem (ang. whitespace), tj. znakiem spacji, tabulacji lub nowego wiersza. Lista argumentów procedury TGCFNP może też być pusta, tak więc poprawna jest poniższa instrukcja: TGCFNP Nie robi ona nic poza oczekiwaniem na wprowadzenie znaku nowego wiersza (czyli naciśnięcie klawisza Enter). Aby przekonać się o jej użyteczności, dopisz ją na końcu programu Mnozenie1. Pora teraz zająć się bliżej deklaracjami zmiennych. Każda zmienna w Pascalu posiada swoją nazwę i typ. Nazwa zmiennej służy do identyfikowania jej w prograzmie i zależy tylko od programisty (podlega ona tym samym ograniczeniom, co każdy identyfikator — może zawierać litery, cyfry i podkreślenia, ale nie może zaczynać się od cyfry). Jak już powiedziano, duże litery nie są odróżniane od małych, ale zróżnicowanie liter pomaga przy czytaniu nazw (9KGM2TCEQYPKMC czyta się łatwiej niż YKGMRTCEQYPKMC). Użycie dużych liter i znaków podkreślenia poprawia hczytelność identyfikatorów. Typ zmiennej określa z kolei jej postać zewnętrzną, czyli zakres wartości i zestaw operacji, które można na niej wykonać, a także reprezentację wewnętrzną, czyli sposób jej przechowywania i traktowania przez inne obiekty programu. Swego rodzaju „ato- mami” wśród typów są tzw. typy proste, tj. takie, których struktura nie składa się z in- nych typów. Do najczęściej stosowanych typów prostych zTurbo Pascala należą: Rozdział 4. ♦ Jak programista z komputerem 31 KPVGIGT liczba całkowita ze znakiem TGCN EJCT $QQNGCP liczba rzeczywista pojedynczy znak kodu ASCII wartość logiczna: prawda lub fałsz Pierwsze dwa z wymienionej listy typów z grubsza odpowiadają znanym w matema- tyce liczbom całkowitym i rzeczywistym (stanowią ich ograniczone podzbiory). Typ $QQNGCP służy do deklarowania zmiennych logicznych (boolowskich), przyjmujących jedynie dwie wartości: VTWG (prawda) i HCNUG (fałsz). Jest on szeroko stosowany w ste- rowaniu wykonaniem programu (w instrukcjach warunkowych i pętlach). Warto za- uważyć, że wszelkie operacje porównania (czyli wyrażenzia logiczne), np. .KEDC2CELGPVQY  dają w wyniku wartość boolowską (są prawdziwe lub fałszywe). Do obsługi bardziej skomplikowanych wyrażeń logicznych służą w Turbo Pascalu następujące operatory logiczne (wymienione w kolejności malejącego prioryteztu): PQV CPF QT ZQT zaprzeczenie, negacja logiczna (daje VTWG, gdy argument ma wartość HCNUG) iloczyn logiczny, koniunkcja (daje VTWG, gdy wszystkie argumenty mają wartość VTWG) suma logiczna, alternatywa (daje VTWG, gdy co najmniej jeden argument ma wartość VTWG) suma modulo 2, alternatywa wyłączająca (daje VTWG, gdy nieparzysta liczba argumentów ma wartość VTWG) Przykładami złożonych wyrażeń logicznych są np.: GPC  CPF CRCU  5TGFPKC  QT 5TGFPKC  CPF QEJQF[ Zwróćmy uwagę, że porównania są ujęte w nawiasy. Wynika to stąd, że operatory PQV, CPF, QT i ZQT mają wyższy priorytet od operatorów relacji, my zaś chcemy, by po- równania zostały wykonane w pierwszej kolejności. Pominięcie nawiasów może więc przysporzyć pewnych kłopotów (zobacz też zadanie 3. na kzońcu rozdziału). Warto tu zauważyć, że operatory PQV, CPF, QT i ZQT mają dwoisty charakter: oprócz działania logicznego, mogą one również operować na bitach liczb całkowitych (są wówczas tzw. operatorami bitowymi). Operator bitowy interpretuje swoje argumenty nie jako „prawdziwe” liczby, lecz jako ciągi bitów (zer i jedynek), dokonując stosow- nych operacji na odpowiadających sobie pozycjach (parach bitów). Jednoargumentowy operator PQV neguje bity swojego argumentu. Pozostałe operatory są dwuargumentowe: operator CPF ustawia dany bit na jeden tylko wówczas, gdy odpowiednie bity obu ar- gumentów są równe jeden, zaś QT — gdy co najmniej jeden z bitów jest równy jeden. Wreszcie operator ZQT ustawia bit na jeden, jeśli odpowiednie bity argumentów mają przeciwne wartości (0 i 1 lub 1 i 0). 32 Praktyczny kurs Turbo Pascala Aby zrozumieć działanie operatorów bitowych, przeanalizuj poniższy przykład. Argu- mentami w przykładowych operacjach bitowych będą ośmiobitowe liczby bez znaku: 15 (00001111) i 85 (01010101).    PQV CPF QT ZQT (240) (5) (95) (90) Omówione w tym rozdziale typy nie są oczywiście wszystkimi dostępnymi (zobacz Aneks), jednakże stanowią grupę o podstawowym znaczeniu. Tak więc zawarta w programie Mnozenie1 deklaracja XCT .KEDC.KEDCTGCN poleca kompilatorowi zarezerwowanie miejsca na dwie zmienne typu rzeczywistego, które w programie będą widoczne pod nazwami .KEDC i .KEDC. Na tym jednak nie koniec problemu: samo zadeklarowanie zmiennej nie nadaje jej żadnej wartości, a jedy- nie przydziela miejsce w pamięci (zwykle wypełnione dość przypadkową zawartością). Pomijając bezużyteczność zmiennej nie przechowującej żadnej konkretnej wartości, próba odwołania się do niej zwykle nie wychodzi nikomu na dobre. Aby więc zmienna nadawała się do użytku, musi zostać:  zadeklarowana, co poinformuje kompilator, jak ma się z nią obchodzzić (jaka jest jej reprezentacja wewnętrzna),  zainicjalizowana, czyli wypełniona sensowną zawartością. Pominięcie inicjalizacji zmiennej nie jest wykrywane przez kompilator (program jest formalnie poprawny), potrafi jednak spowodować złośliwe i trudne do wykrycia błędy wykonania! Zauważmy, że zmiana w powyższej deklaracji typu TGCN na KPVGIGT nie będzie błę- dem, ale ograniczy swobodę działania kalkulatora do liczb całkowitych (czyli np. ze względu na ograniczenie zakresu nie będzie już możliwe pomnożenie 123456 przez 654321). Liczby całkowite mają natomiast tę przewagę nad rzeczywistymi, że są re- prezentowane z absolutną dokładnością. Ponadto, w ich zbiorze ma sens liczba kolej- na po danej i poprzednia przed daną, a co za tym idzie, można stosować je w charak- terze liczników i indeksów. Aby zaś było wiadomo, czego właściwie życzy sobie program po uruchomieniu (za- uważmy, że ostatnia wersja kalkulatorka wprawdzie już coś potrafi, ale nie jest zbyt rozmowna), uzupełnijmy go o jeszcze dwie instrukcje: RTQITCO/PQGPKG $CTFKGLTQOQYP[MCNMWNCVQT XCT .KEDC.KEDCTGCN MNOZ2.PAS Rozdział 4. ♦ Jak programista z komputerem 33 DGIKP YTKVG 2QFCLRKGTYUæNKEDú ]FQFCPQ_ TGCFNP .KEDC  YTKVG 2QFCLFTWIæNKEDú ]FQFCPQ_ TGCFNP .KEDC  YTKVGNP +NQE[PRQFCP[EJNKEDY[PQUK .KEDC .KEDC  TGCFNP GPF Spróbuj wykonać ten program dla różnych wartości liczb (czy da się pomnożyć np. G przez G?). Spróbuj również zmienić wykonywaną operację na dzielenie i po- dzielić coś przez zero… Jak uniknąć tego typu wpadek? zCierpliwości! Podsumowanie   W Pascalu możemy posługiwać się zmienną jako pojemnikziem na dane. Każda zmienna musi być określonego typu.  Typy zmiennych określa się w ich deklaracjach, po szłowie kluczowym XCT.    Deklaracja zmiennej nie powoduje nadania jej sensowznej wartości (nie jest połączona z inicjalizacją). Do wprowadzania wartości zmiennych z zewnątrz do progzramu służą procedury TGCF i TGCFNP. Procedury te mogą (i powinny) być uzupełniane objaśniajązcymi procedurami YTKVG i YTKVGNP.  Do przechowywania liczb w programie służą zmienne typuz KPVGIGT (liczby całkowite) i TGCN (liczby rzeczywiste).  Wartości logiczne przechowuje się w zmiennych typu $QQNGCP.   Do operowania na wartościach logicznych służą operatorzy logiczne: PQV, CPF, QT i ZQT. Operatory te służą również do manipulacji na bitach liczzb całkowitych. Zadania 1. Napisz program obliczający długość przeciwprostokątnej zw trójkącie prostokątnym z twierdzenia Pitagorasa. Pierwiastek zz liczby oblicza funkcja USTV (jak liczbę podnieść do kwadratu — pomyśl!). 2. Zmodyfikuj program Mnozenie1 tak, by wprowadzanie wartości czynników odbywało się za pomocą jednego wywołania procedury TGCFNP. Co się stanie, jeśli w miejsce TGCFNP zastosujesz procedurę TGCF? 34 Praktyczny kurs Turbo Pascala 3. Jaki będzie wynik (i dlaczego) obliczenia następującyczh wyrażeń: a)   b)   c)  CPF d)   CPF e)  QT f)   QT g) QT h) ZQT Aneks (dla amatorów typów)  Pozostałe typy całkowitoliczbowe…  …i rzeczywiste  Zastosowanie koprocesora arytmetycznego Przedstawione przed chwilą cztery typy stanowią jedynie niewielką część wachlarza dostępnego w Turbo Pascalu. I tak w zakresie typów całkowitoliczbowych (pokrew- nych KPVGIGT) mamy do wyboru następujące typy proste: Nazwa KPVGIGT UJQTVKPV NQPIKPV D[VG YQTF Zakres –32768..32767 –128..127 Rozmiar Liczba całkowita… 2 bajty 1 bajt ze znakiem krótka ze znakiem –2147483648..2147483647 4 bajty długa ze znakiem 0..255 0..65535 1 bajt 2 bajty krótka bez znaku (bajt) bez znaku (słowo) Każdy z nich może być stosowany do określonych celów, np. typ D[VG nadaje się do reprezentacji zawartości pamięci (w bajtach), a NQPIKPV — do prowadzenia statystyk astronomicznych. Rozważny dobór typów pozwala na zaoszczędzenie pamięci prze- znaczonej na dane bez utraty jakości obliczeń (chociaż objawia się to dopiero przy stosowaniu większych struktur danych). Wszystkie typy całkowitoliczbowe, typ EJCT (przyjmujący de facto wartości od 0 do 255, tyle że reprezentowane w postaci znakowej) i $QQNGCP, a także nie omawia- ne tutaj typy wyliczeniowe, stanowią grupę tzw. typów porządkowych (ang. ordinal types). Nazwa ta bierze się stąd, iż w reprezentowanych przez nie zbiorach warto- ści zachowana jest tzw. relacja porządku, określająca kolejność poszczególnych elementów w zbiorze wartości. Jeśli idzie o liczby typu rzeczywistego, to wszystkie typy proste poza TGCN są związane z zastosowaniem tzw. koprocesora arytmetycznego (układu współpracującego z mi- kroprocesorem, wyspecjalizowanego w wykonywaniu obliczeń na liczbach rzeczy- wistych, a przez to znacznie je przyspieszającym). Typy te przestawiają się nastę- pująco: Rozdział 4. ♦ Jak programista z komputerem 35 Nazwa Zakres Rozmiar Dokładność (cyfr) TGCN UKPING FQWDNG GZVGPFGF EQOR 2,9 ∗ 10–39 – 1,7 ∗ 1038 1,5 ∗ 10–45 – 4,0 ∗ 1038 6 bajtów 11 – 12 4 bajty 7 – 8 5,0 ∗ 10–324 – 1,7 ∗ 10308 8 bajtów 15 – 16 3,4 ∗ 10–4932 – 1,1 ∗ 104932 10 bajtów 19 – 20 9,2 ∗ 10–18 – 9,2 ∗ 1018 8 bajtów 19 – 20 Ostatni typ, mimo że jest tylko bardzo długą (64 bity) liczbą całkowitą, znalazł się w tym gronie, ponieważ jest typem specyficznym dla koprocesora arytmetycznego. Wykorzystując odpowiedni typ do reprezentacji liczb rzeczywistych, można sobie pozwolić np. na zwiększenie dokładności obliczeń poprzez zastosowanie typu FQWDNG w miejsce TGCN (przy okazji wzrasta zużycie pamięci) lub na upakowanie większej ilo- ści danych w pamięci poprzez zastosowanie krótszego typu UKPING (przy okazji spada dokładność obliczeń). W pierwszych modelach komputerów PC koprocesor był oddzielnym układem mon- towanym na płycie głównej. Począwszy od procesora 80486, koprocesor arytme- tyczny jest zintegrowany z procesorem w obrębie pojedynczego układu. W dominu- jących obecnie na rynku komputerach opartych na procesorach z rodziny Pentium oraz AMD K7 koprocesor jest zawsze dostępny. Użytkownicy leciwych już kompu- terów z procesorami 80486SX i 80386 (układy 80286 można obecnie znaleźć głównie w muzeach) mogą wykorzystać tzw. emulację, polegającą na zastąpieniu sprzętowej realizacji operacji arytmetycznych przez wywołania procedur oblicze- niowych z odpowiedniej biblioteki. Złożoność takich operacji powoduje wydłużenie czasu obliczeń; dołączenie biblioteki zwiększa również ho kilkanaście kilobajtów ob- jętość samego kodu wynikowego. Aby umożliwić programowi korzystanie z koprocesora, należy poinformować kompilator o jego obecności poprzez włączenie opcji Options-Compiler-Numeric Processing 8087/ 80287 lub umieszczenie w programie tzw. dyrektywy kompilatora ]P _. W razie ko- nieczności włączenia emulacji należy użyć polecenia Options-Compiler-Emulation On (Turbo Pascal 5.0 i 5.5) lub Options-Compiler-Numeric Processing Emulation (Turbo Pascal 6.0 i 7.0), ewentualnie dyrektywy ]G _1. Niestety, na tym nie koniec problemów. Włączenie koprocesora bez zmiany typu TGCN na UKPING, FQWDNG lub GZVGPFGF niewiele daje. Dzieje się tak dlatego, że przed wyko- naniem obliczenia liczba typu TGCN musi zostać przekształcona na wewnętrzną repre- zentację „koprocesorową” (dokładniej — na wartość typu GZVGPFGF), co pochłania część zaoszczędzonego czasu. Ponadto, konwersja wcale nie powoduje wzrostu do- kładności obliczeń (a wręcz może spowodować jej spadek), gdyż uzupełnienie liczby TGCN do GZVGPFGF odbywa się przez dodanie przypadkowych cyfr na jej najmniej zna- czących pozycjach. 1 Zwolennikom radykalnych rozwiązań warto polecić modernoizację sprzętu. 36 Praktyczny kurs Turbo Pascala Aby skutecznie wykorzystać koprocesor arytmetyczny, należy zamiast typu TGCN stosować w programach typy UKPING, FQWDNG lub GZVGPFGF. Jeśli możemy z dużą pewnością założyć, że nasz kod będzie uruchamiany na nowszym komputerze, najlepiej od razu deklarować zmienne rzeczywiste jako UKPING lub FQWDNG. Alterna- tywne rozwiązanie — przedefiniowanie typu TGCN — pokażemy w rozdziale 10. Aby nie komplikować programów przykładowych, w dalszej części książki pozostaniemy przy typie TGCN, jednak teksty źródłowe zamieszczone na płycie CD będą zawierały odpowiednie instrukcje, zastępujące go typami UKPING lub FQWDNG (zależnie od wy- magań danego programu). Warto na koniec zwrócić uwagę na naukowy format zapisu liczby typu FQWDNG lub GZVGPFGF (tj. liczbę cyfr po kropce i w wykładniku). Porównanie go z zapisem liczby typu TGCN daje namacalny dowód różnicy w dokładności reprezentacji (co np. przy od- wracaniu macierzy jest sprawą niebagatelną!).
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Praktyczny kurs Turbo Pascala. Wydanie IV
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: