Sunteți pe pagina 1din 27

Ministerul Educației și Cercetării al Republicii Moldova

Instituția Publică Liceul Teoretic ”Vasile Vasilache”

REFERAT
Tema: Un studiu cuprinzător al tabelelor unidimensionale, bidimensionale
și multidimensionale în informatică

Realizat: Gulga Sergiu


Elev în clasa a XI-a ”A”

Verificat: Guțu Maria,


Profesoară de informatică

Chișinău - 2023
CUPRINS
Abstract..............................................................................................................3

1. Introducere.....................................................................................................5

2. Tabele unidimensionale................................................................................7

3. Tabele bidimensionale.................................................................................12

4. Tabelele multidimensionale........................................................................16

5. Analiza comparativă a tabelelor unidimensionale, bidimensionale și


multidimensionale...........................................................................................21

6. Strings:.........................................................................................................23

7. Concluzie:.....................................................................................................25

Bibliografie:.....................................................................................................26

2
Abstract
În domeniul informaticii, tabelele sunt esențiale deoarece ajută la organizarea și
manipularea eficientă a datelor. Matricele unidimensionale sunt aranjamente liniare de
elemente care permit acces rapid și recuperare. Aceste structuri ajută la sortarea, căutarea
și procesarea datelor, ceea ce le face esențiale în proiectarea algoritmilor. Tablelele
unidimensionale sunt, de asemenea, necesare bazelor de date, deoarece permit stocarea
organizată an interogărilor și execuția rapidă an acestora, ceea ce este esențial pentru o
varietate de aplicații.
Tablourile bidimensionale, care sunt adesea prezentate ca matrice, sporesc
complexitatea și flexibilitatea reprezentării datelor. În domenii precum procesarea
imaginilor, aceste tabele sunt esențiale, deoarece grupează valorile pixelilor într-o grilă.
Deoarece pot reprezenta modele spațiale și relații, sunt adesea utilizate în aplicațiile
grafice. Algoritmii care folosesc abordări bazată pe grilă, cum ar fi găsirea căilor și
simulările, beneficiază de tabele bidimensionale. Tabelele bidimensionale oferă un cadru
flexibil pentru modelare și rezolvarea diferitelor probleme de calcul prin organizarea
datelor în rânduri și coloane.
Această lucrare oferă o analiză amănunțită a tabelelor de calculator. Se vorbește
despre structurile unidimensionale, bidimensionale și multidimensionale, precum și despre
modul în care acestea au fost dezvoltate în timp.
Capitolele din această carte discută caracteristicile, utilizările și dificultățile
diferitelor dimensiuni de tabel. Se discută despre utilizarea tabelelor unidimensionale în
bazele de date și a algoritmilor de optimizare, a tabelelor bidimensionale în procesarea
imaginilor și a algoritmilor bazați pe grilă și a tabelelor multidimensionale în depozitarea
datelor și a inteligenței de afaceri.

.
3
Importanța tabelelor în informatică.
Tabelele sunt importante în calcul deoarece permit organizarea și manipularea
eficientă a informațiilor. Matricele sau matricele unidimensionale sunt utile în special
pentru accesarea și preluarea rapidă a datelor. Ele sunt esențiale pentru proiectarea
algoritmilor, sortarea, căutarea și procesarea datelor. În plus, tabelele unidirecționale
formează baza bazei de date, asigurând stocarea ordonată și executarea rapidă a
interogărilor pentru diverse aplicații. Tabelele cu două sensuri, adesea prezentate ca tabele,
adaugă complexitate și flexibilitate modului în care sunt prezentate datele. Ele sunt
importante în domenii precum procesarea imaginilor și aplicațiile grafice, deoarece ajută la
aranjarea valorilor pixelilor în grile și reprezintă relații și modele spațiale. Aceste tabele
sunt, de asemenea, importante pentru algoritmii care utilizează o abordare bazată pe grilă,
cum ar fi algoritmii de căutare a căii și de simulare. Prin organizarea datelor în rânduri și
coloane, tablourile bidimensionale oferă un cadru flexibil pentru modelarea și rezolvarea
diferitelor probleme de calcul. Matricele multidimensionale sunt importante în informatică
deoarece pot reprezenta structuri și relații complexe de date. Sunt utile în special în
situațiile în care datele au multe dimensiuni sau atribute, cum ar fi depozitele de date și
inteligența de afaceri. Aceste tabele permit interogarea și analiza eficientă a seturilor mari
de date, facilitând astfel luarea deciziilor într-o varietate de domenii. Tabelele, în
diferitele lor forme, sunt esențiale pentru organizarea și reprezentarea informațiilor într-un
mod care să se potrivească provocărilor de calcul ale diferitelor aplicații și discipline.
Acest articol subliniază în mod intenționat explorarea matricelor unidimensionale,
bidimensionale și multidimensionale, recunoscând importanța lor fundamentală în
informatică. Matricele unidimensionale, reprezentate ca matrice, formează baza diverșilor
algoritmi și structuri de date, iar cercetările examinează caracteristicile, aplicațiile și
implementările lor din lumea reală. Explorarea se extinde la matrice bidimensionale, cum
ar fi matrice, evidențiind rolul lor în grafica și algoritmii de procesare a imaginii. Cu
accent pe explorarea acestor structuri, articolul oferă o perspectivă cuprinzătoare asupra
contribuțiilor lor la peisajul multifațetat al calculului, al teoriei conexiunilor și al
aplicațiilor practice.

