Showing posts with label programs. Show all posts
Showing posts with label programs. Show all posts

Computer Graphics Lab Programs

1)bouncing ball

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>

void main()
{
int gd=DETECT,gm=DETECT;
int x,y=0,j,t=400,c=1;
initgraph(&gd,&gm,"  ");
setcolor(RED);
setfillstyle(SOLID_FILL,RED);
for(x=40;x<602;x++)
{
cleardevice();
circle(x,y,30);
floodfill(x,y,RED);
delay(40);

if(y>=400)
{
c=0;
t-=20;
}
if(y<=(400-t))
c=1;
y=y+(c?15:-15);

}

getch();
}




2)biezer curve

#include<graphics.h>
#include<dos.h>
#include<stdio.h>

int x1,y1,x2,y2,x3,y3,x4,y4;
void bezier_curve(int,int,int,int,int,int,int,int);
void main()
{

int gd = DETECT, gm;
initgraph(&gd,&gm," ");
x1=50,y1=200,x2=200,y2=50,x3=400,y3=400,x4=450,y4=150;
bezier_curve(x1,y1,x2,y2,x3,y3,x4,y4);
getch();
}
void bezier_curve(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4)
{
float t;
putpixel(x2,y2,15);
putpixel(x3,y3,15);
for(t = 0; t < 1; t += 0.00005)
{
float xt = (1-t)*(1-t)*(1-t)*x1 + 3*t*(1-t)*(1-t)*x2+ 3*t*t*(1-t)*x3 + t*t*t*x4;
float yt = (1-t)*(1-t)*(1-t)*y1 + 3*t*(1-t)*(1-t)*y2+ 3*t*t*(1-t)*y3 + t*t*t*y4;
putpixel(xt,yt,3);
line(x1,y1,x2,y2);
line(x2,y2,x4,y4);
line(x4,y4,x3,y3);
line(x3,y3,x1,y1);
}
getch();
}

3) 2d transformation

#include<stdio.h>
#include<graphics.h>
#include<math.h>

int x1,x2,y1,y2;
void input()
{
 printf("enter the line coordinates");
 scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
 line(x1,y1,x2,y2);
}
void translate()
{
 int tx,ty;
 input();
 printf("enter the translation distances");
 scanf("%d%d",&tx,&ty);
 line(x1+tx,y1+ty,x2+tx,y2+ty);
}

void scaling()
{
 float sx,sy;
 input();
 printf("enter the scaling factors(only positve)");
 scanf("%f%f",&sx,&sy);
 line(x1,y1,ceil(x1*sx),ceil(y1*sy));
}

void main()
{
 int gd=0,gm=0,ch;
 initgraph(&gd,&gm," ");
 cleardevice();
 printf("enter the choice 1: translate  2:scaling:");
 scanf("%d",&ch);
 switch(ch)
 {
 case 1:
    translate();
    break;
 case 2:
    scaling();
    break;
}
}


4) flood fill

#include<graphics.h>
#include<dos.h>
#include<stdio.h>

void flood_fill(int seedx,int seedy,int fill_color,int old_color);
void main(void)
{
int gd=DETECT,gm;
initgraph(&gd,&gm," ");
int x,y,r,oldcolor=BLACK;
setcolor(YELLOW);
printf("\n Enter the center and radius of a circle to fill");
scanf("%d %d %d",&x,&y,&r);
cleardevice();
circle(x,y,r);
flood_fill(x,y,LIGHTGREEN,oldcolor);
getch();
}
void flood_fill(int seedx,int seedy,int fill_color,int old_color)
{
if(getpixel(seedx,seedy)==old_color)
{
delay(20);
putpixel(seedx,seedy,fill_color);
flood_fill((seedx+1),seedy,fill_color,old_color);
flood_fill((seedx-1),seedy,fill_color,old_color);
flood_fill(seedx,(seedy+1),fill_color,old_color);
flood_fill(seedx,(seedy-1),fill_color,old_color);
}
}

5) mid point

#include<graphics.h>
#include<conio.h>
#include<stdio.h>

void plotpoints(int x,int y,int cx,int cy)
{
putpixel(cx+x,cy+y,4);
putpixel(cx-x,cy+y,4);
putpixel(cx+x,cy-y,4);
putpixel(cx-x,cy-y,4);
putpixel(cx+y,cy+x,4);
putpixel(cx-y,cy+x,4);
putpixel(cx+y,cy-x,4);
putpixel(cx-y,cy-x,4);
}

