Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
aa46f58
Aggiunto un main per C, non rompete le palle
MiloHakai Oct 8, 2024
2afa0a8
Mi passa per il topo cazzo, oggi lo correggo a quel pelato di merda
MiloHakai Nov 5, 2024
ec96b78
Revert "Mi passa per il topo cazzo, oggi lo correggo a quel pelato di…
MiloHakai Nov 5, 2024
666ef16
Merge branch 'Markintosh128k:main' into main
MiloHakai Nov 5, 2024
4cbb928
Non so cosa stia succedendo
MiloHakai Nov 5, 2024
03057e3
Merge branch 'main' of https://github.com/MiloHakai/UNINA-Informatica
MiloHakai Nov 5, 2024
0457e4d
Aggiunto una guida per le sintassi
MiloHakai Nov 5, 2024
a667eda
plzplzplzplzplzplzplz
MiloHakai Nov 5, 2024
b22c8a5
HO SBAGLIATO
MiloHakai Nov 6, 2024
08a76a1
Pubblicati gli esercizi per il Laccettone
MiloHakai Dec 28, 2024
9b6d2d5
Update settings.json
MiloHakai Dec 28, 2024
a24f217
Aggiunti gli esercizi in C
MiloHakai Jan 2, 2025
d7476fe
Sto solo cazzeggiando rn
MiloHakai Jan 11, 2025
f93c844
Update fattoriale.plike
MiloHakai Jan 11, 2025
7c1ea90
Laccettino 2.0
MiloHakai Jan 11, 2025
aec1ec0
Update README.md
MiloHakai Jan 11, 2025
825e44a
linkedList
MiloHakai Jan 11, 2025
1805660
Merge branch 'main' of https://github.com/MiloHakai/UNINA-Informatica
MiloHakai Jan 11, 2025
6c6c2a6
fixed naming
MiloHakai Jan 11, 2025
6d156a5
Ho dimenticato le consegne
MiloHakai Jan 11, 2025
d36b876
Last commit
MiloHakai Jan 12, 2025
88f7d4f
Riscritto tutto per ridere
MiloHakai Feb 6, 2025
75ad49d
Aggiunti dei file dal laccettino
MiloHakai Feb 8, 2025
659e7d9
fixes
MiloHakai Feb 9, 2025
4c22b85
24/25 su 36, ci siamo quasi
MiloHakai Feb 9, 2025
1dfd293
Grazie Danilo
MiloHakai Feb 9, 2025
c492ebe
Forse abbiamo fatto??
MiloHakai Feb 9, 2025
43bfa89
old commit
MiloHakai Mar 12, 2025
f640710
Aggiunti gli altri due codici della traccia 1
MiloHakai Mar 12, 2025
31d89aa
Esercizio 1 di Base di Dati (17/03/2025)
MiloHakai Mar 17, 2025
23bd501
Eh vabbè, mega dump
MiloHakai Jan 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 18 additions & 0 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"configurations": [
{
"name": "linux-gcc-x64",
"includePath": [
"${workspaceFolder}/**"
],
"compilerPath": "/usr/lib64/ccache/gcc",
"cStandard": "${default}",
"cppStandard": "${default}",
"intelliSenseMode": "linux-gcc-x64",
"compilerArgs": [
""
]
}
],
"version": 4
}
24 changes: 24 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++ Runner: Debug Session",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": false,
"externalConsole": false,
"cwd": ".",
"program": "build/Debug/outDebug",
"MIMode": "gdb",
"miDebuggerPath": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
59 changes: 59 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"C_Cpp_Runner.cCompilerPath": "gcc",
"C_Cpp_Runner.cppCompilerPath": "g++",
"C_Cpp_Runner.debuggerPath": "gdb",
"C_Cpp_Runner.cStandard": "",
"C_Cpp_Runner.cppStandard": "",
"C_Cpp_Runner.msvcBatchPath": "",
"C_Cpp_Runner.useMsvc": false,
"C_Cpp_Runner.warnings": [
"-Wall",
"-Wextra",
"-Wpedantic",
"-Wshadow",
"-Wformat=2",
"-Wcast-align",
"-Wconversion",
"-Wsign-conversion",
"-Wnull-dereference"
],
"C_Cpp_Runner.msvcWarnings": [
"/W4",
"/permissive-",
"/w14242",
"/w14287",
"/w14296",
"/w14311",
"/w14826",
"/w44062",
"/w44242",
"/w14905",
"/w14906",
"/w14263",
"/w44265",
"/w14928"
],
"C_Cpp_Runner.enableWarnings": true,
"C_Cpp_Runner.warningsAsError": false,
"C_Cpp_Runner.compilerArgs": [],
"C_Cpp_Runner.linkerArgs": [],
"C_Cpp_Runner.includePaths": [],
"C_Cpp_Runner.includeSearch": [
"*",
"**/*"
],
"C_Cpp_Runner.excludeSearch": [
"**/build",
"**/build/**",
"**/.*",
"**/.*/**",
"**/.vscode",
"**/.vscode/**"
],
"C_Cpp_Runner.useAddressSanitizer": false,
"C_Cpp_Runner.useUndefinedSanitizer": false,
"C_Cpp_Runner.useLeakSanitizer": false,
"C_Cpp_Runner.showCompilationTime": false,
"C_Cpp_Runner.useLinkTimeOptimization": false,
"C_Cpp_Runner.msvcSecureNoWarnings": false
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added Corsi a Scelta/Esercizi/SIM/Solutioni.pdf
Binary file not shown.
Binary file added Corsi a Scelta/Esercizi/SIM/Tracce [2023].pdf
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
function f = myLagrage(xdata,ydata,z)
% MYLAGRANGE
% La funzione utilizza il metodo di interpolazione di Lagrange
% per identificare una funzione che approssimi la serie di punti in input e
% restituisca in output la stessa.
%
% INPUT:
% 'xdata' = vettore delle ascisse dei punti
% 'ydata' = vettore delle ordinate dei punti
% 'z' = vettore di ascisse su cui costruire la funzione
%
% OUTPUT
% 'f' = vettore di numeri che stanno alla relazione interpolante
%
%
size_x = length(xdata);
size_z = length(z);
f = zeros(size_z);


