#include #include #include using namespace std; char MyMem[32]; int stTwo(int size) { int k=0; while (pow(2,k)st2) && (MyMem[k+1] != 1)) { Raz(st2,k); g=1; cout<st2) k+=(int)pow(2,(int)MyMem[k]); else k+=sb; } } int ToAllocate(int sb, int st2) { int i=0, y=0; while(i < 32 ) { if (MyMem[i] == st2 && MyMem[i+1] != 1) { MyMem[i+1]=1; cout<<"Memory is allocated!"<1)&&(MyMem[i+1]!=0)) k+=(int)pow(2,(int)MyMem[i]); } cout<<"Free Memory: "<<32-k<<" Occupied Memory: "<st2) && (MyMem[k+1] != 1)) {return 1; } else { if((MyMem[k]st2) k+=(int)pow(2,(int)MyMem[k]); else k+=sb; } } int CheckedToDel(int st2) { int k=0; while( k < 32 ) { if ((MyMem[k]==st2) && (MyMem[k+1] == 1)) {return 1; } else k+=(int)pow(2,(int)MyMem[k]); } } int main() { int size,st2,st,i=0,sb,checkA, checkD; char ch; st=stTwo(32); MyMem[0]=st; while (ch != 'x') { cout<>ch; switch(ch) { case '1': cout<>size; st2=stTwo(size); sb=(int)pow(2,st2); checkA=CheckedToAlloc(sb,st2); if (checkA==1) BasAlg(sb,st2); else cout<<"Memory allocation is impossible!"<>size; st2=stTwo(size); sb=(int)pow(2,st2); checkD=CheckedToDel(st2); if (checkD==1) DelMem(sb,st2); else cout<<"Memory removal is impossible!"<