Rezolvare fişă de laborator Java Iniţiere în limbajul Java Ex 1: Scrie următorul program Java folosind JCreator apoi încercă să-l înţelegi. public class primulprg System.out.println("Acesta este primul program de Java."); //main //class primulprg ATENŢIE!!! Fişierul trebuie salvat cu numele primulprg.java Ex 2: Pornind de la programul anterior rezolvaţi următoarele probleme: Se dă un număr natural N. Determinaţi şi afişaţi valoarea sumei S=1+2+3+...+N. Salvaţi problema cu numele sumanumere.java; public class sumanumere static int N=10; System.out.println("Afisez suma primelor "+N+" numere naturale."); int s=0; for(int i=1; i<=n; i++) s+=i; System.out.println(" Suma este: "+s); //main //class sumanumere Se dau trei numere reale A, B, C. Determinaţi daca numerele pot forma laturile unui triunghi şi în caz afirmativ afişaţi tipul triunghiului (echilateral, obtuzunghic, ascuţitunghic, drept, isoscel) Salvaţi problema cu numele triunghi.java; public class triunghi double A=3, B=4, C=5; System.out.println("Numerele introduse: "+A+", "+B+" si "+C+" formeaza: "); if( ( A<B+C ) && ( B<A+C) && ( C<A+B ) ) //numerele pot forma laturile unui triunghi if( (A*A==B*B+C*C) (B*B==A*A+C*C) (C*C==A*A+B*B) ) System.out.println(" - un triunghi dreptunghic"); else if ( (A*A>B*B+C*C) (B*B>A*A+C*C) (C*C>A*A+B*B) ) System.out.println(" - un triunghi obtuzunghic"); else System.out.println(" - un triunghi ascutitunghic"); if ( (A==B) && (B==C) ) System.out.println(" - un triunghi echilateral"); else if ( (A==B) (A==C) (B==C) ) 1
System.out.println(" - un triunghi isoscel"); else System.out.println(" - nu pot forma laturile unui triunghi"); //main //class triunghi Se dau trei numere reale A, B, C care reprezintă coeficienţii ecuaţiei de gradul al doilea. Determinaţi şi afişaţi rădăcinile ecuaţiei. Salvaţi problema cu numele ecuatiegr2.java; public class ecuatiegr2 int A=1, B=-4, C=3; //main //class ecuatie System.out.println("Numerele introduse sunt: "+A+", "+B+" si "+C); System.out.println("Solutile ecuatiei: "); if( A!=0 ) double delta = B*B-4*A*C; if ( delta > 0 ) double x1=(-b+math.sqrt(delta))/(2*a); double x2=(-b-math.sqrt(delta))/(2*a); System.out.println(" x1="+x1); else System.out.println(" double x = -B/(2*A); System.out.println(" x2="+x2); x="+x); else System.out.println(" Nu avem ecuatie de gradul II"); Se dă un număr natural N. Determinaţi şi afişaţi valoarea produsului cifrelor numărului citit. Salvaţi problema cu numele produscifre.java; public class produscifre int N=18532; System.out.println("Numarul introdus este: "+N); int p=1; while ( N!=0 ) p *= N%10; N /= 10; System.out.println(" Produsul cifrelor numarului este: "+p); //main //class produscifre 2
Se dă un număr natural N. Determinaţi şi afişaţi daca numărul citit este palindrom sau nu (cifrele egal depărtate de capetele numărului sunt egale). Salvaţi problema cu numele palindron.java; public class palindrom int N=18581; System.out.println("Numarul introdus este: "+N); int n1=n,nn=0; while ( n1!=0 ) nn = nn*10 + n1%10; n1 /= 10; if( nn==n ) System.out.println(" Numarul este palindrom"); else System.out.println(" Numarul NU este palindrom"); //main //class palindrom NOTĂ: Problemele se vor rezolva cu ajutorul constantelor fără a se utiliza citiri de date; Structurile repetitive / alternative şi tipurile de date sunt identice cu cele din C++. Ex 3: Scrie următorul program Java folosind JCreator apoi încercă să-l înţelegi. public class primacitire System.out.print(" Introdu un text: "); String t = cin.getstring(); System.out.print(" Introdu un singur caracter: "); char c = cin.getchar(); System.out.print(" Introdu un numar intreg: "); int i = cin.getint(); System.out.print(" Introdu un numar real: "); double d = cin.getdouble(); System.out.print("\n\n\n"); System.out.println(" Textul introdus de tine este: "+t); System.out.println(" Caracterul introdus de tine este: "+c); System.out.println(" Intregul introdus de tine este: "+i); System.out.println(" Realul introdus de tine este: "+d); //main //class primacitire ATENŢIE!!! Fişierul trebuie salvat cu numele primacitire.java 3
Ex4: Modifică problemele de la exerciţiul 2 astfel încât să permită citirea valorilor de la tastatura în timpul rulării (se vor elimina constantele). NOTĂ: Se poate folosi drept model programul de la exerciţiul 3; Noua versiune a fiecărui program va fi salvată cu un alt nume. (Pentru programul sumanumere.java noua denumire ar putea fi sumanumere2.java ) sumanumere2.java public class sumanumere2 System.out.print(" Introdu numarul natural N: "); int N = cin.getint(); System.out.println("Afisez suma primelor "+N+" numere naturale."); int s=0; for(int i=1; i<=n; i++) s+=i; System.out.println(" Suma este: "+s); //main //class sumanumere2 triunghi2.java public class triunghi2 System.out.print(" Introdu numarul real A: "); double A = cin.getdouble(); System.out.print(" Introdu numarul real B: "); double B = cin.getdouble(); System.out.print(" Introdu numarul real C: "); double C = cin.getdouble(); System.out.println("Numerele introduse: "+A+", "+B+" si "+C+" formeaza: "); if( ( A<B+C ) && ( B<A+C) && ( C<A+B ) ) //numerele pot forma laturile unui triunghi if ( (A*A==B*B+C*C) (B*B==A*A+C*C) (C*C==A*A+B*B) ) System.out.println(" - un triunghi dreptunghic"); else if ( (A*A>B*B+C*C) (B*B>A*A+C*C) (C*C>A*A+B*B) ) System.out.println(" - un triunghi obtuzunghic"); else System.out.println(" - un triunghi ascutitunghic"); 4
if ( (A==B) && (B==C) ) System.out.println(" - un triunghi echilateral"); else if ( (A==B) (A==C) (B==C) ) System.out.println(" - un triunghi isoscel"); else System.out.println(" - nu pot forma laturile unui triunghi"); //main //class triunghi2 ecuatiegr22.java public class ecuatiegr22 System.out.print(" Introdu numarul real A: "); double A = cin.getdouble(); System.out.print(" Introdu numarul real B: "); double B = cin.getdouble(); System.out.print(" Introdu numarul real C: "); double C = cin.getdouble(); System.out.println(" Numerele introduse sunt: "+A+", "+B+" si "+C); System.out.println(" Solutiile ecuatiei sunt: "); if( A!=0 ) double delta = B*B-4*A*C; if ( delta > 0 ) double x1=(-b+math.sqrt(delta))/(2*a); double x2=(-b-math.sqrt(delta))/(2*a); System.out.println(" x1="+x1); System.out.println(" x2="+x2); else double x = -B/(2*A); System.out.println(" x="+x); //main //class ecuatiegr22 else System.out.println(" Nu avem ecuatie de gradul II"); produscifre2.java public class produscifre2 5
System.out.print(" Introdu numarul natural N: "); int N = cin.getint(); System.out.println(" Numarul introdus este: "+N); int p=1; while ( N!=0 ) p *= N%10; N /= 10; System.out.println(" Produsul cifrelor numarului este: "+p); //main //class produscifre2 palindrom2.java public class palindrom2 System.out.print(" Introdu numarul natural N: "); int N = cin.getint(); System.out.println(" Numarul introdus este: "+N); int n1=n,nn=0; while ( n1!=0 ) nn = nn*10 + n1%10; n1 /= 10; if( nn==n ) System.out.println(" Numarul este palindrom"); else System.out.println(" Numarul NU este palindrom"); //main //class palindrom2 6
package Citire; import java.io.*; Codul sursa pentru clasa Citire public class Citire public String getstring() String s = " "; try InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); s = br.readline(); catch (IOException e) System.out.println(" EROARE DE CITIRE!!! Mesaj: "+e.getmessage()); return s; public char getchar() boolean Ok; String s; char c=' '; do try Ok = true; s = getstring(); c = s.charat(0); catch (StringIndexOutOfBoundsException e) Ok = false; while (!Ok); return c; public int getint() boolean Ok; String s; int i = 0; do try Ok = true; s = getstring(); i = Integer.parseInt(s); catch (NumberFormatException e) Ok = false; while (!Ok); return i; 7
public double getdouble() boolean Ok; String s; double d = 0; do try Ok = true; s = getstring(); d = Double.parseDouble(s); catch (NumberFormatException e) Ok = false; while (!Ok); return d; ATENTIE!!! Această clasă trebuie salvată într-un fişier cu numele Citire.java într-un dosar nou (în dosarul în care vor fi salvate programele java) denumit Citire 8