0% found this document useful (0 votes)
49 views

Practical File: Sbssu Shaheed Bhagat Singh State University, Ferozepur, Punjab

The document contains a practical file submitted by a student named Aman Pandey for their Computer Science course. It includes 5 problems solved by the student involving writing C programs to: 1) Display "Hello World", 2) Add two integers, 3) Compute the quotient and remainder of a division, 4) Swap two numbers, and 5) Find the largest of three numbers. For each problem, the student provides the code for the C program to solve the problem and the output when the program is run.

Uploaded by

Aman Pandey
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views

Practical File: Sbssu Shaheed Bhagat Singh State University, Ferozepur, Punjab

The document contains a practical file submitted by a student named Aman Pandey for their Computer Science course. It includes 5 problems solved by the student involving writing C programs to: 1) Display "Hello World", 2) Add two integers, 3) Compute the quotient and remainder of a division, 4) Swap two numbers, and 5) Find the largest of three numbers. For each problem, the student provides the code for the C program to solve the problem and the output when the program is run.

Uploaded by

Aman Pandey
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

SBSSU

SHAHEED BHAGAT SINGH STATE UNIVERSITY,


FEROZEPUR,PUNJAB

Academic Year 2020-21

Department: COMPUTER SCIENCE

Practical file

Full Name: AMAN PANDEY

Roll No.: 2007483


Aim: To formulateProgramming
Subject: the algorithms forfor
simple problems.
Problem Solving
Problem 1. Program to display “hello world.”
Date
Program:- of Submission: 29/06/2021
int main()
{
printf("\n Hello World");
return 0;
}
Output:-
Hello World

Problem 2. Program to add two integers.


Program:-
#include <stdio.h>
int main() {

int number1, number2, sum;

printf("Enter two integers: ");


scanf("%d %d", &number1, &number2);

// calculating sum
sum = number1 + number2;

printf("%d + %d = %d", number1, number2, sum);


return 0;
}

Output :-
Enter two integers: 2
3
2 + 3 =5
Aim: To translate given algorithms to a working and correct program
Problem 1. C program to compute quotient and remainder.
Program:-
#include <stdio.h>
int main() {
int dividend, divisor, quotient, remainder;
printf("Enter dividend: ");
scanf("%d", &dividend);
printf("Enter divisor: ");
scanf("%d", &divisor);

// Computes quotient
quotient = dividend / divisor;

// Computes remainder
remainder = dividend % divisor;

printf("Quotient = %d\n", quotient);


printf("Remainder = %d", remainder);
return 0;
}
Output:-
Enter dividend: 25
Enter divisor: 4
Quotient = 6
Remainder = 1
Problem 2. C program to swap two numbers.
Program:
#include<stdio.h>
int main() {
double first, second, temp;
printf("Enter first number: ");
scanf("%lf", &first);
printf("Enter second number: ");
scanf("%lf", &second);

// Value of first is assigned to temp


temp = first;

// Value of second is assigned to first


first = second;

// Value of temp (initial value of first) is assigned to second


second = temp;

// %.2lf displays number up to 2 decimal points


printf("\nAfter swapping, firstNumber = %.2lf\n", first);
printf("After swapping, secondNumber = %.2lf", second);
return 0;
}
Output:
Enter first number: 1.20
Enter second number: 2.45

After swapping, firstNumber = 2.45


After swapping, secondNumber = 1.20
Problem 3. C program to find largest number.
Program:

#include <stdio.h>
int main() {
double n1, n2, n3;
printf("Enter three different numbers: ");
scanf("%lf %lf %lf", &n1, &n2, &n3);

// if n1 is greater than both n2 and n3, n1 is the largest


if (n1 >= n2 && n1 >= n3)
printf("%.2f is the largest number.", n1);

// if n2 is greater than both n1 and n3, n2 is the largest


if (n2 >= n1 && n2 >= n3)
printf("%.2f is the largest number.", n2);

// if n3 is greater than both n1 and n2, n3 is the largest


if (n3 >= n1 && n3 >= n2)
printf("%.2f is the largest number.", n3);

return 0;
}

