Czym jest programowanie¶
Programowanie to proces przeniesienia algorytmu do postaci zrozumiałej dla komputera za pomocą języka programowania. Chociaż istnieje wiele języków programowania i wiele różnych typów komputerów, najważniejszym pierwszym krokiem jest posiadanie rozwiązania.Bez algorytmu nie może powstać żaden program.
Informatyka nie jest nauką o programowaniu, ale stanowi ono ważną jej część. Programowanie często służy do przedstawiania naszych rozwiązań, dlatego reprezentacja języka i proces jej tworzenia jest uznawany za fundamentalny element Informatyki.
Algorytm jest opisem rozwiązania problemu w zakresie danych potrzebnych do zobrazowania problemu oraz zestawu kroków niezbędnych do uzyskania zamierzonego rezultatu. Języki programowania muszą dostarczać narzędzi umożliwiających reprezentację zarówno procesu jak i danych. Do dnia dzisiejszego, w skład języków wchodzą struktury kontrolne oraz typy danych.
Struktury kontrolne służą aby w jednoznaczny sposób przedstawiać poszczególne etapy algorytmów. Wymagane minimum dla algorytmów to: konstrukcje przetwarzania sekwencyjnego, selektory decyzyjne i struktury iteracyjne - pętle kontrolne. Jeśli język zawiera te podstawowe operacje, może być wykorzystany do reprezentowania algorytmu.
Wszystkie dane w komputerze są zapisywane jako ciągi cyfr binarnych. Aby nadać im znaczenie, musimy określić typy danych. Stanowią one interpretację binarnych danych nadając im sens nawiązujący do rozwiązywanego problemu. Te niskopoziomowe, wbudowane typy danych (zwane czasem pierwotnymi) są fundamentem dla rozwoju algorytmów.
Na przykład, większość języków programowania dostarcza typ danych dla liczb całkowitych. Ciągi cyfr binarnych w pamięci komputera można traktować jako liczby całkowite i nadać im typową postać, powszechnie kojarzoną jako liczba całkowita (np. 23, 654 i -19). Ponadto typ danych determinuje również rodzaj działań, w których elementy danych mogą uczestniczyć. Dla liczb całkowitych, popularne operacje to dodawanie, odejmowanie, mnożenie. Naturalnym jest, że liczbowe typy danych mogą brać udział ww. operacjach arytmetycznych.
Zawiłość problemu i złożoność rozwiązania często są źródłem narastających trudności. Wcześniej wymienione proste struktury kontrolne i typy danych z większości są wystarczające do opisu nawet najbardziej skomplikowanych rozwiązań. Jednakże ze względu na swój charakter nierzadko stawiają ograniczenia podczas poszukiwania wyjścia z postawionego problemu. Dlatego też potrzeba dodatkowych narzędzi pomocnych przy tworzeniu rozwiązań.