Informatyka I. dr inż. Andrzej Czerepicki.

Podobne dokumenty
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Programowanie obiektowe zastosowanie języka Java SE

Programowanie w języku C++ Grażyna Koba

Wprowadzenie do języka Java

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Programowanie obiektowe

Języki programowania zasady ich tworzenia

Spis treści. 1 Java T M

WPROWADZENIE DO JĘZYKA JAVA

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Wstęp do programowania. Wykład 1

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Java EE produkcja oprogramowania

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Programowanie w języku Python. Grażyna Koba

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Podstawy i języki programowania

Tworzenie aplikacji w języku Java

JDK można pobrać ze strony

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Utworzenie pliku. Dowiesz się:

Java jako język programowania

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

JAVA?? to proste!! Autor: wojtekb111111

Programowanie aplikacji na urządzenia mobilne

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie komputerów

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Wprowadzenie do środowiska Qt Creator

Java Podstawy. Michał Bereta

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Programowanie w Internecie. Java

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Język JAVA podstawy. wykład 1, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

WPROWADZENIE DO JĘZYKA JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA

KONSTRUKCJA KOMPILATORÓW

lekcja 8a Gry komputerowe MasterMind

Programowanie Obiektowe GUI

Programowanie C++ Wykład 1 - Aplikacje konsowlowe w środowisku QT. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Algorytm. a programowanie -

Powtórka algorytmów. Wprowadzenie do języka Java.

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

1 Podstawy c++ w pigułce.

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Microsoft IT Academy kurs programowania

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Programowanie w Javie

Programowanie Systemów Czasu Rzeczywistego

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Podstawy i języki programowania

Programowanie w C. dr inż. Stanisław Wszelak

Podstawy programowania skrót z wykładów:

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

1 Podstawy c++ w pigułce.

Aplikacje w środowisku Java

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Programowanie obiektowe

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Technologie i usługi internetowe cz. 2

Wykład 1: Wprowadzenie do technologii Java

Szablony funkcji i klas (templates)

2. Składnia, środowisko i konwencje w Javie

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Język ludzki kod maszynowy

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Powtórka algorytmów. Wprowadzenie do języka Java.

Instrukcja laboratoryjna cz.3

Podstawy języka Java. przygotował:

Języki i paradygmaty programowania - 1

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Podstawy programowania

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Podstawowe części projektu w Javie

Wykład 2 Składnia języka C# (cz. 1)

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Transkrypt:

Informatyka I dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Politechnika Warszawska Wydział Transportu 2018

Sprawy organizacyjne Harmonogram zajęć Regulamin zajęć Efekty kształcenia KRK Warunki zaliczenia przedmiotu Inne sprawy organizacyjne 2

Plan wykładu Co to jest programowanie oraz program komputerowy Język programowania Java Struktura programu w Java Aplikacja konsolowa Wyprowadzanie danych na ekran 3

Programowanie Programowanie proces implementacji algorytmu w postaci kodu źródłowego (programu) z wykorzystaniem języka programowania Algorytm Dane Program Algorytm jest uniwersalny Program komputerowy jest ściśle związany z wybranym językiem programowania Każdy algorytm operuje na danych 4

Język programowania Język programowania sztuczny formalny język, za pomocą którego można zapisać algorytm w formacie umożliwiającym go wykonanie na komputerze Alfabet Składnia Semantyka 5

Alfabet języka programowania Zbiór dopuszczalnych znaków Litery {a, b,. z } {A, B, Z } Cyfry { 0, 1, 2 9} Znaki specjalne spacja!@#$%^&*().. Kod programu nie może zawierać znaków nie należących do alfabetu (!) 6

Gramatyka języka programowania zasady budowy konstrukcji języka ze znaków alfabetu a # if (a > b ) int k = 20;? b F 1 Reguły gramatyki while( x!=5 ) Alfabet Konstrukcje języka 7

