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

Программа, имитирующая память компьютера, как завершить? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ не могу нормально взять минимум из массива http://www.cyberforum.ru/cpp-beginners/thread747672.html
float min(0); min=xySqrt(ms.x,ms.x,ms.y,ms.y); for(int i=0;i<=k-1;i++) for(int j=1;j<=k-1;j++) if( (i!=j) && ( (i!=0)&&(j!=1) ) ) { if(xySqrt(ms.x,ms.x,ms.y,ms.y)<=min)//ошибка тут с МИН(если мин 1, а 2 меньше) и по н переменных мин cout << setprecision(2) << xySqrt(ms.x,ms.x,ms.y,ms.y)
C++ Рекурсив. обход бин. дерева поиска Доброе утро. Имею следующий код : print_tree(bintree *p){ if(p){ print_tree(p->left); cout<<p->inf<<" "; print_tree(p->right) http://www.cyberforum.ru/cpp-beginners/thread747668.html
C++ Вывод слова с наибольшим количеством гласных букв
записывается 10 слов и потом выводится одно слово с большим количеством гласных букв
Простая функция ( корень ) C++
Вобщем суть: y=sqrt(3)+sqrt(sqrt(6))+sqrt(sqrt(sqrt(9))) - и так до 99. Долбусь над программой четвертые сутки ( может показаться что она легкая)) Наброски #pragma argsused #include<iostream.h> #include<math.h> int main() { int i,j; float y,x=0; int a,b,n=0;
C++ Нифига не понял, почему всё работает http://www.cyberforum.ru/cpp-beginners/thread747618.html
z=x<<y;. Все три переменные - объекты моего класса, оператор << в этом классе не перегружен, но всё не только скомпилировалось, но, судя по тесту, даже не глючит. Класс имеет единственное поле-данное: uint8_t Data; //This is the number. The encoding is additional code. The byte order is little-endian.. Массив "сырых" байт, а на самом деле цифр смешанной системы с основаниями 2 и 256....
C++ нарисовать точки в dev доброго времени суток. уже не первый дель ломаю голову как нарисовать точки по координатам прочитанными из файла. координаты генерируются случайно (это пройденный этап). подробнее

Показать сообщение отдельно
Mindsurfer
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15
27.12.2012, 10:34     Программа, имитирующая память компьютера, как завершить?
Жутко нужна программа, которая имитирует память компьютера, ниже представлен код, ошибок нет, но надо завершить его. Программа имитирует заполнение физической памяти (a[10]), заполняя пустое место (нули), выполняемыми процессами (единицы). Имеется 10 ячеек, и 4 процесса(p[1-4]), которые требуют место по 3 ячейки на каждый(p[i].mem). Первые 3 процесса нормально помещаются в 9 ячеек физической памяти, а вот для четвертого процесса осталась одна ячейка, хотя нужны 3. Следовательно нужно заполнить этот процесс в виртуальную память (отдельный динамический массив *b[10]). Также, у каждого процесса есть время выполнения (p[i].time), и если процесс выполнится, то он должен выгрузиться из памяти, то есть единицы должны заменяться на 0.
Ниже дан код, в котором идет заполнение только физической памяти и без учета времени выполнения процесса.
Пожалуйста дополните его до полноценной описанной выше программы! Крайней степени нужно!

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "stdlib.h"
#include "time.h"
 
int a[10];
int *b[10];
int t[5];
 
struct proc
{
    int mem;
    int time;
};
 
void main()
{
    int poz=0;
    int empty=0;
    setlocale(LC_ALL, "rus");
    proc p[4];
    srand(time(NULL));
 
    t[0]=0;
    t[1]=1;
 
    for (int i=0; i<4;i++)
    {
        p[i].mem=3;
        p[i].time=rand()%10+1;
    }
 
    printf("t0 = 0  ");
    for (int i=0; i<10; i++)
    {
        a[i]=0;
        printf("%d ", a[i]);
    }
    printf("\n");
    for (int i=1; i<=4; i++)
    {
        if (i==1) 
        { 
            printf("t%d = %d  ",i,i);
            for (int j=0;j<p[i].mem;j++)
                a[j]=1;
            for (int k=0; k<10; k++)
                printf("%d ", a[k]);
            printf("\n");
            poz=poz+p[i].mem;
        }
        else
        {
            t[i]=t[i-1]+p[i-1].time;
            printf("t%d = %d  ", i, t[i]);
            for (int j=poz;j<p[i].mem+poz;j++)
                a[j]=1;
            for (int k=0; k<10; k++)
                printf("%d ", a[k]);
            printf("\n");
            poz=poz+p[i].mem;
            for (int w=0;w<10;w++)
            {
                if (a[w]==0) empty=empty+1;
            } 
            if (empty<3) i=5;
            }
        }
    
    _getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru