sâmbătă, 18 ianuarie 2025

Masive bidimensionale în Java

O matrice este o colecție de elemente de același tip, organizate în formă de tabel în care fiecare element este indexat de o pereche de numere ce identifică numărul de rând și numărul de coloană la intersecția cărora se află elementul.

În Java o matrice este formată din mai mulți vectori fiecare reprezentând câte un rând din matrice și mai este numită vector de vectori. 

O matrice bidimensională se declară în felul următor (asemănător ca la vectori): 

int[][] m; // declarația unei matrice bidimensională

sau

int m[][];

Ambele metode de declarare sunt corecte și produc același efect.

Înainte de a folosi o matrice aceasta trebuie creată, trebuie să îi fie alocat spațiu de memorie. De exemplu, următoarele doua secvențe de creare a unei matrici sunt echivalente: 

m = new int [3][5]; //se alocă spațiu pentru o matrice cu dimensiune 3 râduri și 5 coloane

sau
m = new int[3][]; //se alocă spațiu pentru o matrice cu dimensiune 3 râduri
m[0] = new int[5]; // se crează un rândul 0 din matrice cu 5 coloane
m[1] = new int[5]; // se crează un rândul 1 din matrice cu 5 coloane
m[2] = new int[5]; // se crează un rândul 2 din matrice cu 5 coloane
Rețineți faptul că, dacă utilizați prima modalitate forțați toate rândurile să conțină 5 coloane, pe când în cea de a doua rândurile pot avea număr de coloane diferit. 

De asemenea o matrice poate fi declarată și inițializată direct, ca în exemplul de mai jos: 
int[][] a = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
În acest caz compilatorul reține automat dimensiunea matricei în variabila length, despre care vorbim un pic mai jos. 

Pentru a accesa un element din matrice este necesar de a specifica indicele de rând și coloană la intersecția căruia se află elementul dorit folosind construcția: 

variabila_matrice[indice_rând][indice_coloană]
Exemplu:
int[][] m = new int [3][5];
m[1][2] = 39; // se atribuie elementului din rândul 1 coloana 2 valoarea 39
m[0][0] = 44; // se atribuie elementului din rândul 0 coloana 0 valoarea 44
System.out.println(m[1][2]); // se accesează elementul din rândul 1 coloana 2, se afișează 39

Folosind variabila length,  aveți posibilitatea de a obține numărul de rânduri și coloane a matricei. 
Fie ca m este o referință către o matrice, atunci:
  • m.length denotă numărul de rânduri
  • m[i].length denotă numărul de coloane a rândului i din matricea m
Rețineți faptul că, dacă toate rândurile au același număr de coloane puteți folosi expresia m[0].length.

De exemplu: 
double[][] v;
v = new double[15][20];
System.out.println(v.length); // afișează 15
System.out.println(v[0].length); // afișează 20
În exemplul ce urmează este ilustrat cum se lucrează cu un masiv bidimensional în Java folosind date introduse de la tastatură.

Programul începe prin citirea numărului de rânduri și de coloane, apoi creează masivul cu aceste dimensiuni. După aceea, utilizatorul introduce valorile elementelor, rând cu rând, ca într-un tabel.

La final, masivul este afișat pe ecran, pentru a verifica dacă toate datele au fost introduse corect.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.print("Introduceti numarul de randuri: ");
int n = sc.nextInt();
System.out.print("Introduceti numarul de coloane: ");
int m = sc.nextInt();

int[][] a = new int[n][m];

for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print("a[" + i + "][" + j + "] = ");
a[i][j] = sc.nextInt();
}}

System.out.println("Masivul introdus este:");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print(a[i][j] + " ");}
System.out.println();}
}}

Masivele bidimensionale reprezintă un element de bază în programare și se utilizează frecvent în rezolvarea problemelor reale. Înțelegerea modului în care sunt declarate, completate și parcurse în Java este foarte importantă pentru a putea lucra ulterior cu algoritmi mai complecși.

Prin micile exemple prezentate, scopul a fost de a oferi o explicație clară și accesibilă, pas cu pas, astfel încât orice începător să poată înțelege logica matricilor. Recomand exersarea cu diferite dimensiuni și valori, deoarece doar prin practică aceste concepte devin ușor de utilizat.

Succes!
❤️

joi, 16 ianuarie 2025

Aplicații Web utile în studierea diferitor discipline

  • https://www.wolframalpha.com/ - motor de calcul și cunoaștere bazat pe inteligență artificială care răspunde la întrebări complexe nu cu liste de pagini web, ci prin calcul direct și interpretare semantică a datelor. Poți introduce întrebări din știință, matematică, statistică, educație, date sociale sau tehnologie și platforma oferă rezultate calculate, grafice, explicații și interpretări precise. Spre deosebire de un motor de căutare obișnuit, Wolfram Alpha știe să rezolve expresii matematice, să genereze grafice, să interpreteze texte științifice și să ofere informații structurate pe baza unei vaste baze de date științifice și algoritmi sofisticați. 
  • https://www.desmos.com/ - platformă gratuită online de matematică interactiva, cunoscută mai ales pentru calculatorul său grafic deosebit de puternic și ușor de folosit. Aici poți desena funcții, grafice complexe, tabele de date și poți experimenta vizual cu concepte din algebră, trigonometrie și calcul. Profesorii și elevii pot folosi Desmos fără instalare, direct în browser, iar platforma oferă și materiale didactice interactive, activități și lecții gata de folosit. Este un instrument excepțional pentru predarea matematicii – face abstractul concret și ajută elevii să înțeleagă vizual relațiile dintre formule și grafice. 
  • https://www.geogebra.org/ - platformă educațională gratuită pentru matematică și științe, extrem de utilă în predarea și învățarea conceptelor din algebră, geometrie, trigonometrie, calcul, statistici și fizică. GeoGebra oferă instrumente interactive unde poți crea grafice, figuri geometrice dinamice, simulări și modele matematice, toate vizibile în timp real. Platforma este accesibilă din browser sau ca aplicație, iar profesorii pot genera resurse, activități și lecții interactive care îi ajută pe elevi să exploreze concepte abstracte vizual și practic.
  • https://www.symbolab.com/ calculator matematic online foarte puternic care te ajută să rezolvi pașii problemelor matematice: ecuații, integrale, derivate, trigonometrie, algebră și multe altele. Introduci expresia sau problema în căsuța de căutare și platforma oferă soluția detaliată pas cu pas, ceea ce este deosebit de util pentru învățare și predare. Instrumentul are o versiune gratuită cu funcționalități de bază și o versiune plătită care oferă explicații mai detaliate și pași suplimentari. Este un ajutor excelent în predarea matematicii deoarece îl poți folosi ca suport pentru a explica elevilor metodele de rezolvare, nu doar rezultatul final. 
  • https://chemequations.com/ - instrument online gratuit dedicat chimiei, conceput pentru a echilibra ecuațiile chimice și a completa produsele de reacție. Utilizatorul poate introduce sau selecta formule chimice, iar site‑ul ajută la balansarea reacțiilor conform legii conservării masei, afișând rezultatul corect și uneori explicând pașii de rezolvare. Platforma este accesibilă direct din browser, fără instalare, și este un ajutor util pentru elevi și profesori în studiul chimiei.