Tuesday, December 9, 2014

Line Algorithm and array using pointers in C++ Programming



Program to print, read and calculate sum, smallest, largest element an array using pointers in C++ Programming

 #include
 #include
 #include
 void read_array(int *,int );
 void print_array(int *,int );
 int sum_of_array(int *,int);
 int largest(int *,int);
 int smallest(int *,int);
 int main( )
    {
       clrscr();
       constint array_size=5;
       int array[array_size]={0};
       cout<<"\n Enter the contents of the array : \n"<
       read_array(array,array_size);
       clrscr();
       cout<<"\n *********************************** \n"<
       cout<<" The contents of the array are :\n"<
       print_array(array,array_size);
       cout<<"\n ***********************************\n"<
       getch();
       cout<<"The Sum of the given array is =   "<
       cout<<"\n ****************************************\n"<
       getch();
       cout<<"The maximum element of the array is = "<
       cout<<"\n ********************************************* \n"<
       getch();
       cout<<"The minimum element of the array is = "<
       cout<<"\n ********************************************** "<
       getch();
       return 0;
    }
/*************************************************************************//*************************************************************************///------------------------  Function Definitions  -----------------------///*************************************************************************//*************************************************************************//*************************************************************************///-----------------------  read_array(int *,int)  -----------------------///*************************************************************************/
void read_array(int *array,int array_size)
    {
       for(int count=0;count
      {
         cin>>*array;
         array++;
      }
    }
/*************************************************************************///-----------------------  print_array(int *, int)  --------------------///*************************************************************************/void print_array(int *array,int array_size)
    {
       for(int count=0;count
      {
         cout<<"\t\t\t Element ["<"] = "<<*array<
         array++;
      }
    }
/*************************************************************************///----------------------  sum_of_array(int *,int)  -------------------///*************************************************************************/int sum_of_array(int *array,int array_size)
    {
       int count;
       int sum=0;
       for(count=0;count
      {
         sum=sum+*array;
         array++;
      }
       return sum;
    }
/*************************************************************************///-------------------------  largest(int *,int)  ------------------------///*************************************************************************/
int largest(int *array,int array_size)
    {
       int max=*array;
 
       for(int count=0;count
      {
         if(*array>max)
        max=*array;
         array++;
      }
       return max;
    }
/*************************************************************************///-------------------------  smallest(int *,int)  ----------------------///*************************************************************************/
int smallest(int *array,int array_size)
    {
       int min=*array;
       for(int count=0;count
      {
         if(*array
        min=*array;
         array++;
      }
       return min;
    }

Draw a line using Bresenham's Line Algorithm for lines with slopes negative and greater than 1 in C++ Programming

 # include 
 # include 
 # include 
 # include
 void show_screen( );
 void bresenham_line(constint,constint,constint,constint);
 int main( )
    {
       int driver=vga;
       int mode=vgahi;
       int x_1=0;
       int y_1=0;
       int x_2=0;
       int y_2=0;
       do
      {
         show_screen( );
         gotoxy(8,10);
         cout<<"Coordinates of Point-I (x1,y1) :";
         gotoxy(8,11);
         cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ";
         gotoxy(12,13);
         cout<<"Enter the value of x1 = ";
         cin>>x_1;
         gotoxy(12,14);
         cout<<"Enter the value of y1 = ";
         cin>>y_1;
         gotoxy(8,18);
         cout<<"Coordinates of Point-II (x2,y2) :";
         gotoxy(8,19);
         cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ";
         gotoxy(12,21);
         cout<<"Enter the value of x2 = ";
         cin>>x_2;
         gotoxy(12,22);
         cout<<"Enter the value of y2 = ";
         cin>>y_2;
         initgraph(&driver,&mode,"..\\Bgi");
         setcolor(15);
                   bresenham_line(x_1,y_1,x_2,y_2);
         setcolor(15);
           outtextxy(110,460,"Press  to continue or any other key to exit.");
         int key=int(getch( ));
         if(key!=13)
        break;
      }
       while(1);
       return 0;
    }
/*************************************************************************///--------------------------  bresenham_line( )  ------------------------///*************************************************************************/
void bresenham_line(constint x_1,constint y_1,constint x_2,constint y_2)
    {
       int color=getcolor( );
       int x1=x_1;
       int y1=y_1;
       int x2=x_2;
       int y2=y_2;
       if(x_1>x_2)
      {
         x1=x_2;
         y1=y_2;
 
         x2=x_1;
         y2=y_1;
      }
       int dx=abs(x2-x1);
       int dy=abs(y2-y1);
       int two_dx=(2*dx);
       int two_dx_dy=(2*(dx-dy));
       int p=((2*dx)-dy);
       int x=x1;
       int y=y1;
       putpixel(x,y,color);
       while(y
      {
         y++;
 
         if(p<0 span="">
        p+=two_dx;
         else
        {
           x++;
           p+=two_dx_dy;
        }
         putpixel(x,y,color);
      }
    }
/*************************************************************************///--------------------------  show_screen( )  ---------------------///*************************************************************************/
void show_screen( )
    {
       restorecrtmode( );
       textmode(C4350);     cprintf("\n********************************************************************************");
       cprintf("*************************-                              -***********************");
       cprintf("*------------------------- ");
 
       textbackground(1);
       cprintf(" Bresenham's Line Algorithm ");
       textbackground(8);
       cprintf(" -----------------------*");
       cprintf("*-***********************-                              -*********************-*");
       cprintf("*-****************************************************************************-*");
       for(int count=0;count<42 count="" span="">
      cprintf("*-*     *-*");
       gotoxy(1,46);
       cprintf("*-****************************************************************************-*");
       cprintf("*------------------------------------------------------------------------------*");  cprintf("********************************************************************************");
       gotoxy(8,40);
       cout<<"Note :";
       gotoxy(8,41);
       cout<<"ÍÍÍÍÍÍ";
       gotoxy(12,43);
       cout<<"The slope of the line should be negative and greater than 1.";
       gotoxy(1,2);
    }

No comments:

Post a Comment