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

Podobne dokumenty
Podstawy i języki programowania

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

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

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

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

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

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

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

Obsługa błędów za pomocą wyjątków. Paweł Motofa (140746)

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

Programowanie w Javie 1 Wykład i Ćwiczenia 2 Przegląd podstawowych klas w Javie (elementy programowania obiektowego) Płock, 16 października 2013 r.

Dokumentacja do API Javy.

Wyjątki (exceptions)

Metody Metody, parametry, zwracanie wartości

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

Podstawy obiektowości

Programowanie Obiektowe Ćwiczenie 4

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Programowanie 3 - Funkcje, pliki i klasy

Wykład 2: Podstawy Języka

Programowanie - instrukcje sterujące

Aplikacje w środowisku Java

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

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Klasy cd. Struktury Interfejsy Wyjątki

Programowanie obiektowe

TEMAT : KLASY DZIEDZICZENIE

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

Programowanie obiektowe

Deklaracja i definicja metod, zwracanie wartości z metod, przekazywania parametrów do metod

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

*W uproszczeniu: jest dziewięciu sędziów przyznających po dwie noty: za wartość techniczną i artystyczną (skala od 0.0 do 6.0)

Programowanie w języku Java

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

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

1. Język JAVA. 1. Pierwszy program. 2. Kalkulator. 3. Klasy. 4. Dziedziczenie

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

4. Funkcje. Przykłady

Java SE Laboratorium nr 4. Temat: Obsługa wyjątków i zdarzeń

Dawid Gierszewski Adam Hanasko

Programowanie obiektowe - zadania

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

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

Materiały do zajęć III

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Podstawy i języki programowania

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

STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE

Podstawy i języki programowania

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Ćwiczenie 1. Przygotowanie środowiska JAVA

1. Napisz program wypisujący w kolejnych wierszach standardowego wyjścia pojedyncze słowa następującego napisu Bardzo dlugi napis. 2.

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

Podstawy i języki programowania

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

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Dziedziczenie. Zadanie 1

Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik

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

Strumienie, pliki. Sortowanie. Wyjątki.

Aplikacje w środowisku Java

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

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

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

Strumienie, pliki. Sortowanie. Wyjątki.

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

1 Powtórzenie wiadomości

Programowanie obiektowe

Programowanie obiektowe

Język C++ wykład VIII

Język ludzki kod maszynowy

Programowanie, algorytmy i struktury danych

Wykład 4: Klasy i Metody

Funkcje. Wprowadzenie. Mirosław Ochodek

Klasy i obiekty cz II

Języki i techniki programowania Ćwiczenia 2

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Podstawy Java. Część II. mgr inż.marcin Borkowski

Wykład 4. Tablice. Pliki

Podstawy programowania obiektowego

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Programowanie obiektowe

Mechanizm dziedziczenia

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Projektowanie aplikacji internetowych laboratorium

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Język C, tablice i funkcje (laboratorium, EE1-DI)

Transkrypt:

-1-1. Wyjątki 2. Przykładowe zadania Wyjątki Wyjątek w Java jest obiektem, który opisuje sytuację błędną powstałą w kodzie. Zaistnienie sytuacji błędnej w metodzie powoduje utworzenie obiektu reprezentującego wyjątek i zgło-szenie go przez metodę, w której błąd wystąpił. Następnie metoda może sama obsłużyć wyją-tek lub przesłać go do obsługi przez inne metody/obiekty. Wyjątki mogą być zgłaszane przez maszynę wirtualną Javy lub przez kod użytkownika. Wyjąt-ki zgłaszane przez maszynę wirtualną są związane z tzw. błędami fatalnymi, natomiast zgła-szane przez użytkownika z błędami związanymi z logiką programu. Składnia programu obsługującego wyjątki bazuje na pięciu słowach kluczowych: try, catch, throw, throws i finally. Monitorowany kod znajduje się w bloku try. Zgłoszenie wyjątku wewnątrz bloku try powoduje powstanie obiektu-wyjątku i jego ewentualne przejęcie przez odpowiedni blok catch. try //monitorowany blok kodu catch (ExceptionType1 exob) // to się wykona, jeżeli zostanie zgłoszony wyjątek typu ExceptionType1 catch (ExceptionType2 exob) // to się wykona, jeżeli zostanie zgłoszony wyjątek typu ExceptionType2 finally //kod wykonywany po zakończeniu blokówtry i catch; służy do zwalniania zasobów Wprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd. Przykład użycia - : int a,b,c; String s; try //w bloku try umieszcza się instrukcje, //które mogą spowodować wyjątek a=b/c; //jeśeli c=0 zostanie zgłoszony wyjątek AritmeticException s=integer.tostring(a); catch (AritmeticException e) //wyjatek jest obsługiwany w bloku catch s="*";

