Podstawy programowania Ć JAVA C wiczenie 2



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

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Odczyt danych z klawiatury Operatory w Javie

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Podstawy i języki programowania

Programowanie obiektowe

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Platformy Programistyczne Podstawy języka Java

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

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Programowanie, algorytmy i struktury danych

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

Wprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd.

Podstawy Programowania Podstawowa składnia języka C++

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Java. Æwiczenia praktyczne. Wydanie II

Podstawy i języki programowania

Wykład 2: Podstawy Języka

Podstawy Programowania C++

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

2 Przygotował: mgr inż. Maciej Lasota

Stuck in the loop. Sterowanie. Marcin Makowski. 29 października Zak lad Chemii Teoretycznej UJ

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

Wykład 4: Klasy i Metody

MATERIAŁY DO ZAJĘĆ II

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

Język ludzki kod maszynowy

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

1 Podstawy c++ w pigułce.

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Język C zajęcia nr 11. Funkcje

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Wprowadzenie do języka Java

Podstawy i języki programowania

Java Podstawy. Michał Bereta

Języki i metody programowania Java INF302W Wykład 3 (część 1)

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

Programowanie - instrukcje sterujące

Część 4 życie programu

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Podstawy programowania w języku C i C++

Wykład 8: Obsługa Wyjątków

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

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

Java. Zadania z programowania z przykładowymi rozwiązaniami

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

KOTLIN. Język programowania dla Androida

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Tablice i łańcuchy znakowe jako obiektowe typy danych. dr Jarosław Skaruz

Tablice (jedno i wielowymiarowe), łańcuchy znaków

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

Podstawy programowania w języku C

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Microsoft IT Academy kurs programowania

Podstawowe części projektu w Javie

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Programowanie obiektowe

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

C++ wprowadzanie zmiennych

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Wstęp do Programowania, laboratorium 02

Języki i paradygmaty programowania

Języki i metody programowania Java INF302W Wykład 2 (część 1)

Zmienne, stałe i operatory

Przetwarzanie sygnaªów

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

1 Podstawy c++ w pigułce.


Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

MATERIAŁY POMOCNICZE DO ĆWICZENIA 3 Klasy i obiekty; atrybuty i metody

Programowanie Komputerów

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

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

Wskaźniki, funkcje i tablice

Proste programy w C++ zadania

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196

Metody Metody, parametry, zwracanie wartości

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Obliczenia, zmienne. Proste działania, zmienne, rodzaje zmiennych, proste operacje i działania na zmiennych.

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Operatory, wyrażenia i typy proste

Java. Æwiczenia praktyczne

JAVA?? to proste!! Autor: wojtekb111111

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

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Transkrypt:

