Większości czytelników znane są wymienione w tytule pojęcia, często jest to jednak znajomość dość pobieżna, więc spróbujmy przyjrzeć się im dokładniej.
0787 - Efektywność i Elegancja Cz.2
Kontynuujemy przegląd podstawowych elementów techniki pisania programów, mających wpływ na efektywność otrzymanego kodu. Zaczniemy od przykładu, w którym wyjątkowo uda się zaoszczędzić i czasu i pamięci. Poniższy program nadaje wartości początkowe elementom dwóch tablic T i A:
0687 - Efektywność i Elegancja Cz.1
Ustaliliśmy, że decydujący wpływ na szybkość działania programu ma przyjęty algorytm rozwiązania problemu. Decydujący ale nie jedyny, choćby dlatego, że ten sam algorytm można zaprogramować na wiele sposobów: bardzo dobrze i bardzo źle. Dziś zajmiemy się przeglądem konstrukcji, które warto stosować oraz tych, których należy unikać jeśli chcemy, aby nasze programy były optymalne.
0587 - Rozsądna Oszczędność Cz.2
Miesiąc temu zajmowaliśmy się konstruowaniem i oceną algorytmów, czyli metod rozwiązywania zadań. Jeśli ktoś z was miał problemy z zapisaniem podanych algorytmów w postaci programów, to może pomogą w tym szkice programów realizujących podane miesiąc temu metody.
0487 - Rozsądna Oszczędność Cz.1
Szybkość działania programu zależy przede wszystkim od przyjętej przez autora metody rozwiązywania problemu (zamiast metoda będziemy raczej mówili ALGORYTM - na poziomie naszych rozważań słowa te znaczą właściwie to samo).
0492 - Wieloprocesowość w TurboVision ?
Aby odpowiedzieć na pytanie, czy możliwa jest wieloprocesowość w Turbo Pascalu 6.0, należy najpierw zdefiniować to pojęcie. W komputerach klasy IBM PC wieloprocesowość polega na pozornym wykonywaniu dwóch (lub więcej) czynności w tym samym czasie. Obserwatorom wydaje się, że procesy wykonywane są jednocześnie - wynika to jednak tylko z dużej szybkości pracy komputera.
1692 - Generator Menu
Programowanie w Turbo Vision ma to do siebie, że przy każdym, nawet małym, próbnym programie należy zdefiniować typ, a w nim zadeklarować procedury. Są to przeważnie: HandleEvent, InitMenuBar i InitStatusLine. Cała struktura programu jest niewątpliwie rzeczą pozytywną, jednak zniechęca młodych "praktyków" programistów, którzy rozwijają swoje zdolności bardziej kreatywnie (tzn. nie stosują przykładów z książki, lecz sami chcą wypróbować działanie danej procedury lub przydatność danego typu).
0196 - Lepszy Przycisk
Jednym z najczęściej używanych w programach obiektów jest przycisk tButton. Ma on jednak dwie dość irytujące wady. Po pierwsze, nie pozwala na skonstruowanie przycisku zawierającego więcej niż jedną linię tekstu. Po drugie, nie daje możliwości wyłączenia cienia pojawiającego się zawsze przy przycisku.
1597 - Symulacja cyfrowych układów kombinacyjnych
Artykuł ten poświęcony jest komputerowej symulacji cyfrowych układów kombinacyjnych, tzn. składających się z bramek, a także koderów i dekoderów. Zagadnienie zostało zilustrowane przykładami w C++, ze względu na łatwość operowania wskaźnikami i wysoki stopień abstrakcji danych oferowany przez ten język
1395 - Duże Liczby
Podczas pisania programu do wyszukiwania dużych liczb pierwszych pojawił się przede mną problem, polegający na tym, że musiałem napisać procedury operujące na takich liczbach za pomocą czterech podstawowych działań. W grę miały wchodzić liczby całkowite rzędu ok. 1040. Typy standardowo zdefiniowane w C i Pascalu nie wchodziły w grę - typy całkowite mogą przedstawić na swych 32 bitach liczby rzędu 1010, natomiast typy rzeczywiste przedstawiają wartości przybliżone. Stąd wziął się pomysł zdefiniowania klasy obiektów Very Long Int.
1896 - DPMI - Własny DOS Extender
W roku 1990 firmy: Borland, Eclipse, IGC, Intel, Lotus, Microsoft, PharLap, Phoenix, Quarterdeck i Rational opracowały specyfikację interfejsu programowego dla trybu chronionego procesora. Jest to specyfikacja DPMI (ang. DOS Protected Mode Interface). Do najpopularniejszych programów oferujących DPMI należy QEMM firmy QuarterDeck. Sama specyfikacja nie określa listy funkcji dostępnych przez przerwanie 21h, poza funkcją 4Ch. Jednak serwery DPMI poszczególnych producentów obsługują wiele z tych funkcji. QDPMI, który omówię w dalszej części artykułu, obsługuje m.in. funkcje operacji dyskowych.
0395 - Rozszerzajac CRT
W rubryce "Dla praktyków" padło już wiele propozycji rozwiązań zastępujących funkcjonalnie standardowy moduł CRT. Nie będę zatem prezentować podejścia do tego problemu. Przedstawię natomiast coś, co może stanowić bardzo przyjemny dodatek do wspomnianych prac - kilka procedur i funkcji niskiego poziomu znacznie rozszerzających możliwości zarówno pascalowskiego modułu CRT, jak i modułów zastępujących go. Przy okazji powiem kilka słów na temat szybkości działania programów w Pascalu, wykorzystania wbudowanego w kompilator asemblera i różnych zalet stąd płynących.
2595 - Długie skoki
Wiemy wszyscy, że używanie instrukcji "goto" w Pascalu nie przynosi zaszczytu programiście, a nawet może ściągnąć na niego opinię niedouczonego i nieudolnego. Jesteśmy też wszyscy świadomi, że dowolny algorytm o jednym wejściu i jednym wyjściu można zapisać bez posługiwania się skokiem, jeśli tylko stosowany język programowania zawiera w sobie instrukcje "if" i "while".