4
1. Introducere
1.1 Context
Tabelele care organizează datele au fost folosite încă de la primele eforturi de
calcul. Invenția cărților perforate și a mașinilor de tabelare la sfârșitul secolului al XIX-lea
de către Herman Hollerith a jucat un rol important în automatizarea procesării datelor și în
utilizarea tabelelor pentru a reprezenta informații. Odată cu apariția computerelor
electronice la mijlocul secolului al XX-lea, foile de calcul au devenit din ce în ce mai
importante în calcul. Electronic Numerical Integrator and Computer (ENIAC), creat de
John W. Mauchly și J. Presper Eckert a jucat un rol cheie în dezvăluirea potențialului
computerelor electronice și în a pune bazele progreselor în managementul datelor.
Dezvoltarea și importanța tabelelor în prezentarea datelor. Dezvoltarea tabelelor ca
modalitate de a reprezenta datele a fost o călătorie interesantă, de la metode manuale de
bază la structuri complexe utilizate în calculul modern. Foile de calcul au fost inițial liste
și înregistrări scrise de mână, dar invenția lui Herman Hollerith a cardurilor perforate a
revoluționat procesarea datelor. Foile de calcul au fost ulterior încorporate în
calculatoarele timpurii precum ENIAC și au devenit o parte importantă a bazelor de date,
oferind o modalitate structurată de organizare și accesare a informațiilor. Tabelele sunt
extrem de importante în reprezentarea datelor și sunt utilizate în multe aspecte diferite ale
tehnologiei informației. În bazele de date, tabelele sunt folosite pentru a organiza diferite
tipuri de date și pentru a stabili relații între entități. Formatele tabelare facilitează căutarea,
indexarea și actualizarea datelor, ajutând la dezvoltarea unor sisteme de date fiabile și
scalabile. Tabelele sunt, de asemenea, esențiale în aplicațiile de foi de calcul, de analiză
statistică și de vizualizare a datelor, deoarece oferă un cadru flexibil pentru interpretarea și
comunicarea informațiilor complexe. Dezvoltarea tabelelor a însemnat progrese în
reprezentarea datelor și influența durabilă a informațiilor structurate.

1.2 Obiective
Acest articol își propune să studieze cuprinzător tipurile de matrice în informatică,
în special structurile unidimensionale, bidimensionale și multidimensionale. Scopul
principal este de a examina caracteristicile tablourilor unidimensionale și de a explora

5
proprietățile fundamentale ale acestora în reprezentarea și manipularea datelor. Prin
explorarea complexității structurale, a manipulării și a dificultăților asociate, studiul
încearcă să ofere o înțelegere detaliată a modului în care rețelele unidimensionale servesc
ca elemente importante în proiectarea algoritmilor, matematica și stocarea datelor.
Scopul principal este de a studia caracteristicile și utilizări ale tablourilor
bidimensionale, adesea reprezentate ca matrici. Aceasta implică luarea în considerare a
versatilității lor, a modului în care pot fi manipulate și a modului în care sunt utilizate în
situații din viața reală. Prin studierea tablourilor bidimensionale, articolul își propune să
demonstreze importanța acestora în domenii precum procesarea imaginilor, algoritmii
grafici și alte situații în care structurile bidimensionale sunt benefice. Înțelegerea punctelor
forte și a punctelor slabe ale matricelor bidimensionale va ajuta la înțelegerea completă a
rolului acestora în diferite sarcini de calcul.
Acest articol își propune să exploreze utilizarea matricelor multidimensionale în
procesarea scenariilor complexe de date. Acesta discută principiile și aplicațiile acestor
tabele și subliniază importanța acestora în contextul depozitării datelor și al business
intelligence. Articolul evidențiază, de asemenea, capacitatea matricelor multidimensionale
de a capta relații complexe în date, făcându-le un instrument valoros pentru navigarea
peisajelor de date complexe.
În rezumat, acest articol își propune să revizuiască în detaliu caracteristicile
matricelor unidimensionale, să exploreze în detaliază proprietățile și aplicațiile tablourilor
bidimensionale și obține o înțelegere aprofundată a principiilor și aplicațiilor tablourilor
multidimensionale. Această abordare cuprinzătoare se străduiește să ofere perspective
valoroase asupra rolului acestor structuri de tabel în calcul și să ne îmbunătățească
înțelegerea semnificației și utilității lor în calcul.contexte de calcul diferite.

