Podstawy programowania

Slides:



Advertisements
Podobne prezentacje
Java dla studentów II roku Wydziału Fizyki PW Przemysław Duda, 2012
Advertisements

Zaawansowane metody programowania – Wykład V
Wprowadzenie do C++ Zajęcia 2.
PROGRAMOWANIE STRUKTURALNE
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 1: Wprowadzenie do programowania.
P O D S T A W Y P R O G R A M O W A N I A
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Podstawy programowania
Wykład 2 struktura programu elementy języka typy zmienne
Wstęp do programowania obiektowego
Java – programowanie obiektowe
Projektowanie i programowanie obiektowe II - Wykład IV
Wstęp do interpretacji algorytmów
Wprowadzenie do programowania w języku Turbo Pascal
Modele baz danych - spojrzenie na poziom fizyczny
Temat 3: Co to znaczy, że komputer ma pamięć? Czy można ją zmierzyć?
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy programowania
LabVIEW Technologie informacyjne – laboratorium Irmina Kwiatkowska
Instytut Tele- i Radiotechniczny WARSZAWA
Prowadzący: Dr inż. Jerzy Szczygieł
Programowanie Podstawowe pojęcia.
Źródła: podręcznikopracował: A. Jędryczkowski.
Opracował : Przemysław Drzymała
Budowa systemu komputerowego
Informatyka MZT1 Wykład 3.
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Programowanie obiektowe – zastosowanie języka Java SE
JAVA.
XML – eXtensible Markup Language
Maszyna wirtualna ang. virtual machine, VM.
Algorytmy.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
A. Jędryczkowski – 2007 r.. Algorytmem nazwiemy ścisły przepis postępowania, którego wykonanie gwarantuje otrzymanie danych wynikowych z dostarczonych.
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
SPECJALNOŚĆ: Oprogramowanie Systemowe
Programowanie w języku C++
Podstawy programowania
Metody numeryczne metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane tą drogą wyniki są na ogół przybliżone, jednak.
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Algorytmika.
C++.
Model obiektowy bazy danych
Podstawy języka skryptów
Programowanie w językach skryptowych
Wprowadzenie do programowania w Pascalu mgr inż. Agata Pacek.
Platforma .Net.
Podstawy programowania
Struktura systemu operacyjnego
Wstęp do interpretacji algorytmów
Dokumentacja programu komputerowego i etapy tworzenia programów.
Wstęp do programowania Wykład 1
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
1 Wprowadzenie: Języki programowania. Java i języki JVM © Krzysztof Barteczko, PJWSTK
© Krzysztof Barteczko, PJWSTK 2012
Języki i technologie wytwarzania stron WWW Autor: Michał Walkowski Referat.
Podstawy programowania
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Programowanie Obiektowe – Wykład 2
Programowanie obiektowe – zastosowanie języka Java SE
Podstawy programowania
Założenia projektowe Javy
NEMERLE Michał Maliszewski.
JavaBeans by Paweł Wąsala
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

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

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.

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?"

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: 10001010 10001000 00000001 11001010 ..... 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

Kod maszynowy a assemblery 5830 D252 5A30 D256 5030 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.

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.

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).

Schematy blokowe Przykład wyliczenia podatku:

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.

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.

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.

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,

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.

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).

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ę.

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

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();

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?

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

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.

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