Upload
patricia-petrut
View
213
Download
0
Embed Size (px)
Citation preview
8/17/2019 188600805-TEMA-IP.docx
1/55
TEMA 2
1.Scrieti o aplicatie Java caredefneste o variabila de tip Stringcare este initializata cu un textpredefnit. Aplicatia afseaza o
statistica reprezentand numarulde propozitii din text, numarultotalde cuvinte, caracterele careapar in intreg textul si procentulpe care il reprezinta dintotal.import ava.util.StringTo!enizer;public class prob1 " public static void main(String args[]){ String sir; sir=("Ana are mere. Maria arepere?");
int p=; int i!; int c=#; int l; $or(i=;i%sir.lengt&();i''){ i$(sir.c&arAt(i)==.sir.c&arAt(i)==?sir.c&arAt(i)==*) p''; i$(sir.c&arAt(i)== ) c''; +String al$a;
al$a=("AanreMmip"); $or(i=;i%al$a.lengt&();i''){ l=; $or(=;%sir.lengt&();'') i$(al$a.c&arAt(i)==sir.c&arAt()) l'';
S,stem.out.println("-aracterul"'al$a.c&arAt(i)'" apare de "'l'" sirepreinta "'((((/oat)l)0sir.lengt&())1#)); +S,stem.out.println("2umarul de
propoitii3"'p); S,stem.out.println("2umarul decuvinte3"'c);+
+2.Se defneste un sir de valoriintregi. Sa sa completeze un altsir #ormat din elementele primului
sir,dupa cum urmeaza$ se iaelementul de pe prima pozitie,apoi cel a%at la un numardistanta, la doua numere distanta,etc. &aca se aunge in capatulsirului, se continua numaratoarea
de la inceput.public class main " public static boolean e4ista(int []poitii){int i; $or (i=;i%poitii.lengt&;i'') i$ (poitii[i]==)
return true; return $alse; +public static void main(String[]args){
int[] vector= {#! 5! 6! 7+; int [] poitii={!!!+; int [] sir89nal;int i!v!n=!c; sir89nal=ne: int[5]; c=; int pas=!ii=; :&ile (e4ista(poitii)==true){00la pasul pornesc de la poitia i$(pas == ) ii=;00parcurg sirul din c in c poitii $or (i=ii;i%vector.lengt&;i=i'c'#){
poitii[i]=#;00c creste la 9ecare citire a unui numar c''; sir89nal[n]=vector[i]; n'';
+ v=i; i$ (vvector.lengt&) {00daca valoarea lui c este decatlungimea vectorului! poitia de pe carecitesc00trebuie reinitialiata corespunator v=v < vector.lengt&; ii = v; + pas''; + S,stem.out.print("Sirul 9nal este3 "); $or(i=;i%sir89nal.lengt&;i'')
8/17/2019 188600805-TEMA-IP.docx
2/55
S,stem.out.print( sir89nal[i]'" ");++'.Scrieti o aplicatie Java caredefneste o valoare intreaga siapoi calculeaza si afseaza
reprezentarea ei binara.public class prob' { public static void main(String args[]){ int nr=5; int r=; int rest; int i=#; :&ile(nr){ rest=nrroblema7ab5@unction(te4t);+private c&ar[] orig;
private String modi9ed="";public >roblema7ab5@unction(String
getorig)
{ t&is.orig=getorig.to-&arArra,(); t&is.prelucrare(); t&is.a9sare(); +private boolean i$vo:el(c&ar v){
boolean o=$alse;
c&ar[] vocale={a!A!e!B!i!C!o!D!u!E+;$or(int i=;i%vocale.lengt&;i'')
{ i$(v == vocale[i]) { o=true; + + return o; +private void prelucrare()
{ int i;
$or(i=;i%t&is.orig.lengt&;i'') { i$(t&is.i$vo:el(t&is.orig[i])) { t&is.modi9ed=t&is.modi9ed't&is.orig[i]'p't&is.orig[i]; +
else{
t&is.modi9ed=t&is.modi9ed't&is.orig[i]; + + +private void a9sare()
{ S,stem.out.println(t&is.modi9ed); ++5.6n magazin de suveniruri o#era1( gravuri di#erite cu Turnul Ei7el.8 gravura costa 25 de Eurocen+iiar suvenirurile sunt ob+inutealeator. &e ce suma este nevoiepentru a ob+ine cel pu+in c9te ogravura di#erita de fecare tip+:ndiciu$ 4olosi+i un generator denumere aleatoare. Suma de baniintrodusa ar trebui sa varieze lafecare execu+ie a programului.
8/17/2019 188600805-TEMA-IP.docx
3/55
import ava.util.Fandom;public class Main {public static boolean e4ista(int []poitii){int i; $or (i=;i%poitii.lengt&;i'')
i$ (poitii[i]==)return true;
return $alse;+public static void main(String []args){ String []sir={"g#"!"g5"!"g6"!"g7"!"gG"!"gH"!"gI"!"gJ"!"gK"!"g#"!"g##"!"g#5"!"g#6"!"g#7"+;00in vectorul poitii retin elementelecare au $ost generate dea3 #Lgenerat!
Lnegenerat int []poitii ={!!!!!!!!!!!!!+; int suma=!p=; Fandom generator = ne: Fandom();00cat timp mai am gravuri necitite!genere cate o poitie a unei gravuri :&ile(e4ista(poitii)==true) {00imi genere un numar aleator intre si #7 e4clusiv (poitie gravurii) p=generator.ne4tCnt(#7); poitii[p]=#; suma = suma ' 5G; + S,stem.out.println("Suma este3"'suma'" Burocenti");++;.a sa re+ina mai u+or numerelede tele#on ale prietenilor, Alex s*ag9ndit sa asocieze fecarei ci#reun set de litere, ca mai os$Se daun numar de tele#on de maxim 12ci#re, un numar n reprezent9ndnumarul de cuvinte ce trebuieverifcate +i apoi cele n cuvinte.Specifca+i daca exista o combina+ie de cuvinte care sa sepotriveasca per#ect pentrunumarul de tele#on. &aca nuexista solu+ie se va af+a$ *
8/17/2019 188600805-TEMA-IP.docx
4/55
convertesc in String, leconcateneaza si inverseaza sirulast#el obtinut. Toate metodelereturneaza valori care vor fafsate in #unctia main, prinintermediul unei instante a clasei.
public class Test { public static void main(String[] args)
{ S,stem.out.println("Suma este3"'Metode.aduna()); S,stem.out.println("Fadicalul dindi$erenta este3 "'Metode.radical()); S,stem.out.println("Sirul convertit inString este3 "'Metode.convet()'""'Metode.convert5()); S,stem.out.println("Sirul concatenat
si inversat este3"'Metode.concatenare()); ++public class Metode " static int 4=#!,=I;public static int aduna(){
return 4',; + public static /oat radical(){ return (/oat) Mat&.sOrt(4L,); + public static String convet(){ return Cnteger.toString(4);00converteste un intreg in string + public static String convert5(){ return Cnteger.toString(,); + public static StringuNerconcatenare(){ String sir =Cnteger.toString(4).concat(Cnteger.toString(,)); 00concateneaareturn ne: StringuNer(sir).reverse();
00inversarea sirului ++2.Scrieti o aplicatie Java caredefneste intr*o clasa o matrice devalori %oat. Aplicatia va afsa atatnumarul de elemente nule care
sunt inconurate de elementenenule cat si pozitia lor in matricepublic class Main " public static void main(String []args){ Matrice mat = ne:Matrice();00inintialiam un nou obiect
mat de tipul matrice int c; c = mat.2rBlem2ule();00prinmat.2rBlem2ule apelam $unctia iar c iiun contor S,stem.out.println("2umarul deelemente nule este3 "'c); mat.a9seaa>oitii(); ++import ava.util.Arra,ist;import ava.util.ist;
public class Matrice { private /oat matrice[][] = ne: /oat[][] {{#.IJ$! 5.#$! 6.K$! 7.G7$ +! {G.57$! H.$! I.57$! J.G5$+! {#.#$! .$! 7.JI$! G.7G$+! {I.#K$! 7.IH$! K.G6$! .$++; private int n = 7; private int m = 7; private ist%>oitie poitii = ne:Arra,ist%>oitie();00$ormam o listacu poitiile gasite public Matrice() { + public int 2rBlem2ule() { int c! i! ; c = ;00contorul il initialia cu dupacare daca o sa gasim un in matricecrestem cu # contorul $or (i=;i%n; i'') $or (=;%m;'') { i$(i== PP matrice[i][]== PP *=PP *=mL#)00veri9cam elementele depe prima linie di$erite de colturi i$ (matrice[i][L#] *= PPmatrice[i'#][] *= PP matrice[i]['#]*= PP matrice[i'#]['#]*= PPmatrice[i'#][L#] *=) { c'';
8/17/2019 188600805-TEMA-IP.docx
5/55
>oitie p = ne: >oitie(i!);00daca amgasit un element retinem poitia lui poitii.add(p);00adauga la poitii p +
i$(i== PP ==mL# PP matrice[i][]==)00veri9cam elementul de pe
prima linie din colt dreapta i$ (matrice[i][L#] *= PPmatrice[i'#][L#] *= PP matrice[i'#][]*=) { c''; >oitie p = ne: >oitie(i!); poitii.add(p); + i$(i*= PP i*=nL# PP ==mL# PPmatrice[i][]==)00veri9camelementele de pe ultima coloana
di$erite de colturi i$ (matrice[iL#][] *= PP matrice[iL#][L#] *= PP matrice[i][L#]*= PPmatrice[i'#][L#]*= PP matrice[i'#][]*= ) { c''; >oitie p = ne: >oitie(i!); poitii.add(p); + i$(i==nL# PP ==mL# PP matrice[i][]==)00veri9cam elementul de peultima coloana din colt os i$ (matrice[iL#][] *= PP matrice[iL#][L#] *= PP matrice[i][L#]*=) { c''; >oitie p = ne: >oitie(i!); poitii.add(p); + i$(i==nL# PP *= PP *=mL# PPmatrice[i][]==)00veri9camelementele de pe ultima linie di$eritede colturi i$ (matrice[i]['#] *= PP matrice[iL#]['#] *= PP matrice[iL#][]*= PPmatrice[iL#][L#]*= PP matrice[i][L#]*= ) { c''; >oitie p = ne: >oitie(i!); poitii.add(p);
+ i$(i==nL# PP == PP matrice[i][]==)00veri9cam elementul de peprima linie din colt os i$ (matrice[i]['#] *= PP matrice[iL#]['#] *= PP matrice[iL#][]*=)
{ c''; >oitie p = ne: >oitie(i!); poitii.add(p); + i$(== PP i*= PP i*=mL# PPmatrice[i][]==)00veri9camelementele de pe prima coloanadi$erite de colturi i$ (matrice[i'#][] *= PPmatrice[i'#]['#] *= PP matrice[i]['#]*= PP matrice[iL#]['#]*= PP
matrice[iL#][]*= ) { c''; >oitie p = ne: >oitie(i!); poitii.add(p); + i$(i== PP == PP matrice[i][]==)00veri9cam primul element i$ (matrice[i'#][] *= PPmatrice[i'#]['#] *= PP matrice[i]['#]*=) { c''; >oitie p = ne: >oitie(i!); poitii.add(p); + i$(i*= PP i*=nL# PP *= PP *=mL#PP matrice[i][]==)00ver9camelementele din milocul matricii i$ (matrice[iL#][] *= PP matrice[iL#]['#] *= PP matrice[i]['#]*= PPmatrice[i'#]['#]*= PP matrice[i'#][]*= PP matrice[i'#][L#]*= PPmatrice[i][L#]*= PP matrice[iL#][L#]*=) { c''; >oitie p = ne: >oitie(i!); poitii.add(p); + + return c;
8/17/2019 188600805-TEMA-IP.docx
6/55
+ public voida9seaa>oitii()00parcugem poitiile sile a9sam { int i;
$or (i=;i%poitii.sie();i'') poitii.get(i).a9seaa(); ++public class ozitie {00retine positiileelementelor nule din matrice private int i; private int ; public >oitie(int v#!int v5) { i = v#; = v5;
+ public void a9seaa() { i''; ''; S,stem.out.println("("'i'"!"''")"); ++'.Se defneste o clasa care aredrept atribut un sir de valoriintregi. Sa se scrie metodele carecreaza si afseaza un alt sir #ormatdin elementele din sirul initial,luate o singura data, ordonatecrescator. :nstantiati clasa si#olositi metodele create.public class Main { public static void main(String[] args){ Sir e;00am declarat o clasa de tip Sir e=ne: Sir();00o noua instanta a claseiSir e.multime();00apelam metodamultime e.ordonare(); e.a9sare(); ++public class Sir {private int sir[]=ne: int[]
{#!5!6!#!G!7!H+; private int sir5[]=ne: int[#]; public Sir(){
+ public boolean e4ista(int a){00$eri9cam daca mai avem in sir5elementul din sirboolean b;int i;
b=$alse;
$or (i=;i%sir5.lengt&;i''){ i$ (sir5[i]==a){ b=true; return b;++
return b;+
public void multime()00eliminam sinsir elementele care se repeta { int n!i;
n=; $or (i=;i%sir.lengt&;i'') { i$ (e4ista(sir[i])==$alse){ sir5[n]=sir[i]; n'';
+ + + public void ordonare()00ordonam sirul{
int i!au4!; $or(i=;i%=sir5.lengt&05;i'')00parcurgem sirul pana la umate$or(=sir5.lengt&L
#;sir5.lengt&05;LL)00parcurgem sirulde la s$arsit pana la umate i$(sir5[i]sir5[]){ au4=sir5[i]; sir5[i]=sir5[]; sir5[]=au4; + + public void a9sare(){ int i; $or (i=;i%sir5.lengt&;i'')
S,stem.out.print(sir5[i]'" "); + +(.6n restaurant vrea sa*+ipastreze mereu clien+ii mul+umi+i.entru a realiza acest lucru,fecarecomanda este prioritizata
8/17/2019 188600805-TEMA-IP.docx
7/55
dupa cum urmeaza$+ comandadoar cu ceva de baut B prioritate '+ comanda cu ceva de baut +i cevade m9ncat B prioritate 2+ comandadin meniu B prioritate 1 omenzilecu aceea+i prioritate se di#eren+
iaza -n plus, -n #unc+ie de numarulde persoane de la masa,iar apoi -n#unc+ie de suma totala de pecomanda.entru un set decomenzi, stabili+i ordinea -n caretrebuiesc servi+i clien+ii.Exemplu$omanda 1$ de baut, 1@ persoane,=@ C8< D prioritate 'omanda 2$ de baut, 5 persoane,>@ C8< D prioritate 'omanda '$ de baut +i de m9ncat,2 persoane, 1@@ C8< Dprioritate 2omanda ($ comanda din meniu, 1persoana, ;@ C8< D prioritate 1omanda 5$ de baut +i de m9ncat,2 persoane, ?@ C8< D prioritate28rdinea servirii$ omanda (,omanda ' are valoare mai mare,acela+i nr persF, omanda 5,omanda 1 are numar mai marede persoaneF, omanda 2.import ava.util.1;
public class roblema( { public static void main(String[] args){ Fandom rn=ne: Fandom(); -omanda [] comeni=ne: -omanda[#H]; int nrcomeni = #G; S,stem.out.println("-omeninesortate3"); $or(int i =#;i%=nrcomeni;i'') { comeni[i]=ne: -omanda(); comeni[i].prioritate=rn.ne4tCnt(6)'#; comeni[i].nrpersoane=rn.ne4tCnt(K)'#; comeni[i].suma=(rn.ne4tCnt(#)'#)1#;
S,stem.out.println("-omanda nr 3 "'i'" "' comeni[i].a9sare());
+00sortare dupa prioritate # 5 6
$or(int i=#;i%=nrcomeni;i'') $or(int =i'#;%=nrcomeni;'') { i$(comeni[i].prioritate
comeni[].prioritate) { -omanda copie = comeni[i]; comeni[i]=comeni[]; comeni[]=copie; + + 00sortare dupa nr persoane$or(int i=#;i%=nrcomeni;i'')
$or(int =i'#;%=nrcomeni;'') { i$(comeni[i].prioritate ==
comeni[].prioritate)i$(comeni[i].nrpersoane %
comeni[].nrpersoane) { -omanda copie = comeni[i]; comeni[i]=comeni[]; comeni[]=copie; + + 00sortare dupa suma$or(int i=#;i%=nrcomeni;i'')
$or(int =i'#;%=nrcomeni;'') { i$(comeni[i].prioritate ==comeni[].prioritate PPcomeni[i].nrpersoane ==comeni[].nrpersoane )
i$(comeni[i].suma %comeni[].suma) { -omanda copie = comeni[i]; comeni[i]=comeni[]; comeni[]=copie; + +S,stem.out.println("Sortate dupa
prioritate3"); $or(int i=#;i%=nrcomeni;i'')S,stem.out.println("-omanda nr 3"' i'" "' comeni[i].a9sare()); ++
8/17/2019 188600805-TEMA-IP.docx
8/55
public class omanda { int prioritate=; int nrpersoane=; int suma=; public String a9sare() {
return "are prioritatea "'t&is.prioritate '" numar persoane3"'t&is.nrpersoane ' " sumacomanda 3" 't&is.suma; ++5.Sudo!u$ Se da o matrice ;x;, cepoate con+ine numere de la 1 la ;.Matricea ini+iala este -mpar+ita -n; submatrici de dimensiuni 2x'.entru a matrice de intrare, gasi+inumerele lipsa.Ceguli$+ e fecare linie saucoloane trebuie sa apara osingura data toate numerele de la1 la ;.+ Gn fecare dreptung)itrebuie sa apara toate numerelede la 1 la ;.:ndiciu$
8/17/2019 188600805-TEMA-IP.docx
9/55
+ return true ; +public static void ne4t(int[][] pule!
int ro:! int col) {
i$(col%=7) solve(pule!ro:!col'#);00apeleaa$unctia solve else solve(pule!ro:'#!); + public static int solve(int[][] pule!int rand! int col) { i$(randG) { S,stem.out.println("Solutia gasita3");
a9seaamatricea(pule); return ; + i$(pule[rand][col] *= ) { ne4t(pule!rand!col);00recursivitateapeleaa $unctia ne4t + else { $or(int num = #;num%I;num'')00parcurge numerele care trebuiepuse{
i$(veri9carand(pule!rand!num) PPveri9cacoloana(pule!col!num) PPveri9cacutia(pule!rand!col!num)) { 00daca avem numar pe poitie atuncitrecem la elementul urmator cu$unctia ne4t 00daca nu avem numar pe poitieatunci apelam $unctia solve si punemun numar care nu a mai $ots pus
pule[rand][col] = num; ne4t(pule!rand!col); + + pule[rand][col] = ; + return ;
++;.Toate comunica+iile -ntre ora+eau cazut. entru a puteacomunica, supravie+uitorii#olosesc cod morse. Scrie+i un
program care trans#orma opropozi+ie -n cod morse.&espar+irea -ntre litere se #ace cucaracterul H0. &espar+irea -ntrepropozi+ii se #ace cu caracterulHH0.Exemplu$S8S D ... H *** H...public class Main {public static void main(String[] args) { String propoitie = null;
S,stem.out.println("Sirul initial
este3 "" '-odmorse.prop(propoitie)'""");S,stem.out.print("Sirul convertit in
codul Morse este3 ""); -odmorse.converteste("sos . SDS"); S,stem.out.print(""");++public class odmorse {static String prop(String propoitie){String sentence = ne: String("sos.
SDS");00declararea sirului return sentence; 00returneaa stringulce contine propoitia + static String converteste(Stringsentence){ 00declarare vector ce contine litereleconvertite in codul morse String[] morse ={".L0"!"L...0"!"L.L.0"!"L..0"!".0"!"..L.0"!"LL.0"!"....0"!"..0"! ".LLL0"!"L.L 0"!".L..0"!"LL0"!"L.0"!"LLL0"!".LL.0"!"LL.L0"!".L.0"!"...0"!"L0"!"..L0"! "...L0"!".LL0"!"L..L0"!"L.LL0"!"LL..0"!"00"!" 00parcurgerea propoitiei $or(int 4 = ; 4%sentence.lengt&();4''){c&ar c& = sentence.c&arAt(4);00c&repreinta poitia 9ecarui element dinsentence
8/17/2019 188600805-TEMA-IP.docx
10/55
00s:itc& case s:itc&(c&){00caul in care avem insentence a sau A inlocuim litera cuce se a/a pe prima poitie in codulmorse case a3
case A3 S,stem.out.print(morse[]); brea; case b3 case 3 S,stem.out.print(morse[#]); brea; case c3 case -3 S,stem.out.print(morse[5]); brea case d3 case R3 S,stem.out.print(morse[6]); brea; case e3
case B3 S,stem.out.print(morse[7]); brea; case $3 case @3 S,stem.out.print(morse[G]); brea; case g3 case 3 S,stem.out.print(morse[H]); brea; case &3 case T3 S,stem.out.print(morse[I]); brea; case i3 case C3 S,stem.out.print(morse[J]); brea; case 3 case U3 S,stem.out.print(morse[K]); brea; case 3 case V3 S,stem.out.print(morse[#]); brea case l3 case 3 S,stem.out.print(morse[##]); brea; case m3 case M3 S,stem.out.print(morse[#5]); brea; case n3 case 23 S,stem.out.print(morse[#6]); brea; case o3 case D3 S,stem.out.print(morse[#7]); brea;
case p3 case >3 S,stem.out.print(morse[#G]); brea; case O3 case W3 S,stem.out.print(morse[#H]); brea;
case r3 case F3 S,stem.out.print(morse[#I]); brea; case s3 case S3 S,stem.out.print(morse[#J]); brea; case t3 case X3 S,stem.out.print(morse[#K]); brea; case u3 case E3 S,stem.out.print(morse[5]); brea;
case v3 case Y3 S,stem.out.print(morse[5#]); brea; case :3 case Z3 S,stem.out.print(morse[55]); brea; case 43 case 3 S,stem.out.print(morse[56]); brea; case ,3 case Q3 S,stem.out.print(morse[57]); brea; case 3 case \3 S,stem.out.print(morse[5G]); brea; case .3 S,stem.out.print(morse[5H]); brea; case 3 S,stem.out.print(morse[5I]); brea; + + return sentence; ++
Tema(1. Scrieti un program Java care definesteo clasa numita Persoana cu urmatoareleatribute: nume o variabila de tip String,protected si x si y variabile intregi,protected. Clasa contine un constructorexplicit fara parametric care initializeazax si y cu 0 si nume cu null. metodafinalize!" va fi folosita pe post de
8/17/2019 188600805-TEMA-IP.docx
11/55
destructor in acceptiunea C## si va afisaun mesa$. %oua metode mutatorset&ume!" si set'(!" vor fi definitepentru a reinitializa variabilele din clasa.)nstantiati * obiecte, setati atributelepotrivit unor valori predefinite si afisatiproprietatile obiectelor.
public class Persoana { protected String nume; protected int x; protected int y;
public Persoana(){ x=0; y=0; nume=null; }
protected void finalize(){ x=0; y=0; nume=null; Systemoutprintln(!"estructorul
ruleaza acum!); Systemgc(); ##$arbace %ollection }public void set&ume(String nume){
t'isnume = nume;}public void set(int x* int y){t'isx = x; ##t'is face referire la
instanta curent t'isy = y; ##t'is face referire lainstanta curent }}public class +ain {
public static void main(String+, args){
Persoana nume- = ne. Persoana();Persoana nume/ = ne. Persoana();nume-set&ume(!%ociota
lorentina!); nume-set(/* 1);
nume/set&ume(!%ociotalorentina!); nume/set(2* 2);
Systemoutprintln(!&umele este3!4nume-nume4! si coordonatelesunt3 !4nume-x4! !4nume-y); Systemoutprintln(!&umele este3
!4nume/nume4! si coordonatelesunt3 !4nume/x4! !4nume/y);
nume-finalize();
nume/finalize();Systemoutprintln(!&umele este3
!4nume-nume4! si coordonatelesunt3 !4nume-x4! !4nume-y); Systemoutprintln(!&umele este3!4nume/nume4! si coordonatele
sunt3 !4nume/x4! !4nume/y);}
}
*. %efiniti o clasa Circle cu atribute double public numite x, y,r. -n constructor explicit va
initializa cele atributeconsiderand valorile unorparametri formali care au numeidentice cu ale atributelorecivalente. -n alt constructor vamodifica doar variabila r si apoi vaapela primul constructor definit.Pentru definirea unui constructorde copiere se va folosi un obiectCircle trimis ca parametru si un altconstructor vid va initializa cu 0.0,x si y cu 1.0, r. )nstantiati cel putin* obiecte Circle folosindconstructorii definiti in clasa.
/fisati atributele obiectelor.
class Circle { public double x*y*r;
%ircle(double x*double y* double r) { t'isx=x; t'isy=y; t'isr=r;
}%ircle(double r)
{ t'is(-0*/*r);
}%ircle(%ircle ext)
{ t'is(extx*exty*extr); }
%ircle() { x=0; y=0; r=-; }
}public class +ain {
public static void main(String args+,) { %ircle cerc-=ne. %ircle(1*-1*/1);##se
creeaza obiectul ##afisam caracteristicile obiectuluicreeat Systemoutprintln(!%onstructorexplicit!); Systemoutprintln(!x=!4cerc-x); Systemoutprintln(!y=!4cerc-y);
8/17/2019 188600805-TEMA-IP.docx
12/55
Systemoutprintln(!r=!4cerc-r);%ircle cerc/=ne. %ircle(56);Systemoutprintln(!%onstructor cu
parametru3!); Systemoutprintln(!x=!4cerc/x); Systemoutprintln(!y=!4cerc/y); Systemoutprintln(!r=!4cerc/r);
%ircle cerc1=ne. %ircle(); %ircle cerc2;
cerc2=cerc1;##se copiaza cerc1 incerc2
Systemoutprintln(!%onstructorcopiere3!); Systemoutprintln(!x=!4cerc2x); Systemoutprintln(!y=!4cerc2y); Systemoutprintln(!r=!4cerc2r);
} }. Scrieti o clasa numita*%Coordinates care are * variabileprotected int x si y. -n
constructor explicit cu * parametriva initializa atributele si metodeleaccesor get'!", get(!"vor returnavalorile lui x, respectiv y. clasanumita %Coordinates, derivata dinprima, va defini o noua variabilaprotected int z. Constructorulexplicit cu parametri va apelaconstructorul clasei *%Coordinatesfolosind metoda super!". nouametoda get!" va fi definita. )nclasa care contine metoda main!"instantiati un obiect *%Coordinatessi doua obiecte %Coordinates,
folosind niste valori predefinite./fisati atributele obiectelor create.
class %*Coordinatesprotected int x*y;"/%oordinates(int x* int y) { t'isx=x;
t'isy=y; }void get() { Systemoutprintln(!7aloare lui x
este3 !4x); }void get()
{ Systemoutprintln(!7aloare lui yeste3 !4y); }}class %Coordinates extends%*Coordinates
{protected int z;"1%oordinates(int x* int y* int z) { super(x*y); t'isz=z; }
void get8() { Systemoutprintln(!7al lui z3!4z); }} ##clasa ce instantiaza clasa"/%oordinatespublic class +ain{
public static void main(String a+,) { "/%oordinates ob-=ne."/%oordinates(9*2); "1%oordinates ob/=ne.
"1%oordinates(2*5*6);Systemoutprintln(!%oordonatele
obiectului - sunt3 !); ob-get();
ob-get();Systemoutprintln(!%oordonatele
obiectului / siunt3 !); ob/get(); ob/get(); ob/get8(); }}2. %efiniti o interfata numita S2illscare defineste prototipurile
functiilor intget3unning4ime!int laps", intgetS5imming4ime!intpool6lengts" si Stringget4ime7ormat!int milliseconds".)nterfata mai contine constanteleint timePer8ap si inttimePerPool8engt. 4oate valorileintregi mentionate mai susreprezinta un numarde milisecunde. %efiniti * clase3unner si S5immer careimplementeaza interfata S2ills.fiecare clasa stoceaza in niste
variabile specifice numarul de turede pista sau de lungimi de bazinprecum si numele sportivului.Clasele vor oferi implementarispecifice metodelor mostenite dininterfata. Creati cateva instante aleclaselor definite siordonati alergatorii si inotatoriidupa timpii obtinuti. 8a afisare
8/17/2019 188600805-TEMA-IP.docx
13/55
timpii vor respecta formatul:mm:ss:ms.9
public interface S2ills {public int get:unningime(int laps);
public int getS.immingime(intpool105;}public class :unner implements S?ills {
int numarul
8/17/2019 188600805-TEMA-IP.docx
14/55
8/17/2019 188600805-TEMA-IP.docx
15/55
abstracte. a treia clasa numita
8/17/2019 188600805-TEMA-IP.docx
16/55
((%oder)d)"ecodareHnteger(>) 4 !,!); Systemoutprintln(!"o.ncasting!); %oder e = ne. Kxplicit%oder(); %oder f = ne.Kxplicit%oderKxtended(); Systemoutprintln(!StringEul codateste3 +! 4
((Kxplicit%oder)e)%odareString(!CJCJ!) 4 !,* iar stringEul decodat este +!4((Kxplicit%oder)e)"ecodareString(!CJCJ!) 4 !,!); Systemoutprintln(!Hntregul codateste3 +! 4((Kxplicit%oder)e)%odareHnteger(1/) 4!,* iar intregul decodat este +! 4((Kxplicit%oder)e)"ecodareHnteger(1/)
4 !,!); Systemoutprintln(!StringEul codateste3 +! 4((Kxplicit%oderKxtended)f)%odareString(!333!) 4 !,* iar stringEul decodat este
+!4((Kxplicit%oderKxtended)f)"ecodareString(!333!) 4 !,!); Systemoutprintln(!Hntregul codateste3 +! 4((Kxplicit%oderKxtended)f)%odareHnteger(69) 4 !,* iar intregul decodat este+! 4((Kxplicit%oderKxtended)f)"ecodareHnteger(69) 4 !,!);
}}>. Scrieti o clasa a carei instantereprezinta un ?ntreg pacet de
carti. Cartile de $oc au doar *proprietati: rang si culoare.@erificati daca un set de artiextrase aleator din pacet potrezulta ?n carti crescatoare, carti e aceeasi culoare sau cartide acelasi rang. Cartile extrase nuse pun ?napoi ?n acet. %aca programul gaseste astfel decarti, acestea vor fi afisate. %acanu, programul afiseaza:public class Problema> { public static void main(String+, args){
%arteIoc pac'et=ne. %arteIoc();for(int i=-;iC=-9;i44)
{
int +, carte-=pac'etextragecarte(); int +, carte/=pac'etextragecarte(); int +, carte1=pac'etextragecarte(); #####verificare 1 carti crescatoare
##Systemoutprintln(!%arti in ordinecrescatoare dupa rang3!); if(carte-+-,Ccarte/+-, NN
carte/+-,Ccarte1+-,) { Systemoutprintln(!1 carti in ordinecrescatoare3!4carte-+0,4!!4carte-+-,4!OOO!4carte/+0,4!!4carte/+-,4!OOO!4carte1+0,4!!4carte1+-,);
} else { Systemoutprintln(!E&E!); }import Iavautil@;public class Carte$oc { int count=0; int pac'et+,+, =ne. int +5,+-B,;
:andom rand =ne. :andom();public int get%uloare()
{ return t'israndnextHnt(2)4-; }
public int get:ang() { return t'israndnextHnt(-1)4/; }
public int+, extragecarte() { int culoare=t'isget%uloare(); int rang=t'isget:ang();
if( t'iscount C 5/ ) { .'ile(t'ispac'et+culoare,+rang,==-) { culoare=t'isget%uloare();
rang=t'isget:ang(); } t'ispac'et+culoare,+rang,=-; t'iscount44; } int+, carte=ne. int+/,; carte+0,=culoare; carte+-,=rang; return carte; }}
Tema 5011.4olositi pac)etul cc pentru
a citi de la tastaturaelementele unei matrice de 'x'numere intregi. 4olosindoperatorul pe biti I,determinate care sunt pozitiileelementelor impare si afsatinumarul lor.Himport ava.lang.String;import cc.1;
8/17/2019 188600805-TEMA-IP.docx
17/55
class roblema1{public static void main(String args[]) { int n=!i!; int m[][]=ne: int[6][6];00declarare
matrice de 646 S,stem.out.println("Cntroducetielementele matricii3"); $or(i=;i%6;i''){ $or(=;%6;'') m[i][]=-onsole.in.readCnt();00citirede la tastatura + S,stem.out.print("Matriceaintrodusa este3"); 00a9sare matrice $or(i=;i%6;i'')
{ S,stem.out.print("n"); $or(=;%6;'') { S,stem.out.print(m[i][]'" "); i$(m[i][]
8/17/2019 188600805-TEMA-IP.docx
18/55
Scanner input8double = ne:Scanner(S,stem.in); double option8double =input8double.ne4tRouble(); return option8double;+
+00clasa principalaimport ava.lang.String;import Eser>acage.1;00importpacageclass roblema2{public static void mainStringargsLF {
String string[]=ne:String[5];00declarare sir string
int intreg[]=ne: int[5]; /oat /otant[]=ne: /oat[5]; double dublu[]=ne: double[5];
String continua;00/ag int continua5; /oat continua6; double continua7; int n=;00contor stringuri
do{ S,stem.out.print("Cntroduceti un sirde la tastatura3 "); string[n]=Fead.FeadVe,bd();00citirein string n''; S,stem.out.print("Roriti sa maiintroduceti un sir? [Ra02u] "); continua=Fead.FeadVe,bd();00citirein /ag +:&ile(continua.eOualsCgnore-ase("da")); S,stem.out.println("Sirurileintroduse a9sate in ordineal$abetica sunt3");
$or(int i=;i%nL#;i'') $or(int =i'#;%n;'') { i$(string[i].compareXo(string[])) { String au4=string[i]; string[i]=string[]; string[]=au4;
+ +00sortarea al$abetica a sirurilor $or(int i=;i%n;i''){ S,stem.out.println(string[i]);00a9sareasirurilor introduse +
00pentru intregi do{ S,stem.out.print("Cntroduceti unintreg de la tastatura3 ");intreg[n]=Fead.FeadCnt();00citire instring n''; S,stem.out.print("Roriti sa maiintroduceti un intreg? [Ra02u] "); continua5=Fead.FeadCnt();00citire in/ag +
:&ile(continua.eOualsCgnore-ase("da")); S,stem.out.println("Cntregii introdusia9sati in ordine crescatoare sunt3");$or(int i=;i%nL#;i'')
{ i$(intreg[i]intreg[i'#]) { int au4=intreg[i]; intreg[i]=intreg[i'#]; intreg[i'#]=au4; + + $or(int i=;i%n;i''){ S,stem.out.println(intreg[i]);00a9sareaintregilor introdusi +00pentru /oat
do{ S,stem.out.print("Cntroduceti un/oat de la tastatura3 "); /otant[n]=Fead.Fead@loat();00citirein string n''; S,stem.out.print("Roriti sa maiintroduceti un /oat? [Ra02u] "); continua6=Fead.Fead@loat();00citirein /ag +:&ile(continua.eOualsCgnore-ase("da"));
8/17/2019 188600805-TEMA-IP.docx
19/55
S,stem.out.println("@lotantii introdusia9sati in ordine crescatoare sunt3");$or(int i=;i%nL#;i''){i$(/otant[i]/otant[i'#]){
/oat au4=/otant[i];/otant[i]=/otant[i'#];/otant[i'#]=au4; ++$or(int i=;i%n;i''){ S,stem.out.println(/otant[i]);00a9sarea/otantilor introdusi+00pentru doubledo{
S,stem.out.print("Cntroduceti undouble de la tastatura3 "); dublu[n]=Fead.FeadRouble();00citirein string n''; S,stem.out.print("Roriti sa maiintroduceti un /oat? [Ra02u] "); continua7=Fead.FeadRouble();00citirein /ag +:&ile(continua.eOualsCgnore-ase("da"));S,stem.out.println("Roubles introdusia9sati in ordine crescatoare sunt3");$or(int i=;i%nL#;i''){i$(dublu[i]dublu[i'#]){double au4=dublu[i];dublu[i]=dublu[i'#];dublu[i'#]=au4; ++$or(int i=;i%n;i''){S,stem.out.println(dublu[i]);00a9sareadoubles introdusi+ ++01'. &efniti un pac)et caredeclara inter#ata :nt1 2variabile intregi si o metoda
numita sumF si implementeazaclasa lass1 2 variabileprotected de tip %oat,constructor, metode accesor simutator pentru variabilele dinclasaF. :mplementati un alt
fsier sursa care adauga inacelasi pac)et o noua inter#atanumita :nt2 2 variabile de tipdouble si o metoda numitaproductF. ntr*un fsier sursadistinct, importati tot cecontine pac)etul defnit anteriorsi defnite o clasa numita lass2care este derivata din lass1 sicare #oloseste ambele inter#ete:nt1 si :nt2. :mplementarilemetodelor din inter#etereturneaza rezultatulcorespunzator prin aplicareaasupra variabilelor din lass1 sidin ambele inter#ete. :nstantiatilass2 si aplicati metodeledisponibile asupra unorvariabile citite de la tastatura.H00Cnter$ata Cnt#pacage >G;public inter#ace :nt1
{ int a=7; int b=G; int sum(int 4!int ,); +00clasa -lass#import >G.1;public class lass1 implements:nt1 { /oat c; /oat d; -lass#() { c=(/oat)5.6765; d=(/oat)I.66K; +
public -lass#(/oat c!/oat d) { t&is.c=c; t&is.d=d; +
8/17/2019 188600805-TEMA-IP.docx
20/55
public void displa,() { S,stem.out.println("Ati introdusnumerele reale3 "'c'" si 'd); +
public void set(/oat 4!/oat ,)
{ c=4; d=,; +
public int sum(int 4!int ,) { return a'b; + +00Cnter$ata Cnt5pacage >G;public inter#ace :nt2
{ double e=K.6; double $=J.#; double product(double 4! double,);
+00-lass5 derivara din -lass#implementeaa Cnt5import ava.lang.String;import Eser>acage.1;import >G.1;public class lass2 extendslass1 implements Cnt5{-lass5(){ super(); +public static void main(String args[]) { -lass5 ob#= ne: -lass5(); S,stem.out.println("Cntroduceti douanumere reale3"); /oat a!b; S,stem.out.print("a="); a=(/oat)Fead.FeadRouble(); S,stem.out.print("b="); b=(/oat)Fead.FeadRouble(); ob#.set(a!b);
S,stem.out.println(">relucrarenumere /oat din -lass# introdusede la tastatura*"); ob#.displa,();
S,stem.out.println(">relucrareanumerelor "'-lass#.a'" si"'-lass#.b'" de tip intreg din Cnt#implementata cu -lass#*"); S,stem.out.println("Suma lor este3"'ob#.sum(-lass#.a!-lass#.b));
S,stem.out.println(">relucrareanumerelor "'-lass5.e'" si"'-lass5.$'" de tip double din Cnt5implementata cu -lass5*"); S,stem.out.println(">rodusul loreste3"'ob#.product(-lass5.e!-lass5.$)); +public double product(double 4!double ,) { return 41,;
+ +015. &efniti un pac)et Javanumit operator care contineclasa 8perations. :n clasaexista metode care ilustreaza#unctionarea operatorilor binarisi unari N, *, , H, I, O, PP,, , NN, ** atunci candsunt aplicati asupra unorvariabile primite ca parametri.Metodele afseaza operanzii sirezultatul in binar si returneazarezultatul ca valoare intreaga.6tilizati pac)etul creat pentru aprelucra doua valori intregipredefnite. H00pac&etulpacage Dperator;public class 8perations " public int >lus(int a! int b)
{ 00operatorul ' S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul este'! iar suma lor in binar este3"'Cnteger.toinar,String(a'b)); return a'b; +public int Minus(int a! int b)
{
8/17/2019 188600805-TEMA-IP.docx
21/55
00operatorul L S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul esteL! iar di$erenta lor in binar este3"'Cnteger.toinar,String(aLb));
return aLb; +public int Dri(int a! int b)
{ 00operatorul 1 S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul este1! iar produsul lor in binar este3"'Cnteger.toinar,String(a1b)); return a1b; +
public /oat Cmpartire(int a! int b)
{ 00operatorul 0 S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul este0! iar catul lor in binar este3 "); return a0b; +public int Si(int a! int b)
{ 00operatorul P S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul esteP! iar P lor in binar este3 "); return aPb; +public int Sau(int a! int b )
{ 00operatorul S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul este! iar lor in binar este3 "); return ab; +public int ReplStanga(int a! int b )
{ 00operatorul %%
S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul este%%! iar %% lor in binar este3 "); return a%%b; +
public int ReplRreapta(int a! int b) { 00operatorul S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul este! iar lor in binar este3 "); return ab; +public int S&i$tare(int a! int b)
{ 00operatorul
S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul este! iar lor in binar este3 "); return ab; +public int Cnc(int a! int b)
{ 00operatorul '' S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul este''! iar '' lui "'a'" in binareste3 "); return ''a; +public int Rec(int a! int b)
{ 00operatorul LL S,stem.out.println("Dperanii sunt"'a'" si "'b); S,stem.out.println("Dperandul esteLL! iar LL lui "'b'" in binar este3"); return LLb; ++00clasa principalaimport Dperator.1;public class Mainlass "public static void main(String[]
args){
8/17/2019 188600805-TEMA-IP.docx
22/55
int a = 7; int b = H;Dperations ob = ne: Dperations();
S,stem.out.println("Suma in intreg3"'ob.>lus(a! b)); S,stem.out.println("Ri$erenta in
intreg3 "'ob.Minus(a! b)); S,stem.out.println(">rodusul inintreg3 "'ob.Dri(a! b)); S,stem.out.println("Cmpartirea inintreg3 "'ob.Cmpartire(a! b)); S,stem.out.println("Si in intreg3"'ob.Si(a! b)); S,stem.out.println("Sau in intreg3"'ob.Sau(a! b)); S,stem.out.println("%% in intreg3"'ob.ReplStanga(a! b)); S,stem.out.println(" in intreg3
"'ob.ReplRreapta(a! b)); S,stem.out.println(" in intreg3"'ob.S&i$tare(a! b)); S,stem.out.println("'' in intreg3"'ob.Cnc(a! b)); S,stem.out.println("LL in intreg3"'ob.Rec(a! b));+
+01;. &efniti un pac)etanotimpuri. reati in pac)et onoua inter#ata, anotimp, caredefneste metodele voiduloareF, void TemperaturaF sivoid AfseazaF. &efniti ( claserimavara, Qara, Toamna si:arna, care sa implementezeinter#ata anotimp si apoi sasuprascrie metodele dininter#ata cu metodeleuloarestring culoareF siTemperaturastring temperaturaF.reati un nou fsier, in pac)etulde#ault, importati pac)etulanotimpuri si creati cate unobiect de tipul rimavara, Qara,Toamna si :arna. Setatitemperatura si culoarea pentrufecare anotimp siafsati rezultatele obtinute. 1000pac&etpac!age AnotimpuriR
public inter#ace Anotimp "void -uloare();
void Xemperatura(); void A9seaa();+00clasa >rimavara! implementeaa
Anotimppacage Anotimpuri;public class rimavaraimplements Anotimp "String culoare = null;
String temperatura = null;public void -uloare(String culoare)
{S,stem.out.println("-uloarea
anotimpului este3 "'culoare'"."); +public void Xemperatura(String
temperatura) { S,stem.out.println("Xemperaturaeste de3 "'temperatura'" grade-elsius."); +public void A9seaa()
{ S,stem.out.println("Anotimpul este>rimavara! cu urmatoarelecaracteristici3"); +Dverride
public void -uloare() { 00 XDRD AutoLgenerated met&odstub+
Dverride public void Xemperatura() { 00 XDRD AutoLgenerated met&odstub +00clasa Yara! implementeaaAnotimppacage Anotimpuri;public class Qara implementsAnotimp "String culoare = null;
String temperatura = null;public void -uloare(String culoare)
{
8/17/2019 188600805-TEMA-IP.docx
23/55
S,stem.out.println("-uloareaanotimpului este3 "'culoare'"."); +public void Xemperatura(String
temperatura) {
S,stem.out.println("Xemperaturaeste de3 "'temperatura'" grade-elsius."); +public void A9seaa()
{ S,stem.out.println("Anotimpul esteYara! cu urmatoarelecaracteristici3"); + Dverride public void -uloare() {
00 XDRD AutoLgenerated met&odstub+
Dverride public void Xemperatura() { 00 XDRD AutoLgenerated met&odstub+
+00clasa Xoamna! implementeaaAnotimppacage Anotimpuri;
public class Toamna implementsAnotimp "String culoare = null;
String temperatura = null;public void -uloare(String culoare)
{S,stem.out.println("-uloarea
anotimpului este3 "'culoare'"."); +public void Xemperatura(String
temperatura) { S,stem.out.println("Xemperaturaeste de3 "'temperatura'" grade-elsius."); +public void A9seaa()
{
S,stem.out.println("Anotimpul este Xoamna! cu urmatoarelecaracteristici3"); + Dverride public void -uloare() {
00 XDRD AutoLgenerated met&odstub+
Dverride public void Xemperatura() { 00 XDRD AutoLgenerated met&odstub+
+00clasa Carna! implementeaaAnotimppacage Anotimpuri;
public class :arna implementsAnotimp "String culoare = null;
String temperatura = null;public void -uloare(String culoare)
{S,stem.out.println("-uloarea
anotimpului este3 "'culoare'"."); +public void Xemperatura(String
temperatura) { S,stem.out.println("Xemperaturaeste de3 "'temperatura'" grade-elsius."); +public void A9seaa()
{ S,stem.out.println("Anotimpul esteCarna! cu urmatoarelecaracteristici3"); + Dverride public void -uloare() { 00 XDRD AutoLgenerated met&odstub+
Dverride public void Xemperatura() { 00 XDRD AutoLgenerated met&odstub+
8/17/2019 188600805-TEMA-IP.docx
24/55
+00clasa principalaimport Anotimpuri.1;public class Mainlass "public static void main(String[]
args){
00declarare obiecte de tip>rimavara! Yara! Xoamna! Carna sisetarea lor. >rimavara ob# = ne: >rimavara(); ob#.A9seaa(); ob#.-uloare("Yerde desc&is"); ob#.Xemperatura("5");
S,stem.out.println(); Yara ob5 = ne: Yara(); ob5.A9seaa(); ob5.-uloare("Yerde"); ob5.Xemperatura("6G");
S,stem.out.println(); Xoamna ob6 = ne: Xoamna(); ob6.A9seaa(); ob6.-uloare("Maro"); ob6.Xemperatura("#G");
S,stem.out.println(); Carna ob7 = ne: Carna(); ob7.A9seaa(); ob7.-uloare("Yerde"); ob7.Xemperatura("6G"); ++
Tema;#. ititi de la tastatura o seriede perec)i de numere int,%oat, etc.F si incercati saobtineti catul impartirii lor.Afsati rezultatul.Tratati exceptiade tip Arit)meticException datade incercarea de a imparti unnumar la @.:n modulul catc)a#erent, dati impartitorului ovaloare predefnita si apoiafsati rezultatulimpartirii.Cescrieti codul demai sus #olosind o metodanumita divideF caresemnalizeaza exceptia de tipArit)meticException. :n #unctiamainF, tratati exceptiasemnalizata de metoda.import ava.io.RataCnputStream;
import ava.lang.String;import ava.io.CDB4ception;public class Tema2
{ public static voidmain(String args[])
{ int n!m; /oat p!O; String numStr#=null; String numStr5=null; tr, { S,stem.out./us&(); RataCnputStreamdis=ne:RataCnputStream(S,stem.in); S,stem.out.println("Cntroduceti doua
numere intregi3"); numStr#=dis.readine(); numStr5=dis.readine(); n=Cnteger.parseCnt(numStr#); m=Cnteger.parseCnt(numStr5); tr, { int re=n0m; S,stem.out.println(n'" 3 "'m'" ="'re); + catc&(Arit&meticB4ception e) { S,stem.out.println("Cmpartitor *"); +
+catc& (CDB4ception ioe)
{ S,stem.out.println(ioe.toString()); S,stem.e4it(#); + 00incercare pentru /oat tr, {
8/17/2019 188600805-TEMA-IP.docx
25/55
S,stem.out./us&(); RataCnputStreamdis=ne:RataCnputStream(S,stem.in); S,stem.out.println("Cntroduceti doua
numere reale3"); numStr#=dis.readine(); numStr5=dis.readine(); [email protected]@loat(numStr#); [email protected]@loat(numStr5); tr, {
i$(O==)S,stem.out.println("Cmpartitor*"); else
{ /oatre=p0O; S,stem.out.println(p'" 3 "'O'" ="'re); + + catc&(Arit&meticB4ception e) { S,stem.out.println("Cmpartitor *"); + +
catc& (CDB4ception ioe) { S,stem.out.println(ioe.toString()); S,stem.e4it(#); + + +1Cescrieti codul problemeianterioare #olosind o metodanumita divideF caresemnalizeazaexceptia de tipArit)meticException. :n #unctia
mainF, tratati exceptiasemnalizata demetoda.Himport ava.io.RataCnputStream;import ava.lang.String;import ava.io.CDB4ception;
public class Tema'{
public double Rivide(double4!int )t&ro:s Arit&meticB4ception!B4ception { 4=40; i$(==)t&ro: ne:B4ception("din Rivide"); return 4; +
public static void main (String[]args) { double ,; Xema cls=ne: Xema(); int n!m; String numStr#=null; String numStr5=null; tr, { $or(int i=;i%7;i'') { S,stem.out./us&(); RataCnputStreamdis=ne:RataCnputStream(S,stem.in); S,stem.out.println("2umerele intregisunt 3"); numStr#=dis.readine(); numStr5=dis.readine(); n=Cnteger.parseCnt(numStr#); m=Cnteger.parseCnt(numStr5); tr, { ,=cls.Rivide(n!m);
8/17/2019 188600805-TEMA-IP.docx
26/55
S,stem.out.println("Cmpartitorul este3"'m); S,stem.out.println("-atul este3 "',); +
catc&(Arit&meticB4ception e) { S,stem.out.println("Cmpartire cuero***(geniule)"); m=#; +
catc&(B4ceptione)
{
e.printStacXrace(); + +
+ catc& (CDB4ception ioe) { S,stem.out.println(ioe.toString()); S,stem.e4it(#); + + +012.&efniti o clasa de tipexceptie derivata dintr*o clasaspecifca, responsabila cutratarea exceptiilor care aparla incercarea de a converti invalori numerice anumitevariabile de tip String carecontin date non*numerice.4olositi aceasta clasa pentru amonitoriza o secventa de codcare apartine #unctiei mainF,citeste de la tastatura valoareanon*numerica a unei variabilede tip String si apoi incearcasa o converteasca intr*unnumar intreg. Afsati continutulstivei program din zonaexceptiei aparute.import ava4.s:ing.UDption>ane;
class derivata
8/17/2019 188600805-TEMA-IP.docx
27/55
brea; + + i$ (b==true)
{ int
=Cnteger.parseCnt(s); UDption>ane.s&o:MessageRialog(null!"Ati introdus numarul integer3 "'); + else t&ro: ne:2umber@ormatB4ception("Stringul nueste numar! nu poate 9convertit*"); +00end convert +00end class derivata82@Bclass Xema700clasa Xema7! contine
main { public static void main(Stringargs[])00metoda main { derivata82@B 4=ne:derivata82@B();00obiect nou al claseide9nite String st=4.read();00apelammetoda de citire tr,00se incearca conversia { 4.convert(st); + catc&(2umber@ormatB4ception e)00daca nua reusit conversia! se da mesa dee4ceptie {
e.printStacXrace();00sea9seasa stac trace
UDption>ane.s&o:MessageRialog(null!e.getMessage()); S,stem.e4it(); + S,stem.e4it(); +00end main +00end class Xema01 '.Scrieti o aplicatie Java careimplementeaza un bloc de codcare poate sa genereze exceptii
aritmetice, de tip :H8, dedepasire a indecsilor deaccesare a elementelor dintr*unsir sau de orice alt tip.Afsati mesae semnifcative infecare bloc catc) a#erent.
Atentie la ordinea in care sunt mentionate blocurile detratare a exceptiilor. Mutatiintr*o metoda blocul de codcare poate genera exceptii siapoi rescrieti modalitatile detratare.Himport ava.io.1;import ava4.s:ing.UDption>ane;import ava.io.CDB4ception;class exc extends ExceptionHHclasa e4c este derivata din clasaB4ception { public int i; public double d!;
public void read()00metodapentru citire { S,stem.out.print("Cntroduceti un numar intreg3 "); tr,00se incearca citirea { RataCnputStreamdata=ne:RataCnputStream(S,stem.in); i=Cnteger.parseCnt(data.readine()); +00end tr, catc&(CDB4ception::)00daca nu a reusit citirea! se damesa de e4ceptie { S,stem.out.print("B4ceptie la citireanumarului intreg*"); +00end catc&
S,stem.out.print("Cntroduceti undouble3 "); tr,00se incearca citirea {
8/17/2019 188600805-TEMA-IP.docx
28/55
RataCnputStreamdata=ne:RataCnputStream(S,stem.in); d=Rouble.parseRouble(data.readine());
+00end tr, catc&(CDB4ception::)00daca nu a reusit citirea! se damesa de e4ceptie { S,stem.out.print("B4ceptie la citireanumarului double*"); +00end catc& +00end read public void div() t&ro:sB4ception00metoda de diviare
{ i$ (d==) t&ro: ne:B4ception ("Broare la diviiune cu*");00e4ceptie daca se incearcadiviiune cu else
{ =i0d; S,stem.out.print(i'" 3"'d'" = "');00daca diviiunea estecorecta! se a9seaa mesa + +00end div +00end class e4cclass XemaG 00class XemaG! continemain { public static void main(Stringargs[])00metoda main { e4c b#=ne: e4c();00secreeaa un obiect nou ce apartineclasei e4c b#.read();00se apeleaametoda de citire tr,00se incearca diviarea { b#.div(); +00end tr, catc& (B4ception e)00dacadiviarea nu a reusit! se a9seaamesa de e4ceptie
{ S,stem.out.print(e.getMessage()); S,stem.e4it(); +00end catc& S,stem.e4it();
+00end main +00end class Xema 01(. Scrieti o aplicatie Javacare defneste o clasa care areca atribut privat un sir de
tring*uri reprezentandnumele unor studenti.
8/17/2019 188600805-TEMA-IP.docx
29/55
public void read(int i)t&ro:s B4ception00metoda pentrucitire { String sample =null;
uNeredFeaderbr = ne: uNeredFeader(ne:CnputStreamFeader(S,stem.in) );
S,stem.out.print("Cntroduceti numelecelui deal "'i'" student3"); sample =br.readine(); i$(sample.lengt&()==) {
t&is.studenti[i]= ne: String(); t&ro:ne: B4ception("2umele nu a $ostsetat"); + else { t&is.studenti[i]=sample; +
+public void
intersc&imbare(int i!int ) t&ro:sB4ception { i$(t&is.studenti[i].lengt&()== t&is.studenti[].lengt&()== ) t&ro: ne:B4ception("Se compara cu sir null"); else
i$(t&is.studenti[i].compareXo(t&is.studenti[]) ) { Stringcopie=t&is.studenti[i]; t&is.studenti[i]=t&is.studenti[]; t&is.studenti[]=copie; +
+public void sortare(){
$or(inti=;i%t&is.limit;i'') { $or(int
=i'#;%t&is.limit;'') { tr,{ t&is.intersc&imbare(i!); +catc&(B4ception e) { S,stem.out.println(e.getMessage()); +
+
++public void a9sare(){
$or(int i=;i%limit;i'') { i$(t&is.studenti[i].lengt&())S,stem.out.println(t&is.studenti[i]); +
++01=. 6n dreptung)i este defnitde 2 puncte$ coordonatele col+ului din st9nga, sus +i cele alecol+ului din dreapta, os. lasadreptung)i implementeaza +i ometoda pentru calcularea arieisale. ititi de la tastaturacoordonatele unui dreptung)i +iverifca+i daca 1@ dreptung)iuri generate aleator au macar15 din arie -n comun cu ariadreptung)iului ini+ial. &aca undreptung)i nu verifca aceastacondi+ie se va declan+a:llegalArgumentException +i sevor f af+ate coordonateledreptung)iul eronat.&reptung)iurile generate trebuieplasate de la -nceput doar
8/17/2019 188600805-TEMA-IP.docx
30/55
-ntr*o arie de 15@ -n uruldreptung)iului ini+ial.public class roblema=test " public static void main(String[]args) { Rreptung&i drept=ne:
Rreptung&i(); drept.citirecoordonate(); 000S,stem.out.println(drept.arie());
Rreptung&i[]dreptung&iuri=ne: Rreptung&i[#];
$or(inti=;i%dreptung&iuri.lengt&;i'') { dreptung&iuri[i]= ne:Rreptung&i();
dreptung&iuri[i].generare(); S,stem.out.println(dreptung&iuri[i].arie()); + ++import ava.io.uNeredFeader;import ava.io.RataCnputStream;import ava.io.CDB4ception;import ava.io.CnputStreamFeader;import ava.util.Fandom;
public class &reptung)i " Fandom rd=ne: Fandom(); private int 4#; private int ,#; private int 45; private int ,5;
static int 4initial#; static int ,initial#; static int 4initial5; static int ,initial5;
public int generare#G(int 4){ return 41#G0#;
+public void a9sarec(){
S,stem.out.println("4#"'t&is.4#'",#"'t&is.,#'"45"'t&is.45'",5"'t&is.,5); +
public void generare() {
S,stem.out.println(Rreptung&i.4initial#); t&is.4#=t&is.rd.ne4tCnt(Rreptung&i.4initial#)'t&is.generare#G(Rreptung&i.4i
nitial#); t&is.,#=t&is.rd.ne4tCnt(Rreptung&i.,initial#)'t&is.generare#G(Rreptung&i.,initial#); t&is.45=t&is.rd.ne4tCnt(Rreptung&i.4initial5)'t&is.generare#G(Rreptung&i.4initial5); t&is.,5=t&is.rd.ne4tCnt(Rreptung&i.,initial5)'t&is.generare#G(Rreptung&i.,i
nitial5); +
public /oat arie() { return Mat&.abs((t&is.45Lt&is.4#)1(t&is.,#Lt&is.,5)); + public void citirecoordonate(){
tr,{ S,stem.out.print("-oltStanga Sus 4#3"); RataCnputStreamdata=ne:RataCnputStream(S,stem.in); Rreptung&i.4initial#=Cnteger.parseCnt(data.readine()); +catc&(CDB4ception ::){ S,stem.out.print("B4ceptie la citire"); +
tr,{ S,stem.out.print("-oltStanga Sus ,#3"); RataCnputStreamdata=ne:RataCnputStream(S,stem.in); Rreptung&i.,initial#=Cnteger.parseCnt(data.readine()); +catc&(CDB4ception ::){
8/17/2019 188600805-TEMA-IP.docx
31/55
S,stem.out.print("B4ceptie la citire"); +
tr,{ S,stem.out.print("-oltStanga Sus 453");
RataCnputStreamdata=ne:RataCnputStream(S,stem.in); Rreptung&i.4initial5=Cnteger.parseCnt(data.readine()); +catc&(CDB4ception ::){ S,stem.out.print("B4ceptie la citire"); +
tr,{ S,stem.out.print("-olt
Stanga Sus ,53"); RataCnputStreamdata=ne:RataCnputStream(S,stem.in); Rreptung&i.,initial5=Cnteger.parseCnt(data.readine()); +catc&(CDB4ception ::){ S,stem.out.print("B4ceptie la citire"); + ++Tema =1. Scrieti un applet Java carepreia ( parametri int, %oatFdin fsierul UTM3 atasat.4olositi acesti parametri pentrra desena un dreptung)i rotunitumplut cu o anumita culoareverde, albastru, etc.F. &efniticuloarea conturului si culoareade umplere #olosindcomponentele CVW.import ava.applet.1;import ava.a:t.1;import ava.lang.1;public class CoundCectangleextends Applet{int 4!,!:!&;public void init()
{4=Cnteger.parseCnt(get>arameter("4"));,=Cnteger.parseCnt(get>arameter(","));:=Cnteger.parseCnt(get>arameter(":"));&=Cnteger.parseCnt(get>arameter("&"))
;+public void paint(rap&ics g){-olor c=ne: -olor(#K!6!I); g.set-olor(c); g.9llFoundFect(4!,!:!&!#!#);++2. Scrieti un program JavaappletcationF care, in cazul incare este rulat ca aplicatieindependenta, citeste un sir decaractere de la tastatura siinlocuieste primul si ultimulcaracter cu //. &aca este rulatca applet, programul afseazaun mesa.import ava.applet.1;import ava.a:t.1;import ava.io.1;public class Appletcationextends Applet "public void paint(rap&ics g){g.dra:String("mesa..."!5G!5G);+public static void main(String[] args){String s=ne: String();RataCnputStream in=ne:RataCnputStream(S,stem.in);S,stem.out.println("Cntroduceti sirulde caractere3 ");tr,{s=in.readine(); +catc&(CDB4ception e){+String a="1";S,stem.out.println("2oul sir este3 ");S,stem.out.println(a's.substring(#!s.lengt&()L#)'a);++'. Scrieti un applet Java careafseaza pe ecran o imagine se#olosesc metodele get:mageF sidraX:mageFF. ompletatifsierul sursa cu liniile de codcare redau o secventa sonoragetAudiolipFF.
8/17/2019 188600805-TEMA-IP.docx
32/55
import ava.applet.1;import ava.a:t.1;public class image extendsApplet " Cmage img; Audio-lip aud;
public void init() {img=getCmage(get-odease()!":inter.gi$"); aud=getAudio-lip(get-odease()!"lala.au"); +
public void paint(rap&ics g) {g.dra:Cmage(img!!!t&is); aud.loop();++
(. Scrieti un applet Java carepreia din fsierul UTM3 unnumar intreg numit n. Aplicatiadeseneaza o tabla de oc cunxn patrate colorate alternativin doua culori preluate tot caintreg din fsierul UTM3import ava . aXt .Rimport ava.applet.Applet;public class p( extends Applet" int n!r!v!b; String s; public void start() {s=get>arameter("n"); n=Cnteger.parseCnt(s); s=get>arameter("r"); r=Cnteger.parseCnt(s); s=get>arameter("v"); v=Cnteger.parseCnt(s); s=get>arameter("b"); b=Cnteger.parseCnt(s); +
public void paint(rap&ics g) { -olor col#=ne:-olor(r!v!b); -olor col5=ne:-olor(55!#!G); int i!; $or( i=;i%n;i'') $or(=;%n;'') i$(i
8/17/2019 188600805-TEMA-IP.docx
33/55
g.set-olor(col#);g.9llFect((G##Li)!!#!#);+ $or(i=;i%5GH;i'') {-olor col =ne: -olor(!5GG!i); g.set-olor(col);
g.9llFect((G#5'i)!!#!#); + $or(i=5GG;i=;iLL) {-olor col# =ne: -olor(!i!5GG); g.set-olor(col#); g.9llFect((#56Li)!!#!#); + $or(i=;i%5GH;i'') {-olor col =ne:-olor(i!!5GG); g.set-olor(col); g.9llFect((#57'i)!!#!#);
+++;. Cealiza+i un appletcationcare, atunci c9nd este rulat caaplica+ie va af+a mesaul$Culeaza*mY ca applet. 9ndeste rulat ca applet va citi caparametru UTM3 raza unui cerc.&esena+i un pYtrat +i untriung)i -nscrise -ninteriorulacestui cerc.import ava.applet.1;import ava.a:t.1;public class cerc extendsApplet" int r;
public static void main(String[]args) {S,stem.out.println("FuleaaLmaca Applet.");+
public void init() {r=Cnteger.parseCnt(get>arameter("r")); +
public void paint(rap&ics g) {g.dra:Dval(!!r!r); g.dra:Fect(5K!5K!#7!#7); int[] 4={#6!#!#JI+; int[] ,={#G!!#G+; int n=6;
g.dra:>ol,gon(4!,!n);++=. &esena+i primele n poligoanecare au numYrul de diagonalecel pu+in de x ori mai maredec9t numYrul de laturi. n +i x
sunt citi+i ca parametrii dinpagina UTM3. oligoanele suntumplute cu culori aleatorii.import ava.a:t.-olor;import ava.a:t.-ontainer;import ava.a:t.rap&ics;import ava.a:t.>ol,gon;import ava.a:t.event.Zindo:Adapter;import ava.a:t.event.Zindo:Bvent;import ava4.s:ing.U@rame;import ava4.s:ing.U>anel;
public class pol extends Janel" public voidpaint-omponent(rap&ics g) { super.paint-omponent(g); int n=G; int 4=5; int =G; int =#;
:&ile(n){ i$((L6)05=4) { >ol,gon p = ne:>ol,gon(); $or (int i = ; i % ; i'') p.add>oint((int) (1#' G 1Mat&.cos(i 1 5 1 Mat&.>C 0 ))! (int) (# ' G 1Mat&.sin(i 1 5 1 Mat&.>C 0 ))); -olor c=ne: -olor(1#5!15!); g.set-olor(c); g.9ll>ol,gon(p); ''; ''; nLL; + else {'';+ + + public static void main(String[]args) { U@rame $rame = ne: U@rame();
8/17/2019 188600805-TEMA-IP.docx
34/55
$rame.setXitle("Rra:>ol,"); $rame.setSie(6G! 5G); $rame.addZindo:istener(ne:Zindo:Adapter() { public void:indo:-losing(Zindo:Bvent e) {
S,stem.e4it(); + +); -ontainer content>ane =$rame.get-ontent>ane(); content>ane.add(ne: pol()); $rame.s&o:(); ++Tema>1. Scrieti un applet Java careare ' componente de tip)ec!box si un buton laapasarea caruia se afseaza,prin intermediul uneicomponent de tip 3abel, untext care contine o in#ormareasupra selectiei #acute.import ava.a:t.1;import ava.applet.1;import ava.a:t.event.1;public class )ec!boxTestextends Applet " utton btnc&oice; -&ecbo4 c&#; -&ecbo4 c&5; -&ecbo4 c&6; abel selection;
public void init(){ btnc&oice=ne: utton("Alege"); add(btnc&oice); c&#=ne: -&ecbo4 ("Sucde mere"); c&5=ne: -&ecbo4("-eai"); c&6=ne: -&ecbo4("-a$ea"); selection= ne: abel("Ati ales3"); add(c&#); add(c&5); add(c&6); add(selection);
+public boolean action (Bvent
evt! Dbect arg){ String sel=ne: String("Atiales3 "); i$(evt.target==btnc&oice){
i$(c&#.getState()) sel'=c&#.getabel()'1; i$(c&5.getState()) sel'=c&5.getabel()'1; i$(c&6.getState()) sel'=c&6.getabel()'1; + selection.setXe4t(sel); return true;
++2. Scrieti un applet Java carecontine 2 componente de tipText4ield, o componenta de tipTextArea si ( butoane cuetic)etele ZNZ, Z*Z, ZZ si ZHZ. 3aapasarea unui buton secalculeaza rezultatul operatieiaritmetice corespunzatoare,e#ectuate intre numerele scrisein cele 2 componente de tipText4ield. Cezultatul se adauga,pe un rand nou, la s#arsitultextului dea existent incomponenta de tip TextArea.import ava.applet.1;import ava.a:t.1;import ava.a:t.event.1;public class alculator extendsApplet{ utton btnplus; utton btnminus; utton btndivide; utton btnmultipl,; Xe4t@ield t4t#; Xe4t@ield t4t5; Xe4tArea t4t6; Rouble a; Rouble b; public void init(){ btnplus= ne: utton("'");
8/17/2019 188600805-TEMA-IP.docx
35/55
btnminus= ne:utton("L"); btndivide= ne:utton("0"); btnmultipl,= ne:utton("1");
t4t#= ne: Xe4t@ield(G);
t4t5= ne: Xe4t@ield(G); t4t6= ne: Xe4tArea(J!#);
add(t4t#); add(btnplus); add(btnminus); add(btndivide); add(btnmultipl,); add(t4t5); add(t4t6); +
public boolean action (Bventevt! Dbect arg){ a=Rouble.parseRouble(t4t#.getXe4t()); b=Rouble.parseRouble(t4t5.getXe4t()); i$(evt.target==btnplus) t4t6.append(Rouble.toString(a'b)'"n"); i$(evt.target==btnminus) t4t6.append(Rouble.toString(aLb)'"n"); i$(evt.target==btnmultipl,) t4t6.append(Rouble.toString(a1b)'"n"); i$(evt.target==btndivide) t4t6.append(Rouble.toString(a0b)'"n"); return true; ++'. Scrieti un applet Java carecare deseneaza la pozitia1@@,1@@F un dreptung)i verdecu laturile de 1@@ si 5@. 3aapasarea unui buton cuetic)eta ZCosuZ,dreptung)iuleste redesenat cu noua culoare
si etic)eta butonului estesc)imbata in ZQerdeZ, s.a.m.d.import ava.a:t.1;import ava.a:t.event.1;public class oloredCectangleextends Applet implementsActionistener{ utton btncolor; int 4=#; int ,=#; int :=#; int &=G;
public void init(){ btncolor= ne:utton("rosu"); btncolor.addActionistener(t&is); add(btncolor);
+public void
action>er$ormed(ActionBvent e){ i$(btncolor.getabel().eOuals("rosu")){ btncolor.setabel("verde"); + else{ btncolor.setabel("rosu"); repaint(); + + public void paint(rap&ics g){ i$(btncolor.getabel().eOuals("rosu")) g.set-olor(-olor.FBB2); else g.set-olor(-olor.FBR); g.dra:Fect(4! ,! :! &);
++
(. Scrieti un applet Java caredetecteaza clic!*ul butonuluistanga al mouse*ului sideseneaza la pozitia respectivaun dreptung)i plin. uloareadreptung)iului este sc)imbata lafecare clic!, find generataaleator.
8/17/2019 188600805-TEMA-IP.docx
36/55
import ava.a:t.1;import ava.a:t.event.MouseBvent;import ava.a:t.event.Mouseistener;import ava.a:t.event.MouseMotionistener;import ava.applet.1;
public class ( extends Appletimplements Mouse3istener,MouseMotion3istener{ int mouse=!mouseQ=; public void init(){ addMouseistener(t&is); addMouseMotionistener(t&is); + public voidmouse>ressed(MouseBvent me){ mouse=me.get();
mouseQ=me.getQ(); repaint(); + public void paint(rap&ics g){ int F=(int) (Mat&.random()1 5GG ); int =(int) (Mat&.random()1 5GG ); int =(int) (Mat&.random()1 5GG ); -olor m,-olor=ne:-olor(F!!); g.set-olor(m,-olor); g.9llFect( mouse!mouseQ!7!7); + public voidmouseRragged(MouseBvent e) {+ public voidmouseMoved(MouseBvent e) {+ public voidmouse-liced(MouseBvent e) {+ public voidmouseBntered(MouseBvent e) {+ public voidmouseB4ited(MouseBvent e) {+ public voidmouseFeleased(MouseBvent e) {++5. Scrieti un applet Java caredeseneaza pe ecran o tabla de oc problema ( din lab. =F.
and se #ace clic! cu mouse*ulpe unul din patrate, culoareaacestuia este sc)imbata in rosu.e ecran sunt afsate inpermanenta numarul de clic!*urie#ectuate in patrate si in a#ara
tablei de oc si numarul depatrate disponibile.
import ava.a:t.1;import ava.applet.Applet;public class 5 extendsApplet{ private static 9nal int n =7; private Fectanglerectangles[][] = ne: Fectangle[n][n];
private boolean inFect[][]=ne: boolean[n][n]; public void init() { int 4 = 5; int , = 5; int :idt& = 6; int &eig&t =6; $or (int i = ;i%n;i''){ $or (int = ; %n; '') { inFect[i][] = $alse; rectangles[i][] =ne: Fectangle(4! ,! :idt&! &eig&t); 4 '=:idt&; + 4=5; , '=&eig&t;
+ + public booleanmouseMove(Bvent event! int 4! int,) { boolean c&ange = $alse; $or (int i = ; i % n;i'') $or (int = ; %n; '') {
8/17/2019 188600805-TEMA-IP.docx
37/55
i$ (*inFect[i][] PPrectangles[i][].inside(4! ,)) { inFect[i][] =true; c&ange = true;
+ i$ (inFect[i][]PP *rectangles[i][].inside(4! ,)) { inFect[i][] =$alse; c&ange = true; + + i$ (c&ange) repaint(); return true;
+ public void paint(rap&icsg){ $or (int i = ; i % n;i'') $or (int = ; %n; '') { i$ (inFect[i][]== true){ g.set-olor(-olor.red); g.9llFect(rectangles[i][].4!rectangles[i][] .,! rectangles[i][] .:idt&! rectangles[i][].&eig&t); + else{ i$(((i')
8/17/2019 188600805-TEMA-IP.docx
38/55
$or(int i=;i%nL#;i'') $or(int =;%nLiL#;'') i$( vector['#] % vector[] )
{au4=vector[];vector[]=vector['#]; vector['#]=au4;
o= true; + + S,stem.out.print("Sirulordonat este3 "); $or(int i=;i%n;i'')
{ S,stem.out.print(vector[i]'" "); +
+ +HHJ import ava.util.1; import ava.io.-onsole; import ava.io.RataCnputStream; import ava.lang.S,stem; import ava.io.CDB4ception; import cc.-onsole; class WubbleSortAlgJ {
public static voidmain(String args[]) t&ro:sCDB4ception { boolean o; int n!au4; int vector[]=ne:int[#];
S,stem.out.print("Rati numarulde elemente n="); n=-onsole.in.readCnt(); S,stem.out.print("Ratielementele3 ");
$or(int i=;i%n;i'') { vector[i]=-onsole.in.readCnt();
+
do{o=true;
$or(int i=;i%nL#;i'') { i$( vector[i]
vector[i'#] ) { o=$alse; au4=vector[i]; vector[i]=vector[i'#]; vector[i'#]=au4; + +
+
:&ile(*o);S,stem.out.print("Sirul
oradonat crescator este3 "); $or(int i=;i%n;i'')S,stem.out.println(vector[i]'" "); + +00uNeredFeaderimport ava.io.1;import ava.lang.S,stem;public classWubbleSortAlgWu7erCeader
{ public static voidmain(String args[]) t&ro:sCDB4ception { uNeredFeaderscanner=ne: uNeredFeader(ne:CnputStreamFeader(S,stem.in));
String str=null; int n!au4; int vector[]=ne: int[#]; S,stem.out.print("Ratinumarul de elemente n3");
str=scanner.readine(); n=Cnteger.parseCnt(str);
00-itirea sirului$or(int i=;i%n;i'')
{
8/17/2019 188600805-TEMA-IP.docx
39/55
S,stem.out.print("Blem["'i'"]3");
str=scanner.readine(); vector[i]=Cnteger.parseCnt(str); +
00ubbleSort boolean o = true; :&ile (o)
{ o = $alse; $or(int i=;i%nL#;i'') $or(int =;%nLiL#;'') i$( vector['#] % vector[] ) {
au4=vector[]; vector[]=vector['#]; vector['#]=au4;
o =true; + +
S,stem.out.print("Sirul ordonateste3 ^ ) $or(int i=;i%n;i'') { S,stem.out.print(vector[i]'" "); +
+ +012. Scrieti o aplicatie Java careconcateneaza datele angaatilorunei frme considerand maimulte departamente Maxd *departamenteF avand nume detip String. &atele angaatilorfecarui departament suntstocate in fsiere distincte. Seva genera o secventa cu totiangaatii companiei#olosind clasaSe[uence:nputStream.Afsati angaatii din fecaredepartament in parte si apoiangaatii care au salariul mai
mare decat un anumit prag cititde la tastatura.Himport ava.io.1;import ava.util.1;class &ateAngaati{
public static void main(Stringargs[]) { departament-lass[]departament;00se creeaa un sirde departamente String []den=ne: String[5];00secreeaa un sir de denumiri
den[]="departament#.t4t"; den[#]="departament5.t4t"; departament=ne:departament-lass[5];
departament[]=ne:departament-lass("dep#"!den[]); departament[#]=ne:departament-lass("dep5"!den[#]); ++class departament-lass{ String name!te4t;
String []nume=ne: String[6]; String []prenume=ne:String[6]; int []salariu=ne: int[6]; int lim; departament-lass(Stringnm!String 9le) { name=nm;
tr, { @ileCnputStream$stream = ne: @ileCnputStream(9le); RataCnputStream in =ne: RataCnputStream($stream); uNeredFeader br =ne: uNeredFeader(ne:CnputStreamFeader(in));
$or(int i=;i%6;i'') {
te4t=br.readine();
8/17/2019 188600805-TEMA-IP.docx
40/55
StringXoenierst=ne: StringXoenier (te4t!" "); nume[i]=st.ne4tXoen(); prenume[i]=st.ne4tXoen();
salariu[i]=Cnteger.parseCnt(st.ne4tXoen()); +
+ catc&(CDB4ception e) { S,stem.e4it(#); +
S,stem.out.println("Angaatiidepartamentului "'name'" sunt3"); $or(int i=;i%6;i'') {
S,stem.out.println(nume[i]'""'prenume[i]); +
S,stem.out.println("Rati olimita in$erioara pt salariu3"); tr, { RataCnputStreamdata=ne:RataCnputStream(S,stem.in);lim=Cnteger.parseCnt(data.readine()); + catc&(CDB4ception ::) { S,stem.e4it(#); +
S,stem.out.println("Angaatiidepartamentului "'name'" care ausalariu mai mare decat "'lim'"sunt3"); $or(int i=;i%6;i'') { i$(salariu[i]lim) S,stem.out.println(nume[i]'""'prenume[i]'" "'salariu[i]); + ++001'. Cealizati o aplicatie Javacare primeste de la intrarea
standard siruri de caractere sub#ormatulZdd.MM..UU$mm*autor*subiectZ, care extrage sitipareste datele pe ecran sub#ormatul Zddmm*tor$subiectZ. Aplicatia iese din
executie la apasarea tasteiZ\Z.Cecomandare $ utilizati clasaStringTo!enizer.Himport ava.util.StringXoenier;import ava.io.1;import ava.util.1;public class &aMont)]ear { SuppressZarnings("deprecation") public static voidmain(String args[]) t&ro:s
CDB4ception { String str; Stringi!luna!an!ora!minute!autor!subiect;
RataCnputStream din=ne: RataCnputStream(S,stem.in); boolean t = true; String s;
do {
S,stem.out.println("Rati data in$ormat3 dd.MM.,,,,.TT3mmLaut&orLsubect.");
str=din.readine(); StringXoeniers#=ne: StringXoenier(str!".");
i=s#.ne4tXoen();00i=dd luna=s#.ne4tXoen();00luna=mm an=s#.ne4tXoen();00an=,,,, ora=s#.ne4tXoen("3"); minute=s#.ne4tXoen("L");
autor=s#.ne4tXoen("L"); subiect=s#.ne4tXoen("L");
S,stem.out.println("Rata in
8/17/2019 188600805-TEMA-IP.docx
41/55
$ormat3 ddLMML,,,,aut&or3subect."); S,stem.out.println("Rata3"'i'"L"'luna'"L"'an'" "'autor'"3"'subiect);
S,stem.out.println("Roriti sa maicontinuati?(Q02)");
s=din.readine(); s=s.toEpper-ase(); i$ (s.c&arAt()==2)t=$alse;
else t=true; +:&ile(t==true); + +00class01(. :mplementati aplicatiaanterioara #olosind un fsier deintrare care contine un anumitnumar de inregistrari cu#ormatul specifcat mai sus.Himport ava.io.1;import ava .util .1 ;import ava4.s:ing.UDption>ane;public class &aMont)]ear4isier{ public static void main(Stringargs[]) { String aut&!sub; String d!m!,; String te4t; String ,n = null; tr, { 00se creeaa streampt a citi din 9serul cu denumireaspeci9cata @ileCnputStream$stream = ne:@ileCnputStream("problema7.t4t"); RataCnputStream in =ne: RataCnputStream($stream); uNeredFeader br =ne: uNeredFeader(ne:CnputStreamFeader(in)); te4t= br.readine();00seciteste prima linie din 9sier do {
S,stem.out.println("te4t= "'te4t); StringXoenierst=ne: StringXoenier(te4t!".");00se seteaa separatorul 00se preiau datele
separate de catre separatorul setatanterior d=st.ne4tXoen(); m=st.ne4tXoen(); ,=st.ne4tXoen(); st=ne:StringXoenier (te4t!"L");00se seteaaseparatorul 00se preiau dateleseparate de catre separatorul setat
anterior st.ne4tXoen(); aut&=st.ne4tXoen(); sub=st.ne4tXoen(); 00se a9seaadatele in $ormatul cerut UDption>ane.s&o:MessageRialog(null!d'"L"'m'"L"','" "'aut&'"3"'sub); 00se cerecon9rmarea pt a continua cupreluarea si a9sarea datelor,n=UDption>ane.s&o:CnputRialog("Roriti sa continuati? (Q02)");+:&ile((,n.eOualsCgnore-ase("Q"))PP(te4t = br.readine()) *= null) ; + catc&(CDB4ception e) { S,stem.e4it(#); +
++
015. reati un fsier de tip SQcare contine pe linii distincteurmatoarele in#ormatii, separateprin caracterul ^_^$* nume student* an
8/17/2019 188600805-TEMA-IP.docx
42/55
* nota1* ...* nota5ititi in#ormatia din fsier siapoi afsati toate datelestudentilor care au media mai
mare ca >.8bs.$ lista destudenti trebuie ordonataal#abetic.Himport ava.io.RataCnputStream;import ava.io.@ileCnputStream;import ava.io.CDB4ception;import ava.util.Arra,s; public class StudentiSuppressZarnings("deprecation")public static void main(String[] args)t&ro:s CDB4ception { String $2ame =
"-3UavaZorspaceab#>robGdate.csv"; String t&isine;
int i = ; /oat media;
@ileCnputStream 9s = ne:@ileCnputStream($2ame); RataCnputStream m,Cnput= ne: RataCnputStream(9s);
:&ile ((t&isine =m,Cnput.readine()) *= null) { String strar[] =t&isine.split("_");
$or(int =;%strar.lengt&;'') {
media=((@loat.parse@loat(strar[5])'@loat.parse@loat(strar[6])'@loat.parse@loat(strar[7])'@loat.parse@loat(strar[G])'@loat.parse@loat(strar[H]))0G);
i$(i==){ i$(== PPmedia=J) { String[] names ={strar[]+; Arra,s.sort(names);S,stem.out.print("Studentul3
"'names[]'" din anul de studiu3"'strar[#]'" are media3 "); S,stem.out.print(media); S,stem.out.println();
+
+ + +
+ +Mi&nea Andreea_5_G_J_H_7_ICon >itt_5_I_H_G_K_#Elici Con_6_J_J_K_#_K>uicar Cabela_7_5_5_#_#_H-ovaci Culian_#_H_H_H_#_ISQ01=. ititi dintr*un fsier text oimagine grascale reprezentataca o matrice de intregi.:maginea este urmata de maimulte fltre de convolutie.Aplicati aceste fltre peimaginea originala si afsati atatimaginea originala cat siimaginile rezultate.Himport ava.a:t.-olor;import ava.a:t.@ont;import ava.a:t.rap&ics;import ava.a:t.rap&ics5R;import ava.a:t.Cmage;import ava.a:t.Xoolit;import ava.a:t.image.uNeredCmage;import ava.a:t.image.uNeredCmageDp;import ava.a:t.image.-onvolveDp;import ava.a:t.image.Vernel;import ava.a:t.event.Zindo:Adapter;import ava.a:t.event.Zindo:Bvent;import ava4.s:ing.U@rame;import ava4.s:ing.U>anel;public class :magerocessingextends Janel {
private static 9nal longserialYersionECR = #; public String get2ame() { return "Cmage >rocessing"; +
8/17/2019 188600805-TEMA-IP.docx
43/55
Cmage image;public Cmage>rocessing() { image = Xoolit.getRe$aultXoolit().getCmage("-3UavaZorspaceab#>bI>oa.pg");
+
static String[] 9lter2ames =ne: String[] { "Driginal"!"lur"!"S&arpen"! "Bdge Retect"+;
static uNeredCmageDp[] 9lters= ne: uNeredCmageDp[] { null! ne: -onvolveDp(ne: Vernel(6!6! ne: /oat[] { #$! 5$! #$! 5$! 7$!5$! #$! 5$! #$+))! ne: -onvolveDp(ne: Vernel(6!
6! ne: /oat[] { L#$! L#$! L#$! L#$!K$! L#$! L#$! L#$! L#$ +))! ne: -onvolveDp(ne: Vernel(6!6! ne: /oat[] {L#$! L#$! L#$! L#$! J$!L#$! L#$! L#$! L#$+))+; public void paint(rap&ics g#){ rap&ics5R g =(rap&ics5R) g#;
uNeredCmage bimage =ne:uNeredCmage(image.getZidt&(t&is)!image.getTeig&t(t&is)!uNeredCmage.XQ>B8C2X8F); rap&ics5R ig =bimage.createrap&ics(); ig.dra:Cmage(image! ! !t&is);
g.set@ont(ne:@ont("SansSeri$"! @ont.DR! #5));
g.set-olor(-olor.red);g.translate(#! #);$or (int i = ; i %
9lters.lengt&; i'') {i$ (9lters[i] == null)
g.dra:Cmage(bimage! ! ! t&is); elseg.dra:Cmage(9lters[i].9lter(bimage!null)! ! ! t&is); g.dra:String(9lter2ames[i]! ! 5G);
g.translate(#6I! );+
+ public static void main(String[]a) { U@rame $ = ne: U@rame();
$.addZindo:istener(ne:Zindo:Adapter() { public void:indo:-losing(Zindo:Bvent e) { S,stem.e4it(); + +); $.set-ontent>ane(ne:Cmage>rocessing()); $.pac(); $.setYisible(true); +
+Tema 11
1. Sa se scrie o aplicatie Java distribuita
folosind o conexiune fara confirmare
(datagrame) care permite autentificarea
utilizatorilor. Utilizatorul va trimite numele
ca si datagrama iar aplicatia server asculta
pentru mesaje de autentificare timp de 25
secunde la finalul carora trimite clientului un
mesaj de notificare. !plicatia returneaza un
mesaj personalizat numelui utilizatorului in
caz de autentificare reusita clientul afisandmesajul. (se va folosi metoda etSo"imeout(ss)
pentru stabilirea timpului de ascultare la
soc#etul serverului)
import java.io.*;
import java.net.*;
public class U$%&lient {
public static void main(String[] args){try{
DatagramSocket socketne!
DatagramSocket();
System.out.println("Socket
initiali#at.client");String toSend"anca";
byte[] bu$$toSend.get%ytes();
Datagram&acket ptne!
Datagram&acket(bu$$'bu$$.lengt'netddress.ge
t%y+ame(",-././.,")',-01);
socket.send(pt);
byte[] bu$$erne! byte[-23];
8/17/2019 188600805-TEMA-IP.docx
44/55
Datagram&acket ppne!
Datagram&acket(bu$$er'bu$$er.lengt'netddres
s.get%y+ame(",-././.,")',-01);
socket.receive(pp);
System.out.println("4lient5m primitmesajul5 "6ne! String(bu$$er));
7catc(Socket89ception e){7
catc(:nkno!nost89ception er){7
catc(
8/17/2019 188600805-TEMA-IP.docx
45/55
Datagram&acket cererene!
Datagram&acket(bu$$'bu$$.lengt);
socket.receive(cerere);
String calene! String(bu$$);
String patroot6cale;
System.out.println("calea este5"6pat);
Aile $ne! Aile(pat);
AilenputStream trimitene!
AilenputStream($);
byte[] $isierne!
byte[(int)$.lengt()];
trimite.read($isier);
netddress
adresanetddress.get@ocalost();
Datagram&acket raspunsne!
Datagram&acket($isier'$isier.lengt'adresa'-//3) socket.send(raspuns);
socket.close();
trimite.close();
7
catc(Socket89ception e){7
catc(
8/17/2019 188600805-TEMA-IP.docx
46/55
System.out.println("4one9iune cu serverul
indisponibila ?");
return;
7
CCscrie mesajul toServer.println(mesaj);
7C**
* sculta' citeste si a$isea#a mesajul de la
server.
*C
public String citesteGesaj(){
String mesajne! String();
i$($romServer null){
String msg"4one9iune cu serverul
indisponibila ?";
return msg;
7
try {CCciteste mesaj
mesaj $romServer.read@ine();
7 catc (
8/17/2019 188600805-TEMA-IP.docx
47/55
CCinitiali#ea#a serverul
server ne! ServerSocket(port);
System.out.println("scult pentru cone9iunea
clientului ...");
CCasculta pentru cone9iunile clientilor client server.accept();
System.out.println("4lientul " 6client.getnetddress().getost+ame() 6 "
conectat ?");
CCcree# streamurile pentru scriereCcitire mesaje
$rom4lient ne! %u$$eredBeader(ne!
nputStreamBeader(client.getnputStream()));
to4lient ne!
&rintStream(client.get
8/17/2019 188600805-TEMA-IP.docx
48/55
specificata este un fisier se trimit clientului
marimea acestuia si data crearii. $aca
fisierul-directorul nu exista se trimite
clientului un mesaj corespunzator.
&onexiunea este folosita atat timp
cat clientul doreste acest lucru.
import java.io.%u$$eredBeader;import java.io.l.Date;
C**
* 89emplu de aplicatie distribuita care $oloseste
o cone9iune tcpCip
* pentru scimbul de mesaje de tip String.
** 4lasa implementea#a aplicatia server' care
permite
* conectarea si scimbul de mesaje cu
aplicatiile client. *
* Eautor 4alinHligor @ogin
*C
public class "&%Server +
CCportul $olosit pentru cone9iune
public int port -/,1;
CCsocketul server
private ServerSocket server; CCsocketul client
private Socket client;
CCstreamuri pentru comunicarea cu clientul
private %u$$eredBeader $rom4lient;
private &rintStream to4lient;
C** * 4reea#a serverul si asculta cererile pentru
cone9iune ale clientilor.
*C
public void startServer(){System.out.println("nitiali#e# aplicatia
server ..."); try {
CCinitiali#ea#a serverul
server ne! ServerSocket(port);
System.out.println("scult pentru cone9iunea
clientului ...");
CCasculta pentru cone9iunile clientilor
client server.accept();
System.out.println("4lientul " 6
client.getnetddress().getost+ame() 6 "
conectat ?");
CCcree# streamurile pentru scriereCcitire mesaje
$rom4lient ne! %u$$eredBeader(ne!
nputStreamBeader(client.getnputStream())); to4lient ne!
&rintStream(client.get
8/17/2019 188600805-TEMA-IP.docx
49/55
*C
public String citesteGesaj(){
String mesajne! String();
i$($rom4lient null){
String msg"4one9iune cu clientulindisponibila ?";
return msg; 7
try {
CCciteste mesaj
mesaj $rom4lient.read@ine();
7 catc (
8/17/2019 188600805-TEMA-IP.docx
50/55
public int port -/,1;
CCostul destinatie
private String destinatie;
CCsocketul client
private Socket client;
CCstreamuri pentru comunicarea cu
serverul
private %u$$eredBeader $romServer;
private &rintStream toServer;
C**
* Setea#a ostul destinatie.
* Eparam destinatie numele ostului.
*C public void setost+ame(String destinatie){
tis.destinatie destinatie; 7
C**
* nitiali#ea#a aplicatia client si se conectea#a la
server.
*C
public void conectea#aFte(){
i$(destinatie null){
System.out.println("ostul destinatie nu este
speci$icat ?");
return; 7
try {
System.out.println("ncerc cone9iunea la
server...");
CCinitiali#ea#a clientul
client ne! Socket(destinatie' port);
System.out.println("Gam conectat la serverul 5
" 6 destinatie);
CCcree# streamurile pentru scriereCcitire mesaje
$romServer ne! %u$$eredBeader(ne!
nputStreamBeader(client.getnputStream()));
toServer ne!
&rintStream(client.get
8/17/2019 188600805-TEMA-IP.docx
51/55
7
public long citesteGesaj@(){
long mesaj/;
i$($romServer null){
String msg"4one9iune cu serverulindisponibila ?";
return mesaj; 7
try {
CCciteste mesaj
mesaj $romServer.read();
7 catc (
8/17/2019 188600805-TEMA-IP.docx
52/55
import java.net.ServerSocket;
import java.net.Socket;
C**
* 89emplu de aplicatie distribuita care $olosesteo cone9iune tcpCip
* pentru scimbul de mesaje de tip String. *
* 4lasa implementea#a aplicatia server' care
permite
* conectarea si scimbul de mesaje cu
aplicatiile client.
*
* Eautor 4alinHligor @ogin
*C
public class "&%Server {
CCportul $olosit pentru cone9iune public int port ,-01;
CCsocketul server
private ServerSocket server;
CCsocketul client
private Socket client;
CCstreamuri pentru comunicarea cu clientul private %u$$eredBeader $rom4lient;
private &rintStream to4lient;
C** * 4reea#a serverul si asculta cererile pentru
cone9iune ale clientilor.
*C
public void startServer(){
System.out.println("nitiali#e# aplicatia
server ...");
try {
CCinitiali#ea#a serverul
server ne! ServerSocket(port);
System.out.println("scult pentru cone9iunea
clientului ...");
CCasculta pentru cone9iunile clientilor
client server.accept();
System.out.println("4lientul " 6
client.getnetddress().getost+ame() 6 "
conectat ?");
CCcree# streamurile pentru scriereCcitire mesaje
$rom4lient ne! %u$$eredBeader(ne!
nputStreamBeader(client.getnputStream())); to4lient ne!
&rintStream(client.get
8/17/2019 188600805-TEMA-IP.docx
53/55
7 catc (
8/17/2019 188600805-TEMA-IP.docx
54/55
try {
System.out.println("ncerc cone9iunea la
server...");
CCinitiali#ea#a clientul
client ne! Socket(destinatie' port);
System.out.println("Gam conectat la serverul 5
" 6 destinatie);
CCcree# streamurile pentru scriereCcitire mesaje
$romServer ne! %u$$eredBeader(ne!
nputStreamBeader(client.getnputStream()));
toServer ne!
&rintStream(client.get
8/17/2019 188600805-TEMA-IP.docx
55/55
String mesaj, "nr";
!ile(sumaJprag)
{client.trimiteGesaj(mesaj,);
mesclient.citesteGesaj();
System.out.println("numarul trimis este5"6mes);
nrnteger.parsent(mes); sumasuma6nr;
7
System.out.println("Suma citita este5 "6suma);
CCincid cone9iunea cu serverul
client.incide4one9iunea();
7
7