Formy notacji gramatyki języka programowania Forma tekstowa (BNF) <cyfra> :: 0 1 2 3 4 5 6 7 8 9 <liczba> :: <cyfra> <cyfra><liczba>.. Forma graficzna (diagramy) liczba cyfra end 8

Semantyka języka programowania Semantyka odpowiada na znaczenie konstrukcji gramatycznej języka programowania if( a > b ) { a = b; } Jeśli wartość zmiennej a jest większa od wartości zmiennej b, przypisz zmiennej a wartość zmiennej b while( x!= 0 ) x--; Póki wartość zmiennej x jest różna od zera, zmniejsz wartość x o jeden 9

Język programowania Współczesny język programowania: został zaprojektowany w połowie lat 90. XX wieku Język obiektowy: realizuje popularną koncepcję programowania obiektowego, co pozwala na budowę dużych oraz stabilnych systemów informatycznych Wieloplatformowy: działa na większości platform (Windows, Linux, aplikacje WWW, urządzenia wbudowane, platformy mobilne etc.) 10

Kod źródłowy Java Plik tekstowy o rozszerzeniu *.java Można edytować za pomocą dowolnego edytora tekstowego W praktyce stosuje się zintegrowane środowiska programowania (IDE ang. Integrated Development Environment) pozwalające na pełną kontrolę nad cyklem życiowym programu Na zajęciach będzie wykorzystane IDE NetBeans 8.x 11

Cykl programowania w Java start Edycja kodu źródłowego Kompilacja tak Są błędy? nie Uruchomienie programu tak Działa? Nie tak jak powinien koniec 12

Kompilacja Kompilacja proces zamiany kodu źródłowego programu na kod maszynowy (syn.: binarny, wykonywalny) Aplikacja.java Kompilacja Aplikacja.class Kompilator program dokonujący kompilacji W Java kompilatorem jest program o nazwie javac 13

Błędy kompilacji Jeśli program zawiera konstrukcje niedozwolone z pkt. widzenia gramatyki języka, kompilacja kończy się niepowodzeniem Kompilator zgłasza listę błędów kompilacji Plik *.class nie powstaje Uruchomienie programu nie ma sensu (mimo że w niektórych przypadkach jest możliwe) Brak kompilacji na zaliczeniu lab. świadczy że student nie rozumie podstaw gramatyki języka programowania 14

Uruchomienie programu Java Kod źródłowy Kompilacja Kod pośredni (B-code) JRE dla Windows Maszyna wirtualna Java Maszyna wirtualna Java JRE dla Unix Windows OS Unix OS JRE - Java Runtime Environment 15

Zintegrowane środowisko programowania NetBeans Możliwość edycji kodu programu Podpowiadanie instrukcji Podświetlanie konstrukcji gramatycznych Podświetlanie prostych błędów gramatycznych Kompilacja programu Kontrolowane uruchomienie programu Emulacja różnych urządzeń wyjścia (konsola, aplet na stronie WWW, urządzenie mobilne, etc.) Możliwość śledzenia wykonania programu krok po kroku 16

Uruchomienie programu Program może być uruchomiony samodzielnie (p. instrukcję do ćwiczenia nr 1), lub poprzez środowisko NetBeans (klawisz F6) Przed uruchomieniem program powinien być skompilowany W większości przypadków dzieje się to automatycznie Wyniki działania programu zostaną wyświetlone w odrębnym okienku (tekstowym lub graficznym zależnie od rodzaju aplikacji) 17

Debugowanie programu Debugowanie (ang. debugging odpluskwianie ) - proces nadzorowanego wykonania programu krok po kroku w celu wyłapania błędów semantycznych (program działa ale nie tak jakbyśmy chcieli) Bug błąd semantyczny w programie ( pluskwa ) Breakpoint punkt zatrzymania się programu Uruchomienie programu w trybie Debug (Ctrl+F5) pozwala zatrzymać tymczasowo wykonanie programu w miejscu wystąpienia breakpoint w celu umożliwienia programiście zapoznania się ze stanem aplikacji 18

