[:it]GPOI: verifica su CPM[:]

[: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

 

 

 [:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Java: gestione di un vettore[:]

[:it]

roger de la fresnaye

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]);
}

}}[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Java: immissione di un carattere da tastiera[:]

[:it]

roger de la fresnaye

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();
}[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Java: operare con le stringhe[:]

[:it]

roger de la fresnaye

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

  • che a differenza dei dati numeri che devono essere sottoposti a modifica di tipo, Java legge sempre stringhe.
  • le variabili definite all’interno del metodo main devono sempre essere inizializzate, nel caso specifico è messo a null.

con questa riga di codice si ha la lunghezza della stringa immessa:

lung=x.length();[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Distribuzione di probabilità – densità di probabilità[:]

[: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:

0\leqslant F_{x}(a)\leqslant 1

F_{x}(a)=P\left [ x\leqslant a \right ]

conseguenza immediata è che:

P\left [ a \leqslant x\leqslant b \right ]=F_{x}(b)-F_{x}(a)

che ricorda moltissimo il teorema del calcolo integrale ed il teorema di Torricelli-Barrow

Infatti si definisce la funzione densità di probabilità:

f_{x}(a)=\cfrac{\delta F_{x}(a)}{\delta a}

che comporta la seguente affermazione:

P\left [ a \leqslant x\leqslant b \right ]=F_{x}(b)-F_{x}(a)=\int_{a}^{b}f_{x}(c)dc

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 è:

f(x)=\frac{1}{\sigma \sqrt{2\pi }}e^-{\frac{\left ( x-\mu \right )^{2}}{2\sigma ^{2}}}

la forma della campana e il suo valore centrale dipendono dalla deviazione standard \sigma e dalla media \mu.

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.[:]

Pubblicato in Senza categoria | 1 commento

[:it]TPSIT: crittografia a chiave simmetrica[:]

[: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:

A\oplus B=C mi fornisce il messaggio codificato

quindi

C\oplus B=A

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 è:

2^{k} con k il numero di bit della chiave.

Una persona che vuole decifrare il messaggio dovrà effettuare un numero esponenziale di prove.

Ad esempio:

  • si usi una chiave lunga 40 bit
  • si avranno 2^{40} chiavi diverse ossia circa 1\cdot 10^{12} chiavi diverse
  • si supponga che si provi una chiave ogni millisecondo ossia 10^{-3} secondi
  • si pensi per capire l’operazione successiva al seguente esempio ossia si devono lavare tre auto e per ogni auto ci si impiega 10 minuti allora il tempo complessivo sarà 3 \cdot 10=30, per lavare tre auto ci si impiega 30 minuti.
  • applicando nel nostro caso si ha 10^{12}\cdot 10^{-3}=10^{9} sapendo che in un giorno ci sono 86.400 secondi, dividendo la cifra con il numero di secondi risulta 11’574 giorni.
  • supponiamo adesso di utilizzare un PC che provi 10^{8} chiavi in un secondo, esso impiegherà 10^{3} secondi ossia meno di tre ore per trovare la chiave.

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[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Esercizi sugli operatori logici[:]

[:it]

  1. Costruire la tabella della verità associata al seguente circuito logico:

2. Costruire la tabella della verità associata al seguente circuito:

3. Esercizi molto più complesso, associare la tabella di verità al seguente circuito:

 [:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Operatori logici approfondimenti[:]

[: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:

[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]GPOI: verifica[:]

[: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.

[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Verifica sui cicli seconda versione[:]

[:it]

roger de la fresnaye

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

[:]

Pubblicato in Senza categoria | Lascia un commento