Sunteți pe pagina 1din 3

Laborator 1-2 Programare III

Săptămâna 3.10-7.10.2016 / 10.10 - 14.10.2016

OBIECTIVE:

- Scrierea unor aplicaţii simple Java folosind IDE-ul Eclipse, compilare, execuţie (pentru a

prezenta structura unui program).

- Operaţii cu tablouri

- Folosirea metodelor pentru obiecte din clasele String şi StringBuffer

- Scrierea unor programe simple Java în care datele de intrare sunt preluate fie din linia de comandă, fie generate aleator.

Documentaţie:

Tutorial:

Exerciţii:

1. Scrieţi un program Java care afişează numărul rezultat la aruncarea unui zar.

2. Scrieţi un program Java care calculează n!, unde 0<n<13 este un număr natural preluat ca

parametru pe linia de coandă.

3. Scrieţi un program Java care generează aleator un şir de n numere (n este preluat ca

parametru pe linia de comandă) şi afişează câte numere sunt mai mari decât un număr dat.

4. Scrieţi un program Java care calculează c.m.m.d.c. dintre două numere a şi b. Numerele a

şi b se vor prelua ca parametrii din linia de comandă.

5. Scrieţi un program Java care determină dacă un număr, n (n este preluat ca parametru pe

linia de comandă) este sau nu palindrom. (n este palindrom dacă este egal cu numărul citit de

la dreapta la stânga: ex. 121).

6. Scrieţi un program Java care calculează termenul al n-lea din şirul lui Fibonacci. (a1=1,

a2=1, an=an-1+an-2 , n≥3) Numărul n este preluat ca parametru pe linia de comandă.

7. Scrieţi un program Java care determină dacă un număr întreg generat aleator mai mic decât

300 este prim sau nu.

8. Scrieţi un program Java care calculează suma divizorilor naturali ai unui număr natural n şi

verifică dacă numărul este perfect. Un număr este perfect, dacă este egal cu suma divizorilor

proprii pozitivi. (de exemplu: 6=1+2+3). Să se genereze primele 4 numere perfecte. Numărul n este preluat ca parametru pe linia de comandă.

9. Scrieţi un program Java care simulează cele 4 operaţii de bază ale unui calculator de

buzunar (+,-,*,/), afişând pentru 2 numere rezultatul operaţiei, al cărui operator se va prelua ca argument din linia de comandă. Operanzii și operatorul se vor prelua ca parametrii de pe linia de comandă.

10. Să se ordoneze crescător elementele unui vector x, având elementele generate aleator.

11. Fie x şi y doi vectori cu câte n (n<100) elemente. Să se construiască matricea A cu

elementele A[i,j]=x[i]*y[j] şi vectorul z cu elementele z[i]=min{x[i],y[i]}.

12. Să se stabilească dacă un caracter dat (preluat din linia de comandă) aparţine sau nu unui

şir de caractere. Se vor preciza şi poziţiile unde apare caracterul.

13. Să se scrie un program care caută un subşir preluat din linia de comandă într-un şir dat.

(şirul este constant)

14. Pentru un şir preluat ca argument din linia de comandă să se afişeze lungimea sa, să se

înlocuiască ‘a’ cu ‘A’, să se afişeze un subşir al său, să se afişeze clasa căreia îi aparţine

obiectul şir, să se afişeze şirul cu litere mari (mici).

Observaţii:

1. Preluarea unor numere întregi din linia de comandă :

public static void main(String[] args) { int nr1,nr2,n3;

……………

nr1 = Integer.parseInt(args[0]); nr2 = Integer.valueOf(args[1]); nr3 = new Integer(args[2])

……………

}

2.

Generarea aleatoare a unui număr întreg

import java.util.Random; …………………………………… Random r=new Random(); nr=r.nextInt(); ………………………………………

Teme:

Termen de predare 21.10.2016

1. Se generează aleator o matrice A(m,n) de numere întregi.

- să se determine numărul elementelor prime şi numărul elementelor impare din matricea A;

- să se afişeze toate numerele pozitive divizibile cu 5 care se găsesc în matricea A şi poziţia în care apar;

- să se determine coloana care are suma elementelor cea mai mică;

- să se determine punctele şa (A[i][j]) ale matricii; A[i][j] este punct şa dacă este maxim pe linia i şi minim pe coloana j.

Obs. m şi n se vor prelua ca argumente din linia de comandă.

2. Să se scrie un program Java care:

• generează un vector de n numere întregi în intervalul [a,b], unde a şi b sunt două numere întregi primite ca argumente de la linia de comandă

• sortează vectorul generat folosind, pe rând, algoritmii BubbleSort, MergeSort şi metoda sort din clasa Array

• afişează timpii estimativi de execuţie pentru fiecare din procedee

Obs. Pentru aflarea timpului necesar execuţiei unei secvenţe de cod se va folosi metoda currentTimeMillis sau nanoTime() din clasa System.

Probleme suplimentare:

Ciurul lui Eratosthenes

Să se scrie o aplicaţie Java care generează primele n numere prime, folosind algoritmul numit "Ciurul lui Eratosthenes". n este primit ca argument la linia de comandă. Afişaţi timpul estimativ de execuţie al algoritmului. Să se folosească un tablou de valori de tip boolean pentru a reţine pentru fiecare număr în parte dacă este prim sau nu. Pentru aflarea timpului necesar execuţiei unei secvenţe de cod se va folosi metoda currentTimeMillis din clasa

System.

Joc de cărţi

Se considera x jucători si un pachet cu n cărţi de joc. Să se scrie o aplicaţie care creează pachetul de cărţi, îl amestecă şi împarte toate cărţile jucătorilor. Câştigă jucătorul care a primit o anumită carte "ţintă". x, n şi valoarea cărţii "ţintă" sunt primite ca argumente de la linia de comandă.

Observaţii:

Pe lângă Eclipse se pot folosi şi alte IDE-uri pentru a compila şi executa programe Java: NetBeans (IDE profesional), BlueJ (IDE academic – util pentru învăţarea limbajului - http://www.bluej.org/)