Algorytmy rekurencyjne
Rekurencja pojawia się bardzo wcześnie podczas nauki programowania, ale zwykle dopiero przy większych problemach widać, po co naprawdę istnieje. W prostych zadaniach często da się ją zastąpić pętlą, jednak przy strukturach drzewiastych, analizie…
System szesnastkowy na dziesiętny
Liczby zapisane w różnych systemach pozycyjnych pojawiają się praktycznie wszędzie tam, gdzie działa elektronika, pamięć komputera, adresowanie danych albo programowanie niskopoziomowe. Programista widzi je w debugerze, administrator w adresach pamięci, a osoba analizująca…
System dziesiątkowy
Liczby zapisane w codziennych obliczeniach wyglądają pozornie banalnie. Człowiek wpisuje 2026, 3,14 albo 150000 i rzadko zastanawia się, dlaczego akurat taki zapis działa. Dopiero podczas programowania parserów, implementacji arytmetyki w procesorach albo analizy…
Szyfr Cezara
Szyfrowanie podstawieniowe to najprostsza klasa technik kryptograficznych, w których każda litera tekstu jawnego jest zastępowana inną literą według ustalonej reguły. Mechanizm jest deterministyczny, łatwy do implementacji i zrozumienia, a jednocześnie dobrze pokazuje podstawowe…
Rekurencja
Rekurencyjne podejście do rozwiązywania problemów pojawia się naturalnie tam, gdzie struktura danych lub samego zadania ma charakter samopodobny, czyli można je rozbić na mniejsze instancje tego samego problemu. W praktyce oznacza to, że…
Ascii: jak działa na poziomie bitów i dlaczego ten standard przetrwał dekady mimo ograniczeń
Kodowanie znaków to fundament komunikacji między programem a człowiekiem, a także między różnymi systemami. Każdy tekst zapisany w pliku, przesłany przez sieć albo wyświetlony na ekranie jest w rzeczywistości sekwencją liczb. Te liczby…
Print – wypisuje dane na standardowe wyjście
Program zaczyna być użyteczny dopiero wtedy, gdy potrafi komunikować się z użytkownikiem lub z innym procesem. Najprostszą formą takiej komunikacji jest wypisanie informacji na ekranie terminala, konsoli lub standardowego strumienia wyjściowego. To właśnie…
Getattr – pobiera wartość atrybutu obiektu na podstawie jego nazwy w formie stringa
W programowaniu obiektowym bardzo często pojawia się potrzeba dynamicznego odczytu danych z obiektu bez sztywnego odwoływania się do konkretnej nazwy pola w kodzie. Problem staje się widoczny szczególnie wtedy, gdy nazwa atrybutu pochodzi…
zip – łączy kilka iterowalnych obiektów w pary
W praktyce pracy z danymi bardzo często pojawia się potrzeba równoległego przechodzenia przez kilka struktur jednocześnie, bez ręcznego zarządzania indeksami i bez ryzyka rozjechania się długości zbiorów. Właśnie w takich sytuacjach wykorzystywana jest…
Setattr – ustawia wartość atrybutu obiektu dynamicznie
W programowaniu obiektowym często pojawia się potrzeba modyfikowania obiektu bez ręcznego odwoływania się do każdego pola osobno. Dotyczy to konfiguracji klas, mapowania danych z formularzy, importu plików JSON, budowania prostych ORM czy automatycznego…









