03. Podstawy programowania, Materiały z progów


Programowanie jest sztuką tworzenia, rozszerzania oraz naprawiania oprogramowania.

Jedyną przewagą komputerów nad ludźmi, jest możliwość wykonywania wielu bardzo szybkich obliczeń przeprowadzanych na dużych zbiorach danych.

Z faktu braku inteligencji komputera wszystko co chcemy, by zrobił, musi być bardzo dokładnie zapisane. O ile człowiek rozumie zapis słowny i przybliżony, jak na przykład przepis na ciasto, komputer nie potrafi niczego się domyślać (samo "domyślanie się" może być w pewnym stopniu dopiero zaprogramowane i zajmują się tym naukowcy i informatycy pracujący nad sztuczną inteligencją).

Z jednej strony jest to zaletą - po dobrym zaprogramowaniu nie traci się czasu procesora na ewentualną analizę i domyślanie się tego, co autor miał na myśli, a także chroni przed niejednoznacznością. Z drugiej strony nakłada to na programistę obowiązek wyrażania programu w sposób bardzo ścisły i bezbłędny. Jak chodzi o błędy to większość narzędzi, kompilatorów czy interpreterów języków wyższego poziomu wyłapuje miejsca znacznej ich części, ale naprawę pozostawia autorowi. Jest to jeden z elementów procesu programowania.

Programowanie to nic innego jak zapisywanie tego, co chcemy, by komputer zrobił (przepisu, algorytmu) w ścisłej postaci - odpowiednim języku, który komputer będzie potrafił przetworzyć i zrozumieć, a następnie zgodnie z instrukcją w nim zapisaną zadziałać.

Początkowo programowanie polegało na pisaniu instrukcji bezpośrednio w języku zrozumiałym dla komputera. Był to proces bardzo żmudny i trudny, gdyż kod zrozumiały dla procesora w postaci kolejnych prostych instrukcji dla procesora nie jest ani czytelny dla człowieka ani łatwy do szerokiego objęcia przez umysł, nawet po zapisania w czytelniejszy sposób niż kod maszynowy - czyli w postaci skrótów, tak zwanego języka programowania niskiego poziomu, Asemblera.

Nie ma tam obiektów podobnych do znanych w naszym świecie takich jak złożone typy danych. Nie ma wyrażeń odpowiednich dla bardziej złożonych sposobów ludzkiego myślenia i spostrzegania takich jak pętle powtórzeń, odliczanie i inne. Oczywiście wszystko to da się odwzorować w takim języku, ale wymaga to konstrukcji składających się z drobnych cegiełek - prostych operacji na rejestrach i pamięci oraz prostych instrukcji warunkowych takich jak "skocz jeśli". Łatwo się w tym pogubić, trudno napisać w całości jakiś bardziej złożony program (nawet przestrzegając reguł pozwalających na zachowanie pewnej czytelności i podziału na mniejsze fragmenty by móc objąć myślą całość programu). Wadą jest także brak przenośności. Program napisany w Asemblerze dla jednego procesora nie będzie działał na procesorze, który w istotny sposób się od niego różni.

Współcześnie znaczną większość programów powstaje bez użycia języków niskiego poziomu lub z zastosowaniem ich tylko do napisania niedużej części kodu - kiedy szybkie działanie fragmentu jest najważniejsze, krytyczne. Zamiast pisać wszystkie programy w Asemblerze wymyślono bardzo sprytną metodę - zwaną językami wysokiego poziomu. Programista piszący program w takim języku zwykle ma dużą ilość odpowiednich ułatwień, a także metod pozwalające na implementację (zawarcie) w swoim programie w prosty sposób takich elementów jak podział programu na funkcje, ich wywoływanie, pętle, złożone typy danych, obiekty. Niewątpliwym ułatwieniem jest również istnienie zwykle bardzo wielu tak zwanych bibliotek, które zawierają już zdefiniowane funkcje (a w programowaniu obiektowym - obiekty i metody) wykonujące różne przydatne rzeczy - takie jak na przykład bardziej złożone obliczenia matematyczne, generowanie grafiki czy obsługa hardware.

Języki wysokiego poziomu:

Proces programowania

Zwykle proces programowania należy zacząć od określenia tego, co chce się stworzyć Następnie trzeba wybrać język programowania, lub zastosować ten, który się zna. Dobrze jest jednak znać kilka - języki programowania często mają pewne specyficzne i właściwe im zastosowania - takie, które w innych językach są bardzo trudne do zrealizowania. Wybór ten czasem jest oczywisty (do generowania dynamicznego zawartości strony WWW na podstawie bazy danych raczej używa się PHP niż języka C lub Pascal, tych ostatnich nawet zwykle nie można by było użyć w praktyce), a czasem nie do końca (jak wybór między C++ i Java w wielu sytuacjach - jeden i drugi ma pewne wady i zalety). Po określeniu zadania i języka powinno się zaprojektować to, co chce się zrobić, zrobić pewien szkic, który pozwoli na ścisłe trzymanie się planu. Oczywiście w prostych programach można od razu zabrać się za pisania programu mając pomysł i plan w głowie.



Wyszukiwarka

Podobne podstrony:
Zmiany w podstawie programowej w zakresie edukcji matematycznej, Wczesna edukacja, Materiały do prac
Podstawa programowa z techniki, szkoła, Materiały do techniki(technika)
pp program wykladu zaoczne 03, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy pr
PODSTAWY ZARZĄDZANIA ćw 20.03.10 20, Materiały studia, Podstawy zarządzania ćwiczenia
Podstawy Programowania 03 Zlozo Nieznany
TPK 26.03 Rodzaje programów naucznia, Studia - Pedagogika, Teoretyczne Podstawy Kształcenia
Zmiany w podstawie programowej w zakresie edukcji matematycznej, Wczesna edukacja, Materiały do prac
1 Podstawy nauki o materiałach 03 10 2012id 10337 pptx
03 PODSTAWY GENETYKI
Nowa podstawa programowa WF (1)
1 Podstawy programowania dialogowego
stale, Elektrotechnika, dc pobierane, Podstawy Nauk o materialach, Przydatne, Sprawka
nowa podstawa programowa sp
11-nkb~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l2
2-eukl~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l2
1-algo~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l2
c-zadania-w3, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, kol

więcej podobnych podstron