Zadania-2
Zadania 1-11: 1p;
zadanie-12: 5p
Zad. 1. Adres
Zapisać w jednym odwołaniu do metody println() wyprowadzenie na konsoli
w kolejnych wierszach napisów:
imię i nazwisko,
adres,
e-mail
Pomoc:
do wypisywania informacji na konsoli służą odwolania:
System.out.print(...);
System.out.println(...); // po wypisaniu info przechodzi do następnego wiersza.
Argumenty: dowolny typ prosty lub referencyjny (np. int lub String).
Specjalny znak '\n' służy do przejścia do nowego wiersza.
Zad 2. Trzy liczby
Dla trzech liczb zdefiniowanych w tekście programu policzyć i wyprowadzić:
Uwaga:
dzielenie dwóch lizcb całkowitych daje w wyniku liczbę całkowitą (całkowitą
część wyniku).
np. int a = 1, int b = 6;
double wynik = a/b; // wynik = 0 !!!
Jeśli więc liczby zdefiniujemy jako typu int, to jak przeprowadzić sumowanie
jednych trzecich?
Pomoc
Przy wyliczaniu wyniku arytmetycznych operacji dwuargumentowych następują
promocje (przekształcenia argumentów do wspólnego typu).
Jeżeli jeden z argumentów jest typu rzeczywistego, to oba argumenty zostaną
przekstzałcone do typu double i wynik będzie typu double.
Zad. 3. Operatory zwiększania i zmniejszania (przedrostkowe i przyrostkowe)
Napisz program ilustrujący działanie operatorów przedrostkowych i
przyrostkowych tzn.
wypisujący jakie wartosci będą miały zmienne ln, a i b w kolejnych punktach
tego programu:
int ln = 1,
a = 0,
b = 0;
a = ln++;
// ile wynosi ln, ile a
b = ++ln;
// ile wynosi ln, ile b
a = ln--;
// ile wynosi ln, ile a
b = --ln;
// ile wynosi ln, ile b
Zad. 4. Kody znaków
a)
wypisać na konsoli literę, która w tablicy kodowoania Unicode znajduje się na
pozycji o 5 większej od pozycji litery 'a'
b)Wypisać na konsoli wszystkie znaki reprezentujące litery od 'a' do 'z'.
c) Wypisać na konsoli kody polskich znaków (liczbowe kody)
Pomoc:
znaki są reprezentowane typem char. Literały znakowe są typu char (np.
'a').
Jeżeli napiszemy:
System.out.println('a') --- to dostaniemy znak 'a'.
Ale
znaki są kodowane jako liczby (typ char jest typem numerycznym).
Możemy np. do 'a' dodać 1 ('a' + 1) i uzyskać następny znak po 'a'.
Jednak uwaga:
char a = 'a';
char b = a + 1;
spowoduje błąd w kompilacji, ponieważ przy wykonywaniu dwuargumentowych
operacji arytemetycznych dokonywane są promocje (przekształcenia do szerszego
typu) np.
literał całkowitoliczbowy (tu 1) jest zawsze traktowany jako int,
wartość zmiennej a jest więc przekształacana do typu int i wynik jest int.
Przy przypisaniu int-a na char może nastąpić utrata danych, o czym przypomni
nam kompilator.
Musimy zatem - w tym przypadku pisać tak:
char a = 'a';
char b = (char) (a + 1);
To jest ogólna zasada: wszystkie konwersje zawężające muszą być jawne.
Jednak
opisana wyżej sytuacja nie występuje, gdy użyjemy jednoargumentowych operatorow
zwiększania (++) lub zmniejszania (--).
Np. a by pokazać trzeci po 'a' znak możemy napisać tak:
char a = 'a';
for (int i=1; i <=3; i++) a++;
System.out.println(a);
A
jak zobaczyć jego kod?
println(char c) wypisuje znak
znak jest liczba
println(int i) wypisuje zawsze liczbe
wiec:
System.out.println("Kod znaku " + 'a' + " wynosi " + (int)
'a');
Zad 5. Suma i iloczyn liczb
Wyliczyć sumę i iloczyn liczb całkowitych od 1 do
Zad. 6.
Zapisać
w programie efekt zakupów w sklepie:
Towar |
Cena za kg w zl |
Ilość w kg |
jabłka |
2,50 |
3 |
winogrona |
6 |
0,5 |
Program ma wyprowadzić:
łączny
rachunek do zapłacenia,
co kupiono, ile,i ile każdy kupiony towar kosztował i jaki jest udział
jego kosztu w łącznych kosztach zakupów?
Zad. 7
Jaki będzie wynik działania następującego fragmentu kodu:
int a = 2.1;
System.out.println(a);
Co trzeba zrobić, żeby uzyskać w zmiennej a wartość 2 "wychodząc" od literału 2.1 . Może tak:
int a = 2.1-0.1;
a jeśli nie- to jak?
Wytłumaczyć dlaczego.
Zad. 8 Klocki i pojemniki
Mamy
pojemniki. Do pojemników wkładamy klocki. Kiedy zabraknie miejsca w pojemniku -
bierzemy następny.
W kazdym pojemniku mieści się s klocków. Podać ile potrzeba
pojemników aby przechować n klocków i ile klocków jest w ostatnim
uzytym pojemniku.
Zad.
9
Napisać
program, który wyprowadzi w oknie komunikatów co drugą dużą literę alfabetu
angielskiego (poczynając od A) poprzedzoną jej kolejnym numerem i trzenma
kropkami. Przykładowy wynik działania programu pokazuje rysunek.
Pomoc: użyć instrukcji while,
pamiętać o tym, że znaki (typ char) to także liczby.
Zad. 10
Napisać program, który przelicza podaną w dialogu wejściowym (JOptionPane.showInputDialog(...))
wartość z euro na złote i pokazuje wynik w okienku komunikatu (JOptionPane.showMessageDialog(...)) w
postaci:
x EUR = y PLN (przy kursie z PLN/EUR)
Pomoc: podane w dialogach liczby są w programie uzyskiwane w postaci znakowej
(jako String). Przed wykonaniem obliczeń należy je przekształcić do psotaci
binarnej (na której możliwe jest wykonywanie operacji arytmetycznych).
Jeżeli:
String liczba = "10";
to
odpowiadającą jej wartość typu int uzyskujemy za pomocą:
int x = Integer.parseInt(liczba);
a wartość typu double:
double y = Double.parseDouble(liczba);
Zad. 11
Napisać
program , sumujący dwie podane w dialogach wejściowych liczby i pokazujący
wynik w postaci komunikatu:
x + y = z
Zadanie
12 (5 punktów)
Napisac algorytm najprostszego kalkulatora i wpisać go w schemat blokowy, a
nastepnie napisać program:
Program prosi o podanie dwoch liczb i operacji arytmetycznej, ktora ma być wobec nich zastosowana.
Forma
wprowadzanych danych: liczba 1 operator liczba2.
Dopuszczalne operatory: +, -, /, *.
Program
wykonuje operacje i wyprowadza jej wynik, a nastepnie cala procedura jest
ponawiana.
Zadbać o wykonalność wszystkich operacji na dowolnych danych rzeczywistych.
Program
dziala (proszac o kolejne operacje do wykonania) dopoki uzytkownik nie wpisze
slowa KONIEC.
__________________________________________________________________________________________________________________________________________________________