informatyka java zadania z programowania z przykladowymi rozwiazaniami miroslaw j kubiak ebook

background image
background image

Idź do

• Spis treści
• Przykładowy rozdział

• Katalog online

• Dodaj do koszyka

• Zamów cennik

• Zamów informacje

o nowościach

• Fragmenty książek

online

Helion SA
ul. Kościuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl

© Helion 1991–2011

Katalog książek

Twój koszyk

Cennik i informacje

Czytelnia

Kontakt

• Zamów drukowany

katalog

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

Autor: Mirosław Kubiak
ISBN: 978-83-246-2944-2
Format: 140×208, stron: 112

Java w analizie konkretnych przykładów

• Proste operacje wejścia/wyjścia
• Tablice oraz iteracje
• Programowanie obiektowe i pliki tekstowe

Java to jeden z najważniejszych używanych obecnie obiektowych języków programowania. Do
jego największych zalet należą łatwe przenoszenie programów między platformami i możliwość
stosowania na urządzeniach przenośnych. Dobry programista, student lub nauczyciel informatyki,
a także każdy człowiek zainteresowany programowaniem powinien znać podstawy tego języka
i posiadać umiejętność rozwiązywania konkretnych problemów. Podobnie zresztą powinien
opanować najważniejsze zagadnienia dotyczące programowania w językach C++ i Turbo Pascal –
i stosować je w praktyce. Trzyczęściowy zbiór, w którym zamieszczono te same lub bardzo
zbliżone zadania wraz z rozwiązaniami w każdym z wyżej wymienionych języków, pozwala
sprawdzić i uzupełnić wiedzę poprzez analizę podanego kodu.

Książka „Java. Zadania z programowania z przykładowymi rozwiązaniami” to jedna z trzech części
zbioru zadań programistycznych, zawierająca zadania w języku Java. Będziesz mógł dokładnie
prześledzić, jak wyglądają w tym języku operacje wejścia/wyjścia i instrukcje warunkowe. Dowiesz
się, do czego potrzebne są iteracje oraz w jaki sposób używa się tablic. Zobaczysz, na czym polega
programowanie obiektowe i jak działa ono w Javie. Poznasz także zastosowania plików
tekstowych. Taki układ książki ułatwi Ci przyswojenie sobie najważniejszych zagadnień z języka
Java w najlepszy możliwy sposób – na prostych, konkretnych przykładach.

• Proste operacje wejścia/wyjścia
• Instrukcje warunkowe
• Iteracje
• Tablice – deklarowanie, dostęp do elementów, dwuwymiarowe
• Programowanie obiektowe
• Pliki tekstowe

Praktycznie opanuj podstawy języka Java

background image

Spis tre!ci

Od autora

5

Rozdzia" 1. Proste operacje wej!cia-wyj!cia

7

Operacje wej%cia-wyj%cia — informacje ogólne

7

Rozdzia" 2. Podejmujemy decyzje w programie

19

Instrukcje warunkowe w j7zyku Java

19

Rozdzia" 3. Iteracje

31

Iteracje — informacje ogólne

31

P7tla for

32

P7tla do ... while

33

P7tla while

33

Rozdzia" 4. Tablice

57

Deklarowanie tablic jednowymiarowych

57

Dost7p do elementów tablicy

58

Tablice dwuwymiarowe

62

Rozdzia" 5. Programowanie obiektowe

79

Programowanie obiektowe — informacje ogólne

79

Rekurencja

92

Rozdzia" 6. Pliki tekstowe

97

Pliki tekstowe — informacje ogólne

97

background image

1

Proste operacje

wej!cia-wyj!cia

W tym rozdziale zamieszczono proste zadania wraz z przyk%adowymi
rozwi&zaniami ilustruj&ce, w jaki sposób komputer komunikuje si*
z u+ytkownikiem w j*zyku Java.

Operacje wej!cia-wyj!cia
— informacje ogólne

KaQda aplikacja powinna posiadaL moQliwo%L komunikowania si7
z uQytkownikiem. WykorzystujHc proste przykKady, pokaQemy, w jaki
sposób program napisany w j7zyku Java komunikuje si7 z nim poprzez
standardowe operacje wej%cia-wyj%cia.

Operacje wej%cia-wyj%cia w Javie sH realizowane poprzez strumienie.
Strumie$

jest poj7ciem abstrakcyjnym. MoQe on wysyKaL i pobieraL