6
2. Tabele unidimensionale
2.1 Proprietăți de bază
Tabelele unidimensionale, constituie o structură de date fundamentală în
informatică, oferind o aranjare liniară și secvențială a elementelor.
Proprietățile de bază ale tabelelor unidimensionale includ:
 Declarație și inițializare:

program UnidimensionalTables;

const
MaxSize = 5;

var
MyTable: array[1..MaxSize] of Integer;
i: Integer;

begin
//
for i := Low(MyTable) to High(MyTable) do
MyTable[i] := 0;

// Cod aditional poate urma


end.

În acest exemplu, MyTable este un tabel unidimensional de numere întregi,


inițializat cu toate elementele setate la 0. Mărimea este fixată la compilare, iar elementele
sunt accesate prin indici care variază de la 1 la MaxSize.

7
 Elemente omogene:

Tabelele unidimensionale sunt caracterizate de elemente omogene, ceea ce


înseamnă că toate elementele din matrice au același tip de date. Acest lucru asigură
coerența în reprezentarea și manipularea datelor.
program HomogeneousUnidimensionalTable;

var
Numbers: array[1..5] of Integer;
i: Integer;

begin

Numbers[1] := 10;
Numbers[2] := 20;
Numbers[3] := 30;
Numbers[4] := 40;
Numbers[5] := 50;

// Cod aditional poate urma


end.

În acest exemplu, Numbers este un tabel unidimensional de numere întregi,


subliniind omogenitatea tipurilor de date.
Operații și manipulări
Tabelele unidimensionale suportă diverse operații și manipulări, permițând
manipularea și procesarea eficientă a datelor. Operațiunile de bază includ:
 Inserare și modificare:

program InsertionModification;

var
MyArray: array[1..3] of String;
i: Integer;

begin

MyArray[1] := 'Mar';
MyArray[2] := 'Banana';
MyArray[3] := 'Portocala';

// Modificare
MyArray[2] := 'Strugure';
// Cod aditional poate urma
end.

8
În acest exemplu, MyArray este un tabel unidimensional de string-uri. Elementele
sunt inserate și modificate pentru a demonstra capacitățile de bază de manipulare.
 Preluare și afișare:

program RetrievalDisplay;

var
Temperature: array[1..7] of Real;
i: Integer;

begin

for i := Low(Temperature) to High(Temperature) do


writeln('Day ', i, ': ', Temperature[i], ' °C');

// Cod aditional poate urma


end.

În acest exemplu, Temperature este un tabel unidimensional de numere reale.


Elementele sunt preluate și afișate, prezentând operațiunile de bază de extragere și afișare.

Tabelele unidimensionale, cu structura lor simplă, dar puternică, servesc drept bază
pentru structuri de date și algoritmi mai complexe. Proprietățile lor de bază le fac versatile
pentru o gamă largă de aplicații în informatică.

9
2.2 Aplicații
program AdvancedDBMS;

var
StudentIDs: array of Integer;
i: Integer;

begin
SetLength(StudentIDs, 100);

for i := Low(StudentIDs) to High(StudentIDs) do


StudentIDs[i] := Random(1000);

for i := Low(StudentIDs) to High(StudentIDs) do


writeln('Student ', i, ' ID: ', StudentIDs[i]);

end.

În acest exemplu, alocarea dinamică a memoriei ne permite să gestionăm un număr


variabil de ID-uri de studenți. Utilizarea array-urilor dinamice îmbunătățește
adaptabilitatea.
program AdvancedIndexing;

type
Employee = record
ID: Integer;
Name: string;
end;

var
EmployeeTable: array of Employee;
Index: array of Integer;
i: Integer;

begin
SetLength(EmployeeTable, 100);
SetLength(Index, 100);

for i := Low(EmployeeTable) to High(EmployeeTable) do


begin
EmployeeTable[i].ID := Random(1000);
EmployeeTable[i].Name := 'Employee ' + IntToStr(i);
Index[i] := i;
end;

SortEmployees(EmployeeTable, Index);

