Форум программистов, компьютерный форум CyberForum.ru

Стратегии обслуживания жесткого диска - C++

Восстановить пароль Регистрация
 
webber
 Аватар для webber
6 / 6 / 0
Регистрация: 21.10.2012
Сообщений: 101
30.10.2012, 23:59     Стратегии обслуживания жесткого диска #1
Здравствуйте, пробую разобраться с темой обслуживания на примере стратегии N-SCAN;
нашел для примера код, но в нем есть не совсем понятный момент:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//N-Scan
 
#include<iostream>
#include<conio.h>
 
using namespace std;
 
int main(){
    const int c=2048, m=1024, n=1;
    const float a=0.01, t0=6, t1=0.1;
    int j, i=0, k=2, f, z, array[m];
    float ts, time, max, min, read_area;                  
 
    ts = (t0/2)+(n*t1);
 
    for (j=0; j<m; j++){               
        array[j] = rand()%c+1;                   
    }
    
    cout<<"length - time"<<endl;
    while(k<1000){      
        time=0;
            
        for(z=0; z<m/k; z++){       
            f = 1;         // КАКУЮ РОЛЬ ИГРАЕТ ЭТОТ ФЛАГ?
            for (j=0; j<k; j++){        
                
                if(f){ // НУ И СООТВЕТСТВЕННО УСЛОВИЯ СВЯЗАННЫЕ С НИМ
                    max = array[i];
                    f = 0;
                }                       
                else if( array[i] > array[i-1] ) max = array[i];
                i++;
            }
                 
            i = 0;
            f = 1;
            for (j=0; j<k; j++){            
                if(f){ // И СООТВЕТСТВЕННО ЗДЕСЬ
                    min = array[i];
                    f=0;
                }                       
                else if(array[i] < array[i-1]) min = array[i];
                i++;
            }
                 
            read_area = max - min + 1;                            
            time=time + a*read_area;                  
        }
        
        time=time*k/m + ts;            
        cout<<k<<" - "<<time<<endl;
        k=k*2;
     
    }
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
31.10.2012, 00:26     Стратегии обслуживания жесткого диска #2
Если это первый элемент массива, то присваиваем его значение переменной max
webber
 Аватар для webber
6 / 6 / 0
Регистрация: 21.10.2012
Сообщений: 101
11.11.2012, 18:02  [ТС]     Стратегии обслуживания жесткого диска #3
а по отношению к самой стратегии для чего это?
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
11.11.2012, 18:06     Стратегии обслуживания жесткого диска #4
это просто поиск максимума/минимума
Пожалуй понятней было бы написать
C++
1
2
3
  min=array[0]
for (j=1; j<k; j++)       
               if(array[i] < array[i-1]) min = array[i];
эээ... точнее не поиск максимума. Эта штука находит последний элемент, который больше своего предшественника.
Yandex
Объявления
11.11.2012, 18:06     Стратегии обслуживания жесткого диска
Ответ Создать тему
Опции темы

Текущее время: 17:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru