joi, 26 septembrie 2024

Calcule matematice în Java. Clasa Math

În Java, calculele matematice pot fi realizate ușor și precis folosind clasa Math. Aceasta conține metode și constante utile pentru operații numerice, trigonometrice, logaritmice și exponențiale.
Clasa Math face parte din pachetul java.lang, ceea ce înseamnă că nu trebuie importată. Toate metodele sunt statice, adică se apelează direct cu numele clasei, fără a crea un obiect.

Exemplu

double rezultat = Math.sqrt(25); // returnează 5.0

Clasa Math conține două constante matematice foarte folosite. Acestea sunt:

Math.PI // 3.141592653589793
Math.E  // 2.718281828459045

Metode de bază pentru calcule numerice

MetodăDescriereExempluRezultat
Math.abs(x)Valoarea absolutăMath.abs(-7)7
Math.max(a, b)Valoarea mai mareMath.max(10, 20)20
Math.min(a, b)Valoarea mai micăMath.min(3, 8)3
Math.sqrt(x)Rădăcină pătratăMath.sqrt(16)4
Math.pow(a, b)Ridicare la putereMath.pow(2, 3)8
Math.cbrt(x)Rădăcină cubică dintr-un numărMath.cbrt(27)3

Rotunjiri și conversii

MetodăDescriereExempluRezultat
Math.round(x)Rotunjește la cel mai apropiat întregMath.round(3.6)4
Math.floor(x)Rotunjește în josMath.floor(3.9)3
Math.ceil(x)Rotunjește în susMath.ceil(3.1)4

Funcții trigonometrice și logaritmice

MetodăDescriereExempluRezultat
Math.sin(x)Sinus (radiani)Math.sin(Math.PI / 2)1
Math.cos(x)CosinusMath.cos(0)1
Math.tan(x)TangentăMath.tan(Math.PI / 4)1
Math.log(x)Logaritm natural (baza e)Math.log(Math.E)1
Math.log10(x)Logaritm zecimalMath.log10(100)2

Conversii între grade și radiani:

Math.toRadians(180); // 3.1415... Math.toDegrees(Math.PI); // 180

Generarea numerelor aleatoare

Cu ajutorul clasei în studiu, în Java, putem genera numere aleatoare folosind metoda
Math.random(). Aceasta returnează un număr real între 0.0 (inclusiv) și 1.0 (exclusiv).

Exemple: 
Generare număr aleator între 0 și 1 
double aleator = Math.random(); 
System.out.println("Număr aleator: " + aleator);

Generare număr întreg între 0 și 9:
int numarInt = (int)(Math.random() * 10);
System.out.println("Număr întreg aleator: " + numarInt);


Generare un număr întreg între două valori, de exemplu notate cu min și max: 
int min = 5; 
int max = 15; 
int numarAleator = min + (int)(Math.random() * (max - min + 1)); System.out.println("Număr aleator între " + min + " și " + max + ": " + numarAleator); 

sau
int aleator = (int)(Math.random() * 9) + 5; // min=5 și max=13
System.out.println("Număr aleator între 5...13 " + aleator);
Această metodă este foarte utilă pentru simulări, jocuri sau teste care necesită valori aleatoare.

Exemple practice

1️⃣ Aria și circumferința unui cerc:

double r = 5;
double aria = Math.PI * Math.pow(r, 2);
double circumferinta = 2 * Math.PI * r;
System.out.println("Aria: " + aria);
System.out.println("Circumferința: " + circumferinta);

2️⃣ Distanța dintre două puncte:

double x1 = 2, y1 = 3, x2 = 7, y2 = 9;
double distanta = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
System.out.println("Distanța: " + distanta);

3️⃣ Calcul trigonometric:

double grade = 45;
double rad = Math.toRadians(grade);
System.out.println("Sin(45 grade) = " + Math.sin(rad)); 

Știai că? Constanta Math.PI

PI (π) este raportul dintre circumferința unui cerc și diametrul său. Indiferent de mărimea cercului, acest raport este mereu același: aproximativ 3.14159.

Se utilizează în calcule geometrice și trigonometrice, cum ar fi aria sau lungimea cercului.

PI este un număr irațional – are infinit de multe zecimale care nu se repetă niciodată.

Știai că? Constanta Math.E

E (≈ 2.71828) este cunoscută drept constanta lui Euler și reprezintă baza logaritmului natural.