end.

10
Aici, SortEmployees reprezintă un algoritm de sortare care rearanjează
EmployeeTable pe baza ID-urilor de angajat, menținând în același timp ordinea inițială în
tabelul Index. Acest mecanism avansat de indexare facilitează operațiuni eficiente de
căutare și regăsire.

program AdvancedBinarySearch;

var
SortedData: array[1..1000] of Integer;
TargetValue: Integer;
Index: Integer;

begin

TargetValue := Random(1000);
Index := AdvancedBinarySearch(SortedData, TargetValue);

end.

În acest exemplu, AdvancedBinarySearch reprezintă un algoritm de căutare binar


optimizat care localizează eficient TargetValue în tabloul SortedData. Tehnicile avansate
de optimizare asigură o operație de căutare mai rapidă și mai robustă.
program AdvancedDynamicProgramming;

const
MaxWeight = 50;

var
KnapsackValues: array[0..MaxWeight] of Integer;
Weight, Value: array[1..10] of Integer;
i, j: Integer;

begin

for i := 1 to 10 do
for j := MaxWeight downto Weight[i] do
KnapsackValues[j] := Max(KnapsackValues[j], KnapsackValues[j -
Weight[i]] + Value[i]);

end.

Aici, KnapsackValues este un tabel unidimensional care stochează soluții optime


pentru subprobleme, prezentând rolul său esențial în scenariile avansate de programare
dinamică.
11
3. Tabele bidimensionale
3.1 Proprietăți de bază
Tabelele bidimensionale, cunoscute în mod obișnuit ca matrici, introduc o
dimensiune suplimentară, permițând organizarea și manipularea datelor mai complexe.
Acest capitol explorează proprietățile fundamentale ale tabelelor bidimensionale,
concentrându-se pe structura, elementele și operațiile de bază ale acestora.
 Declarație și inițializare:

program BidimensionalTables;

const
Rows = 3;
Columns = 4;

var
MyMatrix: array[1..Rows, 1..Columns] of Integer;
i, j: Integer;

begin

for i := 1 to Rows do
for j := 1 to Columns do
MyMatrix[i, j] := 0;

end.

În acest exemplu, MyMatrix este un tabel bidimensional cu 3 rânduri și 4 coloane,


inițializat cu toate elementele setate la 0.
 Elemente omogene:.

program HomogeneousBidimensionalTable;

var
PixelValues: array[1..Rows, 1..Columns] of Integer;intensities
i, j: Integer;

begin

for i := 1 to Rows do
for j := 1 to Columns do
PixelValues[i, j] := Random(256);

end.

12
În acest exemplu, PixelValues este un tabel bidimensional de numere întregi care
reprezintă intensitățile pixelilor dintr-o imagine.

Operații și manipulări
 Accesarea și afișarea elementelor:

program AccessDisplayBidimensional;

var
MyData: array[1..Rows, 1..Columns] of Real;
i, j: Integer;

begin

for i := 1 to Rows do
for j := 1 to Columns do
writeln('Element at (', i, ',', j, '): ', MyData[i, j]);

end.

În acest exemplu, MyData este un tabel bidimensional de numere reale, iar codul
iterează prin fiecare element, afișând valoarea acestuia.

 Modificare și actualizare:

program UpdateBidimensionalTable;

var
Note: array[1..Rows, 1..Columns] of Integer;
StudentID, ExamNumber: Integer;

begin

StudentID := 2;
ExamNumber := 3;
Note[StudentID, ExamNumber] := 95;

end.

În acest exemplu, Note este un tabel bidimensional în care actualizăm nota pentru
studentul cu ID 2 la al treilea examen.

13
Tabelele bidimensionale, cu aranjamentul lor structurat sub formă de grilă, oferă o
bază pentru diverse aplicații în informatică. Înțelegerea proprietăților lor de bază este
esențială pentru a le valorifica eficient capacitățile în scenarii mai complexe.

3.2 Aplicații
Tabelele bidimensionale sau matricele prezintă aplicații avansate în diverse
domenii, cum ar fi procesarea imaginilor și algoritmii bazați pe grilă. Acest capitol
explorează exemple complexe care demonstrează utilizarea sofisticată a tabelelor
bidimensionale în aceste domenii, împreună cu comentarii privind optimizările efectuate.
program AdvancedImageProcessing;

const
Rows = 256;
Columns = 256;

var
Image: array[1..Rows, 1..Columns] of Integer;
Filter: array[1..3, 1..3] of Integer = ((-1, -1, -1), (-1, 9, -1), (-1, -1,
-1)); filter
TempImage: array[1..Rows, 1..Columns] of Integer;
i, j, m, n: Integer;

begin

for i := 1 to Rows do
for j := 1 to Columns do
Image[i, j] := Random(256);

for i := 2 to Rows - 1 do
for j := 2 to Columns - 1 do
begin
TempImage[i, j] := 0;
for m := -1 to 1 do
for n := -1 to 1 do
TempImage[i, j] := TempImage[i, j] + Image[i + m, j + n] * Filter[2
+ m, 2 + n];
end;

for i := 1 to Rows do
for j := 1 to Columns do
Image[i, j] := TempImage[i, j];

end.

14
În acest exemplu, aplicăm un filtru de îmbunătățire a marginilor 3x3 imaginii
originale, stocată în tabelul bidimensional Image. Optimizarea constă în utilizarea unui
tabel temporar TempImage pentru a evita modificarea pixelilor pe loc în timpul aplicării
filtrului, asigurând un rezultat mai precis.
program AdvancedPathfinding;

const
Rows = 10;
Columns = 10;

var
Grid: array[1..Rows, 1..Columns] of Boolean;
Start, Goal: array[1..2] of Integer;
Path: array of array[1..2] of Integer;
i, j: Integer;

begin

for i := 1 to Rows do
for j := 1 to Columns do
Grid[i, j] := Random > 0.7; // Sansa de aparitie a unui obstacol de 30%

Start[1] := 1;
Start[2] := 1;
Goal[1] := Rows;
Goal[2] := Columns;

Path := AStarPathfinding(Grid, Start, Goal);

end.

În acest exemplu, tabelul bidimensional Grid reprezintă o grilă de obstacole, iar


algoritmul A* este aplicat pentru a găsi calea cea mai scurtă de la început până la obiectiv.
Utilizarea unui tabel dinamic bidimensional Path permite flexibilitate în stocarea
coordonatelor căii.

Aceste exemple avansate ilustrează aplicațiile complexe și puternice ale tabelelor


bidimensionale în procesarea imaginilor și algoritmi bazați pe grilă. Optimizările realizate,
precum utilizarea tabelelor temporare și a structurilor dinamice, contribuie la soluții de
calcul eficiente și scalabile în aceste domenii. Înțelegerea și implementarea unor astfel de
complexități sunt esențiale pentru construirea de aplicații robuste și de înaltă performanță.

15
4. Tabelele multidimensionale
4.1 Proprietăți de bază
Tabelele multidimensionale extind conceptul de tabele bidimensionale pentru a se
adapta structurilor de date mai complexe. Acest capitol explorează proprietățile
fundamentale ale tabelelor multidimensionale, concentrându-se pe structura, elementele și
operațiile de bază ale acestora.

 Declarație și inițializare:

În Pascal, un tabel multidimensional este declarat ca o matrice cu indici multipli,


definind numărul de dimensiuni. Să luăm în considerare un exemplu de tabel
tridimensional:
program MultidimensionalTables;

const
Dim1 = 3;
Dim2 = 4;
Dim3 = 5;

var
MyCube: array[1..Dim1, 1..Dim2, 1..Dim3] of Integer;
i, j, k: Integer;

begin

for i := 1 to Dim1 do
for j := 1 to Dim2 do
for k := 1 to Dim3 do
MyCube[i, j, k] := 0;

end.

În acest exemplu, MyCube este un tabel tridimensional, iar bucla de inițializare


setează toate elementele sale la 0.

16
 Elemente omogene sau heterogene:

Tabelele multidimensionale pot avea elemente omogene sau heterogene.


Elementele sunt de obicei de același tip de date, dar fiecare dimensiune poate reprezenta
aspecte diferite ale datelor. De exemplu, într-un tabel tridimensional care reprezintă
valorile RGB ale pixelilor, fiecare dimensiune poate reprezenta componente roșii, verzi și
albastre.
program HeterogeneousMultidimensionalTable;

type
PixelColor = record
Red, Green, Blue: Integer;
end;

var
ImageData: array[1..Dim1, 1..Dim2, 1..Dim3] of PixelColor;
i, j, k: Integer;

begin

for i := 1 to Dim1 do
for j := 1 to Dim2 do
for k := 1 to Dim3 do
begin
ImageData[i, j, k].Red := Random(256);
ImageData[i, j, k].Green := Random(256);
ImageData[i, j, k].Blue := Random(256);
end;

end.
În acest exemplu, ImageData este un tabel tridimensional cu elemente heterogene,
care stochează informații de culoare RGB pentru fiecare pixel.

17
Operații și manipulări
 Accesarea și afișarea elementelor:

Tabelele multidimensionale suportă operațiuni pentru accesarea și afișarea