Podstawy programowania Ć JAVA C wiczenie 2 1. Program rozwia zuja cy rownanie kwadratowe (zmienne podstawowe, operatory, instrukcje) public class Rownaniekwadratowe { public static void main (String args[]) { int a=1, b, c; b=-6; c=9; System.out.println("Rownanie kwadratowe Axx+Bx+C=0\n\n"); System.out.println("Parametry rownania:\n"); System.out.println("A: "+a+" B: "+b+" C: "+c+"\n"); if (a==0) { System.out.println("To nie jest rownanie kwadratowe: A=0!"); double delta = b*b-4*a*c; if (delta<0) { System.out.println("delta<0\n"); System.out.println("Brak rozwiazania w zbiorze liczb rzeczywistych"); double wynik; if (delta==0) { wynik= -b/2*a; System.out.println("Rozwiazanie: x = "+wynik); wynik=(-b+math.sqrt(delta))/2*a; System.out.print("Rozwiazanie: x1 = "+wynik); wynik=(-b-math.sqrt(delta))/2*a; System.out.println(",x2 = "+wynik); Powyzszy program jest klasycznym przykśadem obliczania pierwiastkow rownania kwadratowego 2 Ax + Bx + C = 0 o parametrach podanych bezposrednio w kodzie programu (Rownaniekwadratowe.java). Przedstawiono w nim m.in. sposob uzywania podstawowych typow zmiennych (deklaracje, inicjowanie oraz wyprowadzanie wartosci na ekran), operatorow i instrukcji warunkowej ifś else. Uwagi: Zmienne Typy zmiennych w Javie dziela sie na dwa rodzaje: typy podstawowe (Tabela 1) oraz typy odnosnikowe. Typy podstawowe dziela sie na typy arytmetyczne oraz typ logiczny. Typy arytmetyczne dziela sie z kolei na typy caćkowitoliczbowe oraz typy zmiennoprzecinkowe. Typy odnosnikowe (referencyjne) dziela sie na trzy rodzaje: typy klasowe, typy interfejsowe oraz typy tablicowe.

Arytmetyczny Typ Liczba bajtow Zakres wartosci Wartosc standartowa Logiczny boolean 1 true, false false char 2 Znaki Unicode \u0000 Caśkowitoliczbowy byte 1-2 7 ń 2 7-1 0 short 2-2 15 ń 2 15-1 0 int 4-2 31 ń 2 31-1 0 long 8-2 63 ń 2 63-1 0 Zmienno- float 4 ±3,4 10 38 0.0 przecinkowy double 8 ±1,8 10 308 0.0 Tabela 1. Typy podstawowe zmiennych w Javie Aby moc uzyc jakiejs zmiennej podstawowej w programie, wpierw trzeba ja zadeklarowac. Ogolna deklaracja ma postac : Typ_zmiennej nazwa_zmiennej; Mozna rowniezzadeklarowac wiele zmiennych danego typu oddzielaja c ich nazwy przecinkami. Wartosci zmiennych mozna przypisac juzpodczas deklaracji. Typ_zmiennej nazwa1 = wartosc1, nazwa2, nazwa3 = wartosc2; Nazwy zmiennych moga skśadac sie z duzych i maśych liter oraz cyfr, ale nie moga zaczynac sie od cyfry. Nie nalezy rowniezstosowac polskich znakow diakrytycznych. Zaleca sie aby nazwy zmiennych zaczynaśy sie od maśej litery, a pierwsze litery kolejnych wyrazow byśy wielkie np. zmiennabufor, stawkavat, liczbadni. Zmienne w Javie, podobnie jak w C, czy C++ mozna deklarowac w dowolnym miejscu funkcji czy metody. W przeciwienstwie do C++ w Javie dokśadnie okreslono sposob reprezentacji danych, niezaleznie od systemu operacyjnego (Tabela 1, Liczba bajtow). Do wyswietlania danych wykorzystuje sie metody System.out.print() oraz System.out.println(), ktore jako argumenty przyjmuja rozne typy danych (mozna je śa czyc operatorem + ). Druga metoda wymusza dodatkowo przejscie do nowej linii, zas pierwsza nie. Operatory Do wykonywania operacji na zmiennych sśuza operatory, ktore dzielimy na: arytmetyczne, bitowe, logiczne, przypisania, porownania. Do operatorow arytmetycznych zalicza sie : dodawanie (+), odejmowanie (-), mnoz enie(*), dzielenie (/), dzielenie modulo (%), inkrementacje (++) i dekrementacje (--). Operatory inkrementacji i dekrementacji moga wyste powac w formie przyrostowej x++, xź bad przedrostkowej ++x, --x. Operator przyrostowy zmienia wartosc zmiennej po jej wykorzystaniu, natomiast przedrostkowy przed jej wykorzystaniem! Do operatorow bitowych zalicza sie AND (&), OR ( ), XOR (^), przesunie cie bitowe w lewo (<<), w prawo (>>) oraz w prawo z wypeśnieniem zerami (>>>). W grupie operatorow logicznych wyroznia sie : operator logiczny AND (&&), logiczne OR ( ) i logiczna negacje (!). Argumentami operacji takiego typu musza byc wyrazenia posiadaja ce wartosc logiczna true lub false. Operatory przypisania sa dwuargumentowe i powoduja przypisanie wartosci argumentu prawostronnego do argumentu lewostronnego (Tabela 2). Operatory poro wnania sśuza do porownania wartosci argumentow. Wynikiem porownania jest wartosc true lub false. Rozroznia sie argumenty: ==,!=, <, >, >=, <+. Operator warunkowy?, ma skśadnie : warunek? wartosc1 : wartosc2; Wyrazenie takie przybiera wartosc1, jezeli warunek jest speśniony, lub wartosc2 w przeciwnym przypadku np. y = (x ==1? 12 : 24); da y = 12 gdy x =1 ba d y = 24 gdy x 1. Instrukcja warunkowa if...else Instrukcja warunkowa if...else ma ogolna postac : if ( wyraz enie warunkowe) { Instukcje do wykonania, jez eli warunek jest spećniony Instukcje do wykonania, jez eli warunek nie jest spećniony Wyrazenie warunkowe, inaczej nizw C/C++ musi dac w wyniku wartosc typu boolean.

Argument 1 Operator Argument 2 Znaczenie x = y x=y x += y x=x+y x -= y x=x-y x *= y x=x*y x /= y x=x/y x %= y x=x%y x <<= y x=x<<y x >>= y x=x>>y x >>>= y x=x>>>y x &= y x=x&y x = y x=x y x ^= y x=x^y Tabela 2. Operatory przypisania i ich znaczenie w Javie Funkcje matematyczne Funkcje matematyczne Javy sa zawarte w klasie Math. Funkcje te sa zadeklarowane jako statyczne, wie c mozna uzyskac do nich doste p bez tworzenia egzemplarza obiektu np. y=math.exp(x), y=math.sqrt(z). Zadania do samodzielnego wykonania: 2 1. Napisac program do obliczania pierwiastkow rownania kwadratowego Ax + Bx + C = 0 o parametrach podanych bezposrednio w kodzie programu z wykorzystaniem okna graficznego. 2. Napisac program wykonuja cy dzielenie zmiennych typu caśkowitego. Sprawdzic rezultaty w sytuacji, gdy rzeczywisty wynik jest uśamkiem. 3. Napisac program z zadeklarowana zmienna typu caśkowitego i sprawdzic przekroczenie dopuszczalnej wartosci tej zmiennej: a) podczas inicjacji; b) wykonuja c operacje arytmetyczna 4. Przeanalizowac ponizszy kod nie uruchamiaja c programu (IncDec.java). public class IncDec { public static void main (String args[]) { int x=1,y; System.out.println(++x); System.out.println(x++); System.out.println(x); y=x++; System.out.println(y); y=++x; System.out.println(++y); x=y; System.out.println(--x); System.out.println(x--); System.out.println(x); y=x--; System.out.println(y); y=--x; System.out.println(--y);

2. Program obliczaja cy wartosc srednia (instrukcje, tablice) import java.io.*; class Srednia { public static double czytaj (int k) { String input = ""; boolean error; double bufor=0; BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); do { error = false; System.out.print ("Podaj tablica["+k+"]: "); System.out.flush(); try { input = in.readline(); catch (IOException e) { System.out.println (e); System.out.println ("Przechwycono blad wejsciowy"); error = true; try { bufor = Double.valueOf (input).doublevalue(); catch (NumberFormatException e) { System.out.println(e); System.out.println("zly format, jeszcze raz"); error = true; while (error); return(bufor); public static void main (String args[]) { int ilosc = 5; double suma = 0; double tablica[] = new double[ilosc]; System.out.println("Obliczanie wartosci sredniej "+ilosc+" elementow tablicy"); for (int i=0; i<ilosc; i++) { tablica[i]= czytaj(i); System.out.print("\ntablica =["); for (int i=0; i<ilosc; i++) { suma += tablica[i]; System.out.print (" "+tablica[i]+" "); System.out.println("]"); double wynik = suma / ilosc ; System.out.println ("Srednia liczb wynosi: "+wynik+"\n");

Powyzszy program (Srednia.java) oblicza wartosc srednia elementow tablicy, zadanych w programie. Przedstawiono w nim m.in. technike pobierania danych z klawiatury oraz zamiane śancucha na liczbe. Dane wprowadzane sa typu rzeczywistego (double). Do pobierania danych z klawiatury stworzono metode czytaj, w ktorej uzyto klasy BufferedRaader zawieraja cej metode readline, ktora pobiera dane wejsciowe z obiektu BufferedReader i zwraca śancuch. W tym celu zaimportowano klasy z pakietu java.io (tam znajduje sie BufferedReader). W metodzie czytaj nalezaśo stworzyc nowy obiekt BufferedReader, ktory dostarczy dane z klawiatury. W tym celu wywośano konstruktor BufferedReader z argumentem System.in (standardowe wejscie). Aby przeczytac dane wymuszono oproznienie bufora wejsciowego metda System.out.flush. Metoda readline moze zgśosic wyja tek IOException (wejsciawyjscia), wie c uzyto pe tli do-while z blokiem try-catch, aby go przechwycic. Metoda readline zwraca śancuch. ktory jest przypisany zmiennej input typu String. Kolejnym etapem jest przeksztaścenie śancucha w liczbe Ż w tym przypadku double. Konwersje przeprowadza sie metoda valueof, zawartej w klasie Double. Klasa ta pozwala na umieszczenie typu podstawowego w obiekcie. Obiekt Double zawiera tylko jedno pole typu double. Klasa ta zawiera takze kilka metod do przeksztaścania obiektow Double w typ String. Jak wspomniano wartosc zmiennej input przeksztaścana jest w typ double za pomoca metody Double.valueOf(String).doubleValue(). Metoda ta moze zgśosic wyja tek NumberFormatException, jesli śancuch wejsciowy jest le sformatowany. Dzie ki zastosowaniu petli do-while z blokiem try-catch wyja tek ten jest przechwytywany. Uwagi: Zmienne odnosnikowe. Zmienne typow odnosnikowych (referencyjnych) deklaruje sie jak w przypadku zmiennych typow podstawowych: Typ_zmiennej nazwa_zmiennej1, nazwa_zmiennej2; Pisza c w ten sposob deklaruje sie jedynie odniesienie do zmiennej obiektowej, a nie sama zmienna! Takiemu odniesieniu przypisana jest wartosc pusta (null). W zwia zku z tym nie mozna jej wykorzystac w zadnej operacji. Dopiero po utworzeniu odpowiedniego obiektu w pamie ci mozna powia zac go z tak zadeklarowana zmienna. Jesli deklaruje sie zmienna typu caśkowitego: int a; mozna jej przypisac wartosc np. 10. Zeby moc skorzystac z tablicy nalezy zadeklarowac zmienna odnosnikowa typu tablicowego, utworzyc nowy obiekt tablicy i powia zac go za zmienna. Dopiero wtedy mozna swobodnie odwośywac sie do kolejnych elementow. Pisza c: int tablica[]; deklaruje sie odniesienie do tablicy, ktora bedzie zawieraśa elementy typu np. int. Samej tablicy jednak wcale jeszcze nie ma. Aby stworzyc nowa, jednowymiarowa tablice liczb typu int o rozmiarze np. 10 elementow i przypisac ja zmiennej odnosnikowej o nazwie tablica nalezy uzyc wyrazenie: int tablica = new int[10]; Po tej deklaracji mozna sie odwośywac do kolejnych elementow tej tablicy: tablica [index] Elementy tablicy sa numerowane od zera, a nie od 1!. Oznacza to, ze pierwszy element tablicy n- elementowej ma indeks 0, a ostatni (n-1). Rozmiar tablicy moze byc ustalony dynamicznie w fazie wykonywania programu Zawsze mozna uzyskac informacje o rozmiarze (liczbie elementow) za pomoca odwośania tablica.length; Deklaruja c: Button b; Zmiennej b przypisujemy odniesienie (referencje ) do obiektu typu Button, ale zmienna nie wskazuje na razie na zaden obiekt. Dopiero uzycie wyrazenia new: b = new Button(); tworzy obiekt, a zwrocona przez new referencja jest podstawiana za zmienna b. W deklaracjach zmiennych typu odnosnikowego mozna inicjowac dane, np.: int tablica[] = new int[100]; Button b = new Button; Button[] btab = new Button[n] String s = ala ma kotaą; Ostatni przykśad pokazuje, ze w Javie dopuszczalne sa literaśy śancuchowe, ktorych uzycie powoduje zbudowanie obiektu typu String i zwrot referencji do niego. Zmienna s zostaje zainicjowana referencja do automatycznie utworzonego obiektu typu String, ktory zawiera napis ala ma kota ;

Instrukcje Pe tla typu for ma naste puja ca skśadnie : for (wyraz enie poczatkowe; wyraz enie warunkowe; wyraz enie modyfikujace) { Instrukcje do wykonania Wyrazenie pocza tkowe jest stosowane do zainicjowania zmiennej uzywanej jako licznik ilosci wykonan pe tli. Wyrazenie warunkowe okresla warunek, jaki musi byc speśniony, aby dokonac kolejnej iteracji, wyrazenie modyfikuja ce uzywane jest do modyfikacji licznika iteracji. Ogolna konstrukcja pe tli do-while jest naste puja ca: do { instrukcje; while (warunek); Instrukcje sa wykonywane sa tak dśugo, dopoki wyrazenie warunkowe jest prawdziwe. Oznacza to, ze w ciele petli musi nasta pic modyfikacja warunku, bad tezinstrukcja break. Instrukcje zostana wykonane co najmniej 1 raz. Istnieje inna odmiana pe tli, a mianowicie while o konstrukcji: while (wyraz enie warunkowe { Instrukcje Wyja tki Do obsśugi wyja tkow sśuzy blok try...catch, ktorego schemat wykorzystania wygla da naste puja co: try { Blok instrukcji mogacy spowodowacwyjatek catch (TypWyjatku1 identyfikatorwyjatku1) { obsćuga wyjatku 1 catch (TypWyjatku2 identyfikatorwyjatku2) { obsćuga wyjatku 2 catch (TypWyjatku3 identyfikatorwyjatku3) { obsćuga wyjatku 3 finally { instrukcje Po try naste puje blok instrukcji moga cych spowodowac wyja tek. Jezeli podczas ich wykonywania zostanie on wygenerowany, wykonanie zostanie przerwane, a sterowanie przekazane do bloku instrukcji catch. Tu z kolei sprawdzane jest, czy ktoras z instrukcji odpowiada wygenerowanemu wyja tkowi. Jesli tak, wykonany zostanie kod po niej wyste puja cy. Instrukcje znajduja ce sie po sśowie finally wykonywane sa zawsze niezaleznie od tego czy wyja tek wysta piś czy nie. Nie ma koniecznosci stosowanie bloku finally. Zadania do samodzielnego wykonania: 1. Zadeklarowac i zainicjowac w programie tablice n-elementowa typu int. Sprobowac przypisac elementowi o indeksie wie kszym niz(n-1) dowolna liczbe caśkowita. 2. Zmodyfikowac program z p.1 tak aby po przekroczeniu dopuszczalnego indeksu tablicy nie wyst e powaś bśa d w programie, tzn. przechwycic generowany wyja tek. (Wskazowka: obsśuzyc wyja tek: ArrayIndexOutOfBoundsException) 3. Napisac program wykonuja cy elementarne dziaśanie na tablicach dwuwymiarowych taba i tabb (dodawanie, odejmowanie, mnozenie). Dane tablic powinny byc zadawane w programie. Po wczytaniu danych nalezy wyswietlic tablice, oraz wynik dziaśania.