Sei sulla pagina 1di 3

Appunti informatica

Un algoritmo un procedimento che risolve un determinato problema


attraverso un numero determinato di passi.
preso un problema da automatizzare, la programmazione costituisce
essenzialmente la traduzione di un algoritmo per tale problema in programma,
scritto in un certo linguaggio.
Un programma per calcolatore, o semplicemente programma,
in informatica, un insieme di istruzioni che, una volta eseguite su
un computer, produce soluzioni per una data classe di problemi automatizzati
I programmi, scritti in uno specifico linguaggio di programmazione, sono
memorizzati allinterno di file, detti file sorgenti (source file), che non sono
direttamente comprensibili dallelaboratore (CPU), ma devono essere
tradotti in linguaggio macchina.

Nella programmazione informatica, l'iterazione, chiamata anche ciclo o con il


termine inglese loop, una struttura di controllo, all'interno di
unalgoritmo risolutivo di un problema dato, che ordina all'elaboratore di
eseguire ripetutamente una sequenza di istruzioni, solitamente fino al
verificarsi di particolari condizioni logiche specificate.
I cicli sono un altro degli elementi fondamentali di qualsiasi linguaggio di
programmazione, in quanto ci permettono di eseguire determinate operazioni
in maniera ripetitiva.

Funzioni ricorsive
public static String scomposizione(int n){
for (int i=2 ; i<=n ; i++){
if(n%i==0) return (i + " " + scomposizione(n/i)) ;
if(n==i)
return(n " primo ");
}
return "1";
}
public static int Fibonacci(int a){
if(a==1)return 1;
if(a==2)return 1;
return (Fibonacci(a-1) + Fibonacci(a-2));
}
public static int fattoriale(int a){
if(a==1) return 1;
else
return (a*fattoriale(a-1));
}

Ordinamento di vettori
Selection Sort
int vet[] = {5,3,2,1,0};
int min = 0;
int temp=0;
for(int i=0; i<vet.length-1; i++) {
for(int j=i+1 ; j<vet.length ; j++) {
if(vet[j] < vet[i]) min = j;
}
temp=vet[min];
vet[min]=vet[i];
vet[i]=temp;
}
for(int k=0 ; k< vet.length ; k++)
System.out.println(vet[k]);
}

}
Bubble Sort

Con questo secondo metodo, si confrontano gli elementi del vettore a due a due, partendo
dall'ultimo (anzi, dal penutltimo). Se si trovano due elementi in ordine "scorretto", essi
vengono scambiati di posto.

for (j = 0; j < n; j++ )


{
for (i=n-1; i>=j; i--)
{
if (vet[i]>vet[i+1]) //cambiare questa condizione per invertire l'ordine
{
tmp = vet[i];
vet[i] = vet[i+1];
vet[i+1] = tmp;
}
}
}

Selection Sort
L'idea la seguente: si trova l'elemento minimo (quello col valore pi piccolo di tutti) e lo si
sposta nell'elemento zero (il primo elemento) del vettore,
for(i=0; i<n-1; i++)
{
min = i;
for(j=i+1; j<n; j++)
if(vet[j] < vet[min]) //cambiare questa condizione per invertire l'ordine
min = j;
temp=vet[min];
vet[min]=vet[i];
vet[i]=temp;
}