elementelor individuale. Următorul exemplu demonstrează cum să accesați și să afișați
elemente într-un tabel tridimensional:
program AccessDisplayMultidimensional;

var
MyData: array[1..Dim1, 1..Dim2, 1..Dim3] of Real;
i, j, k: Integer;

begin

for i := 1 to Dim1 do
for j := 1 to Dim2 do
for k := 1 to Dim3 do
writeln('Element at (', i, ',', j, ',', k, '): ', MyData[i, j, k]);

end.

În acest exemplu, MyData este un tabel tridimensional de numere reale, iar codul
iterează prin fiecare element, afișând valoarea acestuia.

 Modificare și actualizare:

Tabelele multidimensionale pot fi modificate prin alocarea de noi valori unor


elemente specifice. Să luăm în considerare un exemplu în care actualizăm un tabel
tridimensional reprezentând datele de temperatură:
program UpdateMultidimensionalTable;

var
TemperatureData: array[1..Dim1, 1..Dim2, 1..Dim3] of Real;
Day, Hour, Location: Integer;

begin

Day := 2;
Hour := 3;
Location := 4;
TemperatureData[Day, Hour, Location] := 28.5;
end.

18
În acest exemplu, TemperatureData este un tabel tridimensional în care actualizăm
temperatura pentru a doua zi, a treia oră și a patra locație.

Tabelele multidimensionale oferă un mijloc puternic de organizare și manipulare a


structurilor complexe de date. Înțelegerea proprietăților lor de bază este esențială pentru
utilizarea eficientă a acestora în scenarii de calcul mai avansate.

4.2 Aplicații
program AdvancedDataWarehousing;

const
Products = 5;
Regions = 4;
TimePeriods = 6;

var
SalesCube: array[1..Products, 1..Regions, 1..TimePeriods] of Currency;
TotalSales: Currency;
Product, Region, TimePeriod: Integer;

begin

for Product := 1 to Products do


for Region := 1 to Regions do
for TimePeriod := 1 to TimePeriods do
SalesCube[Product, Region, TimePeriod] := Random(100000);

// Calculeaza vanzarile totale


TotalSales := 0;
for Product := 1 to Products do
for Region := 1 to Regions do
for TimePeriod := 1 to TimePeriods do
TotalSales := TotalSales + SalesCube[Product, Region, TimePeriod];

end.

În acest exemplu, tabelul tridimensional SalesCube reprezintă datele vânzărilor, iar


optimizarea constă în calcularea eficientă a vânzărilor totale pe toate dimensiunile.
Utilizarea buclelor imbricate asigură o traversare sistematică a cubului.

19
program AdvancedBusinessIntelligence;

const
Customers = 100;
Products = 50;

var
CustomerData: array[1..Customers, 1..Products] of Real;
ProductScores: array[1..Products] of Real;
RecommendedProducts: array[1..5] of Integer;
CustomerID, ProductID: Integer;

begin

for CustomerID := 1 to Customers do


for ProductID := 1 to Products do
CustomerData[CustomerID, ProductID] := Random(5) + 1;

for ProductID := 1 to Products do


begin
ProductScores[ProductID] := 0;
for CustomerID := 1 to Customers do
ProductScores[ProductID] := ProductScores[ProductID] +
CustomerData[CustomerID, ProductID];
end;

// Recomanda top 5 produse bazat pe scoruri

end.

În acest exemplu, tabelul bidimensional CustomerData reprezintă scorurile


acordate de clienți pentru diverse produse. Optimizarea presupune calcularea eficientă a
scorurilor produselor pe baza preferințelor clienților, facilitând recomandări personalizate
de produse.

Aceste exemple avansate evidențiază aplicațiile complexe și puternice ale tabelelor


multidimensionale în depozitarea datelor și business intelligence. Optimizările realizate,
cum ar fi parcurgerea sistematică și calculele eficiente, contribuie la construirea de sisteme
scalabile și receptive în aceste domenii. Înțelegerea și implementarea unor astfel de
complexități sunt esențiale pentru valorificarea întregului potențial al tabelelor
multidimensionale în scenariile din lumea reală.

20
5. Analiza comparativă a tabelelor unidimensionale, bidimensionale și
multidimensionale
Tabelele sunt structuri de date fundamentale în informatică, fiecare cu
caracteristicile și aplicațiile sale unice. O analiză comparativă a tabelelor unidimensionale,
bidimensionale și multidimensionale dezvăluie caracteristici distincte, prezentând în
același timp elementele comune care contribuie la versatilitatea lor.
Tip Unidimensionale Bidimensionale Multidimensionale
Caracteristici  Structura  Structura grilă:  Dimensiuni multiple:
secvențială: Elementele sunt elementele sunt
Elementele sunt organizate în organizate pe mai
aranjate liniar de-a rânduri și mult de două
lungul unei singure coloane, formând dimensiuni, oferind o
dimensiuni, o grilă structură complexă.
identificate prin bidimensională.  Dimensiune flexibilă:
indici.  Forma dimensiunea de-a
 Dimensiune fixă: dreptunghiulară: lungul fiecărei