void main()
{
int cx,cy,x=0,y,r,p;
int gd=DETECT,gm=DETECT;

clrscr();

printf("Enter the center n");
scanf("%d%d",&cx,&cy);
printf("Enter the radius : ");
scanf("%d",&r);

y=r;
p=1-r;

initgraph(&gd,&gm," ");
cleardevice();

while(x<y)
{
plotpoints(x,y,cx,cy);
x++;
if(p<0)
p+=2*x+1;
else
{
y--;
p+=2*(x-y)+1;
}
}

getch();

}

OS Lab Programs

#1]Program to display "welcome to unix world" n times

#include<stdio.h>
int main()
{
int i,n;
printf("Enter number");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("Welcome to UNIX WORLD\n");
}


#2]program to display process id,parent id and group id

#include<stdio.h>
#include<unistd.h>
int main()
{
printf("process id %d\n",getpid());
printf("Parent id %d\n",getppid());
printf("group id %d\n",getgid());
}



#3]program to print limit of system configuration using  built in

#include<stdio.h>
#include<unistd.h>
#include<sys/sysinfo.h>
int main()
{
long ret;
if((ret=sysconf(_SC_ARG_MAX))!=-1)
printf("argmax=%d",ret);
else
perror("args");
if((ret=sysconf(_SC_CHILD_MAX))!=-1)
printf("\nchildmax=%d",ret);
else
perror("child");
if((ret=sysconf(_SC_CLK_TCK))!=-1)
printf("\nclickmax=%d",ret);
else
perror("clicks");
if((ret=sysconf(_SC_NPROCESSORS_CONF))!=-1)
printf("\nnprocessors=%d",ret);
else
perror("\nnprocessors");
}


#4]program to create a child process using fork in-built function

#include<stdio.h>
int main()
{
int pid;
printf("process id %d\n",getpid());
pid=fork();
if(pid<0)
printf("fork failed child not created\n");
else if(pid==0)
printf("child created %d\n",getpid());
return 0;
}


#5]program to dispaly "UNIX PROGRAMMING LAB" n times using system calls and user defined function display(char*). n is value read from keyboard.


#include<stdio.h>
#include<string.h>
void display(char *);
int main()
{
system("clear");
display("UNIX PROGRAMMING LAB\n");
}
void display(char *s)
{
int l,n;
char ch[10],mes[]="Enter n value:";
write(1,mes,strlen(mes));
read(0,ch,10);
n=atoi(ch);
while(n--,n>-1)
write(1,s,strlen(s));
}


#6]Program to implement First Come First Serve Algorithm

#include<stdio.h>
#include<unistd.h>
int main()
{
int bursttime[4];
int waitingtime[4];
int n,i,j;
printf("enter number of processes:");
scanf("%d",&n);
printf("enter burst times of %d processes:",n);
for(i=0;i<n;i++)
{
printf("\nEnter burst time of process %d:",i+1);
scanf("%d",&bursttime[i]);
}
printf("\ncalculating the waiting time....");
for(i=0;i<n;i++)
{
waitingtime[i]=0;
for(j=i-1;j>=0;j--)
{
waitingtime[i]=waitingtime[i]+bursttime[j];
}
}
printf("\n\n\tPROCESS\tBURST TIME \tWAITING TIME");
for(i=0;i<n;i++)
{
printf("\n\t%d\t%d\t\t%d",i+1,bursttime[i],waitingtime[i]);
}
printf("\n");
}


#7]program to implement shortest job first(non- preemption)


#include<stdio.h>
struct process
{
int pno,bt,wt,ft,tat;
}a[10],temp;
main()
{
int i,n,j;
float twt=0.0,total=0.0;
float avgwt,avgtat;
printf("\nenter no of process:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("enter pno,bt:");
scanf("%d%d",&a[i].pno,&a[i].bt);
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i].bt>a[j].bt)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
a[0].ft=a[0].bt;
a[0].wt=0;
a[0].tat=a[0].wt+a[0].bt;
a[i].wt=a[i-1].ft;
a[i].tat=a[i].wt+a[i].bt;
}
printf("pno\tbt\tft\twt\ttat\n");
for(i=0;i<n;i++)
{
printf("\n%d\t%d\t%d\t%d\t%d",a[i].pno,a[i].bt,a[i].ft,a[i].wt,a[i].tat);
}
for(i=0;i<n;i++)
{
twt=twt+a[i].wt;
total=total=total+a[i].tat;
avgwt=twt/n;
avgtat=total/n;
}
printf("avg waiting time is %f\n",avgwt);
printf("avg turnaround time is %f",avgtat);
}



