Podejście obiektowe – konstrukcja obiektu.

Do tej pory programy pisane były w oparciu o jedną strukturę. Tym niemniej obecna filozofia programowania wyróżnia tzw. podejście obiektowe, gdzie program można podzielić na części składowe w postaci obiektów komunikujące się ze sobą w różnorodny sposób. Oby wprowadzić pojęcie obiektu wpierw musimy uzgodnić pojęcie klasy, czyli elementu programistycznego zawierającego w sobie definicje zmiennych i metod w postaci funkcji czy procedur. Z innej Dowiedz się więcej…

Wskaźniki i zarządzanie pamięcią

Wskaźniki należą do jednych z najważniejszych elementów programowania. Dzięki nim można dużo swobodniej przetwarzać dane i docierać do ukrytych w pamięci struktur w sposób niemożliwy do zrealizowania przy podejściu “klasycznym”. Z jednej strony są łatwe do zrozumienia, jako charakterystyczne zmienne wskazujące na coś w pamięci; z drugiej strony ich poprawne zrozumienie często długo się wymyka początkującym programistom, aż do chwili, gdy przychodzi nagłe olśnienie, a wiele poprzednio Dowiedz się więcej…

Obsługa plików.

Obsługa plików jest na pewnym poziomie pisania programów niezbędna. Język C i C++ umożliwiają dostęp do plików na różny sposób. W niniejszym materiale skupimy się na podejściu strumieniowym z wykorzystaniem dedykowanych temu klas (o klasach więcej będzie w części drugiej – obiektowej). Można wyróżnić trzy klasy posiadające rozbudowane opcje obsługi plików i są to: ofstream: Klasa strumieniowa obsługująca zapisywanie do pliku, ifstream: Klasa Dowiedz się więcej…

Obsługa klawiatury

Trudno wyobrazić sobie aby każdy program mógł kontaktować się z użytkownikiem tylko wypisując komunikaty, ale nie umożliwiając pobrania żadnych danych od niego. Urządzenie terminalowe składa się z dwu elementów – ekranu oraz klawiatury – dlatego naturalnym procesem jest obsługa tejże w celu pobrania danych od użytkownika. W języku C i C++ przewidziano różną filozofię obsługi terminala, w C++ obsługę stanowi dedykowany strumień w kanale Dowiedz się więcej…

Tablice jedno i wielowymiarowe.

Trudno dziś wyobrazić sobie programowanie bez znajomości tych struktur. Czym są tablice?! W najprostszym ujęciu są one strukturą złożoną z wielu elementów tego samego typu. Co to oznacza? Można wyobrazić sobie następującą sytuację, gdy potrzebujemy przechować wartości dla 5 zmiennych typu int w następujący sposób: Osiągnęliśmy zamierzony cel, ale… czy jest to wygodne?! To pokaże następujący przykład: załóżmy, że potrzebujemy wyświetlić wartości tych Dowiedz się więcej…

C++ ADDENDUM 5: Metody rekurencyjne.

Metody rekurencyjne są takimi metodami, które w kodzie programu wywołują same siebie. Powoduje to przejście wykonywania programu do uruchomionego podprogramu i swobodne zagnieżdżanie się tak wywoływanych metod, aż do uzyskania zamierzonego celu (bądź wyczerpania zasobów pamięci maszyny obliczeniowej). Prostym przykładem metody rekurencyjnej jest poniższy program: Jak widać, w powyższym kodzie nie ma w nim ani jednej jawnej pętli, a mimo to program wykonał się Dowiedz się więcej…

Pętle i zagrożenia

Trudno wyobrazić sobie program mający 1753 linie kodu podobne do poniższego przykładu: (Chociaż znam studentów… którzy w podobny sposób rozwiązują zadanie na kolokwium) Od razu widać w kodzie pewną prawidłowość, która sprawia, że można podzielić ten kod na bloki w zasadzie identyczne, różniące się jedynie przyrostową wartością zmiennej a. Od razu “prosi się” to o zastanowienie czy istnieje mechanizm ułatwiający takie operacje i optymalizujący kod. Dowiedz się więcej…

C++ ADDENDUM 3: Wartości losowe.

Wartościami losowymi w C/C++ zajmuje się m.in. wbudowany generator liczb pseudolosowych. Aby go użyć należy upewnić się, że dołączamy bibliotekę cstdlib lub po prostu iostream. Generator losuje liczby z zakresu od 0 do RAND_MAX, który to literał jest zdefiniowany w bibliotece cstdlib. Najprostszy program pokazujący użycie generatora pokazany jest poniżej: Kilkukrotne uruchomienie powyższego programu zdradza, że coś jest nie tak – zawsze program podaje Dowiedz się więcej…

TEMAT 5: Wyrażenia warunkowe.

Nader często zachodzi konieczność zbadania jakiegoś zdarzenia występującego w programie, a po tym do odpowiedniej reakcji na nie. Prowadzi to do rozwidleń w działaniu programu, gdzie w zależności od wyników badania danego zdarzenia wykonujemy inny kod programu, a następnie po obsłużeniu tego zdarzenia program realizuje się dalej. If () else… Tego typu obsługa nazywa się obsługą poprzez wyrażenia warunkowe (ang: conditional statements). Dowiedz się więcej…

TEMAT 4: Operacje arytmetyczne i binarne operacje bitowe.

Operacje arytmetyczne mają w przypadku programowania takie same zasady jak wyuczone na matematyce. Kolejność działań matematycznych zawsze odbywa się według tego samego schematu z uwzględnieniem priorytetów operatorów +, –, * i / (dzielenie). Wyrażenie matematyczne zawsze obliczane jest od lewej do prawej, czyli np. takie wyrażenie: 37 – 9 * 3 + 12 / 4 ma wartość: 13 Dowiedz się więcej…