informacje i jest poKHczony z fizycznym urzHdzeniem (np. klawiatura,
ekran) poprzez system wej%cia-wyj%cia. W j7zyku tym zdefiniowano
dwa typy strumieni: bajtowe i znakowe. Standardowy strumieF wyj-
%ciowy w Javie jest reprezentowany przez obiekt

1

out

znajdujHcy si7

1

Obiekty zostanH omówione w rozdziale 5.

background image

8

J a v a . Z a d a n i a z p r o g r a m o w a n i a z p r z y k " a d o w y m i r o z w i # z a n i a m i

w klasie

System

. Jest to obiekt statyczny klasy

PrintStream

zawierajHcy

metody

print()

i

println()

.

Metoda

println()

wy%wietla argumenty podane w nawiasach (), a na-

st7pnie przechodzi do poczHtku nowej linii. PewnH jej odmianH jest me-
toda

print()

. Jej dziaKanie polega na wy%wietlaniu argumentów poda-

nych w nawiasach () bez przemieszczania kursora do nowego wiersza.

Z A D A N I E

1.1

Napisz program, który oblicza pole prostokHta. Warto%ci boków

a

i

b

wprowadzamy z klawiatury. W programie naleQy przyjHL,

Qe zmienne

a

,

b

oraz

pole

sH typu

double

(rzeczywistego).

Przyk%adowe rozwi&zanie — listing 1.1

package zadanie11; // Zadanie 1.1
import java.io.*;

