C Lab manual 2023 final
C Lab manual 2023 final
PART-A
Laboratory Program 2
Develop a program to solve simple computational problems using arithmetic expressions and use of
each operator leading to simulation of a commercial calculator. (No built-in math function).
2.1 ALGORITHM
PURPOSE : To simulate a calculator using arithmetic expressions
INPUT: Enter num1 and num2
OUTPUT: Print the result of addition or subtraction or multiplication or division or modulus.
START
Step 1: [Enter first number]
read num1
Step 2: [Enter Second number]
read num2
Step 3:[Enter Choice]
read choice
Step 4:[To perform addition]
if choice is equal to plus
add num1 and num2
print result
Step 5: [To perform subtraction]
if choice is equal to minus
subtract num2 from num1
print result
Step 6: [To perform multiplication]
if choice is equal to multiplication
multiply num1 and num2
print result
Step 7: [To perform division]
if choice is equal to division
Page 14
Computer Programming Laboratory 18CPL17/27
2. 2 FLOWCHART
START
Read choice
if choice=?
case '+'
result=num1+num2;
case '-'
result=num1-num2;
case '*'
result=num1*num2;
Result
STOP
Page 15
Computer Programming Laboratory 18CPL17/27
PROGRAM
#include <stdio.h>
int main()
{
int num1,num2;
float result;
char choice; //to store operator choice
Page 16
Computer Programming Laboratory 18CPL17/27
default:
printf("Invalid operation.\n");
}
printf("Result: %d %c %d = %f\n",num1,ch,num2,result);
return 0;
}
***************************************************************************
OUTPUT:
First run:
Enter first number: 10
Enter second number: 20
Choose operation to perform (+,-,*,/,%): +
Result: 10 + 20 = 30.000000
Second run:
Enter first number: 10
Enter second number: 3
Choose operation to perform (+,-,*,/,%): /
Result: 10 / 3 = 3.333333
Third run:
Enter first number: 10
Enter second number: 3
Choose operation to perform (+,-,*,/,%): >
Invalid operation.
Result: 10 > 3 = 0.000000
******************************************************************************
VIVA QUESTIONS:
Page 17
Computer Programming Laboratory 18CPL17/27
Laboratory Program 3
Develop a program to compute the roots of a quadratic equation by accepting the coefficients. Print
appropriate messages.
ALGORITHM
Purpose : To find roots of a given quadratic equation.
Input: Coefficients of quadratic equation a, b, c
Output: Root1 and Root2
START
STEP 1: [Input the values of a, b, c]
read a, b, c
STEP 2: [Calculate the determinant]
determinant = b*b-4*a*c
STEP 3: [Check for validity]
If a is equal to 0 and b is equal to 0
print “Invalid Inputs”
STEP 4: [Check for different roots]
If a is equal to 0
print “Linear equation”
Root1=-c/b
Print “Root1”
STEP 5: [Check for real and equal roots]
If determinant is equal to 0
print “Roots are real and equal”
Root1= -b/(2*a)
Root2 = -b/(2*a)
Print “Root1 & Root2”
STEP 6: [Check for real and distinct roots]
If determinant is greater than 0
Then print “Roots are real and distinct”
Root1= (-b+ (sqrt (fabs (determinant))))/(2*a)
Root2= (-b-(sqrt (fabs (determinant))))/(2*a)
Page 18
Computer Programming Laboratory 18CPL17/27
Page 19
Computer Programming Laboratory 18CPL17/27
PROGRAM
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
float a,b,c;
float root1,root2;
float determinant,real,imaginary;
clrscr();
printf("Enter the Co-efficient of Quadratic Equation\n");
scanf("%f%f%f",&a,&b,&c);
determinant=b*b-4*a*c;
if(a==0 && b==0)
{
printf("INVALID INPUTS\n");
getch();
}
else if(a==0)
{
printf("LINEAR EQUATION\n");
root1=-c/b;
printf("ROOT=%f\n",root1);
}
else if(determinant==0)
{
printf("ROOTS ARE REAL AND EQUAL\n");
root1=-b/(2*a);
root2=-b/(2*a);
printf("Root1=%f\n Root2=%f",root1,root2);
}
else if(determinant>0)
Page 20
Computer Programming Laboratory 18CPL17/27
{
printf("ROOTS ARE REAL AND DISTINCT\n");
root1=(-b+(sqrt(fabs(determinant))))/(2*a);
root2=(-b-(sqrt(fabs(determinant))))/(2*a);
printf("ROOT1=%f\n ROOT2=%f",root1,root2);
}
else
{
printf("ROOTS ARE IMAGINARY\n");
real=-b/(2*a);
imaginary=sqrt(fabs(determinant))/(2*a);
printf("ROOT1=%f+i%f\n",real,imaginary);
printf("ROOT2=%f-i%f\n",real,imaginary);
getch();
}
******************************************************************************
Output 1:
Enter the Co-efficient of Quadratic Equation
000
Invalid Coefficients
Output 2:
Enter the Co-efficient of Quadratic Equation
0 21
Root1=-0.5
Output 3:
Enter the Co-efficient of Quadratic Equation
121
Roots are Real and Equal
Root1=-1.0000
Root2=-1.0000
Page 21
Computer Programming Laboratory 18CPL17/27
Output 4:
Enter the Co-efficient of Quadratic Equation
189
Roots are Real and Distinct
Root1=-1.354
Root2=-6.646
Output 5:
Enter the Co-efficient of Quadratic Equation
123
ROOTS ARE IMAGINARY
ROOT1=-1.000+i1.414
ROOT2=-1.000-i1.414
******************************************************************************
Viva Questions:
1) What is quadratic Equation?
2) What is math.h?
3) What are decision making capabilities of C language?
4) Write the syntax of “ if ”statement?
5) Difference between if and switch statements?
6) Write an unconditional control statement in C.
7) Write a flowchart for „ if‟ conditional construct?
Page 22
Computer Programming Laboratory 18CPL17/27
Laboratory Program
An electricity board charges the following rates for the use of electricity: for the first 200 units 80
paise per unit: for the next 100 units 90 paise per unit: beyond 300 units Rs 1 per unit. All users are
charged a minimum of Rs. 100 as meter charge. If the total amount is more than Rs 400, then an
additional surcharge of 15% of total amount is charged. Write a program to read the name of the
user, number of units consumed and print out the charges.
ALGORITHM
PURPOSE: Read The Name Of The User, Number Of Units Consumed And Print
INPUT: name [10], unit
OUTPUT: Print the charges for total number of units consumed
START
STEP 1: [Input a name and units]
read name and unit
STEP 2: [Initialization]
Metercharge=100
STEP3: [To check electricity unit is less than or equal to 200 and calculate
metercharge] If unit less than or equal to 200
Total amount= metercharge+(unit*.80)
STEP 4: [Else check unit is greater than 200 and less than 300 and calculate total
amount] If unit greater than 200 and unit greater than or equal to 300
FLOW CHART
#include <stdio.h>
int main()
{
char name[10];
float unit, metercharge=100,Total_amount;
printf("Enter your name and unit Consumed:");
scanf("%s %f",&name,&unit);
if(unit<=200)
Total_amount= metercharge+(unit*.80);
return 0;
}
*****************************************
Output 1:
Enter your name and unit Consumed:Suresh 200
Name: Suresh
Number of unit consumed: 200
MeterCharge : 260.000
Output 2:
Enter your name and unit Consumed:Ramesh 400
Name: Ramesh
Number of unit consumed: 400
MeterCharge : 724.5000
Laboratory Program 6
ALGORITHM
Read n
For i=0 to n
Read a[i]
Read key
STEP 4: [Initiliazation]
low = 0;
high = n-1;
STEP 5: [ Check whearther low is less than of equal to high and calculate mid)
while low <=high
mid= (low+ high)/2;
found=1
high = mid-1;
low = mid+1;
If not found
STEP 12:[Finished]
STOP
FLOWCHART
PROGRAM
#include <stdio.h>
int main()
{
int a[50], key, i, n , low, high,mid, found =0;
printf("\n Enter the number of elements in the array: ");
scanf ("%d", &n);
printf (" \n Enter the elements of the array: ");
for(i=0;i<n;i++)
{
scanf("%d", &a[i]);
}
printf("\n Enter the key to be searched: \n" );
scanf ("%d", &key);
low = 0;
high = n-1;
while (low <=high)
{
mid= (low+ high)/2;
if (a[mid] == key)
{
printf("\n %d is present at the position = %d", key, mid+1);
found=1;
break;
}
if (a[mid]>key)
high = mid-1;
else
low = mid+1;
}
if(!found)
printf(“key not found”);
return 0;
}
***************************************************************
Output 1:
Enter the number of elements in the array: 5
Enter the elements of the array:
10 20 30 40 50
Enter the key to be searched: 30
30 is present at the position = 3
Output 2:
Enter the number of elements in the array: 5
Enter the elements of the array:
10 20 30 40 50
Enter the key to be searched: 60
key not found
******************************************************************************
Viva Questions:
What is searching?
What are the types of searching?
Explain with an example for binary search.
Explain with an example for linear search.
Which is better searching technique?
Laboratory Program 11
Develop a program to sort the given set of N numbers using Bubble sort.
ALGORITHM
ALGORITHM : Bubble sort
PURPOSE : Arranging the numbers in ascending order using bubble sort technique
INPUT : N, interger numbers in arrary a[i]
OUTPUT : Numbers are arranged in ascending order
START
STEP 1: [Input number of elements]
Read n
STEP 2: [Input the elements/numbers into array]
For i 0 to n
Read a[i]
Endfor
STEP 3 : [Sorting the elements in ascending order]
For i o to n-1
For j o to n-1
[Compare the adjacent elements]
If(a[j]>a[j+1]) then
[Swap these elements]
Temp a[j]
a[j] a[j+1]
a[j+1] temp
endif
endfor
endfor
STEP 4: [Display the sorted elements of array]
For i 0 to n
Print a[i]
Endfor
STEP 5: [Finished]
STOP
FLOWCHART
PROGRAM
#include<stdio.h>
#include<conio.h>
int main()
{
int n,i,j,a[10],temp;
printf("Enter the no. of elements :\n");
scanf("%d",&n);
printf("Enter the array elements \n”);
for(i = 0 ; i < n ; i++)
scanf("%d",&a[i]);
printf("The original elements are \n");
for(i = 0 ; i < n ; i++)
printf("%d ",a[i]);
for(i= 0 ; i < n-1 ; i++) // Number of Passes
{
for(j= 0 ; j< n-i-1; j++) // Comparisons
{
if(a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("\n The Sorted elements are \n");
for(i = 0 ; i < n ; i++)
printf("%d\t ",a[i]);
return 0;
}
******************************************************************************
Output 1:
Enter the no. of elements:5
54321
The Sorted elements are 1 2 3 4 5
******************************************************************************
VIVA QUESTIONS:
1. Why the name bubble sort?
2. Mention the different types of sorting techniques?
3. Explain the logic of bubble sort with an example.
4. What is nested for loop?
Laboratory Program
Develop a program to introduce 2D Array manipulation and implement Matrix multiplication and
ensure the rules of multiplication are checked.
ALGORITHM
For i 0 to m-1 do
For j 0 to q-1 do
C[i][j] 0
For k 0 to n-1 do
C[i][j] c[i][j]+a[i][k]*b[k][j]
End kth for loop
End jth for loop
End ith for loop
STEP 7: [Display matrix A]
For i 0 to m-1 do
For j 0 to n-1 do
Print a[i][j]
End jth for loop
End ith for loop
STEP 8: [Display matrix B]
For i 0 to p-1 do
For j 0 to q-1 do
Print b[i][j]
End jth for loop
End ith for loop
STEP 9: [Display matrix C]
For i 0 to m-1 do
For j 0 to n-1 do
Print c[i][j]
End jth for loop
End ith for loop
STEP 10: [Finished]
STOP
FLOWCHART
PROGRAM
#include<stdio.h>
int main()
{
int a[5][5],b[5][5],c[5][5],m,n,p,q,i,j,k;
clrscr();
printf("Enter the size of first matrix\n");
scanf("%d %d",&m,&n);
printf("Enter the size of second matrix \n");
scanf("%d %d",&p,&q);
if(n==p)
{
printf("Enter the elements of first matrix\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("Enter the elements of the second matrix \n");
for(i=0;i<p;i++)
{
for(j=0;j<q;j++)
{
scanf("%d",&b[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<q;j++)
{
c[i][j]=0;
for(k=0;k<n;k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
printf("The product of two matrix is \n");
for(i=0;i<m;i++)
{
for(j=0;j<q;j++)
{
printf("%d\t",c[i][j]);
}
printf("\n");
}
else
printf(“Multiplication is not possible”);
}
************************************************************************
Output1:
Enter the size of first matrix:2 2
Enter the size of second matrix:2 2
Enter the elements of first matrix :1 2 3 4
Enter the elements of second matrix :5 6 7 8
The product of two matrix
19 22
43 50
************************************************************************
VIVA QUESTIONS:
1. What is a multi-dimensional array?
Laboratory
Develop a Program to compute Sin(x) using Taylor series approximation .Compare your result with the
built- in Library function. Print both the results with appropriate messages.
ALGORITHM
PROGRAM
#include<stdio.h>
int main()
{
int i, degree;
float x, sum=0,term;
printf("Enter the value of degree");
scanf("%d",°ree);
x = degree * (3.1416/180);
term = x;
sum=term;
for (i=3;i<=n;i+=2)
{
term=-term*x*x/((i-1)*i);
sum=sum+term;
}
printf("The sine of %d is %.3f\n", degree, sum);
printf("The sine function of %d using library function is %.3f", degree, sin(x));
return 0;
}
******************************************************************************
Output:
Enter the value of degree :90
The sine of 90 is 1.000
The sine function of 90 is 1.000
******************************************************************************
VIVA QUESTIONS:
1. What is pre-processor directive?
2. What is difference between const and #define.
3. What is use of fabs().
4. What is variable initialization and why is it important?
5. What is the difference between the = symbol and == symbol?
6. Can the curly brackets { } be used to enclose a single line of code?
Laboratory Program 10
Write functions to implement string operations such as compare, concatenate, string length. Convince
the parameter passing techniques.
10.1 ALGORITHM
Purpose: To find String length, Compare two Strings, Concatenate two strings
Concatenated String
START
initialize i to 0
increment i by 1
initialize i to 0
break;
increment i by 1
return str1[i]-str2[i];
initialize i to 0 and j to 0
increment i by 1
str1[i++]=str2[j++];
STOP
10.3 PROGRAM
#include<stdio.h>
int my_strlen(char str[])
{
int i=0;
return i;
}
int my_strcmp(char str1[],char str2[])
{
int i;
i=0;
while (str1[i]==str2[i])
{
if (str1[i]=='\0') break;
i++;
}
return str1[i]-str2[i];
}
FLOWCHART
OUTPUT
concatinated string=RAMAKRISHNA
****************************************************************
VIVA QUESTIONS
1) What is string?
2) What are the built-in functions of string?
3) Difference between user defined functions and built in functions.
4) What is null character?
5) Explain the flow of program with example.
Laboratory Program 12
Develop a program to find the square root of a given number N and execute for all possible inputs with
appropriate messages. Note: Don’t use library function sqrt(n).
ALGORITHM
FLOWCHART
Program
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
float num,square_root,temp=0;
clrscr();
printf("Enter the number to find square root\n");
scanf("%f",&num);
square_root=num/2;
while(square_root!=temp)
{
temp=square_root;
square_root=(num/square_root+square_root)/2;
}
printf("Square Root of %f is %f\n",num,square_root);
printf("Square Root of %f usinf inbuilt Function is
%f\n",num,sqrt(num)); getch();
}
******************************************************************************
Output 1:
Enter a number
49
Square root using program is 7
Square Root using Library Function is
7
Output2:
enter a number -12
Can't Find for Negative Numbers
******************************************************************************
VIVA QUESTIONS:
1. What is typecasting? Explain with examples.
2. Difference between float and double data types.
3. Explain for loop?
4. What is a use of break statement?
5. Difference between continue and break statement?
Laboratory Program 14
Develop a program using pointers to compute the sum, mean and standard deviation of all elements
stored in an array of n real numbers.
ALGORITHM
Algorithm
STOP
Page 59
Computer Programming Laboratory 18CPL17/27
FLOW CHART
PROGRAM
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
float a[10], *ptr, mean, std, sum=0, sumstd=0;
Page 60
Computer Programming Laboratory 18CPL17/27
int n,i;
clrscr();
printf("Enter the no of elements\n");
scanf("%d",&n);
printf("Enter the array elements \n");
for(i=0;i<n;i++)
{
scanf("%f",&a[i]);
}
ptr=a;
for(i=0;i<n;i++)
{
sum=sum+ *ptr; ptr++;
}
mean=sum/n;
ptr=a;
for(i=0;i<n;i++)
{
sumstd=sumstd + pow((*ptr - mean),2);
ptr++;
}
std = sqrt(sumstd/n);
printf("Sum=%.3f\t",sum);
printf("Mean=%.3f\t",mean);
printf("Standard deviation=%.3f\t", std);
}
******************************************************************************
Output 1:
Enter the number of elements 5
Enter the array elements are 1 5 9 6 7
Sum=28
Mean=5.6
Standard deviation=2.09
Page 61
Computer Programming Laboratory 18CPL17/27
******************************************************************************
Viva Questions:
1. Define pointer?
2. How do you declare a pointer variable?
3. What is * and & in pointer concept.
4. What are the advantages and disadvantages of using pointer?
5. Give the difference between static allocation and dynamic allocation of memory space.
6. What is the effect of the ++ and -- operators on pointer variable
7. Explain the pointers to arrays concept?
Page 62
Computer Programming Laboratory 18CPL17/27
Laboratory Program 15
ALGORITHM
Algorithm
START
remainder = n%10
n=n/10
decimalnumber=decimalnumber+ remainder*pow(2,i)
STOP
FLOWCHART
Page 63
Computer Programming Laboratory 18CPL17/27
PROGRAM
#include <stdio.h>
#include <math.h>
int convertBinaryToDecimal(long n);
int main()
{
long long n;
printf("Enter a binary number: ");
scanf("%ld", &n);
printf("%ld in binary = %d in decimal", n,
convertBinaryToDecimal(n)); return 0;
}
int convertBinaryToDecimal(long n)
{
int decimalNumber = 0, i = 0, remainder;
while (n!=0)
{
remainder = n%10;
n /= 10;
decimalNumber += remainder*pow(2,i);
++i;
Page 64
Computer Programming Laboratory 18CPL17/27
}
return decimalNumber;
}
*******************************************************************************
OUTPUT 1:
OUTPUT 2:
Viva Question:
1) What is recursion?
2) What are binary numbers?
3) What is recursive function?
4) Explain the flow of program with example
5) Explain mathematical functions.
Page 71