Matematyka w justowaniu

Byłbym w stanie zaryzykować stwierdzenie, że każda aplikacja, która komunikuje się z użytkownikiem za pomocą interfejsu, zawiera w sobie tekst.

Chcąc by z naszych programów korzystało się z uśmiechem na ustach, powinniśmy przestrzegać pewnych zasad estetyki, a umiejętność wyrównywania tekstu z pewnością w tym pomoże.

Jeżeli chodzi o justowanie poziome – a o takim będziemy mówić – możemy wyodrębnić następujące czynności:

  • wyrównanie do lewej
  • wyśrodkowanie
  • wyrównanie do prawej
  • wyrównanie do lewej i do prawej

My zajmiemy się trzema pierwszymi jako, że z tej czwartej nigdy nie miałem potrzeby skorzystać.

Wyrównanie do lewej – Korzystamy z tej opcji domyślnie. Można to zauważyć w naszej kulturze – piszemy od lewej do prawej. Pozostałe czynności związane z justowaniem opierają się właśnie na podstawie wyrównania do lewej zmieniając jedynie pozycję kursora.

Wyśrodkowanie – W tym przypadku zmieniamy położenie tak, by punkt według którego operujemy był w środku naszego tekstu. Aby to zrobić powinniśmy cofnąć kursor dokładnie o połowę długości tekstu.

Wyrównanie do prawej – W tym przypadku musimy przestawić kursor o pełną długość tekstu, ponieważ zależy nam żeby kończył się on dokładnie w punkcie według którego operujemy.

Czas przedstawić to wszystko w kodzie napisanym w języku C++. Sentencja którą będziemy chcieli wyświetlić na ekranie zostanie wyrównywana do 25 znaku na osi X w konsoli systemowej.

A tak wygląda rezultat, dodałem czerwoną linię, która pokazuje nam według czego operuje nasze justowanie:

Teraz zrobimy z tego funkcje żebyśmy mogli używać naszego wspaniałego wynalazku bez potrzeby pamiętania o ustawianiu kursora w odpowiedni sposób.

Gotowe, projekt justowanie zakończony. Teraz czas zająć się matematyką z nim związaną. Do tej pory poza współrzędnymi i dzieleniem przez dwa za dużo jej nie było, a skoro algorytm działa, to czemu mielibyśmy coś zmieniać? Odpowiedź brzmi następująco – dzięki matematyce możemy uprościć ten kod, skracając go sześciokrotnie.

W tym konkretnym przypadku nie ma to większego znaczenia, natomiast wybrałem go, ponieważ moim zdaniem pięknie pokazuje możliwości jakie niesie za sobą matematyka.

Co się tu właściwie stało? Zauważ, że w naszej pierwszej funkcji od współrzędnych x’owych zawsze odejmowaliśmy wielokrotność długości tekstu. Dzięki tej informacji mogliśmy, stworzyć wzór matematyczny, zajmujący zaledwie jedną linijkę.

Jestem przekonany, że im bardziej rozumiemy matematykę tym więcej takich prawidłowości możemy odnaleźć, a co za tym idzie zwiększać przejrzystość naszego kodu. Warto więc uczyć się tej jakże wszechstronnej dziedziny nauki.

PS
Gdy przedstawiłem tematy na forum grupy założonej specjalnie z okazji roku matematyki dostałem następujący odzew – „Brzmią ciekawie, ale nie wiem jak można opisać matmę przy justowaniu tekstu ”. Muszę powiedzieć, że ta reakcja wywołała na mojej twarzy spory uśmiech, bo osoba która to powiedziała trafiła w samo sedno. O to właśnie chodzi, aby pokazać w jak nieprawdopodobnych okolicznościach można wykorzystać umiejętności tworzenia wzorów i logicznego myślenia.

https://github.com/Meridor6919
michalbalicki@o2.pl