Output:
Enter three numbers: -4.5
3.9
5.6
5.60 is the largest number.
Using nested if else.
#include <stdio.h>
int main() {
double n1, n2, n3;
printf("Enter three numbers: ");
scanf("%lf %lf %lf", &n1, &n2, &n3);

// if n1 is greater than both n2 and n3, n1 is the largest


if (n1 >= n2 && n1 >= n3)
printf("%.2lf is the largest number.", n1);

// if n2 is greater than both n1 and n3, n2 is the largest


else if (n2 >= n1 && n2 >= n3)
printf("%.2lf is the largest number.", n2);

// if both above conditions are false, n3 is the largest


else
printf("%.2lf is the largest number.", n3);

return 0;}
Output
Enter three numbers: -4.5
3.9
5.6
5.60 is the largest number.
Problem 4. C program to find roots of quadratic equations.
Program:
#include <math.h>
#include <stdio.h>
int main() {
double a, b, c, discriminant, root1, root2, realPart, imagPart;
printf("Enter coefficients a, b and c: ");
scanf("%lf %lf %lf", &a, &b, &c);

discriminant = b * b - 4 * a * c;

// condition for real and different roots


if (discriminant > 0) {
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("root1 = %.2lf and root2 = %.2lf", root1, root2);
}
// condition for real and equal roots
else if (discriminant == 0) {
root1 = root2 = -b / (2 * a);
printf("root1 = root2 = %.2lf;", root1);
}
// if roots are not real
else {
realPart = -b / (2 * a);
imagPart = sqrt(-discriminant) / (2 * a);
printf("root1 = %.2lf+%.2lfi and root2 = %.2f-%.2fi", realPart, imagPart, realPart, imagPart);
}
return 0;
}
Output:
Enter coefficients a, b and c: 2.3
4
5.6
root1 = -0.87+1.30i and root2 = -0.87-1.30i
Problem 5. Program to check a leap year.
Program:
#include <stdio.h>
int main() {
int year;
printf("Enter a year: ");
scanf("%d", &year);

// leap year if perfectly divisible by 400


if (year % 400 == 0) {
printf("%d is a leap year.", year);
}
// not a leap year if divisible by 100
// but not divisible by 400
else if (year % 100 == 0) {
printf("%d is not a leap year.", year);
}
// leap year if not divisible by 100
// but divisible by 4
else if (year % 4 == 0) {
printf("%d is a leap year.", year);
}
// all other years are not leap years
else {
printf("%d is not a leap year.", year);
}

return 0;
}
Output:
Enter three numbers: -4.5
3.9
5.6
5.60 is the largest number.
Aim: To be able to identify and correct logical errors encountered at run time
Problem 1. C program to check weather a number is positive or negative.
Program:
#include <stdio.h>
int main() {
double num;
printf("Enter a number: ");
scanf("%lf", &num);
if (num <= 0.0) {
if (num == 0.0)
printf("You entered 0.");
else
printf("You entered a negative number.");
} else
printf("You entered a positive number.");
return 0;
}
Output:
Enter a number: 12.3
You entered a positive number.
Enter a number: 0
You entered 0.
Aim: To be able to write iterative as well as recursive programs.
Problem 1. Sum of N natural numbers using recursion.
Program:
#include <stdio.h>
int addNumbers(int n);
int main() {
int num;
printf("Enter a positive integer: ");
scanf("%d", &num);
printf("Sum = %d", addNumbers(num));
return 0;
}

int addNumbers(int n) {
if (n != 0)
return n + addNumbers(n - 1);
else
return n;
}

Output:
Enter a positive integer: 20
Sum = 210
Problem 2. To find a factorial of a number.
Program:
#include<stdio.h>
long int multiplyNumbers(int n);
int main() {
int n;
printf("Enter a positive integer: ");
scanf("%d",&n);
printf("Factorial of %d = %ld", n, multiplyNumbers(n));
return 0;
}