dimensiunea este rândurile au dimensiuni poate fi
predeterminată și același număr de ajustată dinamic în
rămâne constantă în elemente, ca și timpul rulării.
timpul execuției. coloanele.  Elemente omogene
 Elemente omogene:  Elemente sau heterogene:
elementele sunt de omogene: Similar elementele pot fi de
același tip de date. tabelelor aceleași tipuri de date
unidimensionale, sau diferite
elementele au
același tip de
date.
Exemplu de Într-o bază de date de Într-o aplicație de Într-un depozit de date
utilizare: studenți, un tabel procesare a imaginii, pentru analiza
unidimensional poate un tabel vânzărilor, un tabel
stoca scorurile de bidimensional multidimensional poate
examen pentru un reprezintă valorile reprezenta date de
singur subiect, unde pixelilor, cu rânduri vânzări cu dimensiuni
fiecare element și coloane care precum timpul,
corespunde punctajului definesc geografia și categoriile
unui student. aranjamentul spațial de produse.
al imaginii.

21
Analiza comparativă:
Caracteristici comune: Diferențe
 Stocarea datelor: Toate  Dimensionalitate: Tabelele unidimensionale au o
tipurile facilitează dimensiune, tabelele bidimensionale au două, iar
stocarea și preluarea tabelele multidimensionale au trei sau mai multe
datelor în mod eficient. dimensiuni.
 Elemente omogene:  Structura: Tabelele unidimensionale sunt liniare,
Tabelele unidimensionale tabelele bidimensionale formează o grilă, iar tabelele
și bidimensionale au de multidimensionale se extind dincolo de grile.
obicei elemente omogene,  Flexibilitatea dimensiunilor: Tabelele
în timp ce tabelele unidimensionale și bidimensionale au de obicei o
multidimensionale pot dimensiune fixă, în timp ce tabelele
avea elemente omogene multidimensionale pot ajusta dinamic dimensiunile
sau heterogene. de-a lungul fiecărei dimensiuni

În concluzie, în timp ce tabelele unidimensionale, bidimensionale și


multidimensionale au scopuri comune, caracteristicile lor unice fac ca fiecare tip să fie
potrivit pentru aplicații specifice. Alegerea tipului de tabel depinde de natura datelor și de
cerințele de calcul ale unei anumite probleme.

22
6. Strings:
Un string se referă la o secvență de caractere folosită pentru a reprezenta textul în
computere. De obicei, un string este implementat ca o matrice (array) de caractere, unde
fiecare caracter este o unitate de informație mai mică, cum ar fi un byte. String-urile sunt
folosite pentru a stoca și manipula text, cum ar fi cuvinte, propoziții sau orice alte tipuri de
date textuale.
6.1 Proprietăți de bază:
 Juxtapunerea String-urilo:

program: pascal
var
str1, str2, result: String;
begin
str1 := 'Buna ';
str2 := 'ziua!';
result := str1 + str2;
writeln('Rezultatul concatenarii: ', result);
end.

În acest cod, două string-uri (str1 și str2) sunt juxtapuse folosind operatorul ”+”,
iar rezultatul este stocat în „result.”
 Extragerea unui substring:
var
text: String;
substring: String;
begin
text := 'Informatica este interesanta';
substring := Copy(text, 14, 10);
writeln('Subșirul extras: ', substring);
end.

Aici, funcția ”Copy„ este folosită pentru a extrage un substring din „text”, începând de la
poziția 14 și luând următoarele 10 caractere. Rezultatul este stocat în „substring.”

23
6.2 Aplicații:
program ReverseString;
var
originalStr, reversedStr: String;
i: Integer;
begin
originalStr := 'Pascal';
reversedStr := '';

for i := Length(originalStr) downto 1 do


begin
reversedStr := reversedStr + originalStr[i];
end;

writeln('String original: ', originalStr);


writeln('String inversat: ', reversedStr);
end.

Programul parcurge string-ul original de la sfârșit spre început, adăugând fiecare


caracter la un nou string, astfel creând versiunea inversată.
program CountWords;
var
text: String;
count, i: Integer;
begin
text := 'Pascal este un limbaj de programare';
count := 0;

