Chapter 4 Programming In C
CONCEPT OF RECURSION: FACTORIAL AND FIBONACCI PROBLEMS
• Recursion is the process of calling a function repeatedly itself until some specified condition has been satisfied.
• When you use the recursion function in a program, you need to define an exit condition, otherwise, it will go into an infinite loop.
• Recursive functions are very useful to solve many mathematical problems like calculating the factorial of a number, generating the Fibonacci series, etc.
Pointer (v-imp)
Pointers in C are similar to as other variables that we use to hold the data in our program but, instead of containing actual data, they contain a pointer to the address (memory location) where the data or information can be found.These is an important and advance concept of C language since, variables names are not sufficient to provide the requirement of user while developing a complex program. However, use of pointers help to access memory address of that entities globally to any number of functions that we use in our program.
Importance of Pointer.
While using several numbers of functions in C program, every functions should be called and value should be passed locally. However, using pointer variable, which can access the address or memory location and points whatever the address (memory location) contains.
Pointer declaration
Data_type *variable_name
Eg, int *age;
Advantages1. It helps us to access a variable that is not defined within a function.
2. It helps to reduce program length and complexity i.e. faster program execution time.
3. It is more convenient to handle datas.
4. It helps to return one or more than one value from the functions.
Program example:
int main(){
int n,*ptr;
printf("Enter any number");
scanf("%d",&n);
ptr =&n;
printf("Value is %d\n",*ptr);
return 0;
}
# Structure and Union
# Structure and Union
Structures in C is a user-defined data type available in C that allows to combining of data items of different kinds. Structures are used to represent a record.
Defining a structure: To define a structure, you must use the struct statement. The struct statement defines a new data type, with more than or equal to one member. The format of the struct statement is as follows:
struct [structure name]
{
member definition;
member definition;
...
member definition;
};
(OR)
struct [structure name]
{
member definition;
member definition;
...
member definition;
}structure variable declaration;
Union in C is a special data type available in C that allows storing different data types in the same memory location. You can define a union with many members, but only one member can contain a value at any given time. Unions provide an efficient way of using the same memory location for multiple purposes.
Defining a Union: To define a union, you must use the union statement in the same way as you did while defining a structure. The union statement defines a new data type with more than one member for your program. The format of the union statement is as follows:
union [union name]
{
member definition;
member definition;
...
member definition;
};
(OR)
union [union name]
{
member definition;
member definition;
...
member definition;
}union variable declaration;
Differences between Structure and Union
Differences between Structure and Union are as shown below in tabular format as shown below as follows:
File handelling
During
program execution the content of variables are temporarily stored in main
memory i.e RAM. Data reside temporarily in RAM only at the time of program
execution. After compilation of execution of data gets erased away which means
the data cannot be used for future references. To overcome this problem, file handling
comes in existence through which we can store data permanently in our secondary
storage and retrieve it whenever needed in future. Data are stored as datafile
in our disk.
Opening Data File
FILE *fptr;
fptr=fopen("filename","mode");
where filename is name of our file.
Mode:
"w" is used to create new file and write/store.
"r" is used to open file and display the record.
"a" is used to add more record to existing file.
store/write
syntax
fprintf(fptr,"format specifiers",variables);
// fptr is your file, format specifiers is datatypes symbols of your variables.
example:
fprintf(fptr,"%s%s%f",name,post,salary);
where variables are initalized as:
char name[50];
char post[30];
float salary;
example program:
1. create a datafile named "patient.txt" to store name,disease,age and bed_no of patient.
#include <stdio.h>
int main(){
FILE *fptr;
fptr=fopen("patient.txt","w");
char name[50];
char disease[50];
int age;
int bed_no;
printf("Enter name,disease, age and bed_no of patient\n");
scanf("%s%s%d%d",&name,&disease,&age,&bed_no);
fprintf(fptr,"%s\t%s\t%d\t%d\n",name,disease,age,bed_no);
fclose(fptr);
return 0;
}
2. create a datafile named "patient.txt" to store name,disease,age and bed_no of 5 patient.
#include <stdio.h>
int main(){
FILE *fptr;
fptr=fopen("patient.txt","w");
char name[50];
char disease[50];
int age;
int bed_no;
int i;
for(i=0;i<5;i++){
printf("Enter name,disease, age and bed_no of patient\n");
scanf("%s%s%d%d",&name,&disease,&age,&bed_no);
fprintf(fptr,"%s\t%s\t%d\t%d\n",name,disease,age,bed_no);
}
fclose(fptr);
return 0;
}
3. create a datafile named "patient.txt" to store name,disease,age and bed_no of patients until user say no.
#include <stdio.h>
#include <string.h>
int main(){
FILE *fptr;
fptr=fopen("patient.txt","w");
char name[50];
char disease[50];
int age;
int bed_no;
char ch[3];
do{
printf("Enter name,disease, age and bed_no of patient\n");
scanf("%s%s%d%d",&name,&disease,&age,&bed_no);
fprintf(fptr,"%s\t%s\t%d\t%d\n",name,disease,age,bed_no);
printf("Do you want to add more record? Type no to abort\n");
scanf("%s",&ch);
}while(strcmp(ch,"No")!=0 && strcmp(ch,"no")!=0);
fclose(fptr);
return 0;
}
Add/Append
1. In a datafile named "patient.txt" to add name,disease,age and bed_no of patient.
#include <stdio.h>
int main(){
FILE *fptr;
fptr=fopen("patient.txt","a");
char name[50];
char disease[50];
int age;
int bed_no;
printf("Enter name,disease, age and bed_no of patient\n");
scanf("%s%s%d%d",&name,&disease,&age,&bed_no);
fprintf(fptr,"%s\t%s\t%d\t%d\n",name,disease,age,bed_no);
fclose(fptr);
return 0;
}
2. In a datafile named "patient.txt" to add name,disease,age and bed_no of 5 patient.
#include <stdio.h>
int main(){
FILE *fptr;
fptr=fopen("patient.txt","a");
char name[50];
char disease[50];
int age;
int bed_no;
int i;
for(i=0;i<5;i++){
printf("Enter name,disease, age and bed_no of patient\n");
scanf("%s%s%d%d",&name,&disease,&age,&bed_no);
fprintf(fptr,"%s\t%s\t%d\t%d\n",name,disease,age,bed_no);
}
fclose(fptr);
return 0;
}
3. In a datafile named "patient.txt" to add name,disease,age and bed_no of patients until user say no.
#include <stdio.h>
#include <string.h>
int main(){
FILE *fptr;
fptr=fopen("patient.txt","a");
char name[50];
char disease[50];
int age;
int bed_no;
char ch[3];
do{
printf("Enter name,disease, age and bed_no of patient\n");
scanf("%s%s%d%d",&name,&disease,&age,&bed_no);
fprintf(fptr,"%s\t%s\t%d\t%d\n",name,disease,age,bed_no);
printf("Do you want to add more record? Type no to abort\n");
scanf("%s",&ch);
}while(strcmp(ch,"No")!=0 && strcmp(ch,"no")!=0);
fclose(fptr);
return 0;
}
Read/Display
syntax
fscanf(fptr,"format specifiers",variables);
// fptr is your file, format specifiers is datatypes symbols of your variables.
example:
fscanf(fptr,"%s%s%f",&name,&post,&salary);
where variables are initalized as:
char name[50];
char post[30];
float salary;
EOF : End Of File
Example Program
1. A datafile named "patient.txt" contains name, disease, age and bed_no of few patient. Wap in c to read and display all records.
#include <stdio.h>
int main(){
FILE *fptr;
fptr=fopen("patient.txt","r");
char name[50];
char disease[50];
int age;
int bed_no;
while(fscanf(fptr,"%s%s%d%d",&name,&disease,&age,&bed_no)!=EOF){
printf("%s\t%s\t%d\t%d\n",name,disease,age,bed_no);
}
fclose(fptr);
return 0;
}
Comments
Post a Comment