Se folosește în calcule cu creșteri exponențiale, logaritmi și funcții matematice avansate:

System.out.println(Math.E);       // 2.718281828459045
System.out.println(Math.exp(1));  // e^1 = 2.718281828459045
System.out.println(Math.log(Math.E)); // 1

E apare frecvent în calculele din știință, economie și informatică, unde sunt implicate procese de creștere continuă.

Să aveți o zi deosebită! 
💝

luni, 23 septembrie 2024

Set de probleme pentru exersarea și aplicarea operațiilor pe vectori unidimensionali

  1. Elaborați un program Java care va declara un vector ce va conține elementele 4, 5, 7, 0, 5, 6. Programul va afișa la ecran elementele vectorului.
  2. Elaborați un program care va întreba numele utilizatorului, îl va saluta, îi va cere dimensiunea vectorului și apoi elementele acestuia. Programul să afișeze vectorul introdus.
  3. Elaborați un program Java care va va calcula suma elementelor unui vector.
  4. Elaborați un program Java care va înlocui elementele divizibile la 3 dintr-un vector cu cifra 3.
  5. Se dă un vector de n numere și un număr d. Elaborați un program care va afișa elementele vectorului divizibile la d.
  6. Elaborați un program Java care va afișa numărul de elemente pare dintr-un vector, elementele pare şi pozițiile acestora.
  7. Se dă un vector de 10 numere întregi. Elaborați un program care va afișa pe primul rând numerele pare şi pe al doilea cele impare.
  8. Să se elaboreze un program care va calcula maximul elementelor negative și suma elementelor pozitive ce se conțin într-un vector de dimensiunea n cu elemente numere întregi.
  9. Să se elaboreze un program care va determina elementul maximal și numărul de apariții ale lui într-un tablou liniar de dimensiunea n cu elemente numere reale.
  10. Să se scrie un program care va determina numărul schimbărilor de semn într-un tablou liniar de dimensiunea n cu elemente numere naturale nenule.
  11. Elaborați un program care va citi dimensiunea și elementele unui vector de la tastatură și va afișa media aritmetică a tuturor elementelor vectorului.
  12. Elaborați un program care va citi dimensiunea și elementele unui vector de la tastatură. Programul va număra câte elemente sunt pozitive, negative și egale cu zero.
  13. Elaborați un program care va citi dimensiunea și elementele unui vector de la tastatură. Programul va solicita utilizatorului o valoare de căutat în vector și va afișa dacă aceasta există sau nu. Dacă valoarea este găsită, se va afișa și poziția la care se află.
  14. Elaborați un program care să citească de la tastatură dimensiunea și elementele a doi vectori de aceeași mărime. Programul va calcula suma celor doi vectori element cu element și va stoca rezultatul într-un al treilea vector. La final, se vor afișa pe ecran toate valorile cele trei vectori însoțite de mesaje user-friendly.
  15. Elaborați un program Java care va citi de la tastatură dimensiunea și elementele unui vector. Programul va calcula și afișa două valori, suma elementelor de pe poziții pare și suma elementelor de pe poziții impare.
  16. Elaborați un program Java care va citi de la tastatură dimensiunea și elementele unui vector. Programul va calcula și afișa câte elemente sunt mai mari decât media elementelor din vector.
  17. Elaborați un program Java care să citească de la tastatură dimensiunea și elementele unui vector, precum și două valori care definesc un interval. Programul va afișa toate valorile din vector care se încadrează în acest interval.
  18. Elaborați un program Java care va citi de la tastatură dimensiunea și elementele unui vector. Va afișa vectorul introdus pe o singură linie. După care va cere utilizatorului să aleagă cum dorește să fie vectorul sortat: prin metoda bulelor, prin metoda inserției sau prin metode selecției. În dependență de opțiunea aleasă programul va sorta vectorul introdus de utilizator și va afișa vectorul sortat însoțit de mesaje sugestive.
  19. Elaborați un program Java care va citi de la tastatură dimensiunea și elementele a doi vectori de aceeași dimensiune. Programul va combina vectorii, astfel încât să se obțină un al treilea vector intercalat (elemente alternativ din primul și al doilea vector). De exemplu: dacă avem doi vectori: Vector A: 1, 3, 5 și Vector B: 2, 4, 6 se va afișa Vector C: 1, 2, 3, 4, 5, 6