Sakalya's blog

By Sakalya, 12 years ago, In English

All of us know very well,what a random number is??Most of you know how to generate random numbers using C/C++,And you may also have observed that the method you used to generate a random number(i.e.Use of rand() function) generates the same answer every time you run the program. The reason behind generation of the same random number is the seed value which is being used by your program doesn't change.A seed value is a special number which determines where the random number generator should start generating values.If you don’t seed the random number generator, it will generate the same exact sequence of numbers every time you run it. Hence instead of using normal rand() function in C/C++,you should use srand() function to generate a random number.But this srand() function must be provided with a non constant seed value,so that it will become a pure random geneartor function,and the best non constant seed value will be system time,hence we will use time(0) function which returns current system time which will be always non-constant. Hence,to generate a a pure random number in C/C++,we should use srand(time(0)) function,and we all know to generate a random number in the given range we will use modulo.

Full text and comments »

  • Vote: I like it
  • +2
  • Vote: I do not like it

By Sakalya, 12 years ago, In English

Can anybody give me complete C program for solving Knapsack problem using greedy algorithm??

Thanks in advance!!!!!!

Full text and comments »

  • Vote: I like it
  • -22
  • Vote: I do not like it

By Sakalya, 12 years ago, In English

Hi,I want a C program for screen editor with following facilities i. Open an existing file ii. Create and Save the current file. iii. All cursor movements up, down, left, right arrow keys iv. Delete and backspace keys.

i have developed a program,but it doesn't work properly,Will you please correct it??I need it badly.

Following program runs partially,but it is not 100% correct.Please help me.I have developed it for Turbo C. ~~~~~

/* Experiment No.7 :Screen Editor : */

include <stdio.h>

include <conio.h>

include <string.h>

include <ctype.h>

define RIGHT 77

define LEFT 75

define UP 72

define DOWN 80

define DELETE 83

define BACKSPACE 8

define F1 59

define F2 60

define F3 61

int cx=1,cy=1,cxx=0,fchar=0,tchar=79; int nline=0; int fline=0,tline=0; int cline=0; /*************************************************** cx : X-Cordinate of the cursor cy : Y-Cordinate of the cursor cxx : position of the cursor in the current line in the file fchar,tchar : Only a portion of the line is displayed on the screen. fchar gives the left position and tchar gives the right position in the line. nline: Number of lines in the file fline,tline : In this program,21 lines of the file are displayed at a time. These lines are from fline to tline. cline: It gives the line number of the line on which the cursor is placed */

static char buffer[80][121];//The file may contain maximum of 80 lines, //each line may contain maximum of 118 characters int lengthof(int cline) ;//Gives the length of a line void displine(int cline);

void dispmenu() { int i; gotoxy(1,22); printf("---------------------------------------------------------------"); gotoxy(1,23); printf("F1 — Save F3- Exit"); gotoxy(1,24); printf("---------------------------------------------------------------"); }

int spaceline(int cline) //The current line may contain only white spaces { int j; for(j=0;j<120;j++) if(buffer[cline][j]!=' ' ) return(0); return(1); }

void display() //Display contents of the screen buffer { int i,j; clrscr(); for(i=fline;i<=tline;i++ ) { gotoxy(1,i+1-fline); for(j=fchar;j<=tchar;j++) { putchar(buffer[i][j]); } } dispmenu(); gotoxy(cx,cy); }

char read() //Read the next character { char x; x=getch(); if(x==0)//Control character x=getch(); return(x); } void Delete(int cline,int pos)//Delete the current character { int j; if(pos<0) return; for(j=pos+1;buffer[cline][j]!=0;j++)//Shift characters left by 1 place buffer[cline][j-1]=buffer[cline][j]; buffer[cline][j]=' ';

}

void deleteline() //Delete the current line { int i=0,j; if(nline>1) { for(i=cline+1;i<=tline;i++) strcpy(buffer[i-1],buffer[i]); nline--; if(cline>nline) { tline--; cy=cy-1; cx=1; cline=cline-1; } } display(); }

void insertline(int cline1,char x,int pos) { int i=0,j,length,l; char buff[180]; if(x==13)//Insert a new line, it breaks the line into two lines { for(i=nline;i>cline1;i--)//Shift lines by 1 position strcpy(buffer[i+1],buffer[i]); strcpy(buffer[cline1+1],buffer[cline1]+pos);//Line after Cursor position for(i=pos;i<=119;i++)//Fill spaces in the remaining portion buffer[cline1][i]=' '; buffer[cline1][120]=0;//End of text marker for(i=strlen(buffer[cline+1]);i<120;i++) //Fill spaces in the broken line buffer[cline1+1][i]=' '; buffer[cline1+1][120]=0; nline++; //Adjust coordinate variables cline++; tline++; cy=cy+1; cxx=0; cx=1; if(cy>21)//Adjustment for the last line of the screen { fline++; cy--; }

} else { for(i=118;i>=pos ;i--)//Shift right and insert the current character buffer[cline1][i+1]=buffer[cline1][i]; buffer[cline1][i+1]=x; } display(); gotoxy(cx,cy);//Position the cursor }

void save(char filename[])//Save the file { FILE *ptr; int i,j ; ptr=fopen(filename,"w"); if(ptr==NULL) { printf("\nCould not open the file"); getch(); }

for(i=0;i<nline;i++) { buffer[i][118]='\n'; buffer[i][119]=0; for(j=0;j<=119 && buffer[i][j]!=0;j++) putc(buffer[i][j],ptr); } fclose(ptr); }

