This is an old revision of the document!
Datele de intrare se vor da fie ca parametri în linia de comandă, fie ca valori fixe ale aplicațiilor!
Creați un proiect Java nou, apoi creați un fișier sursă simplu numit Prob1.java.
1. În acest fișier scrieți o clasă numită Test care conține metoda main și afișează în consolă mesajul ”Test Java”. Rulați programul și verificați apariția mesajului în fereastra Run
class Test { public static void main(String args[]) { System.out.println("Test Java"); } }
2. Adăugați modificatorul public în fața declarației clasei Test și încercați din nou să rulați. Observați eroarea raportată de IDE și apoi rezolvați-o făcând ca numele fișierului și numele clasei publice să coincidă. Puteți alege fie să redenumiți fișierul în Test.java, fie să redenumiți clasa în Prob1. Recompilați și rulați din nou pentru a confirma că problema este rezolvată și că mesajul este afișat corect.
Clasele care NU au atributul public pot avea un nume diferit de numele fișierului sursă, însă dacă adăugăm atributul public este obligatoriu ca numele clasei și numele fișierului sursă, în care se află clasa, să coincidă.
Scrieți un program în fișierul Prob2.java care definește o clasă Prob2 și o metodă nestatică numită printInt, ce primește un număr întreg și îl afișează la consolă. În metoda main, creați un obiect al clasei Prob2 (adică o instanță a clasei) și apelați metoda nestatică printInt de mai multe ori, folosind valori constante (de pildă 42, 7 + 5, 3 * 10).
Metoda printInt se va apela în main astfel:
Prob2 obiect = new Prob2(); // creare obiect de tip Prob2 obiect.printInt(42); //apelare metoda printInt obiect.printInt(7 + 5); obiect.printInt(3 * 10);
Creați un fișier numit Prob3.java în care scrieți două clase:
În main apelați metoda printInt folosind o instanță a clasei Printer, ca în exemplul de la problema precedentă.
Acum adăugați modificatorul public și la clasa Printer, încercați să compilați și observați eroarea. Pentru a corecta, păstrați o singură clasă publică pe fișier: lăsați Prob3 publică în Prob3.java și mutați Printer într-un fișier separat numit Printer.java, unde o puteți declara public. Compilați din nou și rulați Prob3.
Opțional, adăugați și în Printer o metodă main minimală care apelează printInt, apoi rulați-o separat pentru a confirma că ambele clase se pot executa independent când au propriul fișier.
Într-un fișier NU pot fi definite două clase publice.
Scrieți un program în fișierul Prob4.java care afișează toate argumentele primite în linia de comandă.
În metoda main, parcurgeți vectorul args și afișați, pentru fiecare element, indicele și valoarea lui, pe câte o linie separată. Dacă programul este rulat fără argumente, afișați un mesaj clar, de tipul “Nu s-au primit argumente.”.
Pentru testare, rulați programul de mai multe ori: fără argumente, cu un singur argument și apoi cu mai multe (ex.: Ana are mere). Observați cum se modifică lungimea vectorului args și ordinea elementelor afișate.
Argumentele se pot transmite astfel:
java numeprogram arg1 arg2 arg3
Scrieți în fișierul Prob5.java o clasă Prob5 care conține o metodă nestatică powInt(int baza, int exp) ce calculează recursiv puterea întreagă pentru exponenți pozitivi. În main alegeți câteva perechi constante de valori pentru bază și exponent (de exemplu 3^4, 2^10, 5^0), apelați metoda voastră și afișați rezultatul în consolă.
Pentru validare, afișați alături rezultatul returnat de Math.pow(baza, exp). Țineți cont că Math.pow întoarce un double, așa că înainte de o posibilă comparație trebuie să îl convertiți la tip întreg (long sau int, în funcție de intervalul valorilor alese). Păstrați bazele și exponenții suficient de mici încât rezultatul să nu depășească limitele tipului întreg pe care îl folosiți; dacă apare un rezultat “ciudat”, cel mai probabil s-a produs overflow.
Să se implementeze o clasă cu două metode:
boolean
care verifică dacă un număr întreg dat este prim;main
care verifică metoda anterioară pentru toate numerele naturale mai mici ca $20$.Să se scrie un program pentru verificarea ipotezei lui Goldbach pentru primele n numere pare, prin afișarea tuturor sumelor de două numere prime prin care poate fi exprimat un număr par. Variabila n poate fi inițializată cu o valoare constantă.
Ipoteza lui Goldbach: orice nr par poate fi descompus ca sumă de cel puțin o pereche de două numere prime. Se consideră $1$ ca fiind număr prim.
Pentru afișarea unei expresii de forma a = b + c
se va scrie:
System.out.println(a + " = " + b + " + " + c);
unde a
, b
, c
sunt variabile numerice de orice tip (short
, int
, long
, float
, double
).
Să se scrie un program pentru ordonarea unui vector de numere și căutarea binară în acest vector, folosind metodele statice sort() și binarySearch() din clasa Arrays. Vectorul va conține numere generate aleator folosind metoda statică random() din clasa Math, cu rezultat de tip double.