ALG4

ALG4



24 Rozdział 1. Zanim wystartujemy

Aby zaradzić zaanonsowanym wyżej problemom, przyjęło się zwyczajowo prezentowanie algorytmów w dwojaki sposób:

•    przy pomocy istniejącego języka programowania;

•    używając pseudojęzyka programowania (mieszanki języka naturalnego i form składniowych pochodzących z kilku reprezentatywnych języków programowania).

W niniejszym podręczniku można napotkać obie te formy i wybór którejś z nich zostanie podyktowany kontekstem omawianych zagadnień. Przykładowo, jeśli dany algorytm jest możliwy do czytelnej prezentacji przy pomocy języka programowania, wybór będzie oczywisty! Od czasu do czasu jednak napotkamy na sytuacje, w których prezentacja kodu w pełnej postaci, gotowej do wprowadzenia do komputera, byłaby zbędna (np. zbliżony materiał był już przedstawiony wcześniej) lub nieczytelna (liczba linii kodu przekracza objętość jednej strony). W każdym jednak przypadku ewentualne przejście z jednej formy w drugą nie powinno stanowić dla Czytelnika większego problemu.

Już we wstępie zostało zdradzone, iż językiem prezentacji programów będzie Cli. Pora zatem dokładniej wyjaśnić powody, które obstawały za tym wyborem. C++ jest językiem programowania określanym jako strukturalny, co z założenia ułatwia pisanie w nim w sposób czytelny i zrozumiały. Związek tego języka z klasycznym C umożliwia oczywiście tworzenie absolutnie nieczytelnych listingów, będziemy lego jednak starannie unikać. W istocie, częstokroć będą omijane pewne możliwe mechanizmy optymalizacyjne, aby nie zatracić prostoty zapisu. Najważniejszym jednak powodem użycia C++ jest fakt, iż ułatwia on programowanie na wielu poziomach abstrakcji. Istnienie klas i wszelkie obiektowe cechy tego języka powodują, iż bardzo łatwe jest ukrywanie szczegółów implementacyjnych, rozszerzanie już zdefiniowanych modułów (bez ich kosztownego „przepisywania”), a są to właściwości, którymi nie można pogardzić.

Być może cenne będzie podkreślenie „usługowej” roli, jaką w procesie programowania pełni język do tego celu wybrany. Wiele osób pasjonuje się wykazywaniem wyższości jednego języka nad drugim, co jest sporem tak samo jałowym, jak wykazywanie „wyższości świąt Wielkiej Nocy nad świętami Bożego Narodzenia” (choć zapewne mniej śmiesznym...). Język programowania jest w koń cu tylko narzędziem, ulegającym zresztą znacznej (r)ewolucji na przestrzeni ostatnich lat. Pracując nad pewnymi partiami tej książki musiałem zwalczać od czasu do czasu silną pokusę prezentowania niektórych algorytmów w takich językach jak LISP czy PROLOG.

Uprościłoby to znacznie wszelkie rozważania o listach i rekureiicji - niestety ograniczyłoby również potencjalny krąg odbiorców książki do ludzi profesjonalnie związanych wyłącznie z informatyką.


Wyszukiwarka

Podobne podstrony:
ALG8 18 Rozdziali. Zanim wystartujemy dopóki a>0 wykonuj; podstaw za c resztę z dzielenia a prze
ALG0 20 Rozdział 1. Zanim wystartujemy (Na marginesie warto dodać, że przedsiębiorstwo Hollcritha
ALG2 22 Rozdział 1. Zanim wystartujemy programowania nic znikły bynajmniej z horyzontu: Dijkstra, H
ALG6 26 RozdziaH. Zanim wystartujemy 1.5 metody niezmienników (zwanej niekiedy metodą Floyda). Mają
ET4 24 Rozdział 2. Podstawowa terminologia turystyczna Na podstawie wyżej wymienionych kryteriów WT
ALG4 194 Rozdział 7. Algorytmy przeszukiwania •    powinna być tatwo obliczalna, tak
Alg4 44 Rozdział2. Rekurencja ( if (lg>0) ( lineto(x+lg,y); lineto(x+lg,y+lg); lineto
ALG4 54 Rozdział 3. Analiza sprawności algorytmów Tematyką tego rozdziału jest tzw. złożoność oblic
ALG4 64 Rozdział 3. Analiza sprawności algorytmów3.4. Przykład 3: Wpadamy w pułapkę Zadania z dwóch
ALG4 74 Rozdział 3. Analiza sprawności algorytmów • funkcja d(n) musi spełniać następującą własność
ALG 4 94 Rozdział 5. Struktury danych5.1. Listy jednokierunkowe Lista jednokierunkowa jest oszczędną
ALG4 104 Rozdział 5, Struktury danych dla danego obiektu wykonanie na sobie operacji „dekrementacji
ALG4 114 Rozdział 5. Struktury danych stan—ZAKOŃCZ; else { przcd=po; po=po->nastepny; I Różnica
ALG4 124 Rozdział 5. Struktury danych Co jednak z dołączaniem elementów do listy? Poniżej są omówio

więcej podobnych podstron