for i := 1 to Length(text) do
begin
if (text[i] = ' ') and (text[i-1] <> ' ') then
count := count + 1;
end;

if text[Length(text)] <> ' ' then


count := count + 1;

writeln('Numarul de cuvinte: ', count);


end.
Programul parcurge string-ul și numără spațiile care delimitează cuvintele,
asigurându-se că nu numără spații multiple consecutive ca cuvinte separate.

24
7. Concluzie:

În rezumat, această lucrare oferă o perspectivă asupra matricelor unidimensionale,


bidimensionale și multidimensionale în informatică, precum și a șirurilor de caractere.
Studiind caracteristicile, utilizările și valorile de performanță ale acestora, oferă o
înțelegere valoroasă a avantajelor și dezavantajelor fiecărui tip.
Acest articol evidențiază utilitatea și eficiența tablourilor unidimensionale pentru
operațiunile de bază și structurile de date. Matricele bidimensionale sunt esențiale pentru
sarcini precum procesarea imaginilor și gestionarea foilor de calcul, deoarece ating un
echilibru bun între simplitate și flexibilitate. Deși foile de calcul multidimensionale suferă
de probleme de scalabilitate, ele devin din ce în ce mai utile în analiza datelor complexe
din depozitele de date și simulările științifice.
Examinând exemplele din viața reală din multe industrii diferite arată cum foile de
calcul fac o diferență semnificativă. Au îmbunătățit eficiența și procesul decizional în
domenii precum managementul lanțului de aprovizionare și controlul calității. Lecțiile
învățate din aceste cazuri evidențiază importanța unor factori precum indexarea
optimizată, proiectarea adecvată a dimensiunilor și procesarea paralelă pentru a obține
cele mai bune rezultate.
Această lucrare oferă o resursă valoroasă pentru cei care studiază informatica,
inclusiv cercetători, practicieni și elevi. Oferă o imagine de ansamblu detaliată a diferitelor
funcții ale plăcii în diferite aplicații. Rezultatele acestui studiu contribuie la discuțiile în
curs despre structurile de date și vor inspira progrese viitoare în acest domeniu.

25
Bibliografie:
Resursă: Weiss, M. A. (2016). Structuri de date și analiză de algoritm în Java.
Resurse: Kirk, D. B. și Hwu, W. W. (2016). Programarea procesoarelor masive paralele: o
abordare practică.
Resursă: Langmead, B., & Salzberg, S. L. (2012). Aliniere rapidă cu citire întreruptă cu
Bowtie 2.
Resursă: Tsay, R. S. (2005). Analiza serii temporale financiare.
Resursă: Davis, T. A., & Hu, Y. (2011). Colecția Sparse Matrix de la Universitatea din
Florida. ACM Transactions on Mathematical Software (TOMS), 38(1), 1-25.
Resursă: Sanders, J., & Kandrot, E. (2010). CUDA prin exemplu: o introducere în
programarea GPU de uz general. Addison-Wesley.
Resursă: Yang, J., & Sun, K. (2007). Comprimarea imaginii utilizând codificarea
trunchierii blocului și transformarea matriceală rară. IEEE Transactions on Image
Processing, 16(3), 736-746.
Resursă: Ma, J., & Perkins, S. (2003). Despre utilizarea hipercuburilor pentru gestionarea
și extragerea de seturi de date multidimensionale. În Proceedings of the 2003 SIAM
Resurse: LeCun, Y., Bengio, Y., & Hinton, G. (2015). Invatare profunda. Nature,
521(7553), 436-444.
Resursă: Rubinov, M., & Sporns, O. (2010). Măsuri complexe de rețea ale conectivității
creierului: utilizări și interpretări. NeuroImage, 52(3), 1059-1069.
Resurse: Kimball, R., Ross, M., Thornthwaite, W., Mundy, J., & Becker, B. (1996). Setul
de instrumente pentru ciclul de viață al depozitului de date.
Hollerith, H. (1889). „Mașina electrică de tabulare”. Brevetul SUA 395.791. Preluat de la:
https://patents.google.com/patent/US395791A
Mauchly, J. W. (1947). „ENIAC – Primul computer digital electronic de uz general”.
Proceedings of the Institute of Radio Engineers, 35(6), 627-640. DOI:
10.1109/JRPROC.1947.226069
Arhivele IBM. (n.d.). „Istoricul cardurilor perforate IBM”. IBM. Preluat de la:
https://www.ibm.com/ibm/history/exhibits/punchcard/punchcard_intro.html

26
Exemple de cod preluate de pe: https://www.geeksforgeeks.org/

27

S-ar putea să vă placă și