• Nie Znaleziono Wyników

I Zadanie 1: utwórz program, który wczytuje z klawiatury 3 liczby całkowite i wyświetla największą z nich

N/A
N/A
Protected

Academic year: 2021

Share "I Zadanie 1: utwórz program, który wczytuje z klawiatury 3 liczby całkowite i wyświetla największą z nich "

Copied!
2
0
0

Pełen tekst

(1)

Laboratorium z informatyki sem. II/ćw. 3 Wydział Transportu PW - 2020/21

Materiały do użytku wewnętrznego strona 1

I

NSTRUKCJA DO

Ć

WICZENIA 3

Przykłady programów z instrukcją warunkową i instrukcjami pętli

I Zadanie 1: utwórz program, który wczytuje z klawiatury 3 liczby całkowite i wyświetla największą z nich

1. Utwórz nowy projekt typu Java Application, nadaj projektowi nazwę Projekt31 a klasie głównej - nazwę Zadanie1. 2. Na początku metody main(), pod nagłówkiem zadeklaruj trzy zmienne całkowite:

int a, b, c;

3. W kolejnym wierszu metody main() utwórz pole reprezentujące czytnik buforowany, który będzie wczytywać z klawiatury ,pojedyncze wiersze tekstu:

BufferedReader we = new BufferedReader(new InputStreamReader(System.in));

4. Poleceniem Fix Imports z menu podręcznego zaimportuj klasy BufferedReader oraz InputStreamReader z pakietu

java.io zasobów bibliotecznych Javy. Klauzule importu pojawią się w początkowej części programu.

5. W celu wczytania z klawiatury wartości a zastosujemy metodę readLine() obiektu we. Przed czytaniem danej wyświetlimy podpowiedź dla użytkownika, a po wczytaniu tekstu przekształcimy go na liczbę, którą przypiszemy zmiennej a:

System.out.print("Podaj całkowitą wartość a: ");

a = Integer.parseInt(we.readLine());

Metoda readLine() jako operacja wejścia/wyjścia może generować błędy wykonania (wyjątki) klasy IOException, dlatego pojawia się błąd kompilacji: “unreported exception java.io.IOException; must be caught or declared to be thrown”. Kliknij w przycisk błędu i wybierz opcję „Add throws clause for java.io.IOException” Spowoduje to dopisanie w nagłówku metody main() frazy throws IOException i przekazanie obsługi tego błędu do systemu (patrz. Ćw.2 p.I.4).

6. Analogicznie uzyskaj wartości zmiennych b i c.

7. Uruchom program

.

Kliknięciem przenieś kursor do okna Output i wypróbuj wpisywanie danych

.

Zaobserwuj efekt wpisania tekstu, który nie przedstawia liczby całkowitej.

8. Umieść instrukcje czytania danych wewnątrz części try instrukcji try-catch; w części catch oprogramuj obsługę wyjątku klasy NumberFormatException, wyświetlając komunikat "błędny format liczby". Sprawdź obsługę tego wyjątku.

9. Wykorzystując instrukcję warunkową if sprawdź czy a jest największą liczbą:

if ( a>b && a>c ) System.out.println("Największa wczytana wartość to " + a);

10. Analogicznie dopisz instrukcje sprawdzające czy największe są wartości b lub c.

11. Uruchom program.

II Zadanie 2: utwórz program, który oblicza pierwiastki równania kwadratowego o współczynnikach rzeczywistych wczytanych z klawiatury. Pierwiastki równania wyświetl z dokładnością do dwóch miejsc po przecinku.

1.

Skopiuj projekt Projekt31 tworząc projekt o nazwie Projekt32. Zmień nazwę klasy głównej na Zadanie2 (por. cw2. p.II.1)

2. Zmień deklaracje zmiennych a, b, c na typ rzeczywisty double. Odpowiednio zmień metody konwersji Integer.parseInt() na Double.parseDouble(). Dopisz deklaracje zmiennych delta, x1, x2 typu double.

3. Usuń instrukcje if wybierające największą wartość. Za pomocą instrukcji warunkowej sprawdź, czy wartość współczynnika a jest równa zeru, jeśli nie, to oblicz wartość wyróżnika delta:

if ( a == 0 ) System.out.println("To nie jest równanie kwadratowe ");

else {delta = b*b - 4 * a*c; }

4. Jeśli delta<0 wyświetl w odpowiednim miejscu komunikat " Brak pierwiastków rzeczywistych " W przeciwnym przypadku oblicz i wyświetl pierwiastki równania według wzorów:

x1 = (- b - Math.sqrt(delta))/(2*a); x2 = (- b + Math.sqrt(delta))/(2*a);

System.out.println("x1 = "+ x1 + " x2 = "+ x2);

5. Uruchom program i sprawdź jego działanie dla danych testowych..

6. Aby wyświetlać pierwiastki z dokładnością do dwóch miejsc po kropce, przed instrukcją wyświetlającą wynik zadeklaruj obiekt klasy NumberFormat następująco:

NumberFormat f= new DecimalFormat("0.##");