Zakończenie programu Program raz uruchomiony powinien być zakończony Zakończenie programu następuje: Po wykonaniu ostatniej instrukcji programu, zamknięciu okna głównego programu (aplikacja z interfejsem graficznym), etc. Po wystąpieniu sytuacji awaryjnej nie obsłużonej przez użytkownika Na skutek zatrzymania przez użytkownika (np. poprzez środowisko IDE) Ponieważ aplikację można uruchomić wielokrotnie, może dojść do sytuacji, kiedy aktywne będą liczne instancje programu źródło problemów dla niedoświadczonych użytkowników 19

Struktura programu Java Klasa Klasa Pakiet metoda main() Pakiet Klasa Pakiet Projekt20

Klasa podstawowa jednostka programu Java Klasa składa się z pól oraz metod 21

Pola i metody klasy Pola klasy (syn. atrybuty, właściwości) opisują jej charakterystyki Np. pola klasy Samochód mogą opisywać: Przebieg Pojemność silnika Numer rejestracyjny Metody klasy opisują jej zachowanie Np. metoda Jedź(int odległość) zmienia stan pola Przebieg o wartość przekazaną przez obiekt odległość 22

Metody Metoda w programowaniu samodzielny fragment kodu programu stanowiący logiczną całość (syn. funkcja, procedura, podprogram) Metoda składa się z pojedynczych instrukcji Metoda realizuje określony algorytm tj. ma początek, koniec oraz treść, może posiadać dane wejściowe oraz generować wynik Metoda main() w Java rozpoczyna wykonanie programu 23

Struktura metody w Java void, int, double, string, public protected private dostęp typ zwracanej wartości nazwa ( argumenty (parametry) ) { instrukcja ; } 24

Obiekty klasy Klasa jest szablonem do tworzenia obiektów klasy w czasie wykonania programu (syn. instancje, egzemplarze) Wszystkie obiekty klasy posiadają identyczny zbiór pół, ale wartości każdego pola mogą być inne Np. obiekty Skoda oraz Fiat klasy Samochód posiadają pole Przebieg, ale jego wartości wynoszą 10000 oraz 15000 odpowiednio Obiekty klasy są tworzone za pomocą instrukcji new Nazwa klasy Nazwa obiektu = new Nazwa klasy ; 25

Pakiet zbiór klas Java Pakiety łączą klasy w jednostki logiczne Pakiet Pojazdy Klasa Samochód Klasa Pociąg Klasa Rower Pakiet ma własną nazwę unikatową w skali programu Nazwy klas w obrębie pakietu nie mogą się powtarzać Klasy w jednym pakiecie są dostępne nawzajem Klasy z innych pakietów nie są dostępne (domyślnie) 26

Biblioteka zbiór pakietów Biblioteka zbiór pakietów klas w postaci pliku Biblioteki są stosowane w celu umożliwienia wielokrotnego wykorzystania kodu Pojazdy Statki Samoloty Transport 27

Rodzaje aplikacji Java Aplikacja konsolowa Aplet Aplikacja GUI Servlet Aplikacja mobilna Strona WWW Usługa 28

Aplikacja konsolowa Konsola - okno tekstowe systemu operacyjnego Wprowadzanie danych klawiatura Wyprowadzanie danych ekran tekstowy w postaci tablicy znaków 29

Kolejność wierszy Ekran aplikacji konsolowej Kierunek wyprowadzania tekstu W i t a m y! \n \n \n Znak końca linii \t \n \n Pozycja kursora (karetki) Tabulator 30

Metoda main Wykonanie kodu programu rozpoczyna się z uruchomienia metody o nazwie main Metoda main może być umieszczona w dowolnej klasie programu Java Aplikacja konsolowa powinna mieć przynajmniej jedną klasę zawierającą metodę main 31

