`Esecuzione correzione con il metodo donatore`

  `Selezionare il file di input donatore cliccando sull'icona relativa.`
  `Selezionare il file degli errati da correggere cliccando sull'icona relativa.`
  `Scegliere il tipo di messaggistica che verrà visualizzata durante l'elaborazione:`

  `Per singolo step di elaborazione`
  `Solo se si verifica un errore, e in questo caso viene mostrato il codice e il tipo`
  `di errore`

  `Con il bottone "Esegui" o con "Save and exit" dal popup menu vengono eseguiti i passi di elaborazione.`
  `I file generati dai vari passi di donazione nella cartella di progetto sono individuabili dal prefisso donax.xxx`
  `Il primo passo è l'esecuzione del programma dona2 per la creazione di un file dei record da correggere o dei record esatti con le sole variabili di interesse: estrae le variabili dal file degli errati o dei donatori utilizzando le schede parametro di tipo strato e match mettendo nel file di output prima le variabili di strato e poi le variabili di match;`
  `se le variabili sono di tipo t=c al valore delle variabili sostituisce la classe di appartenenza.`
  `input:`

1. `file dei record errati o esatti`
2. `schede parametro`

  `output:`

1. `file dei record errati o esatti secondo il seguente tracciato`
  `01-08 progressivo record`
  `09 -- valore delle variabili di strato`
  `-- -- valore delle variabili di match`
2. `scheda parametro contenente le informazioni:`

  `01-08 lunghezza record input`
  `09-17 numero record errati/esatti`
  `18 blank`
  `19-26 lunghezza complessiva delle variabili di strato`

  `Secondo passo è l'esecuzione del programma dona3 per il calcolo delle distanze:`
  `il programma calcola a parità di strato (la lunghezza della stringa su cui fare il confronto è riportata sul file dei parametri tipo record i) la distanza di ogni record errato con tutti i record donatori tenendo presente i parametri:`
  `limite del riutilizzo (scheda .r se esiste)`
  `fattore di penalizzazione (scheda .u se esiste)`
  `e sceglie come donatore il record con distanza minima tenendo conto del limite della distanza (scheda .l se esiste)`
  `la distanza tra due variabili x , y dipende dal parametro t come di seguito:`

`se t=x ---> d(x,y) = 0 se x=y` `= 1 se x non = y` `se t=c ---> d(x,y) = |classe(x) - classe(y)| / numero-classi - 1` `se t=n ---> d(x,y) = |(x - y) / max (|min(errati)-max(esatti)|,|max(errati)-min(esatti)|)` `se t=t ---> d(x,y) = la posizione del primo carattere diverso a partire da sinistra / lunghezza variabile` `la distanza tra due record k , l è definita:` `d<k,l> = (somma(p(i)* d(i)<k,l>)) + r<l> * u` `in cui p(i) rappresenta il peso della variabile(i) espresso dal parametro w=` `r<l> rappresenta il numero di volte in cui e' stato utilizzato il donatore l` `u e' il fattore di penalizzazione espresso dalla scheda`

  `input:`

1. `file ridotto dei record errati sortato per il valore delle variabili di strato.`
2. `file ridotto dei record esatti sortato per il valore delle variabili di strato.`
3. `file dei parametri tipo record m`
4. `file dei parametri tipo record i`

  `output:`

1. `file di associazioni tra record errati e donatori contenente:`
  `01-08 numero progressivo record errato`
  `09-16 numero progressivo record esatto o 0 (donatore non trovato)`
  `17 -- distanza tra i due record`
2. `file per le statistiche sull'esito della correzione che riporta per ogni strato le seguenti informazioni:`

  `01 -- valore dello strato`
  `-- -- numero di record da correggere`
  `-- -- numero di donatori disponibili nello strato`
  `-- -- numero di donatori utilizzati 1 volta`
  `-- -- numero di donatori utilizzati 2 volte`
  `-- -- numero di donatori utilizzati 3 volte`
  `-- -- numero di donatori utilizzati 4-9 volte`
  `-- -- numero di donatori utilizzati 10-99 volte`
  `-- -- numero di donatori utilizzati 100o+ volte`
  `-- -- numero di donatori con distanza d=0`
  `-- -- numero di donatori con 0 < d < 1`
  `-- -- numero di donatori con 1 <= d < 10`
  `-- -- numero di donatori con 10<= d < 100`
  `-- -- numero di donatori con 100<= d < 1000`
  `-- -- numero di donatori con 1000<= d < 10000`
  `-- -- numero di donatori con 10000<= d`
  `-- -- numero di record non corretti per limite della distanza`
  `-- -- numero di record non corretti per limite del riutilizzo`
  `Terzo passo è l'esecuzione del programma dona4 per la correzione`
  `input:`

1. `file dei record esatti (scelto dall'utente)`
2. `file dei record errati (scelto dall'utente)`
3. `dista.ord file delle associazioni tra record errati e donatori (ordinato per numero progressivo record errato)`
4. `file parametri tipi record a,e/d`
5. `scheda.ord schede parametro contenenti lunghezza record e numero record errati/esatti`

  `output:`

1. `dona4.cor file dei corretti`
2. `dona4.noc file dei record non corretti (i record per i quali nel file delle associazioni il numero progressivo del donatore = 0)`
3. `dona4.wrg file con eventuali errori di esecuzione`

  `tutti i file sono elencati in dona4.prm`
  `Viene infine eseguito il programma dona5 per le statistiche di correzione`
  `Input:`

1. `il file di statistiche prodotto dal programma 3`

  `output:`

1. `report.lst tabulato a livello di strato con le seguenti informazioni:`

  `distribuzione per strato / totale`
  `valore dello strato xxxxxxxxxx`
  `donatori utilizzati`
  `1 volta 2 volte 3 volte 4-9 volte 10-99 volte 100 o+ volte totale`
  `donatori utilizzati a distanza:`
  `d=0 0<d<1 1<=d<10 10<=d<100 100<=d<1000 1000<=d=10000 d>=10000`
  `totale correzioni xxxxxxxx (1)`
  `donatore non trovato xxxxxxxx di cui non nello strato xxxxxxx (2)`
  `per limite distanza xxxxxxx`
  `per limite riutilizzo xxxxxxx`
  `donatori utilizzati xxxxxxxx`
  `rapporto di utilizzo xx.xxx (3)`
  `(1)= numero di record errati per strato e complessivo`
  `(2)= numero di record errati per strato e complessivo nel caso in cui il numero donatori e' = 0.`
  `(3)= totale correzioni / donatori utilizzati`
  `Con il bottone "Annulla" o con "Exit" dal popup menu si abbandona l'elaborazione`

  ``