Documente Academic
Documente Profesional
Documente Cultură
REFERAT
Tema: Un studiu cuprinzător al tabelelor unidimensionale, bidimensionale
și multidimensionale în informatică
Chișinău - 2023
CUPRINS
Abstract..............................................................................................................3
1. Introducere.....................................................................................................5
2. Tabele unidimensionale................................................................................7
3. Tabele bidimensionale.................................................................................12
4. Tabelele multidimensionale........................................................................16
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;
7
Elemente omogene:
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;
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
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);
end.
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);
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.
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.
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.
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;
end.
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:
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.
16
Elemente omogene sau heterogene:
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:
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:
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.
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
end.
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
end.
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
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 := 1 to Length(text) do
begin
if (text[i] = ' ') and (text[i-1] <> ' ') then
count := count + 1;
end;
24
7. Concluzie:
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