-2- Java posiada wbudowane wyjątki obsługujące najczęściej spotykane błędy. Jednak często zacho-dzi potrzeba zdefiniowania nowych wyjątków specyficznych dla naszego programu. Utworzenie nowej klasy wyjątku jest proste. Wystarczy zdefiniować klasę dziedziczącą po klasie Exception. Nowo zdefiniowana klasa nie musi nawet niczego implementować, ale może. Przykłady: 1. Program, umożliwiający wypisanie podanego przez użytkownika elementu tablicy, w którym może zaistnieć odwołanie się do nieistniejącego elementu tablicy import java.util.*; public class Odczyt public static void main(string[] args) int tab[] = 1,2,3,4,5; Scanner odczyt = new Scanner(System.in); int index = -1; System.out.println("Podaj indeks tablicy, który chcesz zobaczyć: "); index = odczyt.nextint(); try System.out.println(tab[index]); catch (ArrayIndexOutOfBoundsException e) System.out.println("Zły parametr, rozmiar tablicy to:"+tab.length()); 2. Wprowadzanie danych z klawiatury z wykorzystaniem obiektu klasy Buffered Re-ader. /* Program czytający pojedynczą linię ze standardowego wejścia i wypisujący ją na ekran */ import java.io.*; public class IOExample1 public static void main(string args[]) throws IOException /* poniżej newralgiczna część programu. Klasa InputStreamReader reprezentuje "uchwyt" do strumienia wejściowego, zaś klasa BufferedReader pozwala na czytanie buforowane. * */

-3- BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Podaj tekst: "); System.out.flush(); //przed wczytaniem opróżniamy buforwyjściowy System.out.println(stdin.readLine()); 3. Wprowadzanie danych z klawiatury, zastosowanie obiektu klasy Scanner. Dzielenie przez liczbę wprowadzoną przez użytkownika import java.util.scanner; public class Main public static void main(string[] agrs) throws ArithmeticException int x=10; int y=1; Scanner sc = new Scanner(System.in); System.out.print("Podaj dzielnik: "); try y = sc.nextint(); catch (InputMismatchException e) System.out.println("Niewłaściwy typ danych"); if(y==0) throw new ArithmeticException("Nie mozna dzielić przez 0"); else System.out.println(x/(double)y); 4. Program z obsługą wyjątków wejścia/wyjścia, niewłaściwego formatu danych i przekroczeniem zakresu tablicy import java.io.*; public class Odczyt public static void main(string[] args) int tab[] = 1,2,3,4,5; BufferedReader odczyt = new BufferedReader(new InputStreamReader(System.in)); int index = -1; System.out.println("Który element tablicy chcesz zobaczyć: "); boolean czypoprawne = false; while(!czypoprawne) try index = Integer.parseInt(odczyt.readLine());

-4- catch (NumberFormatException n) System.out.println("Niepoprawne dane! " +"\n Który element tablicy chcesz zobaczyć: "); catch (IOException e) System.out.println("Błąd odczytu danych"); czypoprawne = index == -1? false : true; Zadanie 1. try System.out.println(tab[index-1]); catch (ArrayIndexOutOfBoundsException e) System.out.println("Niepoprawny parametr, rozmiar tablicy to:"+tab.length); Utwórz klasę Punkt. Klasa powinna zawierać: składowe prywatne typu całkowitego - współrzędne punktu na płaszczyźnie konstruktor bezargumentowy inicjujący dowolne wartości początkowe punktu konstruktor z argumentami- współrzędne punktu mmetodę publiczną - zwracającą współrzędną x metodę publiczną - zwracającą współrzędną y metodę publiczną wyzeruj(), metodę publiczną przesun(int,int), a) Napisz program (czyli klasę publiczną np. Geometria) i stwórz w nim obiekt klasy Punkt, wypisz jego współrzędne, przesuń go i sprawdź, czy zmieniły się jego współrzędne wypisz współrzedne. b) Utwórz n-elementową tablicę punktów, których współrzędne będą generowane losowo i wypisz ich współrzędne. c) Utwórz n-elementową tablicę punktów, których współrzędne będą podane przez użytkownika, wczytaj parametry wektora o jaki przesuniesz punkty, wypisz współrzędne punktów po przesunięciu. W przypadku wpisania z klawiatury niepoprawnych wartości program rzuca wyjątek, który należy obsłużyć w programie poprzez wypisanie komunikatu o niepoprawnie podanych danych. Współrzędne punktów i wektora przesunięcia muszą być liczbami, przy czytaniu danych przy pomocy obiektu klasy Scanner - wyjątek InputMismatchException. Zadanie 2. Zaimplementuj stos z wykorzystaniem tablicy. Zdefiniuj klasę stos o prywatnych składowych klasy: Rozmiar tablicy Tablica elementów Indekswierzchołka stosu Zdefiniuj metody: Konstruktor bez argumentów, przypisuje wartości składowym klasy, generuje losowo ilość elementów tablicy Konstruktor z argumentem, przypisuje wartości składowym klasy maxrozmiarstosu() zwraca rozmiar tablicy rozmiarstosu() zwraca aktualną liczbę elementów na stosie nastos() dodaje element na stos losowo generowana liczba i wypisuje dodawany na stos element zestosu() zdejmuje element ze stosu i wypisuje zdejmowany element wypiszstos() wypisuje stos