Kolejność wykonania instrukcji Instrukcje w języku Java są wykonywane jedna po drugiej, zgodnie z kolejnością w kodzie Kolejność wykonania może być zmieniona za pomocą: instrukcji warunkowych, Instrukcji pętli, podprogramów itp. (o tym będzie dalej) Program konsolowy kończy działanie po wykonaniu ostatniej instrukcji w metodzie main z wyjątkiem sytuacji awaryjnych (Exceptions) oraz aplikacji wielowątkowych 32

Nazewnictwo obiektów w programie Java Nazwa obiektu jest ciągiem dopuszczalnych znaków z alfabetu języka programowania Nazwa nie może zaczynać się od liczby! Nazwa nie może zawierać spacji! Nazwa może zawierać wybrane znaki specjalne, np. podkreślenie 33

Wyświetlanie danych na ekranie Aplikacja konsolowa wyświetla dane w postaci tekstowej za pomocą metody print lub println obiektu System.out Argumentem metody może być liczba całkowita, tekst, lub inny obiekt w programie posiadający możliwość przekształcenia na ciąg znaków Instrukcja println po ukończeniu wyświetlania ustawia kursor w pierwszej pozycji następnego wiersza (sufiks ln skrót z ang. Line) 34

Zasady wyświetlania obiektów różnych typów Tekst zawsze wyświetlamy w cudzysłowie: System.out.println("Ala ma kota"); Liczby oraz pozostałe typy danych wyświetlamy bez cudzysłowu: System.out.println( 3.1457 ); Zmienne oraz inne obiekty posiadające własną nazwę w programie zawsze wyświetlamy bez cudzysłowu System.out.println( X ); System.out.println( Math.Pi() ); 35

Formatowanie tekstu Wybrane znaki specjalne formatujące tekst: \n przejście do następnego wiersza \t tabulator 36

Średnik - znak końca instrukcji Każda instrukcja w języku Java kończy się średnikiem Instrukcje złożone mogą się rozciągać na kilka(naście) linijek kodu źródłowego oraz zawierać włożone instrukcje średnik stawia się na końcu! Średnik nie jest wymagany w niektórych sytuacjach kiedy złożona instrukcja kończy się nawiasem klamrowym (if, while). Postawienie średnika w niewłaściwym miejscu może mieć skutki katastrofalne -> np. jedna instrukcja złożona w ten sposób się podzieli na kilka prostych, poprawnych z punktu widzenia języka ale zupełnie bezsensownych 37

Nawiasy klamrowe {... } Nawiasy klamrowe są stosowane w celu grupowania instrukcji należących do: Klasy Funkcji Instrukcji złożonej (warunek, pętla, etc.) Wyjątku itp. Każdy nawias klamrowy otwierający grupę instrukcji, powinien mieć odpowiedni nawias zamykający (!) 38

Pytania kontrolne Na jakich platformach sprzętowo-programowych działają programy napisane w Java? Na czym polega koncepcja maszyny wirtualnej Java? Jakie są zalety i wady takiego podejścia? Co to jest kompilacja? Czym skutkuje popełnienie błędu składniowego (gramatycznego) w kodzie programu Java? Program nie kompiluje się. Jaka może być przyczyna tego i co należy zrobić? Program uruchamia się ale nie działa zgodnie z założeniami. Z jakiego rodzaju błędem mamy do czynienia? Jak mogę przyspieszyć znalezienie błędu semantycznego w kodzie programu? 39

Pytania kontrolne (c.d.) Na czym polega koncepcja programowania obiektowego? Co to jest klasa i z czego się składa? Co to jest metoda klasy? Do czego służą pola klasy? Do czego w kodzie programu Java stosuje się średnik? Kiedy można nie stosować średnika? Czy za pomocą pojedynczej instrukcji println() można wyświetlić na ekranie kilka linijek tekstu? 40