Torna al Thread
{
int N = clusterGrid.RowCount;//conto il numero di elementi di ogni cluster
int M = ResultGrid.RowCount;//conto il num di clienti
int veicolo_riempito = 0;
//Verifica l'uso di questa variabile, se è necessario o meno
//reinizializzarla ad ogni passaggio e se il suo indice di partenza
//deve effettivamente essere 1
int j = 1;
//Itera fra i cluster
for (int z = 0; z < M; z++)
{
//Itera fra i clienti del cluster corrente
for (int k = 0; k < N; k++)
{
//Trova nella tabella dei clienti il nome del cliente per risalire al suo ordine
int i;
for (i = 0; clusterGrid.Rows[k].Cells[z] != ResultGrid.Rows[i].Cells[0]; i++) ;
//Controlla se l'ordine del cliente non è maggiore della capacità di ogni singolo veicolo
if (Convert.ToInt16(ResultGrid.Rows[i].Cells[4].Value) <= Convert.ToInt16(textBox3.Text))
{
//creo una variabile veicolo_riempito in cui tengo conto di quanto riempio ogni singolo veicolo con i diversi ordini
veicolo_riempito += Convert.ToInt16(ResultGrid.Rows[i].Cells[4].Value);
resultGrid2.Rows[i].Cells[2].Value = j;
if (veicolo_riempito > Convert.ToDouble(textBox3.Text))
{
//se il veicolo è pieno ne prendo un altro
veicolo_riempito = 0;
//metto nella tabella dei veicoli il numero del veicolo ch elo serve
resultGrid2.Rows[i].Cells[2].Value = j + 1;
j++;
}
}
//--- Suppongo che qui ci vada un else nel caso la condizione imposta non fosse verifiata
else
{
//se l'ordine di un cliente è maggiore della capacità di un veicolo, me lo visualizza a schermo
Console.WriteLine("ORDINE MAGGIORE DELLA CAPACITà DEL SINGOLO VEICOLO");
}
}
}
}