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 10, a później od 1 do 20 i od 1 do 40.



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

Description: rNapisać 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

Description: rNapisać 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.

__________________________________________________________________________________________________________________________________________________________