for i=1:size_x
pos = ones(size_z);
for j=[1:i-1 i+1:size_x]
pos = pos .*(z - xdata(j))./(xdata(i)-xdata(j));
end
f = f + pos * ydata(i);
end
f = f(1, :);

end

% Esmpio di utilizzo
% xdata = [1 2 3 4 5];
% ydata = [1 4 9 16 25];
% z = 1:0.1:5;
% f = myLagrage(xdata,ydata,z);
% plot(xdata,ydata,'o',z,f,'-')
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
function f = myLagrage_BAR(xdata,ydata,z)
% MYLAGRANGE_BAR
% Metodo di interpolazione di Lagrange
% xdata = vettore delle ascisse dei punti di interpolazione
% ydata = vettore delle ordinate dei punti di interpolazione
% z = vettore delle ascisse dei punti di valutazione
% f = vettore delle ordinate dei punti di valutazione

size_x = length(xdata);
size_z = length(z);
f = zeros(size_z);


for k=1:size_x
w_k(k) = 1;
for j=1:size_x
if k~=j
w_k(k) = w_k(k) .* (xdata(k)-xdata(j));
end
end
end

w_w = 1;
s = 0;
disp(w_k)

for i =1:size_x
for j= 1:size_z
if z(j) ~= xdata(i)
%w_w = w_w .* 1;
%s = s +(ydata(i) ./ w_k).*1;
w_w = w_w .* (z(j)-xdata(i));
s = s +(ydata(i) ./ w_k).*(1./(z(j)-xdata(i)));
end
end
f = s.*w_w;
end
end
% Esempio
% xdata = [1 2 3 4 5];
% ydata = [1 4 9 16 25];
% z = [1.5 2.5 3.5 4.5];
% f = myLagrange_BAR(xdata,ydata,z)
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
function spval = mySpline(xdata, ydata, zval)

% MYSPLINE
% La funzione di spline cubica utilizza un successione di
% polinomi di grado tre per approssimare una serie di punti.
%
% INPUT
% xdata = array di nodi su cui collegare i polinomi
% ydata = ordinate di interpolazione
% zval = valori delle ascisse su cui costruire il polinomio
% interpolante
% OUTPUT
% spval = ordinate da combinare con l'array zval per la
% costruzione del polinomio interpolante
%
n = length(xdata);
h = zeros(n-1, 1);
A = zeros(n, n);
delta = zeros(n, 1);

b = zeros(n, 1);
d = zeros(n, 1);

spval = zeros(length(zval), 1);

% Distanze tra i nodi
for j=1 : n-1
h(j) = xdata(j+1) - xdata(j);
end

% Matrice dei coefficienti
A(1, 1) = 1; A(n, n) = 1;
for i=2 : n-1
A(i, i) = 2*(h(i-1) + h(i)); % Diagonali
A(i, i-1) = h(i-1);
A(i, i+1) = h(i);
end

% Vettore delle soluzioni
for i=2 : n-1
delta(i) = (3/h(i))*(ydata(i+1) - ydata(i)) - (3/h(i-1))*(ydata(i) - ydata(i-1));
end

% Calcolo le incognite
x = A\delta;

% Ottengo i valori per i coefficienti
for i=1 : n-1
b(i) = (ydata(i+1) - ydata(i))/h(i) - (h(i)/3)*(x(i+1) + 2*x(i));
d(i) = (x(i+1) - x(i))/(3*h(i));
end