#8]Program to print n times "UNIX PROGRAMMING LAB" reading from "infile.txt" and print the message in "outfile.txt" using a user defined function writefile(n)


#include<stdio.h>
char st[]="Unix programming lab";
main()
{
FILE *fp;
int n;
fp=fopen("infile.txt","w");
printf("\nhow many times do you want to dispaly");
scanf("%d",&n);
fprintf(fp,"%d",n);
writefile(n);
fclose(fp);
}
writefile(int n)
{
int i=0;
FILE *fp;
fp=fopen("outfile.txt","w");
while(i<n)
{
fprintf(fp,"%s\n",st);
i++;
}
fclose(fp);
}


#9]Program to implement Shortest job first (preemption)

#include<stdio.h>
#include<stdlib.h>
 main()
{
int a[10],b[10],w[10],at[10],n,s=0,i,j,k,t,t1,t2;
float avg=0,tt=0;
printf("enter no. of processes\n");
scanf("%d",&n);
printf("enter burst times of proceses\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]<0)
{
printf("invalid input");
exit(0);
}
b[i]=0;
tt=tt+a[i];
}
printf("enter arrival times\n");
for(i=0;i<n;i++)
scanf("%d",&at[i]);
k=0;
j=1;
for(i=0;i<n-1;i++)
{
if(a[i]!=0)
{
while(at[i+1]!=s)
{
k=i;
for(j=0;j<i;j++)
{
if(a[i]>a[j])
k=j;
}
a[k]=a[k]-1;
b[k]++;
s=s+1;
}
}
}
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
t1=at[i];
at[i]=at[j];
at[j]=t1;
t2=b[i];
b[i]=b[j];
b[j]=t2;
}
}
}
for(i=0;i<n;i++)
{
w[i]=s-b[i];
s=s+a[i];
}
for(i=0;i<n;i++)
{
w[i]=w[i]-at[i];
avg=avg+w[i];
}
tt=tt+avg;
tt=tt/n;
avg=avg/n;
printf("turn around time is %f",tt);
printf("Avg waiting time is %f",avg);
}



#10]Program to implement Bankers Algorithm


#include<stdio.h>
#include<stdlib.h>
struct process
{
int pid,max[8],alloc[8],need[8],finish;
}p[8];
main()
{
int total[8],avail[8],count=0,i,j,k=0,n,r;
printf("\n Enter no. of process:");
scanf("%d",&n);
printf("\n Enter the no. of resources");
scanf("%d",&r);
for(j=0;j<r;j++)
{
printf("Enter the total resources of type %d",j);
scanf("%d",&total[j]);
avail[j]=total[j];
}
for(i=0;i<n;i++)
{
printf("Enter the process ID: \n");
scanf("%d",&p[i].pid);
p[i].finish=0;
for(j=0;j<r;j++)
{
printf("Enter maximum resources requried of type %d:",j);
scanf("%d",&p[i].max[j]);
}
for(j=0;j<r;j++)
{
printf("Enter the resoursces allocated of type %d",j);
scanf("%d",&p[i].alloc[j]);
}
}
printf("The available resources sre:\n");
for(j=0;j<r;j++)
printf("%3d \n",avail[j]);
printf("The need matrix i.e:\n");
for(i=0;i<n;i++)
{
for(j=0;j<r;j++)
p[i].need[j]=p[i].max[j]-p[i].alloc[j];
}
for(i=0;i<n;i++)
{
for(j=0;j<r;j++)
printf("%3d",p[i].need[j]);
printf("\n");
}
for(i=0,k=0;k<n;i++)
{
if(i==n)
i=0;
if(p[i].finish==0)
{
for(j=0;j<r && p[i].need[j]<=avail[j];j++)
if(j==r)
{
for(j=0;j<r;j++)
{
avail[j]+=p[i].alloc[i];
}
count++;
printf("\n process %d is finished-avail",p[i].pid);
for(j=0;j<r;j++)
printf("%3d",avail[j]);
if(count==n)
{
printf("\n the system is in safe state");
exit(0);
}
k=0;
}
else
k++;
}
else
k++;
}
printf("the system is in unsafe state \n");
}



#11] FCFS with arrival time


