[:it]Calcolare tutte le date caratteristiche del CPM evidenziando il cammino critico.
Definire il CPM catalogandolo come grafo AON o AOA
TEMA 1
Tema 2
[:]
[:it]Calcolare tutte le date caratteristiche del CPM evidenziando il cammino critico.
Definire il CPM catalogandolo come grafo AON o AOA
TEMA 1
Tema 2
[:]
[:it]
La cosa interessante è come si inizializza la lunghezza del vettore inserita a video:
v=new int[lung];
l’immissione dei dati può ovviamente avvenire all’interno di un ciclo:
import java.io.InputStreamReader;
import java.io.BufferedReader ;
import java.io.IOException;
public class Vettore {
public static void main(String[] args)
{
int v[],i,lung;
/*
* legge da tastiera la lunghezza del vettore
*/
lung =0;
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
try {
lung = Integer.parseInt(input.readLine());
}
catch (Exception e) {
e.printStackTrace();
}
/* molto interessate la gestione delle lunghezza del vettore
*
*/
v=new int[lung];
v[1]= 1;
for (i=0;i<lung;i++)
{
v[i]=i;
}
for (i=0;i<lung;i++)
{
System.out.println(v[i]);
}
}}[:]
[:it]
Questo estratto permette l’inserimento di un carattere da tastiera e lo stampa a video:
System.out.println(“dammi una lettera”);
BufferedReader input2 = new BufferedReader(new InputStreamReader(System.in));
try {
char c = (char)input2.read();
System.out.println(“Hai scritto ‘”+c+”‘”);
}
catch (IOException e) {
e.printStackTrace();
}[:]
[:it]
Questo breve programma richiede in input una stringa per poi stamparla:
import java.io.InputStreamReader;
import java.io.BufferedReader ;
import java.io.IOException;
public class parola {
public static void main(String[] args ) {
String x=null;
System.out.println(“inseirsci una parola”);
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
try {
x=input.readLine();
}
catch (Exception e) {
e.printStackTrace();
}
System.out.println(x);
}
}
si noti
con questa riga di codice si ha la lunghezza della stringa immessa:
lung=x.length();[:]
[:it]La funzione distribuzione di probabilità viene utilizzata per descrivere un fenomeno aleatorio (casuale) e fornire la probabilità che un certo evento accada o meno.
In particolare essa segue gli assiomi di Kolmogrov generalizzandoli.
La funzione distribuzione viene così definita:
conseguenza immediata è che:
che ricorda moltissimo il teorema del calcolo integrale ed il teorema di Torricelli-Barrow
Infatti si definisce la funzione densità di probabilità:
che comporta la seguente affermazione:
ossia la funzione densità di probabilità è la derivata della funzione distribuzione di probabilità o detto alla stessa maniera, la funzione distribuzione è l’integrale della funzione densità in un determinato intervallo.
Per chiarire immediatamente il concetto la funzione densità di probabilità più usata e conosciuta è la distribuzione di Gauss che descrive fenomeni aleatori continui che si concentrano verso un valore più probabile centrale.
La sua equazione è:
la forma della campana e il suo valore centrale dipendono dalla deviazione standard e dalla media .
Eccone un suo grafico:
Per capire la probabilità che una misura cada in un certo intervallo si deve calcolare l’area sottesa dalla curva in quell’intervallo ossia la sua funzione distribuzione o funzione primitiva negli intervalli presi in esame.[:]
[:it]La crittografia a chiave simmetrica utilizza la tessa chiave per cifrare e decifrare il messaggio.
Il cifrario a sostituzione è un esempio di crittografia a chiave simmetrica.
Un esempio di codifica e decodifica, utilizzando gli operatori logici è dato dalla codifica mediante una chiave ed effettuare un XOR sul messaggio di partenza, quindi effettuando un XOR mediante la stessa chiave sul messaggio trasmesso, ho il messaggio inviato ossia:
mi fornisce il messaggio codificato
quindi
Per comprendere adesso l’esempio consiglio di rivedere questi tre post
Ad esempio invio il seguente messaggio:
1 | 0 | 0 | 1 |
Utilizzo la seguente chiave conosciuta sia dal mittente che dal destinatario:
1 | 0 | 1 | 1 |
Effettuo XOR tra il messaggio inviato e quello ricevuto ed ho trasmesso il seguente messaggio:
0 | 0 | 1 | 0 |
Adesso effettuo nuovamente XOR tra quest’ultimo e la chiave:
1 | 0 | 1 | 1 |
Il messaggio decifrato risulta quindi:
1 | 0 | 0 | 1 |
Approfondimenti
Più grande è la chiave più prove si devono effettuare per trovare il messaggio inviato.
Il numero di chiavi è sempre la disposizione con ripetizione ossia il numero di chiavi diverse è:
con il numero di bit della chiave.
Una persona che vuole decifrare il messaggio dovrà effettuare un numero esponenziale di prove.
Ad esempio:
Per determinare una chiave abbastanza sicura si usano infatti chiavi lunghe 128 bit.
I sistemi di crittografia a chiave simmetrica sono:
DES: Data Encryption Standard–> IBM 1977 utilizza un chiave a 56 bit (libro di approfondimento sul des)
Triple DES o 3 DES una chiave maggiore
CAST –> Nortel chiave a 128 bit
IDEA International Data Encryption Algorithm–> nel 1990 chiave a 128 bit[:]
[:it]
2. Costruire la tabella della verità associata al seguente circuito:
3. Esercizi molto più complesso, associare la tabella di verità al seguente circuito:
[:]
[:it]Gli operatori logici si possono rappresentare con la seguente rappresentazione grafica:
Tutte le operazioni booleane possono essere ottenute mediante la corretta combinazione delle porte logiche AND, OR e NOT.
Ad esempio un NAND può essere realizzato mediante un AND ed un NOT nella seguente maniera:
Un NOR può essere realizzato mediante un OR ed un NOT nella seguente maniera
Un XOR si può realizzare con un’opportuna combinazione di AND, OR a NOT nella seguente maniera:
[:]
[:it]Completare il seguente CPM con tutte le date per ogni nodo identificando il percorso critico.
In particolare evidenziare il ES,EF, LS,LF ed il TF per tutti i nodi.
[:]
[:it]
Si richiedano tre numeri 6,7; 87,9;6,87 e successivamente altri tre 5,7; 9,2; 3,4 e che si mettano esattamente con questa sequenza e si trovi il più piccolo, il più grande e la media di ciascuna serie.
Poi si calcoli il prodotto della media e il prodotto dell’errore che viene dato dalla differenza tra il massimo ed il minimo.
Specifiche di programmazione e relativo punteggio:
Specifiche | Punteggio |
Nome programma: CognomeNomeVergg_mm_aa
ad esempio RossiMarioVer27_11_17 |
0.2 |
Commenti all’interno del programma che spieghi le singole fasi | 0.3 |
Richiedere all’utente i tre valori con la corretta istruzione di programmazione | 0.2 |
Utilizzare un ciclo for o while per l’inserimento dei dati della prima serie (se non si riesce inserirli senza un ciclo) | 3 |
Corretta gestione del tipo dei dati | 0.3 |
Utilizzare un ciclo for o while per l’inserimento dei dati della seconda serie (se nel primo caso si è utilizzato un ciclo for nel secondo si usi un ciclo while o viceversa) | 3 |
Utilizzare un ciclo for o while per determinare il valore minimo o massimo tra i valori inseriti | 2 |
Calcolare il corretto algoritmo per il prodotto | 1 |
[:]