% Calcolo la spline nei punti
for i=1 : length(zval)
for j=1 : n-1
if(zval(i) >= xdata(j) && zval(i) <= xdata(j+1))
spval(i) = ydata(j) + b(j)*(zval(i) - xdata(j)) + x(j)*(zval(i) - xdata(j))^2 + d(j)*(zval(i) - xdata(j))^3;
end
end
end
end
% ESEMPIO
% xdata = [0 1 2 3 4 5 6 7 8 9 10];
% ydata = [0 1 2 3 4 5 6 7 8 9 10];
% zval = 0:0.1:10;
% spval = mySpline(xdata, ydata, zval);
% plot(xdata, ydata, 'o', zval, spval, 'r-')
% grid on
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
function coeff = myls(xdata, ydata, m)
% MYLS
% coeff = myls(xdata, ydata, m)
% E' una funzione che prende in INPUT due vettori di dimensione n
% ed il numero di coefficienti che vogliamo in output
% Restituisce in OUTPUT m coefficienti di un polinomio
%
% Questa funzione usa il metodo dei minimi quadrati per trovare dei
% coefficienti di un polinomio che approssima i nodi
%
% Nello specifico, viene costruita una matrice dei coefficienti B che
% contiene le potenze dei nodi x da x^0 a x^m. Viene costruito un
% vettore di termini noti b che contiene la somma degli y_i
% moltiplicati per le potenze di x_i. Viene risolto questo sistema, ed
% il risultato è proprio il vettore dei coefficienti del polinomio.
%
% xdata : vettore riga : sono le ascisse dei punti dati
% ydata : vettore riga : sono le ordinate dei punti dati
% m : intero : è il numero di coefficienti del polinomio
% Questa funzione restituisce in ordine i coefficienti a_0, ..., a_m;
% Non c'è alcun controllo sull'input;

if length(xdata) ~= length(ydata)
disp('La dimensione dei dati deve essere uguale!')
return
end

m = m-1;
n = length(xdata) - 1;
B = ones(n+1, m+1);
b = zeros(n+1, 1);
A = zeros(m+1, m+1);

for i=2 : m+1
B(:, i) = (xdata').^(i-1);
end

A = B'* B;
b = B' * ydata';
coeff = (A\b)';
end

% Esempio di utilizzo
% xdata = [0 1 2 3 4 5 6 7 8 9 10];
% ydata = [0 1 2 3 4 5 6 7 8 9 10];
% m = 3;
% coeff = myls(xdata, ydata, m)
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
function x = SolveLinearSystem(A, b)
% SOLVELINEARSYSTEM
% Risolve un sistema lineare Ax = b
% Input:
% A: matrice dei coefficienti
% b: vettore dei termini noti
% Output:
% x: vettore soluzione del sistema lineare Ax = b


n = length(b);
x = zeros(n, 1);
y = zeros(n, 1);
% Decomposizione della matrice per mezzo del metodo Doolittle
for i = 1:1:n
for j = 1:1:(i - 1)
alpha = A(i,j);
for k = 1:1:(j - 1)
alpha = alpha - A(i,k)*A(k,j);
end
A(i,j) = alpha/A(j,j);
end
for j = i:1:n
alpha = A(i,j);
for k = 1:1:(i - 1)
alpha = alpha - A(i,k)*A(k,j);
end
A(i,j) = alpha;
end
end
% A = L+U-I
% calcolo delle soluzioni di Ly = b
for i = 1:1:n
alpha = 0;
for k = 1:1:i
alpha = alpha + A(i,k)*y(k);
end
y(i) = b(i) - alpha;
end
% calcolo delle soluzioni di Ux = y
for i = n:(-1):1
alpha = 0;
for k = (i + 1):1:n
alpha = alpha + A(i,k)*x(k);
end
x(i) = (y(i) - alpha)/A(i, i);
end
end

% Esempio
% A = [1 2 3; 4 5 6; 7 8 10];
% b = [3; 3; 4];
% x = SolveLinearSystem(A, b)
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
function x = myBackSubs(U, b)
% MYBACSUBS
% Questa funzione implementa l'algoritmo di backward substitution per
% la risoluzione di sistemi triangolari superiori
% INPUT
% U : Una matrice triangolare superiore
% b : Il vettore dei termini noti
% OUTPUT
% x : Il vettore delle soluzioni
% COMPLESSITA O(n^2)

n = length(b);
x = zeros(n, 1);
check = size(U);

% Controllo che la dimensione di U sia coerente con quella di b
if check(1) ~= check(2) || check(1) ~= n
disp('Errore dimensione della matrice')
return
end

for k = n:-1:1
j = k+1:n;
x(k) = (x(k) - U(k,j)*x(j))/U(k,k);
end
end

% Esempio
% A = [1 2 3; 0 4 5; 0 0 6];
% b = [1; 2; 3];
% x = myBackSubs(A, b)
Loading