void main() { static char filename[50]; FILE *ptr; int length,i; char x; buffer[0][0]=0;//Empty buffer clrscr(); printf("\nEnter the file name : "); gets(filename); ptr=fopen(filename,"r"); if(ptr==NULL) { ptr=fopen(filename,"w"); putc(' ',ptr); fclose(ptr); ptr=fopen(filename,"r"); }

if(ptr!=NULL)
   {
    while(!feof(ptr)) //Read the file in the screen buffer
      {
       tline++;
       i=0;
       fgets(buffer[nline],120,ptr);
       while(buffer[nline][i]!='\n' && buffer[nline][i]!=0)
         i++;
       for(;i<119;i++)
         buffer[nline][i]=' ';
       buffer[nline][i]=0;
       nline++;
       }
   }
fclose(ptr);

if(tline>20)
    tline=20; //Maximum of 21 lines to be displayed
display();
gotoxy(cx,cy);
x=read(); //Read the next key
fchar=0;
tchar=lengthof(0) - 1;
if(tchar<0)
    tchar=0;
if(tchar>79)
    tchar=79;
while(x!=F3)
   {
    switch(x)
      {
       case F1:fclose(ptr);
         save(filename);
         break;
       case UP:
         if(cline>0)
          if(cy>1 )//Scroll down
             {
              cy--;
              cline--;
              gotoxy(cx,cy);
             }
          else
             {
              fline--;
              tline--;
              cline--;
              display();
              gotoxy(cx,cy);

              }
         break;
       case DOWN:
           if(cline<nline)
          if(cy<21 )//Scroll Up
              {
              cy++;
              cline++;
              gotoxy(cx,cy);
              }
          else
              {
              fline++;
              tline++;
              cline++;
              display();
              gotoxy(cx,cy);
              }
           break;

       case RIGHT:
            if(cxx<lengthof(cline))
          if(cx<80 )
            {
              cx++;
              cxx++;
              gotoxy(cx,cy);
            }
          else
            { //Scroll left
              cxx++;
              fchar++;tchar++;
              display();
            }
            break;

       case LEFT:
           if(cxx>0)
               if(cx>1)
          {
              cx--;
              cxx--;
              gotoxy(cx,cy);
          }
               else
          {  //Scroll right
              cxx--;
              fchar--;tchar--;
              display();
          }
           break;
       case DELETE:
            if(cxx>0 || ! spaceline(cline))
              {
          tchar--;
          Delete(cline,cxx);//Delete the current character
          display();
          gotoxy(cx,cy);
              }
            else
          deleteline(cline);//Delete the current line

            break;
       case BACKSPACE:
            if(cxx>0 )
              {
          tchar--;
          Delete(cline,cxx-1);//Delete the previous character
          cxx--;
          if(cx>1)
             cx--;
          display();
          gotoxy(cx,cy);
              }

            break;

       case 13://Enter is pressed
         insertline(cline,x,cxx);
         break;
       default:
         if(isalnum(x)||ispunct(x)||isspace(x))
            {
          insertline(cline,x,cxx);
          cx++;cxx++;
          gotoxy(cx,cy);
            }
         break;
     }
x=read();
 }

}

int lengthof(int cline) { return(strlen(buffer[cline])); }

~~~~~

Full text and comments »

  • Vote: I like it
  • -30
  • Vote: I do not like it

By Sakalya, 12 years ago, In English
How can we randomly generate a set of m integers from an array of size n..Each element must have equal probability of being chosen..

Full text and comments »

  • Vote: I like it
  • +5
  • Vote: I do not like it

By Sakalya, 12 years ago, In English
I am an undergraduate student in Information Technology at University of Pune ,India.I am a hardcore programming lover(especially C),So if anyone needs programmer,I am ready to work.(I am also thinking of starting something innovative in the field of algorithms and programming,need your guidance,help.Please contact me at [email protected]

Full text and comments »

  • Vote: I like it
  • -22
  • Vote: I do not like it

By Sakalya, 12 years ago, In English
How we can add two numbers without using arithmetic operator/s??

Full text and comments »

  • Vote: I like it
  • -9
  • Vote: I do not like it

By Sakalya, 12 years ago, In English
Can anybody help me for implementing ternary search algorithm using C??

Full text and comments »

  • Vote: I like it
  • -11
  • Vote: I do not like it