public class Main
{
public static void main(String[] args)
throws IOException
{
double a, b, pole;

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

System.out.println("Program oblicza pole prostokKta.");
System.out.println("Podaj bok a.");
a = Double.parseDouble(br.readLine());
System.out.println("Podaj bok b.");
b = Double.parseDouble(br.readLine());
pole = a*b;

System.out.print("Pole prostokKta o boku a = " + a + "
i boku b = " + b);
System.out.println(" wynosi " + pole + ".");
}
}

Klasy w Javie grupowane sH w jednostki zwane pakietami (ang. packa-
ge
). Pakiet to zestaw powiHzanych ze sobH tematycznie klas. Do jego
utworzenia sKuQy sKowo kluczowe

package

, po którym nast7puje nazwa

pakietu zakoFczona %rednikiem, co ilustruje linijka kodu poniQej:

background image

R o z d z i a " 1 . • P r o s t e o p e r a c j e w e j ! c i a - w y j ! c i a

9

package zadanie11; // Zadanie 1.1

2

Linijka kodu

double a, b, pole;

umoQliwia deklaracj7 zmiennych

a

,

b

i

pole

(wszystkie sH typu rze-

czywistego —

double

) w programie. Instrukcja

System.out.println("Program oblicza pole prostokKta.");

wy%wietla na ekranie komputera komunikat Program oblicza pole
prostok&ta
.

W celu czytania z klawiatury liter i cyfr naleQy skorzystaL z dwóch
klas:

InputStreamReader

oraz

BufferedReader

. Najpierw tworzymy nowy

obiekt klasy

InputStreamReader

, przekazujHc jej konstruktorowi obiekt

System.in

. MoQna go nast7pnie wykorzystaL w konstruktorze klasy

BufferedReader

. Tak opisana konstrukcja ma nast7pujHcy zapis:

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

PowstaKy obiekt klasy

BufferedReader

moQemy przypisaL do zmiennej

referencyjnej

br

i dalej, poprzez metod7

readLine()

, moQemy wykorzy-

staL go do wczytywania zmiennej

a

typu

double

ze strumienia wej-

%ciowego. Ilustruje to nast7pujHca linijka kodu:

a = Double.parseDouble(br.readLine());

Wczytywanie liczb odbywa si7 tak samo jak wczytywanie tekstu,
musimy jednak dokonaL odpowiedniej konwersji, tzn. zamiany ciHgu
znaków na odpowiadajHcH mu warto%L liczbowH. SKuQy do tego jedna
z poniQszych metod statycznych:

parseByte

z klasy

Byte

do odczytu bajtów,

parseDouble

z klasy

Double

do odczytu liczb typu

double

,

parseFloat

z klasy

Float

do odczytu liczb typu

float

,

parseInt

z klasy

Int

do odczytu liczb typu

int

,

parseLong

z klasy

Long

do odczytu liczb typu

long

.

Aby nasz program mógK zostaL skompilowany, musimy do niego do-
daL nast7pujHce dwie linijki kodu:

import java.io.*;

2

Komentarze w programie oznaczamy dwoma uko%nikami //; // to jest komentarz.

background image

1 0

J a v a . Z a d a n i a z p r o g r a m o w a n i a z p r z y k " a d o w y m i r o z w i # z a n i a m i

oraz

throws IOException

SH one niezb7dne do obsKugi bK7dów wej%cia-wyj%cia. SKowo kluczowe

import

oznacza, Qe do programu zaimportowano wszystkie (po kropce

*

)

pakiety java.io.

Pole prostokHta zostaje obliczone w instrukcji

pole = a*b;

Za wy%wietlenie warto%ci zmiennych

a

i

b

oraz

pole

wraz z odpo-

wiednim opisem sH odpowiedzialne nast7pujHce linijki kodu:

System.out.print("Pole prostokKta o boku a = " + a + " i boku b = " + b);
System.out.println(" wynosi " + pole + ".");

Rezultat dziaKania programu moQna zobaczyL na rysunku 1.1.

Program oblicza pole prostok!ta.

Podaj bok a.

1

Podaj bok b.

2

Pole prostok!ta o boku a = 1.0 i boku b = 2.0 wynosi 2.0.

Rysunek 1.1.

Efekt dzia%ania programu Zadanie 1.1

Z A D A N I E

1.2

Napisz program, który wy%wietla na ekranie komputera warto%L
predefiniowanej staKej = 3,14… NaleQy przyjHL format wy%wie-
tlania tej staKej z dokKadno%ciH do pi7ciu miejsc po przecinku.

Wskazówka

J zyk Java umo"liwia formatowanie wy#wietlanych danych w podobny
sposób jak w j zyku C. S$u"y do tego metoda printf. Jej sk$adnia jest
nast puj%ca:

String format;
System.out.printf(format, arg_1, arg_2, ..., arg_n);

.

background image

R o z d z i a " 1 . • P r o s t e o p e r a c j e w e j ! c i a - w y j ! c i a

1 1

Przyk%adowe rozwi&zanie — listing 1.2

package zadanie12; // Zadanie 1.2

public class Main
{
public static void main(String[] args)
{
System.out.println("Program wyRwietla liczbS pi z zadanK
dokTadnoRciK.");
System.out.printf("Pi = " + "%6.5f\n", Math.PI);
}
}

Specyfikatory typów mogH byL nast7pujHce:

%d

integer

,

%e

double

,

%f

float

.

Pomi7dzy znakiem % i literH przyporzHdkowanH danemu typowi moQna
okre%liL ilo%L pól, na których ma zostaL wy%wietlona liczba, np.:

%7.2f

— oznacza przyznanie siedmiu pól na liczb7 typu

float

,

w tym dwóch pól na jej cz7%L uKamkowH;

%4d

— oznacza przyznanie czterech pól na liczb7 typu caKkowitego.

W programie zapis

System.out.printf("Pi = " + "%6.5f\n", Math.PI);

powoduje, Qe na wydruk liczby ! przeznaczonych zostaje sze%L pól,
w tym pi7L na cz7%L uKamkowH. Znak specjalny

"...\n"

(ang. new line)

oznacza przej%cie na poczHtek nowego wiersza.

Math

jest standardowH

klasH Javy, która umoQliwia obliczenia matematyczne.

Rezultat dziaKania programu moQna zobaczyL na rysunku 1.2.

Program wy"wietla liczb# pi z zadan! dok$adno"ci!.

Pi = 3,14159

Rysunek 1.2.

Efekt dzia%ania programu Zadanie 1.2

background image

1 2

J a v a . Z a d a n i a z p r o g r a m o w a n i a z p r z y k " a d o w y m i r o z w i # z a n i a m i

Z A D A N I E

1.3

Napisz program, który wy%wietla na ekranie komputera pier-
wiastek kwadratowy z warto%ci predefiniowanej = 3,14…
NaleQy przyjHL format wy%wietlania pierwiastka kwadratowego
ze staKej !z dokKadno%ciH do dwóch miejsc po przecinku.

Przyk%adowe rozwi&zanie — listing 1.3

package zadanie13; // Zadanie 1.3

public class Main
{
public static void main(String[] args)
{
System.out.println("Program wyRwietla pierwiastek kwadratowy ");
System.out.println("z liczby pi z dokTadnoRciK dwóch miejsc po
przecinku.");
System.out.printf("Sqrt(Pi) = " + "%2.2f\n", Math.sqrt(Math.PI));
}
}

Metoda

sqrt()

pozwala na obliczenie pierwiastka kwadratowego. Jest

ona metodH standardowej klasy

Math

.

Rezultat dziaKania programu moQna zobaczyL na rysunku 1.3.

Program wy"wietla pierwiastek kwadratowy

z liczby pi z dok$adno"ci! dwóch miejsc po przecinku.

Sqrt(Pi) = 1,77

Rysunek 1.3.

Efekt dzia%ania programu Zadanie 1.3

Z A D A N I E

1.4

Napisz program, który oblicza obj7to%L kuli o promieniu

r

.

Warto%L promienia wprowadzamy z klawiatury. W programie
naleQy przyjHL, Qe zmienne: promieF

r

i

objetosc

, sH typu

double

(rzeczywistego). Dla tych zmiennych naleQy przyjHL format
wy%wietlania na ekranie z dokKadno%ciH do dwóch miejsc po
przecinku.

background image

R o z d z i a " 1 . • P r o s t e o p e r a c j e w e j ! c i a - w y j ! c i a

1 3

Przyk%adowe rozwi&zanie — listing 1.4

package zadanie14; // Zadanie 1.4
import java.io.*;

public class Main
{
public static void main(String[] args)
throws IOException
{
double r, objetosc;

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

System.out.println("Program oblicza objStoR^ kuli.");
System.out.println("Podaj promie_ r.");
r = Double.parseDouble(br.readLine());

objetosc = 4.0*Math.PI*r*r*r/3;

System.out.print("ObjStoR^ kuli o promieniu r = ");
System.out.printf("%2.2f", r);
System.out.print(" wynosi ");
System.out.printf("%2.2f.", objetosc);
}
}

Obj7to%L kuli o promieniu

r

oblicza nast7pujHca linijka kodu:

objetosc = 4.0*Math.PI*r*r*r/3;

gdzie pot7gowanie zamieniono na mnoQenie.

Rezultat dziaKania programu moQna zobaczyL na rysunku 1.4.

Program oblicza obj#to"5 kuli.

Podaj promie6 r.

1

Obj#to"5 kuli o promieniu r = 1,00 wynosi 4,19.

Rysunek 1.4.

Efekt dzia%ania programu Zadanie 1.4

background image

1 4

J a v a . Z a d a n i a z p r o g r a m o w a n i a z p r z y k " a d o w y m i r o z w i # z a n i a m i

Z A D A N I E

1.5

Napisz program, który oblicza wynik dzielenia caKkowitego
bez reszty dwóch liczb caKkowitych: a = 37 i b = 11.

Wskazówka

W j zyku Java w przypadku zastosowania operatora dzielenia / dla liczb
ca$kowitych reszta wyniku jest pomijana (tak samo jest w C i C++).
W Turbo Pascalu nale"y zastosowa, operator dzielenia ca$kowitego
bez reszty div.

Przyk%adowe rozwi&zanie — listing 1.5

package zadanie15; // Zadanie 1.5

public class Main
{
public static void main(String[] args)
{
int a = 37;
int b = 11;

System.out.println("Program wyRwietla wynik dzielenia caTkowitego");
System.out.println("bez reszty dwóch liczb caTkowitych.");
System.out.println("Dla liczb a = " + a + ", b = " + b);
System.out.println(a + "/" + b + " = "+ a/b + ".");
}
}

Rezultat dziaKania programu moQna zobaczyL na rysunku 1.5.

Program wy"wietla wynik dzielenia ca$kowitego

bez reszty dwóch liczb ca$kowitych.

Dla liczb a = 37, b = 11

37/11 = 3.

Rysunek 1.5.

Efekt dzia%ania programu Zadanie 1.5

background image

R o z d z i a " 1 . • P r o s t e o p e r a c j e w e j ! c i a - w y j ! c i a

1 5

Z A D A N I E

1.6

Napisz program, który oblicza reszt7 z dzielenia caKkowitego
dwóch liczb caKkowitych: a = 37 i b = 11.

Wskazówka

Nale"y zastosowa, operator reszty z dzielenia ca$kowitego modulo, który
oznaczamy w j zyku Java symbolem %. Podobnie jak w j zykach C i C++,
operator ten umo"liwia uzyskanie tylko reszty z dzielenia, natomiast
warto#, ca$kowita jest odrzucana.

Przyk%adowe rozwi&zanie — listing 1.6

package zadanie16; // Zadanie 1.6

public class Main
{
public static void main(String[] args)
{
int a = 37;
int b = 11;

System.out.println("Program oblicza resztS z dzielenia
caTkowitego");
System.out.println("dwóch liczb caTkowitych.");
System.out.println("Dla liczb a = " + a + ", b = " + b);
System.out.println(a + "%" + b + " = " + a%b + ".");
}
}

Rezultat dziaKania programu moQna zobaczyL na rysunku 1.6.

Program oblicza reszt# z dzielenia ca$kowitego

dwóch liczb ca$kowitych.

Dla liczb a = 37, b = 11

37%11 = 4.

Rysunek 1.6.

Efekt dzia%ania programu Zadanie 1.6

background image

Czytaj dalej...

1 6

J a v a . Z a d a n i a z p r o g r a m o w a n i a z p r z y k " a d o w y m i r o z w i # z a n i a m i

Z A D A N I E

1.7

Napisz program, który oblicza sum7, róQnic7, iloczyn i iloraz
dla dwóch liczb

x

i

y

wprowadzanych z klawiatury. W pro-

gramie naleQy zaKoQyL, Qe zmienne

x

i

y

sH typu

float

(rze-

czywistego). Dla zmiennych

x

,

y

,

suma

,

roznica

,

iloczyn

i

iloraz

naleQy przyjHL format ich wy%wietlania na ekranie z dokKad-
no%ciH do dwóch miejsc po przecinku.

Przyk%adowe rozwi&zanie — listing 1.7

package zadanie17; // Zadanie 1.7
import java.io.*;

public class Main
{

public static void main(String[] args)
throws IOException
{
float x, y, suma, roznica,iloczyn, iloraz;

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

System.out.println("Program oblicza sumS, róbnicS, iloczyn
i iloraz ");
System.out.println("dla dwóch liczb x i y wprowadzonych
z klawiatury.");
System.out.println("Podaj x.");
x = Float.parseFloat(br.readLine());
System.out.println("Podaj y.");
y = Float.parseFloat(br.readLine());

suma = x+y;
roznica = x-y;
iloczyn = x*y;
iloraz = x/y;

System.out.printf("Dla liczb x = " + "%2.2f",x);
System.out.printf(" i y = " + "%2.2f",y);
System.out.println(); // wy)wietlenie pustej linii
System.out.printf("suma = " + "%2.2f,\n", + suma);
System.out.printf("róbnica = " + "%2.2f,\n", + roznica);
System.out.printf("iloczyn = " + "%2.2f,\n", + iloczyn);
System.out.printf("iloraz = " + "%2.2f.\n", + iloraz);
}
}


Wyszukiwarka

Podobne podstrony:
informatyka turbo pascal zadania z programowania z przykladowymi rozwiazaniami miroslaw j kubiak ebo
Kubiak M Java Zadania z programowania z przykładowymi rozwiązaniami
Java Zadania z programowania z przykładowymi rozwiązaniami
Java Zadania z programowania z przykladowymi rozwiazaniami
Java Zadania z programowania z przykladowymi rozwiazaniami
Java Zadania z programowania z przykladowymi rozwiazaniami javaza
Java Zadania z programowania z przykladowymi rozwiazaniami 2
C++ Zadania z programowania z przykładowymi rozwiązaniami [PL]
C Zadania z programowania z przykladowymi rozwiazaniami cshzap 2
C Zadania z programowania z przykladowymi rozwiazaniami cshzap
Turbo Pascal Zadania z programowania z przykladowymi rozwiazaniami
C Zadania z programowania z przykladowymi rozwiazaniami
C Zadania z programowania z przykladowymi rozwiazaniami cshzap
Turbo Pascal Zadania z programowania z przykladowymi rozwiazaniami tpzada
Turbo Pascal Zadania z programowania z przykladowymi rozwiazaniami tpzada
Turbo Pascal Zadania z programowania z przykladowymi rozwiazaniami 2
C Zadania z programowania z przykladowymi rozwiazaniami
C Zadania z programowania z przykladowymi rozwiazaniami cppzad

więcej podobnych podstron