long int multiplyNumbers(int n) {


if (n>=1)
return n*multiplyNumbers(n-1);
else
return 1;
}
Output:
Enter a positive integer: 6
Factorial of 6 = 720
Aim: To be able to represent data in arrays, strings and structures and manipulate them through a
program.
Problem 1. Store Numbers and Calculate Average Using Arrays.
Program:
#include <stdio.h>
int main() {
int n, i;
float num[100], sum = 0.0, avg;

printf("Enter the numbers of elements: ");


scanf("%d", &n);

while (n > 100 || n < 1) {


printf("Error! number should in range of (1 to 100).\n");
printf("Enter the number again: ");
scanf("%d", &n);
}

for (i = 0; i < n; ++i) {


printf("%d. Enter number: ", i + 1);
scanf("%f", &num[i]);
sum += num[i];
}

avg = sum / n;
printf("Average = %.2f", avg);
return 0;
}
Output:
Enter the numbers of elements: 6
1. Enter number: 45.3
2. Enter number: 67.5
3. Enter number: -45.6
4. Enter number: 20.34
5. Enter number: 33
6. Enter number: 45.6
Average = 27.69
Problem 2. To find sum of two matrices.
Program:
#include <stdio.h>
int main() {
int r, c, a[100][100], b[100][100], sum[100][100], i, j;
printf("Enter the number of rows (between 1 and 100): ");
scanf("%d", &r);
printf("Enter the number of columns (between 1 and 100): ");
scanf("%d", &c);

printf("\nEnter elements of 1st matrix:\n");


for (i = 0; i < r; ++i)
for (j = 0; j < c; ++j) {
printf("Enter element a%d%d: ", i + 1, j + 1);
scanf("%d", &a[i][j]);
}

printf("Enter elements of 2nd matrix:\n");


for (i = 0; i < r; ++i)
for (j = 0; j < c; ++j) {
printf("Enter element b%d%d: ", i + 1, j + 1);
scanf("%d", &b[i][j]);
}

// adding two matrices


for (i = 0; i < r; ++i)
for (j = 0; j < c; ++j) {
sum[i][j] = a[i][j] + b[i][j];
}

// printing the result


printf("\nSum of two matrices: \n");
for (i = 0; i < r; ++i)
for (j = 0; j < c; ++j) {
printf("%d ", sum[i][j]);
if (j == c - 1) {
printf("\n\n");
}
}

return 0;
}
Output:
Enter the number of rows (between 1 and 100): 2
Enter the number of columns (between 1 and 100): 3

Enter elements of 1st matrix:


Enter element a11: 2
Enter element a12: 3
Enter element a13: 4
Enter element a21: 5
Enter element a22: 2
Enter element a23: 3
Enter elements of 2nd matrix:
Enter element b11: -4
Enter element b12: 5
Enter element b13: 3
Enter element b21: 5
Enter element b22: 6
Enter element b23: 3

Sum of two matrices:


-2 8 7

10 8 6
Problem 2. To find inverse of a matrix.
Program:
#include<stdio.h>
int main(){

int a[3][3],i,j;
float determinant=0;

printf("Enter the 9 elements of matrix: ");


for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);

printf("\nThe matrix is\n");


for(i=0;i<3;i++){
printf("\n");
for(j=0;j<3;j++)
printf("%d\t",a[i][j]);
}

for(i=0;i<3;i++)
determinant = determinant + (a[0][i]*(a[1][(i+1)%3]*a[2][(i+2)%3] - a[1][(i+2)%3]*a[2][(i+1)%3]));

printf("\nInverse of matrix is: \n\n");


for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%.2f\t",((a[(i+1)%3][(j+1)%3] * a[(i+2)%3][(j+2)%3]) -
(a[(i+1)%3][(j+2)%3]*a[(i+2)%3][(j+1)%3]))/ determinant);
printf("\n");
}

return 0;
}
Output:
Enter the 9 elements of matrix: 3
5
2
1
5
8
3
9
2

The matrix is
3 5 2
1 5 8
3 9 2
Inverse of matrix is:

0.70 -0.25 0.07


-0.09 -0.00 0.14
-0.34 0.25 -0.11
Problem 3. C Program to Multiply Two Matrices Using Multi-dimensional Arrays.
Program:
#include <stdio.h>

// function to get matrix elements entered by the user


void getMatrixElements(int matrix[][10], int row, int column) {

printf("\nEnter elements: \n");

for (int i = 0; i < row; ++i) {


for (int j = 0; j < column; ++j) {
printf("Enter a%d%d: ", i + 1, j + 1);
scanf("%d", &matrix[i][j]);
}
}
}

// function to multiply two matrices


void multiplyMatrices(int first[][10],
int second[][10],
int result[][10],
int r1, int c1, int r2, int c2) {

// Initializing elements of matrix mult to 0.


for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
result[i][j] = 0;
}
}

// Multiplying first and second matrices and storing it in result


for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
for (int k = 0; k < c1; ++k) {
result[i][j] += first[i][k] * second[k][j];
}
}
}
}

// function to display the matrix


void display(int result[][10], int row, int column) {

printf("\nOutput Matrix:\n");
for (int i = 0; i < row; ++i) {
for (int j = 0; j < column; ++j) {
printf("%d ", result[i][j]);
if (j == column - 1)
printf("\n");
}
}
}

