Nurislamovna1543
?>

Написать программу, моделирующую динамическое распределение памяти в операционной системе. в качестве модели оперативной памяти программа должна использовать байтовый массив размера не менее 1024 байт. использование других переменных в программе запрещено (то есть вся информация о свободных/занятых участках должна храниться внутри массива в программе в обязательном порядке должны присутствовать следующие функции: а) выделить участок заданного размера. в случае успеха вывести начальный адрес выделенного участка. если участка подходящего для выделения не найдено, необходимо вывести диагностическое сообщение о нехватке памяти. б) освободить ранее выделенный участок. в качестве параметра функция должна принимать начальный адрес освобождаемого участка. ранее выделенный участок может быть освобожден только целиком (освобождение части участка не допускается). в) получить информацию о свободных/занятых участках в «оперативной памяти» (количество участков каждого типа, начальные адреса, размеры, общее количество занятой и свободной памяти). варианты . варианты комбинируются из возможных хранения информации о свободных занятых блоках и различных алгоритмов, применяемых при выделении участка. примерное соответствие варианта и указанных параметров представлено в следующей таблице: вариант алгоритм выделения хранения информации 1 первый подходящий битовая карта 2 наиболее подходящий битовая карта 3 наименее подходящий битовая карта 4 двоичного разбиения битовая карта 5 первый подходящий список блоков 6 наиболее подходящий список блоков 7 наименее подходящий список блоков 8 двоичного разбиения список блоков я 5 вариант)) заранее

Информатика

Ответы

tcmir
Вот http://pastebin.com/x5kVbW2D
Подредактируй ввод вывод.

или вот
#include<bits/stdc++.h>
using namespace std;
const int N = 1024+3; //size of "RAM"vector<pair<bool, int> > ram(N); //ram
int get_area(int n){    for (int i = 0; i < N-n-1 ; i ++)    {        if(ram[i].first == false)        {            int j;            for (j = i; j < i+n ; j ++ )                if(ram[j].first == true)                    break;            if (ram[j].first == true)            {                i = j;                continue;            }            for(j = i ; j < i+n ; j ++)            {                ram[j].first = true;                ram[j].second = i;            }            return i;        }    }    return -1;
}
string del_area(int n){    int j = n;    for(int i = n ; ram[j].second == ram[i].second && i < N-1; i ++)    {        ram[i].first = false;        ram[i].second = 0;    }    return "Success! Area deleted!";}
int get_status(){    cout << endl << "Byte using of 1024 RAM:" << endl;    for(int i = 0 ; i < N-2 ; i ++)    {        if(ram[i].first == false)            cout << "-" << ' ';        else            cout << ram[i].second << ' ';    }}
int main(){    ///code by Dmitry Kulazhenko (DmitryCpp)    ///ram index begins at 0    ///give area of RAM, size n   get_area  enter   n    ///delete area, with start index n  del_area   enter  n    ///give status of using RAM   get_status    ///to quit   exit    string s;    while( s != "exit" )    {        cin >> s;        if (s == "get_area")        {            int n;            cin >> n;            cout << get_area(n);            cout << endl;        }        if (s == "del_area")        {            int n;            cin >> n;            cout << del_area(n);            cout << endl;        }        if (s == "get_status")        {            cout << get_status();            cout << endl;        }    }    return 0;}
yakovlevasvetlanalvovna209

1)смысл этого в том, чтобы все понимали, с чем они сталкиваются каждый день, как это действует. Ведь не зря наше время называется информационной эпохой.

2) Ну наверное более трудных, и в тоже время интересных заданий

3)Мне кажется всем было бы интересно узучить фотошоп, или урок по компьютерным играм, такие уроки делают в некоторых школах.

4)Ну вообщем, ничего не есть на уроках, ни в коем случае не пить и не доставать жидкости, провода не трогать и не ходить по классу.

5)* тут я незнаю как проходят твои уроки*

Olgax732
//PascalABC.NET версия 3.2, сборка 1389
//Если программа не запускается, то обновите версию
uses System.Linq;
begin
    begin
        writeln('I');
        var n := ReadInteger('n=');
        Writeln((1 + 1 + Power(2, n - 1)) * n / 2);
    end;
    
    begin
        writeln;
        writeln('II');
        var n := ReadInteger('n=');
        Writeln(n mod 11 = 0 ? 'YES' : 'NO');
        
    end;
    
    begin
        writeln;
        writeln('III');
        var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList;
        writeln;
        
        while a.Any() do
        begin
            write(a[0], ' ');
            a.RemoveAt(0);
            if not a.Any then break;
            
            write(a.Last, ' ');
            a.RemoveAt(a.Count - 1);
            if not a.Any then break;
            
            var n := 0;
            if a.Count > 1 then n := a.Count div 2 - 1;
            write(a[n], ' ');
            a.RemoveAt(n);
        end;
    end;
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Написать программу, моделирующую динамическое распределение памяти в операционной системе. в качестве модели оперативной памяти программа должна использовать байтовый массив размера не менее 1024 байт. использование других переменных в программе запрещено (то есть вся информация о свободных/занятых участках должна храниться внутри массива в программе в обязательном порядке должны присутствовать следующие функции: а) выделить участок заданного размера. в случае успеха вывести начальный адрес выделенного участка. если участка подходящего для выделения не найдено, необходимо вывести диагностическое сообщение о нехватке памяти. б) освободить ранее выделенный участок. в качестве параметра функция должна принимать начальный адрес освобождаемого участка. ранее выделенный участок может быть освобожден только целиком (освобождение части участка не допускается). в) получить информацию о свободных/занятых участках в «оперативной памяти» (количество участков каждого типа, начальные адреса, размеры, общее количество занятой и свободной памяти). варианты . варианты комбинируются из возможных хранения информации о свободных занятых блоках и различных алгоритмов, применяемых при выделении участка. примерное соответствие варианта и указанных параметров представлено в следующей таблице: вариант алгоритм выделения хранения информации 1 первый подходящий битовая карта 2 наиболее подходящий битовая карта 3 наименее подходящий битовая карта 4 двоичного разбиения битовая карта 5 первый подходящий список блоков 6 наиболее подходящий список блоков 7 наименее подходящий список блоков 8 двоичного разбиения список блоков я 5 вариант)) заранее
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

corneewa20096
inainainainaina0073
GoncharenkoKuzmin
ella440
Владимир1524
Филипп1054
vdm4275
Белов_Лукина1339
alyans29
ldfenix87
Александра440
karinasy4ewa
Попова1271
manager9
vkorz594