-5- W przypadku usunięcia elementu z pustego stosu lub przy dodaniu do pełnego stosu kolejnego elementu program wyrzuca wyjątek, który należy obsłużyć w programie poprzez wypisanie odpowiedniego komunikatu. Odwołanie do elementu o niewłaściwym indeksie wyjątek ArrayIndexOutOfBoundsException Zadanie 3. Zdefiniuj klasę kolo, która powinna zawierać: Prywatne składowe klasy: promień koła - typ float kolor wypełnienia -typ int Konstruktor bezargumentowy inicjujący wartości początkowe własciwości koła (dowolnie ustaloną) konstruktor kopiujący z argumentem typu Kolo konstruktor z argumentami: promień, kolor wypełnienia Metody publiczne: obliczpole(), obliczająca pole powierzchni koła ustawpromien(float), zmieniająca promień koła ustawkolor(int), zmieniającą kolor koła funkcję porownajkola(kolo B), porównującą, czy dwa koła mają taką samą powierzchnię i kolor. Uruchom w programie głównym sekwencję instrukcji dla dwóch obiektów K1, K2: konstruktor bezparametrowy, konstruktor z parametrami; porównanie kół, ustawienie koloru ustawienie promienia porównanie kół. d) Wczytaj z klawiatury dane potrzebne do utworzenia nowych obiektów. e) Użyj konstruktora z argumentami dla obiektów K3, K4 i konstruktora kopiującego obiekt K3 przy tworzeniu obiektu K5. f) Porównaj utworzone obiekty W przypadku wpisania z klawiatury niepoprawnych wartości program wyrzuca wyjątek, który należy obsłużyć w programie poprzez wypisanie komunikatu o niepoprawnie podanych danych. Promień koła musi być liczbą dodatnią. Zadanie 4 Napisz klasę Student o prywatnych składowych: nazwisko, wiek ocena1, ocena2 Metodach konstruktorze bez argumentów konstruktor z argumentami konstruktor kopiujący srednia(), wypisz() - wypisująca nazwisko, wiek, obie oceny i średnią z tych ocen. a) W klasie publicznej Uczelnia utwórz studenta, przypisz mu nazwisko, wiek, jakieś oceny i wypisz jego dane. W przypadku wpisania z klawiatury niepoprawnych wartości program wyrzuca wyjątek, który należy obsłużyćw programie poprzez wypisanie komunikatu

-6- o niepoprawnie podanych danych. Wpisywany wiek musi byd liczbą w zakresie [17, 80]. nazwisko musi posiadać minimum 3 znaki, oceny musza byc liczbami z zakresu [2,5]. b) W klasie Student zdefiniuj metodę wstawocena(float), która będzie wstawiać oceny w pole ocena1 i nie pozwoli, żeby została wpisana liczba większa od 5 lub mniejsza od 2.. c) Do klasy Student dopisz przeciążoną (dwuargumentową) metodę wstawocena, która pozwoli wstawić oceny w oba pola ocena1, ocena2 w jednym wywołaniu, z zachowaniem poprawności danych. d) Do klasy Student dopisz przeciążoną (dwuargumentową) metodę srednia, która pozwoli obliczyć średnia ważoną, wagi ocen podane jako argumenty funkcji. g) Napisz program, który wczytuje z konsoli nazwisko i dwie oceny, tworzy na podstawie tych danych obiekt klasy Student i wypisuje jego średnią (używając odpowiedniej metody obiektu). h) Zmodyfikuj poprzednie zadanie tak, aby można było wczytać dane wielu studentów. Użyj tablicy obiektów. W przypadku wpisania z klawiatury niepoprawnych wartości program wyrzuca wyjątek, który należy obsłużyć w programie poprzez wypisanie komunikatu o niepoprawnie podanych danych. Oceny muszą być liczbami z przedziału [2,5], nazwisko musi mieć minimum 3 znaki, wiek z przedziału [17,80]. Zadanie 5 Zaimplementuj klasę Wielomian, reprezentującą wielomian n- tego stopnia o współczynnikach całkowitych, z odpowiednimi konstruktorami, operacjami dodawania, odejmowania, mnożenia oraz wypisywaniem. Napisz metodę, która pobierze wartość zmiennej X z klawiatury i obliczy wartość wielomianu. Jeżeli wartość ta będzie większa od 100 to program wyrzuci zdefiniowany w programie wyjątek. Zadanie 6 Dane są dwie tablice o rozmiarach n oraz m. Napisz metody, które pozwolą wypełnić te tablice losowo wygenerowanymi danymi z zakresu [1,5]. Napisz metodę która wypisze liczność elementów zawartych w sumie w obu tablicach. Jeżeli liczność wynosi 1 lub 2 to program wyrzuci wyjątek. Zadanie 7 Napisz program, który pobiera od użytkownika pięć dat w formie DD.MM.YYYY, następnie sortuje je niemalejąco. Jeżeli wpisania przez użytkownika data dotyczy dnia po 10.03.2017 to program wyrzuca wyjątek.