コード例 #1
0
        public void solve(long dimPar, long dimBloc, long dimFile, bool BRadioButton, bool KBRadioButton, bool MBRadioButton, bool GBRadioButton)
        {
            // ###############################
            // #### Preparazione dei dati ####
            // ###############################
            //Calcolo vera dimensione della partizione in B
            dimPar = dimPar * Convert.ToInt32(Math.Pow(2, 30));

            //Calcolo dimensione di un blocco dati in B
            dimBloc = dimBloc * Convert.ToInt32(Math.Pow(2, 10));

            //Calcolo dimensione del file
            if (KBRadioButton)
            {
                dimFile = dimFile * Convert.ToInt64(Math.Pow(2, 10));
            }

            else if (MBRadioButton)
            {
                dimFile = dimFile * Convert.ToInt64(Math.Pow(2, 20));
            }

            else if (GBRadioButton)
            {
                dimFile = dimFile * Convert.ToInt64(Math.Pow(2, 30));
            }


            // #####################
            // #### Risoluzione ####
            // #####################
            //Calcolo numero di blocchi nella partizione
            long numBloc = dimPar / dimBloc;

            //Calcolo numero di bit necessari per indirizzare tutti i blocchi
            int  numBit = 0;
            long log    = Convert.ToInt64(Math.Log(numBloc, 2));

            if (log % 8 != 0)
            {
                numBit = Convert.ToInt32(((log / 8) + 1) * 8);
            }

            else
            {
                numBit = Convert.ToInt32(log);
            }

            //Calcolo la dimensione di una riga della FAT
            int dimRigFat = numBit / 8;

            //Calcolo la dimensione della FAT
            double dimFat = dimRigFat * numBloc;

            //Calcolo rapporto inflattivo
            double rapp = Math.Round((dimFat / dimFile), 5) * 100;


            // ######################################
            // #### Visualizzazione dei risulati ####
            // ######################################
            //Creo una nuova istanza del form per la visione dei risultati e lo compilo con i dati
            fatResultsForm fatRes = new fatResultsForm((Math.Log(dimPar, 2)).ToString(), (Math.Log(dimBloc, 2)).ToString(), (Math.Log(numBloc, 2)).ToString(),
                                                       numBit.ToString(), dimFile.ToString(), dimFat.ToString(), rapp.ToString());

            //Visualizzo il form
            fatRes.Show();
        }
コード例 #2
0
        public void solve(long dimPar, long dimBloc, long dimFile, bool BRadioButton, bool KBRadioButton, bool MBRadioButton, bool GBRadioButton) {
            
            // ###############################
            // #### Preparazione dei dati ####
            // ###############################
            //Calcolo vera dimensione della partizione in B
            dimPar = dimPar * Convert.ToInt32(Math.Pow(2, 30));

            //Calcolo dimensione di un blocco dati in B
            dimBloc = dimBloc * Convert.ToInt32(Math.Pow(2, 10));

            //Calcolo dimensione del file
            if (KBRadioButton) {
                dimFile = dimFile * Convert.ToInt64(Math.Pow(2, 10));
            }

            else if (MBRadioButton) {
                dimFile = dimFile * Convert.ToInt64(Math.Pow(2, 20));
            }

            else if (GBRadioButton) {
                dimFile = dimFile * Convert.ToInt64(Math.Pow(2, 30));
            }


            // #####################
            // #### Risoluzione ####
            // #####################
            //Calcolo numero di blocchi nella partizione
            long numBloc = dimPar / dimBloc;

            //Calcolo numero di bit necessari per indirizzare tutti i blocchi
            int numBit = 0;
            long log = Convert.ToInt64(Math.Log(numBloc, 2));

            if (log % 8 != 0) {
                numBit = Convert.ToInt32(((log / 8) + 1) * 8);
            }

            else {
                numBit = Convert.ToInt32(log);
            }

            //Calcolo la dimensione di una riga della FAT
            int dimRigFat = numBit / 8;

            //Calcolo la dimensione della FAT
            double dimFat = dimRigFat * numBloc;

            //Calcolo rapporto inflattivo
            double rapp = Math.Round((dimFat / dimFile), 5) * 100;


            // ######################################
            // #### Visualizzazione dei risulati ####
            // ######################################
            //Creo una nuova istanza del form per la visione dei risultati e lo compilo con i dati
            fatResultsForm fatRes = new fatResultsForm( (Math.Log(dimPar, 2)).ToString(), (Math.Log(dimBloc, 2)).ToString(), (Math.Log(numBloc, 2)).ToString(),
                                                        numBit.ToString(), dimFile.ToString(), dimFat.ToString(), rapp.ToString());
            //Visualizzo il form
            fatRes.Show();

        }