#include<stdio.h>
struct process
{
int no,at,bt,ft,wt,tt;
}a[10],temp;
main()
{
int n,i,j,twt=0,tat=0;
float awt,atat;
printf("Enter no. of processes");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("Enter process no");
scanf("%d",&a[i].no);
printf("Enter arrival time and brust time");
scanf("%d%d",&a[i].at,&a[i].bt);
}
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
if(a[i].at>a[j].at)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
a[1].ft=a[1].at+a[1].bt;
a[1].wt=0;
a[1].tt=a[1].wt+a[1].bt;
for(i=2;i<=n;i++)
{
if(a[i-1].ft>a[i].at)
{
a[i].ft=a[i-1].ft+a[i].bt;
a[i].wt=a[i-1].ft-a[i].at;
a[i].tt=a[i].wt+a[i].bt;
}
else
{
a[i].ft=a[i].at+a[i].bt;
a[i].wt=0;
a[i].tt=a[i].wt+a[i].bt;
}
}
printf("\n no\tat\tbt\tft\twt\ttt\n");
for(i=1;i<=n;i++)
{
twt=twt+a[i].wt;
tat=tat+a[i].tt;
printf("\n%d\t%d\t%d\t%d\t%d\t%d",a[i].no,a[i].at,a[i].bt,a[i].ft,a[i].wt,a[i].tt);
}
awt=(float)twt/n;
atat=(float)tat/n;
printf("average wating time is %f",awt);
printf("\n average turn around time is %f",atat);
}


FIFO replacement


                                             
#include<stdio.h>
 main()
{
int n,i,j,k,l,np,nf,pf,pos,flag=0;
int p[20],f[20];
printf("\nEnter the number of free frames:");
scanf("%d",&nf);
printf("\nEnter the referece string length:");
scanf("%d",&np);
printf("\nEnter the reference string:");
for(i=0;i<np;i++)
scanf("%d",&p[i]);
for(i=0;(i<nf)&&(i<np);i++)
{
f[i]=-1;
}
pos=0;
pf=0;
for(j=0;j<np;j++)
{
flag=0;
for(k=0;k<np;k++)
if(f[k]==p[j])
{
flag=1;
break;
}
if(flag!=1)
{
pf++;
printf("%d %d\n",p[j],pf);
f[pos]=p[j];
pos++;
if(pos==nf)
pos=0;
}
}
printf("\nNumber of page faults is %d",pf);
}
 
LEAST RECENTLY USED algorithm
 
#include<stdio.h>
int main()
{
int i,m,n,k,a[10],b[10],pf,flag=0,pos=0,l,j;
printf("\nEnter the number of free frames:");
scanf("%d",&m);
printf("\nEnter the reference string length:");\
scanf("%d",&n);
printf("\nEnter the refernce string:");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
pf=0;
for(i=0;(i<m)&&(i<n);i++)
{
b[i]=-1;
}
for(k=0;k<n;k++)
{
flag=0;
for(j=0;j<m;j++)
{
if(a[k]==b[j])
{
flag=1;pos=j;
break;
}
}
if(flag==1)
{
for(l=pos;l<m-1;l++)
b[l]=b[l+1];
b[m-1]=a[k];
}
else
{
for(l=0;l<m-1;l++)
b[l]=b[l+1];
b[m-1]=a[k];
pf++;
printf("%d %d\n",a[k],pf);
}
}
printf("\nNumber of page faults is %d\n",pf);
}
 
 
OPTIMAL page replacement
 
 
                                             
#include<stdio.h>
main()
{
int i,j,m,n,a[20],b[20],flag,c[10];
int pos=0,max,l,p,k,pf;
printf("\nEnter the number free frames:");
scanf("%d",&m);
printf("\nEnter thr reference string length:");
scanf("%d",&n);
printf("\nEnter the reference string:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
pf=0;
for(i=0;i<m;i++)
b[i]=-1;
for(i=0;i<m;i++)
c[i]=0;
for(k=0;k<n;k++)
{
flag=0;
for(j=0;j<m;j++)
{
if(a[k]==b[j])
{
flag=1;
break;
}
}
if(flag!=1)
{
for(p=0;p<m;p++)
{
for(l=k+1;l<n;l++)
{
if(a[l]==b[p])
break;
else
c[p]=c[p]+1;
}
}
max=c[0];
pos=0;
for(i=1;i<m;i++)
{
if(max<c[i])
{
max=c[i];
pos=i;
}
}
i=pos;
b[i]=a[k];
pf=pf+1;
for(i=0;i<m;i++)
c[i]=0;
}
}
printf("\nNumber of page faults:%d\n",pf);
} 

Total Pageviews

Contact Us

Name

Email *

Message *