#include<stdio.h>
#include<conio.h>
#include<iostream.h>
int search(int pf[10],int pno)
{
for(int i=0;i<3;i++)
{
if(pf[i]==pno)
return i+1;
#include<conio.h>
#include<iostream.h>
int search(int pf[10],int pno)
{
for(int i=0;i<3;i++)
{
if(pf[i]==pno)
return i+1;
}
return 0;
}
void main()
{
int ch,pn,pf[10],flag,cnt=0,i,ch1,count[3]={0};
do
{
clrscr();
cout<<"\n\t1.FIRST IN FIRST OUT.";
cout<<"\n\t2.OPTIMAL ALGORITHM.";
cout<<"\n\t3.LEAST RECENTLY USED.";
cout<<"\n\t4.EXIT";
cout<<"\n\tENTER YOUR CHOICE : ";
cin>>ch;
switch(ch)
{
case 1:
do
{
clrscr();
cout<<"\n Enter Page no.::";
cin>>pn;
flag=search(pf,pn);
if(flag==0)
{
if(cnt<3)
pf[cnt++]=pn;
else
{
for(i=0;i<2;i++)
{
pf[i]=pf[i+1];
}
pf[i]=pn;
}
}
cout<<"\n Status\n";
for(i=0;i<cnt;i++)
cout<<"\t"<<pf[i];
cout<<"\n Want to add more::Y=1,N=0 ";
cin>>ch1;
}while(ch1!=0);
break;
case 2:
clrscr();
int n,buff[10];
cout<<"\n Enter the total no of Pages ::";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"Enter"<<i+1<<" page: ";
cin>>buff[i];
}
cnt=0;
i=0;
do
{
flag=search(pf,buff[i]);
if(flag==0)
{
if(cnt<3)
pf[cnt++]=buff[i];
else
{
for(int k=0;k<3;k++)
{
for(int j=i;j<n;j++)
{
if(pf[k]==buff[j])
{
count[k]=j;
break;
}
}
if(j>=n)
count[k]=n;
}
int ma,max=-99;
for(k=0;k<3;k++)
{
if(max<count[k])
{
max=count[k];
ma=k;
}
}
pf[ma]=buff[i];
}
}
cout<<"\n Status\n";
for(int j=0;j<cnt;j++)
cout<<"\t"<<pf[j];
getch();
i++;
}while(i<n);
break;
case 3:
do
{
clrscr();
cout<<"\n Enter Page no.::";
cin>>pn;
flag=search(pf,pn);
if(flag==0)
{
if(cnt<3)
pf[cnt++]=pn;
else
{
int mi,min=99;
for(int k=0;k<3;k++)
{
if(min>count[k])
{
min=count[k];
mi=k;
}
}
pf[mi]=pn;
count[mi]=0;
}
}
else
{
count[flag-1]++;
}
cout<<"\n Status\n";
for(i=0;i<cnt;i++)
cout<<"\t"<<pf[i];
cout<<"\n Want to add more::Y=1,N=0 ";
cin>>ch1;
}while(ch1!=0);
break;
}
}while(ch!=4);
}
No comments:
Post a Comment