7. Następnie zmodyfikuj wyświetlanie średniej w następujący sposób:

System.out.println("x1 = "+ f.format(x1) + " x2 = "+ f.format(x2));

8. Uruchom program, sprawdź efekt wprowadzonych zmian.

(2)

Laboratorium z informatyki sem. II/ćw. 3 Wydział Transportu PW - 2020/21

Materiały do użytku wewnętrznego strona 2

III Zadanie 3: utwórz program, który wypisuje na konsoli liczby od 1 do 12 i wyświetla komunikat, czy kolejna liczba jest parzysta. Zrealizuj to zadanie za pomocą każdej z trzech pętli: for, while, do - while

1. Utwórz nowy projekt typu Java Application, nadaj projektowi nazwę Projekt33 a klasie głównej - nazwę Zadanie3. 2. W metodzie main() wpisz instrukcje:

for (int i = 1; i<=12; i++){

System.out.print ("i = "+ i);

if ( i%2 == 0) System.out.println(" jest liczbą parzystą");

else System.out.println(" jest liczbą nieparzystą");

}

3. Uruchom program i sprawdź jego działanie

4. W kolejnych wierszach, za pętlą for, napisz ten sam algorytm wykorzystując pętlę while .:

int k=1;

while (k<=12){

System.out.print ("k = "+ k);

if ( k%2 == 0) System.out.println(" jest liczbą parzystą");

else System.out.println(" jest liczbą nieparzystą");

k++;

}

5. Uruchom program i sprawdź jego działanie

6. W kolejnych wierszach, za pętlą while, napisz ten sam algorytm wykorzystując pętlę do-while .:

int z=1;

do {

System.out.print("z = " + z);

if (z % 2 == 0) {

System.out.println(" jest liczbą parzystą");

} else {

System.out.println(" jest liczbą nieparzystą");

} z++;

}while(z<=12);

7. Uruchom program i sprawdź jego działanie

IV Generowanie liczb całkowitych z zadanego przedziału

1. Zmodyfikuj poprzedni program tak, by była sprawdzana parzystość 12 wygenerowanych wartości losowych z przedziału <50 100>.

2. Pod nagłówkiem klasy zadeklaruj 2 nowe zmienne, przechowujące krańce przedziału generowanych wartości:

int K=50; int L=100;

3. W pętli for zamień instrukcję. System.out.print ("i = "+ i); na następujące:

int x=(int) (K +( L+1-K )* Math.random ()) // generowanie całkowitej liczby losowej z przedziału <K L>

System.out.print ("x = "+ x);

4. Zamień w instrukcji if zmienną i na zmienną x.

5. Uruchom program.

6. W pozostałych pętlach sprawdź parzystość kolejnych liczb całkowitych z przedziału <15 35> i <320 580> .

Zadania do samodzielnego wykonania

1. Napisz program, który wczyta liczbę naturalną i wyświetli komunikat o tym, czy jest ona parzysta. Należy sprawdzić poprawność formalną i logiczna danej (musi być dodatnią liczbą całkowitą) Do sprawdzenia parzystości użyj operatora %, który zwraca resztę z dzielenia (np. wyrażenie 5%2 zwróci wartość 1)

2. Wczytaj z klawiatury trzy liczby rzeczywiste i sprawdź, czy mogą być one długościami boków trójkąta.

Należy zastosować instrukcję if, która sprawdzi czy suma długości dwóch dowolnych boków trójkąta jest większa od długości trzeciego boku.

3. Napisz program, który oblicza wartość x z równania ax + b = 0. Współczynniki a i b są rzeczywiste i są wprowadzane przez argumenty programu. Wynik wyświetl wraz z opisem z dokładnością do 3 miejsc po przecinku.

4. Napisz program, który generuje 100 liczb całkowitych z przedziału <-50 50> i oblicza sumę dodatnich i sumę ujemnych elementów. Wynik wraz z opisem wyświetlić na konsoli.

Cytaty

Powiązane dokumenty

 Podzapytania zapewniają alternatywny sposób wykonywania zadań, które w inny sposób można realizować tylko poprzez skomplikowane złączenia.. Niektórych zadań

Utwórz nowego użytkownika o nazwie sasanka z możliwością logowania się do dowolnego serwera bazy danych.. Utwórz użytkownika o nazwie bratek z dostępem tylko do

[r]

Pierwiastki równania są wyświetlane z dokładnością do dwóch miejsc

Musimy umieć zapisać ogólną postać danej liczby na podstawie informacji o podzielności tej liczby.... podanych informacji i wykorzystać ten zapis do rozwiązania

Napisz program, który pobiera długość boku kwadratu I wypisuje jego obwód

Napisz program, który pobiera od użytkownika 15 liczb całkowitych i wypisuje je od końca oddzielone *, ale tylko ostatnie

Działanie funkcji pobierzLN() polega na sprawdzeniu, czy wprowadzona przez użytkownika liczba jest większa od zera2. Jeśli liczba będzie większa od ze- ra, zostanie