Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podstawy programowania

Podobne prezentacje


Prezentacja na temat: "Podstawy programowania"— Zapis prezentacji:

1 Podstawy programowania
w języku Java - wprowadzenie © Krzysztof Barteczko, PJWSTK 2012

2 Programowanie PROGRAMOWANIE JEST PRZYJEMNE
Programming ... it's the only job I can think of where I get to be both an engineer and an artist. There's an incredible, rigorous, technical element to it, which I like because you have to do very precise thinking. On the other hand, it has a wildly creative side where the boundaries of imagination are the only real limitation. ~Andy Hertzfeld, about programming PROGRAMOWANIE JEST POTRZEBNE (każdemu Efektywna praca na komputerze wymaga automatyzacji rutynowych czynności, inaczej całe godziny spędzamy na mało kocepcyjnych zajęciach, sprowadzających się do klikania myszką. Automatyzacja = programowanie.

3 Dla informatyków ... PROGRAMOWANIE JEST POTRZEBNE W ZAWODZIE
In software, the term architect means many things. (In software any term means many things.) In general, however it conveys a certain gravitas, as in "I'm not just a mere programmer - I'm an architect". This may translate into "I'm an architect now - I'm too important to do any programming". XP calls the leading technical figure the "Coach". The meaning is clear: in XP technical leadership is shown by teaching the programmers and helping them make decisions. It's one that requires good people skills as well as good technical skills. ~Martin Fowler, "Is design dead?"

4 Co robi komputer? - wykonuje programy
Program jest zakodowaną sekwencją instrukcji, które ma wykonać procesor (lub za jego pośrednictwem inne elementy sprzętowe). Zapis kodu programu w języku maszynowym jako ciągu liczb w w systemie binarnym: Bit - najmniejsza ilość informacji, którą może operować komputer - cyfra 1 lub 0 w binarnej reprezentacji liczby. Bajt = 8 bitów = najmniejsza częścią słowa maszynowego, dostępną bezpośrednio dla procesora. Pół bajta = cyfra w systemie 16-kowym 0-9 A=10, B=11, C=12 D=13, E=14, F=15

5 Kod maszynowy a assemblery
5830 D252 5A30 D D260 Ułatwienie: assembler - język symbolicznego zapisu instrukcji maszynowych danego procesora. Bardziej zrozumiały dla nas zapis, tłumaczony na język maszynowy (ciąg cyfr binarnych) przez translatory. Jednak programowanie w języku assemblera wciąż uciążliwe i obarczone szczególami tecnicznymi.

6 Potrzeba języków wysokiego poziomu
Przecież chodzi o dodanie do siebie dwóch liczb (oznaczonych X i Y) i zapisanie wyniku jako Z. Z = X + Y Tak można pisać w językach wysokiego poziomu, które w swojej składni i semantyce konsolidują wiele prostych instrukcji assemblerowych, ukrywają ich techniczne szczegóły, i - w odróżnieniu od assemblerów - są składniowo niezależne od procesora. Wymagają od programisty znajomości składni i semantyki. Ale samo to nie wsytarcza aby pisać sensowne programy.

7 Algorytmy Skoro programy służą do rozwiązywania jakichś problemów, realizacji zadań, to punktem wyjścia programowania powinno być sformułowanie algorytmu. ALGORYTM to przepis postępowania prowadzący do rozwiązania określonego zadania; zbiór poleceń dotyczących pewnych obiektów (danych) — ze wskazaniem kolejności, w jakiej mają być wykonane; wykonawcą jest układ, który na sygnały reprezentujące polecenia reaguje ich realizowaniem — może nim być człowiek lub urządzenie automatyczne, np. komputer. Algorytmy możemy wyrazić w różny sposób: w języku naturalnym, graficznie - w postaci schematu blokowego lub też w tzw. pseudo-kodzie (wybranym języku opisu algorytmów, który jest niezależny od konkretnych, dostępnych języków programowania).

8 Schematy blokowe Przykład wyliczenia podatku:

9 Algorytmy, programy, języki
Podsumujmy: programy piszemy po to, by rozwiązać problem, zanim napiszemy program, musimy opracować algorytm, program jest zapisem algorytmu oraz danych w konkretnym języku programowania, po to by program mógł być wykonany przez komputer jego zapis musi być przetłumaczony na język instrukcji rozumianych przez procesor; takiego tłumaczenia dokonują specjalne programy nazywane translatorami, kompilatorami i interpreterami. PROGRAM - to skonkretyzowane sformułowanie abstrakcyjnego algorytmu na podstawie określonej reprezentacji i struktury danych.

10 Języki programowania Tekst programu zapisujemy w wybranym języku programowania. Każdy język programowania posiada swój alfabet, czyli zbiór znaków (liter i cyfr) z których mogą być konstruowane symbole języka (ciągi znaków). Reguły składniowe definiują dopuszczalne sposoby tworzenia symboli oraz dopuszczalne porządki ich występowania w programie, zaś semantyka języka określa znaczenie wybranych symboli. Istnieje wiele (dziesiątki tysięcy) języków programowania.

11 Języki programowania - klasyfikacja
Języki imperatywne wymagają od programisty wyspecyfikowania konkretnej sekwencji kroków realizacji zadania, natomiast języki deklaratywne - opisują relacje pomiędzy danymi w kategoriach funkcji (języki funkcyjne) lub reguł (języki relacyjne, języki programowania logicznego) Podejście obiektowe polega na łącznym rozpatrywaniu danych i możliwych operacji na nich, dając możliwość tworzenia i używania w programie nowych typów danych, odzwierciedlających dziedzinę problemu, programowanie proceduralne rozdziela dane i funkcje i nie dostarcza sposobów prostego odzwierciedlenia dziedziny rozwiązywanego problemu w strukturach danych, używanych w programie.

12 Języki programowania - przykłady
Przykładami języków proceduralnych są: ALGOL, FORTRAN, PL/I, C. Języki obiektowe to np. SmallTalk, Java, C++, C#. Najbardziej znanym językiem funkcyjnym jest Haskell, zaś językiem programowania logicznego - Prolog. Do operowania na bazach danych służy język relacyjny SQL. Języki takie jak Python, Ruby, Groovy czy Scala łączą podejście obiektowe z elementami programowania funkcyjnego,

13 Języki kompilowane W językach kompilowanych tekst programu (program źródłowy) tłumaczony jest na kod binarny (pośredni) przez specjalny program nazywany kompilatorem. Kompilator jednocześnie sprawdza składniową poprawność programu, sygnalizując wszelkie błędy. Proces kompilacji jest więc nie tylko procesem tłumaczenia, ale również weryfikacji składniowej poprawności programu. Zazwyczaj inny program zwany linkerem - generuje z kodu pośredniego gotowy do działania binarny kod wykonywalny i zapisuje go na dysku w postaci pliku typu wykonywalnego (np. z rozszerzeniem EXE lub z nadanym atrybutem "zdolny do wykonywania"). W ten sposób działają takie języki jak C czy C++. Czasem kompilator produkuje symboliczny kod binarny, który jest wykonywany za pomocą interpretacji przez program zwany interpreterem. Tak właśnie dzieje się w przypadku języka Java.

14 Języki interpretowane
W językach interpretowanych kod programu (źródłowy lub pośredni) jest odczytywany przez specjalny program zwany interpreterem, który na bieżąco - w zależności od przeczytanych fragmentów programu - przesyła odpowiednie polecenia procesorowi i w ten sposób wykonuje program. Przykładami języków interpretowanych są: REXX, ObjectREXX, Perl, PHP. Czasami mówimy też o takich językach jako o językach skryptowych. Zazwyczaj języki skryptowe zapewniają dynamiczne typowanie (typy danych nie muszą być z góry ustalone i mogą zmieniać się w trakcie wykonania programu).

15 Wprowadzenie do obiektowości (1)
Obiekt - coś co można wyodrębnić, nazwać, określić jego właściwości. Na przykład: rower, samochód, pies, człowiek. Obiekty mogą wykonywać jakieś czynności, udostępniają jakieś usługi. Inne obiekty mogą "poprosić" je o wykonanie tych usług. Np. obiekt-kierowca może "zlecić" obiektowi-samochodowi. by ten ruszył lub zatrzymał się Powiemy, że do obiektów posyłane są komunikaty, żądające od nich wykonania określonych usług. Klasa stanowi opis takich cech grupy podobnych obiektów, które są dla nich niezmienne. Np. samochody mają kolor i mogą ruszać i zatrzymywac się.

16 Wprowadzenie do obiektowości (2)
Klasa urządzeń elektrycznych: class ElDev { def width, height <-- atrybuty: szerokość, wysokość, stan def isOn ================= Interfejs komunikatów (metody) def on() { isOn = true <--- usługa on (włącz), inaczej: metoda o nazwie on } def off() { isOn = false <--- usługa off (wyłacz),inaczej: metoda o nazwie off Nowy typ danych w programie: ElDev a = new ElDev() ElDev b = new ElDev() a.on() // komunikat: obiekcie a włącz się b.on() // obiekcie b włącz się a.off() // obiekcie a wyłącz się Utworzenie nowych obiektów w programie Kropka służy do wywołania metod

17 Wprowadzenie do obiektowości (3)
Dziedziczenia klas - klasa dziedzicząca inną przejmuje jej właściwości i ew. dodaje własne, wyspecjalizowane. class Computer extends ElDev { def run(Program p) { if (isOn()) p.execute() } // ... Computer a = new Computer() Program x = new Program() ... a.on(); a.run(x); ... a.off();

18 Wprowadzenie do obiektowości (4)
Interfejsy - "biedniejsze klasy" = deklaracje metod. Klasy mogą implementować interfejsy. interface Runnable { run() } class Dog implements Runnable { def run() { // definicja metody run dla Psa // jak biegnie pies? class Cat implements Runnable { def run() { // definicja metody run dla kota // jak biegnie kot?

19 Kursy 1. PPJ 2. GUI PJC 3. UTP 4. TPO
5-7 Programowanie aplikacji biznesowych

20 Java uniwersalny język programowania, język wieloplatformowy
składniowe podobieństwo do C/C++ obiektowość automatyczne odśmiecanie pamięci brak wskaźników ścisła kontrola typów bezpieczne konwersje wymuszanie obsługi błędów za pomocą wyjątków wbudowane elementy współbieżności uniwersalny język programowania, język wieloplatformowy + bogaty zestaw standardowych bibliotek i narzędziowych interfejsów programistycznych (API), które umożliwiają w jednolity, niezależny od platformy sposób programować: graficzne interfejsy użytkownika (GUI) dostęp do baz danych działania w sieci, aplikacje rozproszone, aplikacje WEB, oprogramowanie pośredniczące (middleware), zaawansowana grafikę, gry i multimedia, aplikacje na telefony komórkowe i inne "małe" urządzenia.

21 Języki JVM JVM wykonuje bytecode.
Języki JVM = języki kompilowane do b-kodu. Żródło rys. : Carl Byström blog Żródło rys. : WIKI


Pobierz ppt "Podstawy programowania"

Podobne prezentacje


Reklamy Google