Podstawowe składowe programów
Przegląd sekcji
-
Czy można wyróżnić punkty wspólne dla różnych języków programowania? Elementy, które występują w prawie wszystkich programach? Tak, są pewne składowe, które spotykamy powszechnie.
Omówimy więc zmienne i struktury danych. Zarówno pojedyncze zmienne, jak i całe struktury służą nam do przechowywania różnych danych dla naszego kodu. Wtedy, kiedy program musi je modyfikować, ale także gdy wykorzystuje je jako stałe. Logicznie powiązane ze sobą zmienne łączymy w struktury danych. Następnym elementem są operatory, które pozwalają na przetwarzanie zmiennych: dodawanie, odejmowanie, dzielenie, mnożenie, operacje logiczne i tak dalej. Operatory i zmienne łączymy w instrukcje. Instrukcje wykonywane są w określonej w kodzie sekwencji, która wynika z implementowanego algorytmu działania. Natomiast jeżeli do kodu dodamy pewną warunkowość, to poprzez sprawdzanie szeregu warunków mamy możliwość zmiany ścieżki wykonania programu, która bez warunkowości musiałaby być stała. Do implementacji tego zachowania, służą nam szczególne instrukcje: instrukcje wyboru, znane także jako instrukcje warunkowe. Czasem kod trzeba powtórzyć wielokrotnie, wykonać wiele jego iteracji, zwykle ze zmieniającymi się parametrami. Żeby takie iteracje zrealizować również dostępne są odpowiednie składowe programu, np. instrukcje tworzące pętle.
-
W materiale znajdziesz wprowadzenie w zasady stosowania zmiennych w programowaniu. Pojawią się takie pojęcia jak: typy danych, deklaracje i nazewnictwo zmiennych. Przykłady obejmują programy w języku C i Python.
-
W tej sekcji omówiona jest reprezentacja danych w pamięci na przykładzie programu napisanego w języku C. Przytaczane związki między typami zmiennych, notacją wartości liczbowych w kodzie, a zawartością komórek pamięci, zachodzą jednak w różnych językach programowania.
-
Do działań na zmiennych wykorzystujemy operatory. Znajdziesz tutaj informacje o podstawowych typach operatorów (arytmetyczne, logiczne, porównania) i przykłady ich zastosowania. Część materiału poświęcono omówieniu operatorów bitowych.
-
W niektórych językach typy całkowitoliczbowe mogą przechowywać wartości ze znakiem, czyli signed, albo tylko dodatnie bez znaku, unsigned. Przyjrzymy się specyfice wykorzystania takich typów w języku C i zjawiskom przewinięcia (wraparound) oraz przepełnienia (overflow). Na przykładzie tego samego języka wprowadzone zostaną typy o stałym rozmiarze (fixed-width), przydatne gdy istnieje potrzeba zdefiniowania liczby bajtów zajmowanej w pamięci przez zmienne.
-
Dane, które przetwarzamy w programach, mają swoje typy. Typy te mogą być określane na stałe lub mogą podlegać pewnym zmianom. Omówimy różnice między typowaniem statycznym a dynamicznym, a także jak przebiegać może konwersja typów. Opis uzupełnią przykłady w językach C i Python.
-
Funkcje to ważny element programów. Pozwalają na wydzielenie fragmentów kodu, które możemy wielokrotnie uruchamiać (wykonywać) w ramach jednego albo wielu programów. Dodatkowo te fragmenty kodu mogą być sparametryzowane, a więc możemy wprowadzić pewne wartości, które przekazujemy do wykorzystania w funkcji. Uwzględnienie parametrów sprawia, że wykonywane obliczenia (czy też inne operacje) mogą być adaptowane do kontekstu, w którym funkcja jest wywoływana. Z zastosowania funkcji wynika też modularyzacja kodu, a więc rozdzielenie go na fragmenty, które posiadają pewne interfejsy komunikacyjne (ich wejścia i wyjścia danych). Dobrze przeprowadzona modularyzacja ułatwia utrzymanie kodu: naprawianie go i rozwijanie w przyszłości.
-
Gdy nie chcemy, żeby sekwencja instrukcji wykonywana w ramach programu za każdym razem była taka sama, a raczej żeby zależała od danych, które do tego programu przekazujemy, lub od wyniku ich przetwarzania, posługujemy się instrukcjami wyboru. W tej sekcji omówiono przykłady takich instrukcji i sposobu w jaki zapewniają zmianę przepływu sterowania. Przykłady obejmą instrukcje z języków C i Python - instrukcje typu if ... else oraz switch/match.
-
Gdy pewien fragment kodu chcemy wykonać wielokrotnie (czasem wiedząc dokładnie ile razy, czasem znając tylko warunek przerwania tych powtórzeń), zwykle korzystamy z instrukcji pętli. W materiale wprowadzono pojęcie iteracji, a także rozróżnienie dwóch typów pętli: while i for. Przy okazji przedstawiono instrukcje wpływające na natychmiastowe przejście do następnej iteracji lub przerwanie pętli: continue i break. Sposoby deklarowania pętli omówiono na przykładzie języków C/C++ i Python.
-
Logicznie powiązane ze sobą zmienne grupujemy zwykle w struktury danych. Pozwala to na efektywniejsze pisanie kodu, ułatwia zwiększenie jego czytelności. W sekcji można znaleźć informacje o sposobie deklarowania takich struktur języka C jak tablica (array) czy struktura (struct), oraz dla języka Python: krotki (tuple), listy (list) i słownika (dictionary). Omówiono również możliwości uzyskania dostępu do należących do wspomnianych struktur elementów. Praktyczne przykłady zaprezentowano w języku Python.
-