int main()
int first[10][10], second[10][10], result[10][10], r1, c1, r2, c2;
printf("Enter rows and column for the first matrix: ");
scanf("%d %d", &r1, &c1);
printf("Enter rows and column for the second matrix: ");
scanf("%d %d", &r2, &c2);

// Taking input until


// 1st matrix columns is not equal to 2nd matrix row
while (c1 != r2) {
printf("Error! Enter rows and columns again.\n");
printf("Enter rows and columns for the first matrix: ");
scanf("%d%d", &r1, &c1);
printf("Enter rows and columns for the second matrix: ");
scanf("%d%d", &r2, &c2);
}

// get elements of the first matrix


getMatrixElements(first, r1, c1);

// get elements of the second matrix


getMatrixElements(second, r2, c2);

// multiply two matrices.


multiplyMatrices(first, second, result, r1, c1, r2, c2);

// display the result


display(result, r1, c2);

return 0;
}
Output:
Enter rows and column for the first matrix: 2
3
Enter rows and column for the second matrix: 3
2

Enter elements:
Enter a11: 2
Enter a12: -3
Enter a13: 4
Enter a21: 53
Enter a22: 3
Enter a23: 5
Enter elements:
Enter a11: 3
Enter a12: 3
Enter a21: 5
Enter a22: 0
Enter a31: -3
Enter a32: 4

