Modu 2 Typy danych, zmienne i operatory



Podobne dokumenty
Praktyka programowania imperatywno obiektowego

Programowanie C# mgr in. Dariusz Ku. p. 119A

Proces tworzenia programu:

Podstawy i języki programowania

MATERIAŁY DO ZAJĘĆ II

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

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

C++ wprowadzanie zmiennych

Modu 1 rodowisko programistyczne

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

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

Programowanie obiektowe

Java Podstawy. Michał Bereta

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

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

Sposoby przekazywania parametrów w metodach.

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

Aplikacje w środowisku Java

Programowanie, algorytmy i struktury danych

Odczyt danych z klawiatury Operatory w Javie

Platformy Programistyczne Podstawy języka Java

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

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

Zadania do wykonaj przed przyst!pieniem do pracy:

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

Podstawy i języki programowania

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

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

Wprowadzenie do języka Java

Podstawy programowania w języku C i C++

Języki i techniki programowania Ćwiczenia 2

Metody Metody, parametry, zwracanie wartości

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Podstawy Programowania C++

Wykład 2: Podstawy Języka

Modu 5 - Klasy i obiekty

Programowanie obiektowe

Podstawy i języki programowania

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

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

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

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

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

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

Lab 9 Podstawy Programowania

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

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

Bazy danych Podstawy teoretyczne

Program Sprzeda wersja 2011 Korekty rabatowe

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Klonowanie MAC adresu oraz TTL

Języki i metodyka programowania. Wprowadzenie do języka C

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

Podstawowe części projektu w Javie

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

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

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

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

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

Stałe oznaczane są słowem kluczowym final. Do stałej wartość można przypisać tylko raz. Dobrą konwencją jest nazywanie stałych wielkimi literami

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

2 Przygotował: mgr inż. Maciej Lasota

Algorytmy i struktury danych. wykład 1

Podstawy programowania obiektowego

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

Język C zajęcia nr 11. Funkcje

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

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

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

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

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

Modu 3 Sterowanie przebiegiem wykonania programu

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

Programowanie Komputerów

Rozdzia l 3. Laboratorium 3. danych zawierajac

Podstawy Języka Java

Podstawy programowania. Podstawy C# Tablice

Java Język programowania

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

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

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min)

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski

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

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

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

W powyższym kodzie utworzono wyliczenie dni tygodnia.

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

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

Transkrypt:

MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 8 Modu 2 Typy danych, zmienne i operatory Zawarto tematyczna Po zrealizowaniu jednostki bdziesz w stanie: efektywnie wykorzystywa dostpne typy prymitywne deklarowa zmienne i nadawa im wartoci pocztkowe wykonywa proste operacje arytmetyczne i logiczne odczytywa oraz wyprowadza dane na konsol operowa zoonymi strukturami danych (tablice) Wprowadzenie do zagadnie Program komputerowy skada si z sekwencji instrukcji, które wykonywane s przez komputer dla realizacji zadania. W skad instrukcji wchodz wyraenia operujce na danych, reprezentowanych przez zmienne oraz literay. Rodzaj realizowanej operacji okrelony jest poprzez uycie operatorów. TYPY DANYCH Typ danych okrela rodzaj informacji oraz zakres dopuszczalnych wartoci, jakie moe przyjmowa staa, zmienna, argument wyraenia, parametr, czy rezultat metody. Jzyk Java definiuje typy proste (prymitywne) oraz typy zoone (obiektowe). W przypadku tych pierwszych wyróni mona 24 : cakowite (int,short,long,byte), zmiennoprzecinkowe (float,double), znakowy (char), logiczny (boolean). Rodzaj informacji oraz zakresy dopuszczalnych wartoci okrela specyfikacja jzyka. Warto nadmieni, i sposób reprezentacji danych jest niezaleny od platformy systemowej, a co za tym idzie, zakres dopuszczalnych wartoci pozostaje niezmienny niezalenie od platformy, na której uruchamiany jest program. LITERAY Litera jest to cig znaków reprezentujcy warto zapisan bezporednio w kodzie programu. Poniej wymienione zostay przykadowe wartoci: "bordowy" // acuch znaków 'K' // warto typu "char" '\u0041' // warto typu "char" w standardzie "unicode" (przedrostek \u) 293 // warto dziesi*tna typu "integer" 49.6 // warto rzeczywista typu "double" 0251 // warto ósemkowa (przedrostek 0) typu "integer" 0x25 // warto szestnastkowa (przedrostek 0x) typu "integer" 400L // warto typu "long" (przyrostek L) 2.45F // warto typu "float" (przyrostek F lub f) 3.06D // warto typu "double" (przyrostek D lub d domylny) 9.72E4 // zapis wykadniczy (symbol E lub e) true // warto logiczna Naley zwróci uwag na stosowanie dodatkowej symboliki w celu precyzyjnego okrelenia typu literau (293L, 293F). Jzyk Java zawiera równie zbiór znaków specjalnych (ang. escape characters): \b, \t, \f, \r, \n, \", \', \\, moliwych do zastosowania bezporednio w kodzie programu: 24 zobacz: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html

MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 9 System.out.println("Uniwersytet Ekonomiczny\nw Krakowie"); ZMIENNE Zmienna 25 okrela obszar pamici, przeznaczony do przechowywania danych 26. Kada zmienna posiada nazw oraz typ, który okrela zakres dopuszczalnych wartoci oraz rodzaj moliwych do przeprowadzenia operacji. Jzyk Java wymaga deklaracji (okrelenia nazwy oraz typu) kadej zmiennej przed jej uyciem. Pierwszy odczyt wartoci zmiennej powinien by poprzedzony jej inicjalizacj, czyli przypisaniem wartoci pocztkowej. Przykady uycia zmiennych: int liczbapojazdow; double ratakredytu; liczbapojazdow = 4; ratakredytu = 330.58; double stopaprocentowa = 0.04; // deklaracja (okrelenie nazwy i typu zmiennej) // deklaracja // inicjalizacja (nadanie wartoci zmiennej) // inicjalizacja // jednoczesna deklaracja i inicjalizacja STAE Podobnie jak zmienna, staa okrela obszar pamici operacyjnej, sucy do przechowywania danych. Posiada nazw oraz typ dopuszczalnych wartoci, jakie moe przyjmowa. W przypadku staej nie jest moliwa zmiana ju raz nadanej wartoci w trakcie dziaania programu. Deklaracja staej poprzedzona jest sowem kluczowym final: final double KURS_EURO = 2.48; final String NAZWA_UCZELNI = "Uniwersytet Ekonomiczny"; final String MIEJSCOWOSC = "Kraków"; System.out.println(NAZWA_UCZELNI + " " + MIEJSCOWOSC); OPERATORY Operatory 27 to zestaw symboli w jzyku programowania okrelajcych rodzaj wykonywanej operacji na argumencie lub argumentach wyraenia. Dokonujc klasyfikacji ich podziau, wyróni mona operatory: przypisania: = += -= *= /= %= &= ^= = <<= >>= >>>= arytmetyczne 28 : + - * / % jednoargumentowe: + - ++ --! relacji: ==!= > >= < <= instanceof warunkowe: &&?: bitowe: ~ << >> >>> & ^ Naley zwróci uwag, i sposób uycia operatorów zaleny jest od typu argumentu (argumentów) natomiast kolejno wykonywania operacji wynika z priorytetu, jak posiadaj operatory. Zmiana kolejnoci wykonywania operacji realizowana jest przez zastosowanie nawiasów. Ponisze wyraenia przedstawiaj przykadowe wykorzystanie operatorów: komputerprzenosny = true; komputerstacjonarny =!komputerprzenosny; dystans -= 24; i++ iloczynsumy = (1+2)*(3+4); delta = b*b 4*a*c; polekola = 3.14 * r * r; sredniaocen = (ocenabiologia + ocenafizyka + ocenahistoria) / 3; KONWERSJA I RZUTOWANIE TYPÓW Jeli argumenty wyraenia nie s zgodnych typów, zachodzi konieczno dokonania konwersji. Gdy przebiega ona bez utraty informacji, wykonywana jest niejawnie. Jeli moe prowadzi do utraty informacji konieczne jest wykonanie rzutowania jawnego: 25 Java wyrónia 4 kategorie zmiennych: obiektowe (ang. instance variables) unikalne dla kadej instancji klasy, klasowe (ang. class variables) jednakowe dla wszystkich instancji klasy, lokalne (ang. local variables) suce do tymczasowego przechowywania wartoci oraz parametry, zadaniem których jest przekazywanie wartoci do metody. 26 Zmienne prymitywne okrelaj obszar pamici przechowujcy dane typu podstawowego. Natomiast zmienne obiektowe, o których bdzie mowa w kolejnych rozdziaach, zawieraj referencje (wskazania) do utworzonych wczeniej obiektów. 27 zobacz: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html 28 Operator dzielenia daje w wyniku warto cakowit (bez reszty), jeli obydwa argumenty s liczbami cakowitymi. W pozostaych przypadkach wartoci jest liczba rzeczywista.

MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 10 byte x = 17; int y = x; //niezgodno typów (konwersja niejawna) double a = 15.4; int b = (int)a; //niezgodno typów (mowliwa utrata informacji, wymagane rzutowanie) A+CUCHY ZNAKÓW =a>cuch to cig (sekwencja) znaków zawarty w zmiennej lub literale typu String. Ilekro w programie wystpi litera lub zmienna typu String, tworzony jest obiekt typu a>cuchowego 29 : String osoba = "Jan Kowalski"; // deklaracja oraz inicjalizacja zmiennej typu String Okrelenie liczby znaków zmiennej lub literau typu String moliwe jest dziki metodzie length(): String nazwaproduktu = "Telefon komórkowy Sony-Ericsson K800i"; System.out.println("Liczba znaków: " + nazwaproduktu.length()); System.out.println("Liczba znaków: "+"Programowanie rozproszone".length()); Klasa java.lang.string 30 zawiera metody umoliwiajce manipulowanie znakami w a>cuchu, porównywanie a>cuchów 31, przeszukiwanie, wyodrbnianie podcigu, tworzenie kopii znaków, zamian znaków na wielkie/mae litery w oparciu o standard unicode, czy konwersj wartoci numerycznych do postaci cigu znaków. String rezultat; String adres = "ul.szeroka"; rezultat = "ul.kwiatowa".equals("ul.kwiatowa")? "adres zgodny" : "adres inny"; System.out.println(rezultat); rezultat = "ul.kwiatowa".equals(adres)? "adres zgodny" : "adres inny"; System.out.println(rezultat); TABLICE Tablice reprezentuj kontener sucy do przechowywania staej liczby wartoci pojedynczego typu. Liczba elementów tablicy jest okrelona w momencie jej tworzenia i nie moe zosta zmieniona w trakcie dalszego dziaania programu. Kady element posiada kolejny numer (indeks 32 ) umoliwiajcy zapis i odczyt danych: 29 Moliwe jest równie utworzenie obiektu String przy uyciu operatora new (zobacz dostpne konstruktory klasy String). 30 zobacz java.lang.string w http://java.sun.com/javase/6/docs/api/ 31 Ze wzgldu na sposób reprezentacji danych zaleca si uycie metody equals() do porównywania a>cuchów znaków w miejsce operatora porównania ==. 32 Numeracja elementów tablicy rozpoczyna si od indeksu 0.

MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 11 /* tablice jednowymiarowe */ // deklaracja zmiennej tablicowej double[] cenaartykulu; // deklaracja zmiennej tablicowej (nazwa i typ elementów) String[] cechacharakteru; // deklaracja zmiennej tablicowej int[] rzutkostka; // utworzenie tablicy (okrelenie liczby jej elementów) cenaartykulu = new double[50]; cechacharakteru = new String[3]; rzutkostka = new int[8]; // jednoczesna deklaracja zmiennej tablicowej oraz utworzenie tablicy String[] srodektransportu = new String[2]; // jednoczesna deklaracja zmiennej, utworzenie tablicy 3-elem. oraz nadanie wartoci String[] sygnalizator = {"czerwony","wóty","zielony"; // dost*p do elementów tablicy (przypisanie i odczyt wartoci) cenaartykulu[17] = 328.50; cenaartykulu[25] = 29.0; double Razem = cenaartykulu[17] + cenaartykulu[25]; rzutkostka[7] = 3; cechacharakteru[0] = "komunikatywno "; cechacharakteru[2] = "asertywno "; srodektransportu[1] = "rower"; System.out.println(sygnalizator[2]); /* tablice wielowymiarowe */ // deklaracja oraz inicjalizacja tablicy dwuwymiarowej int[][] tabliczkamnozenia = {{1,2,3,{2,4,6,{3,6,9; System.out.println(tabliczkaMnozenia[2][0]); W celu okrelenia liczby elementów tablicy naley odczyta warto pola length: String[] koloryteczy = {"czerwony","pomaraczowy","wóty","zielony","niebieski","fioletowy"; int liczbakolorowteczy = koloryteczy.length; Kopiowanie danych pomidzy tablicami moliwe jest dziki metodzie java.lang.system.arraycopy(). Istnieje pokafna liczba metod umoliwiajcych manipulowanie na tablicach, realizujcych operacje sortowania, czy przeszukiwania elementów. Metody te zostay zgrupowane w klasie java.util.arrays. TYP WYLICZENIOWY Typ, skadajcy si z ustalonego, sko>czonego zbioru staych wartoci (egzemplarzy typu). Kady z egzemplarzy pozostaje niezmienny w trakcie dziaania programu. Std, zgodnie z konwencj, identyfikatory egzemplarzy powinno tworzy si przy pomocy wielkich liter i znaku podkrelenia. enum Dzien {PN,WT,_R,CZ,PT,SB,ND; Dzien dzienpracy = Dzien.WT; Dzien dzienwolny = Dzien.SB; System.out.println(dzienPracy!=dzienWolny); Pytania sprawdzajce 1. Wska rónice, jakie wystpuj pomidzy zmiennymi, staymi i literaami. 2. Jakie funkcje w programie peni deklaracja zmiennej. 3. Na którym z dostpnych typów prymitywnych nie jest moliwe przeprowadzenie operacji rzutowania. 4. Uszereguj operatory wedug ich priorytetu: + % -- < 5. Jak funkcjonalno realizuj operatory: ++?: /= %. Podaj przykady wyrae> z ich uyciem. 6. Okrel warto wyraenia: 2 > 3 4 < 5? 6 << 7 : 8 / 9 7. Wymie> dopuszczalne wartoci (minimalne i maksymalne) dla kadego z typów prymitywnych.

MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 12 8. Podaj typ wartoci wyraenia: 12 / 7 9. Które z wymienionych instrukcji nie spowoduj powstania bdu kompilacji: float f=1.01; int i=1/3; double d=777d; 10. Czy podana nierówno jest prawdziwa: 0xF3 > 0574? Uzasadnij odpowiedf. 11. Okrel kody w standardzie unicode dla wymienionych znaków: B 9 ` # 12. Jakie oznaczenie (indeks) posiada pierwszy element tablicy. 13. Zapoznaj si z dokumentacj klasy java.lang.string. Odszukaj metod umoliwiajc czenie cigu znaków. Podaj przykad instrukcji czcej 2 literay zawierajce Twoje imi i nazwisko. 14. Jak informacj zwróci wyraenie tablica.length w przypadku tablicy wielowymiarowej. 15. Podaj przykad uycia metody porzdkujcej elementy tablicy typu int. Zadania do wykonania PODSTAWOWE OPERACJE NA ZMIENNYCH Zadanie 13 OperacjePodstawowe.java Skompiluj i uruchom poniszy program. Zaobserwuj, jakie informacje wywietlane s na konsoli. Porównaj wyniki z kodem programu. Czy kada linia kodu jest dla Ciebie zrozumiaa? public class OperacjePodstawowe { int i = 7; System.out.println("Powie \"Wojna i pokój\" Lwa Tostoja"); System.out.println("64kB to " + 0xFFFF + " bitów"); System.out.println("Czy 32 > 15? " + (32>15?"tak":"nie") ); System.out.println("\\u0042 (unicode) reprezentuje znak \u0042"); System.out.println("7 * (2 do pot*gi 3) = " + (7 << 3) ); System.out.println("Cz* cakowita 2.56 wynosi " + (int)2.56); System.out.println("7/2 = " + 7/2 + ", ale dlaczego?"); System.out.println("A dlaczego 7/2d = " + 7/2d + "?"); System.out.println("Reszta z dzielenia 10/6 = " + 10%6); System.out.println("Warto i=" + i + ", a ++i=" + (++i)); System.out.println("Gdy teraz wykonamy operacj* i*=9 to i=" +(i*=9)); Zadanie 14 InstrukcjaPrzypisania.java Poniszy kod programu zawiera instrukcje przypisania nadajce wartoci zmiennym, które nie zostay uprzednio zadeklarowane. Zaobserwuj, jakie komunikaty o bdach pojawi si w momencie kompilacji. public class InstrukcjaPrzypisania { nazwaplanety = "Ziemia"; powierzchniaplanety = 510065284; // km2 obwodplanety = 40041; // km Zadanie 15 Operatory.java Dokonaj analizy poniszego kodu programu i odpowiedz na pytanie: jakie rezultaty zostan wywietlone na konsoli? Nastpnie uruchom program i porównaj wyniki.

MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 13 public class Operatory { int a = 5; int b = 2; System.out.println("a = " + a + ", b = " + b); System.out.println("a/b = " + (a/b) ); System.out.println("a!=b = " + (a!=b) ); System.out.println("a%b > --b? -3 : 17 = " + (a%b > --b? -3 : 17) ); System.out.println("++b-a = " + (++b-a) ); System.out.println("a/(float)b == a/b = " + (a/(float)b == a/b) ); Zadanie 16 TypyZmiennych.java Dla kadego wymienionego literau zadeklaruj zmienn w programie, której typ bdzie zgodny z typem literau. Przypisz zmiennej warto literau. Wywietl wartoci zmiennych na konsoli. 493L, false, 3.7, 0x3F, 'B', 0xF7FF, 07246, 1.2e5f, '\u0042', -178609 Zadanie 17 NiepoprawnyKodProgramu.java Popraw poniszy kod programu, aby zarówno proces kompilacji, jak i jego wykonania przebiega bezbdnie. public class NiepoprawnyKodProgramu { String nazwaoperacji = 'Obliczanie podatku VAT'; int stawkavat; int podatekvat; int kwotabrutto; kwotanetto = 231,74; stawkavat = 22%; podatekvat = kwotanetto * stawkavat; KwotaBrutto = KwotaNetto + PodatekVAT; System.out.println(nazwaOperacji); System.out.println("-------------------------------"); System.out.println("Kwota netto = " + kwotanetto); System.out.println("Stawka VAT = " + stawkavat); System.out.println("Podatek VAT = " + podatek); System.out.println("Kwota brutto = " + kwotabrutto); Zadanie 18 JednostkiSI.java Elementy tablicy zawieraj wykaz jednostek podstawowych ukadu SI. Wywietl na konsoli jednostki temperatury, masy i dugoci. public class JednostkiSI { String[] jednostki = {"kg","cd","s","a","k","mol","m"; System.out.println("Jednostki podstawowe ukadu SI"); System.out.println("================================="); System.out.println("Jednostka temperatury (kelvin): " + jednostki[4]); System.out.println("Jednostka masy (kilogram): " + jednostki[0]); System.out.println("Jednostka dugoci (metr): " + jednostki[jednostki.length-1]); System.out.println("---------------------------------"); System.out.println("Liczba jednostek: " + jednostki.length); Zadanie 19 PrzekroczenieZakresuTablicy.java Dokonaj modyfikacji kodu programu DniTygodnia.java, aby odwoywa si do nieistniejcego elementu tablicy. Zaobserwuj pojawiajce si komunikaty o bdach.

MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 14 Zadanie 20 StandardUnicode.java Wykorzystujc wycznie notacj \u (standard unicode 33 ) wywietl na konsoli swoje imi i nazwisko. Zadanie 21 FormatowanieRezultatow.java Dokonaj formatowania rezultatów wywietlanych na konsoli. Poniszy kod programu prezentuje przykadowe sposoby formatowania 34, zarówno cigu znaków, jak i wartoci numerycznych w oparciu o klas java.text.messageformat. Zapoznaj si z opisem klasy, a nastpnie dostosuj sposób wywietlania daty do formatu rrrr-mm-dd. import java.text.messageformat; import java.util.date; public class FormatowanieRezultatow { String s; Date teraz = new Date(); String miejsce = "Kraków"; int mila = 1852; double vat=0.22; double cena = 31560.76; s = MessageFormat.format("{0, {1,date,full, godz.{1,time,short", miejsce,teraz); System.out.println(s); s = MessageFormat.format("{0kB to {1B", 256,256*1024); System.out.println(s); s = MessageFormat.format("{0 x {0 x {0 = {1", 7,7*7*7); System.out.println(s); s = MessageFormat.format("{0,number,currency + VAT({1,number,percent)", cena,vat); System.out.println(s); s = MessageFormat.format("{0 {1 to w przybliweniu {2m", 1,"mila morska",mila); System.out.println(s); Zadanie 22 FormatowanieAlternatywne.java Wykonaj ponownie poprzednie zadanie, wykorzystujc jednake alternatywny sposób formatowania danych, zgodny z funkcj printf jzyka C/C++. Szczegóowy opis znajdziesz w dokumentacji Java API klasy java.util.formatter. Poniej zostay przedstawione przykady uycia dostpnych metod: Date teraz = new Date(); System.out.printf("Tu %s - jest godzina %tr\n", "Radio Kraków", teraz); String tekst = String.format("%s %s", "Java","Virtual Machine"); System.out.println(tekst); PARAMETRY WIERSZA POLECE+ Zadanie 23 ParametryWierszaPolecen.java Kolejne parametry wiersza polece> zawieraj nazwisko, imi oraz adres zamieszkania. Wywietl dane na konsoli. Wartoci parametrów wiersza polece> podane w momencie wywoania programu dostpne s w tablicy args, przekazanej jako parametr w metodzie main(). 33 zobacz: http://www.unicode.org oraz http://pl.wikipedia.org/wiki/unicode 34 Osoby preferujce styl formatowania dostpny w jzykach C oraz C++ (funkcja printf), mog skorzysta z narzdzi zawartych w klasie java.util.formatter.

MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 15 /* * Przykadowe wywoanie programu: * java ParametryWierszaPolecen Kowalewski Eugeniusz "ul. Szeroka 15 m.3" */ public class ParametryWierszaPolecen { System.out.println("nazwisko: "+args[0]); System.out.println("imie: "+args[1]); System.out.println("adres: "+args[2]); Zadanie 24 OperacjeArytmetyczne.java Parametry wiersza polece> zawieraj 2 dowolne liczby cakowite, róne od 0. Wyznacz ich sum. Poniszy kod programu stanowi rozwizanie zadania. Dokonaj jego modyfikacji, aby program wyznacza take rónic, iloczyn, iloraz oraz reszt z dzielenia dla przekazanych w wierszu polece> argumentów liczbowych. /* * Przykadowe wywoanie programu: * java OperacjeArytmetyczne 523-68 */ public class OperacjeArytmetyczne { // odczyt oraz konwersja liczb do postaci numerycznej int liczbaa = Integer.parseInt(args[0]); int liczbab = Integer.parseInt(args[1]); // wywietlenie rezultatów na konsoli System.out.print("A = " + liczbaa); System.out.println(", B = " + liczbab); System.out.println("A + B = " + (liczbaa+liczbab)); Zadanie 25 KonwerterWalut.java Napisz program dokonujcy zamiany kwoty wyraonej w dolarach (USD) na euro (EUR). Aktualny kurs wymiany odnajdziesz w sieci Internet. Zadanie 26 PodatekVAT.java W wierszu polece> umieszczono nazw towaru oraz jego cen netto. Wywietl przekazane informacje na konsoli, a take warto podatku VAT oraz cen brutto towaru. Stawk VAT (jako sta w programie) przyjmij w wysokoci 22%. ODCZYT DANYCH Z KONSOLI Zadanie 27 WielkieLitery.java Odczytaj z konsoli 35 dowolny cig znaków oraz wywietl go, dokonujc zamiany znaków na due litery. Wykorzystaj metody klasy String. 35 Odczyt danych z konsoli moe by zrealizowany równie innymi metodami, przykadowo przy wykorzystaniu klasy java.io.console (zobacz: http://java.sun.com/docs/books/tutorial/essential/io/cl.html).

MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 16 import java.util.scanner; public class WielkieLitery { // pobierz tekst z konsoli Scanner sc = new Scanner(System.in); System.out.print("Wprowadz dowolny tekst: "); String tekst = sc.nextline(); // wywietl tekst, dokonujec konwersji na wielkie litery System.out.println(tekst.toUpperCase()); Zadanie 28 DlugoscNapisow.java Odczytaj z konsoli 2 dowolne cigi znaków. Wywietl duszy z nich. Zadanie 29 FormatRachunku.java Numer rachunku bankowego skada si z 26 cyfr. Napisz program, który odczyta numer rachunku z konsoli, a nastpnie wywietli go w formacie: XX XXXX XXXX XXXX XXXX XXXX XXXX Wykorzystaj metody klasy String. Zadanie 30 PeselPlec.java Numer identyfikacyjny Pesel skada si z 11 cyfr. Dziesita z nich okrela pe osoby (cyfra parzysta oznacza kobiet, nieparzysta mczyzn). Napisz program, który dla dowolnego numeru Pesel wyznaczy pe osoby. Wywietl rezultat na konsoli. Zadanie 31 ZDuzejLitery.java Program umoliwia wprowadzanie danych personalnych (imi, nazwisko) pracowników. Wywietl wprowadzone dane na konsoli w taki sposób, aby nazwy rozpoczynay si zawsze od wielkiej litery, przy pozostaych maych, niezalenie od sposobu ich wprowadzenia. Wykorzystaj metody klasy String. Zadanie 32 KonwerterTemperatur.java Napisz program, który dla podanej wartoci temperatury wyraonej w stopniach Celsjusza wyznaczy temperatur w stopniach Fahrenheita oraz Kelvina. Jak warto bdzie mie temperatura 30 o C wyraona na tych skalach? import java.util.scanner; public class KonwerterTemperatur { Scanner sc = new Scanner(System.in); // odczytaj warto temperatury w stopniach Celsjusza System.out.print("Podaj warto temperatury w stopniach Celsjusza: "); double tempc = sc.nextint(); // Celsjusz // oblicz warto temperatury na pozostaych skalach double tempf = 32 + (9/5d)*tempC; // Fahrenheit double tempk = tempc + 273.15; // Kelvin // wywietl rezultaty oblicze, z dokadnocie do penych stopni System.out.println("* temperatura w stopniach C: " + (int)tempc); System.out.println("* temperatura w stopniach F: " + (int)tempf); System.out.println("* temperatura w stopniach K: " + (int)tempk); Zadanie 33 Wzrost.java Napisz program, który dla podanej wartoci wzrostu wyraonej w cm, wywietli na konsoli wzrost wyraony w stopach i calach. Zadanie 34 BMI.java Napisz program obliczajcy wskafnik masy ciaa BMI (ang. Body Mass Index) na podstawie podanego wzrostu w metrach oraz masy ciaa w kg. Formu wyznaczajc wskafnik odszukaj w sieci

MODU 2 TYPY DANYCH, ZMIENNE I OPERATORY 17 Internet. WprowadF do programu swój wzrost oraz mas ciaa i przekonaj si, czy posiadasz prawidow warto wskafnika BMI.