Output Matrix:
-21 22
159 179
Problem 3. C Program to Sort set of strings in alphabetical order
Program:
#include<stdio.h>
#include<string.h>
int main(){
int i,j,count;
char str[25][25],temp[25];
puts("How many strings u are going to enter?: ");
scanf("%d",&count);

puts("Enter Strings one by one: ");


for(i=0;i<=count;i++)
gets(str[i]);
for(i=0;i<=count;i++)
for(j=i+1;j<=count;j++){
if(strcmp(str[i],str[j])>0){
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
printf("Order of Sorted Strings:");
for(i=0;i<=count;i++)
puts(str[i]);

return 0;
}
Output:
How many strings u are going to enter?:
5
Enter Strings one by one:
Atul
Steve
carry
Rahul
Ajeet
Order of Sorted Strings:
Ajeet
Atul
Carry
Rahul
Steve
Aim: To be able to declare pointers of different types and use them in defining self referential structures.
Problem: Write a function in c language that receives 5 integers and return the sum, average and
standard deviation of these numbers. Call this function from main() and print the results in main().
Program:
#include<stdio.h>
#include<conio.h>
#include<math.h>

void calc(int, int, int, int, int, int*, int*, float*);

int main()
{
int a, b, c, d, e, sm, av;
float sd;

printf("Enter five numbers : ");


scanf("%d%d%d%d%d", &a, &b, &c, &d, &e);

calc(a, b, c, d, e, &sm, &av, &sd);

printf("\nSum : %d\n\nAverage : %d\n\nStandard Deviation : %f\n", sm, av, sd);

getch();
return 0;
}
void calc(int a, int b, int c, int d, int e, int *sm, int *av, float *sd)
{
int i;
*sm = a + b + c + d + e;
*av = *sm / 5;
*sd = pow(a - *av, 2) + pow(b - *av, 2) + pow(c - *av, 2) + pow(d - *av, 2) + pow(e - *av, 2);
*sd = sqrt(*sd / 5);
}
Output:
Enter five numbers : 52
65
47
45
20

Sum : 229

Average : 45

Standard Deviation : 14.683324


PROBLEM2. C program to count vowels and consonants in a string using pointer
Program:
#include <stdio.h>
int main()
{
char str[100];
char *ptr;
int cntV,cntC;

printf("Enter a string: ");


gets(str);

//assign address of str to ptr


ptr=str;

cntV=cntC=0;
while(*ptr!='\0')
{
if(*ptr=='A' ||*ptr=='E' ||*ptr=='I' ||*ptr=='O' ||*ptr=='U' ||*ptr=='a' ||*ptr=='e' ||*ptr=='i' ||*ptr=='o' ||*ptr=='u')
cntV++;
else
cntC++;
//increase the pointer, to point next character
ptr++;
}

printf("Total number of VOWELS: %d, CONSONANT: %d\n",cntV,cntC);


return 0;
}
Output:
Enter a string: This is a test string
Total number of VOWELS: 5, CONSONANT: 16
Problem 3. C program to read and print student details using structure pointer, demonstrate
example of structure with pointer.
Program:

#include <stdio.h>

struct student{
char name[30];
int roll;
float perc;
};

int main()
{
struct student std; //structure variable
struct student *ptr; //pointer to student structure

ptr= &std; //assigning value of structure variable

printf("Enter details of student: ");


printf("\nName ?:"); gets(ptr->name);
printf("Roll No ?:"); scanf("%d",&ptr->roll);
printf("Percentage ?:"); scanf("%f",&ptr->perc);

printf("\nEntered details: ");


printf("\nName:%s \nRollNo: %d \nPercentage: %.02f\n",ptr->name,ptr->roll,ptr->perc);

return 0;
}
Output:
Enter details of student:
Name ?:Mike
Roll No ?:101
Percentage ?:89.7

Entered details:
Name:Mike
RollNo: 101
Percentage: 89.70
Problem4. C program to read array elements and print with addresses.
Program:
#include <stdio.h>

int main()
{
int arr[10]; //declare integer array
int *pa; //declare an integer pointer
int i;

pa=&arr[0]; //assign base address of array

printf("Enter array elements:\n");


for(i=0;i < 10; i++){
printf("Enter element %02d: ",i+1);
scanf("%d",pa+i); //reading through pointer
}

printf("\nEntered array elements are:");


printf("\nAddress\t\tValue\n");
for(i=0;i<10;i++){
printf("%08X\t%03d\n",(pa+i),*(pa+i));
}

return 0;
}
Output:
Enter array elements:
Enter element 01: 11
Enter element 02: 23
Enter element 03: 444
Enter element 04: 4
Enter element 05: 5
Enter element 06: 6
Enter element 07: 77
Enter element 08: 89
Enter element 09: 67
Enter element 10: 12

Entered array elements are:


Address Value
E73BF180 011
E73BF184 023
E73BF188 444
E73BF18C 004
E73BF190 005
E73BF194 006
E73BF198 077
E73BF19C 089
E73BF1A0 067
E73BF1A4 012
Aim: To be able to create read and write to and from simple text files.
Problem 1: A Simple C Program to open, read and close the file.
Program:
#include <stdio.h>
int main()
{
/* Pointer to the file */
FILE *fp1;
/* Character variable to read the content of file */
char c;

/* Opening a file in r mode*/


fp1= fopen ("C:\\myfiles\\newfile.txt", "r");

/* Infinite loop –I have used break to come out of the loop*/


while(1)
{
c = fgetc(fp1);
if(c==EOF)
break;
else
printf("%c", c);
}
fclose(fp1);
return 0;
}

In the above program, we are opening a file newfile.txt in r mode, reading the content of the file and
displaying it on the console.
Problem2. An example to show Open, read, write and close operation in C.
Program:
int main()
{
char ch;

/* Pointer for both the file*/


FILE *fpr, *fpw;
/* Opening file FILE1.C in “r” mode for reading */
fpr = fopen("C:\\file1.txt", "r");

/* Ensure FILE1.C opened successfully*/


if (fpr == NULL)
{
puts("Input file cannot be opened");
}

/* Opening file FILE2.C in “w” mode for writing*/


fpw= fopen("C:\\file2.txt", "w");

/* Ensure FILE2.C opened successfully*/


if (fpw == NULL)
{
puts("Output file cannot be opened");
}

/*Read & Write Logic*/


while(1)
{
ch = fgetc(fpr);
if (ch==EOF)
break;
else
fputc(ch, fpw);
}

/* Closing both the files */


fclose(fpr);
fclose(fpw);

return 0;
}
Problem 3. Reading and Writing Binary Files in C.
Program:
#include <stdio.h>
int main()
{
char ch;

/* Pointers for both binary files*/


FILE *fpbr, *fpbw;

/* Open for bin1.exe file in rb mode */


fpbr = fopen("bin1.exe", "rb");

/* test logic for successful open*/


if (fpbr == NULL)
{
puts("Input Binary file is having issues while opening");
}

/* Opening file bin2.exe in “wb” mode for writing*/


fpbw= fopen("bin2.exe", "wb");

/* Ensure bin2.exe opened successfully*/


if (fpbw == NULL)
{
puts("Output binary file is having issues while opening");
}

/*Read & Write Logic for binary files*/


while(1)
{
ch = fgetc(fpbr);
if (ch==EOF)
break;
else
fputc(ch, fpbw);
}

/* Closing both the binary files */


fclose(fpbr);
fclose(fpbw);

return 0;
}

You might also like