CCP Lab Manual, 10CPL16/26
The Meaning of an Algorithm : •
An algorithm is a basic tool which is used to express the solution for a given problem systematically in the form of instructions. This solution is called logic. It takes a set of input values and produces the desired output.
•
An algorithm is defined as unambiguous, step by step procedure (instructions) to solve a given problem in finite number of steps by accepting a set of inputs and producing the desired output. After producing the result, the algorithm should terminate. Usually, Algorithm are written in simple English like statements along with simple mathematical expressions.
Characteristics of an Algorithm: •
Input: It may accept a zero or more inputs.
•
Output: It should produce at least one output(result).
•
Definiteness: Each instruction must be clear , well-defined and precise. There should not be any ambiguity.
•
Finiteness: It shoild be a sequence of finite instructions. That is, it should end after a fixed time. It should not enter into an infinite loop.
•
Effectiveness: This means that operations must be simple and are carried out in a finite time at one or more levels of complexity. It should be effective whenever traced manually for the results.
Algorithmic Notations: •
Name of the Algorithm
•
Step number
•
Explanatory Comment
•
Termination
Algorithm to find Area of Rectangle: Step 1: [Read the values of length and breadth] Read length, breadth. Step 2: [Find the area of rectangle] Area=length*breadth. Step 3: [Output the result] Print area. Step 4: [End of Algorithm] Stop
Dept of CSE, CMRIT, B’ lore – 37
Page 1
CCP Lab Manual, 10CPL16/26 The Meaning of Flowchart : •
A flowchart is a pictorial representation of an algorithm. That is flowchart consists of sequence of instructions that are carried out in an algorithm. All the steps are drawn form of different shapes of boxes, circle and connecting arrows. Flowcharts are mainly used to help programmer to understand the logic of the program.
•
The various types of geometric shapes, arrows and symbols used while drawing the flowchart are called flowchart symbols. The symbols used and the meaning associated with each symbol are shown below.
Symbols used
Meaning associated with symbols Start or end of the flow chart(program) Computational steps (used while assigning and calculating Some results ) Input or output operation Decision making and branching Connector Predefined computation or process (used with functions are used) Repetition or a loop which is normally used to execute a group of instructions for a specifies number of times Flow of control
Entry to execute statements parallely Stop to execute statements parallely
Dept of CSE, CMRIT, B’ lore – 37
Page 2
CCP Lab Manual, 10CPL16/26 Flow chart to find the area of rectangle START
Read length and breadth
Area=lengrth*breadth
Print area
STOP
Install Turbo C on your machine and follow the steps given below in order to type and run the program given above: •
Go to the directory where you have installed Turbo C.
•
Type TC at the DOS command prompt.
•
In the edit window that opens, type the mentioned program above.
•
Save the program as hello.c by pressing F2 or Alt + „S‟.
•
Press Alt + „C‟ or Alt + F9 to compile the program.
•
Press Alt + „R‟ or Ctrl + F9 to execute the program.
•
Press Alt + F5 to see the output.
OR Instructions to use Turbo C On Windows/DOS (Disk Operating System) platform you will be using Turbo C++ editor, the following steps help you in entering and compiling your C program. •
At the DOS prompt type cd tc and press the ENTER key.
•
Then type cd bin
•
Next type tc to load and execute the TC editor.
•
Press F3 key and type the file name in the small window and press the ENTER key. (Eg. Hello. c)
Dept of CSE, CMRIT, B’ lore – 37
Page 3
CCP Lab Manual, 10CPL16/26 •
You will get a full screen and go on typing your C program.
•
After completion of typing, you have to save the program. To do this, press the F2 key.
•
To compile, press the ALT and C keys simultaneously and select compile option press the ENTER key. This creates .obj (object) file for your C program.
•
To run the program, press simultaneously the ALT and R keys. And, select run option from the drop down menu. Then press the ENTER key. This step executes your C program. This creates .exe (executable) file for your C program.
If you are using a Linux machine, you have to follow the steps mentioned below: •
Go to the Linux command prompt (# or $).
•
Type vi filename.c for example vi hello.c
•
The vi editor will open.
•
Press Insert key or I key to start to type.
•
Type the program in the editor.
•
After typing the program, Press
•
Type w and q followed by filename for example „hello.c‟. w is used to Save a file, where as q to quit. To compile a program, At the command prompt type cc hello.c Type ./a.out to run the program.
• •
Esc, Shift and then :
Note: It is not possible to execute a parallel program which is written in C language on Turbo C/Turbo C++ Compiler. Therefore it can be executed on machine with Linux Operating System or by using a tool. To compile a parallel program, at the command prompt type cc -fopenmp filename.c
Structure of a C Program: Preprocessor Directives Global Declarations (Optional) int main(void) { Local Declarations/Definitions Statements } User Defined Functions (Optional)
Dept of CSE, CMRIT, B’ lore – 37
Page 4
CCP Lab Manual, 10CPL16/26
Lab Program 1 Design, develop and execute a program in C to find and output all the roots of a given quadratic equation, for non-zero coefficients. Algorithm: Roots of a Quadratic equation Step 1: Start Step 2: Read the values of non-zero coefficients a,b and c. Step 3: Compute the value of discriminant (disc) which is equal to (b*b-4*a*c). Step 4: Check if disc is equal to 0. If true, then go to Step 5. Otherwise, go to Step 6. Step 5: Compute the roots. root1 = (-b)/(2*a) root2=root1 Output the values of roots, root1 and root2. Go to Step 9. Step 6: Check if disc is greater than zero or not. If true, then go to Step 7. Otherwise, go to Step 8. Step 7: Compute the real and distinct roots, root1 = (-b+sqrt(disc))/(2*a) root2 = (-b-sqrt(disc))/(2*a) Output the values of roots, root1 and root2. Go to Step 9. Step 8: Compute the complex and distinct roots. Compute the real part, r_part = (-b)/(2*a) Compute the imaginary part, i_part = sqrt(-disc)/(2*a) Output roots as root1 = r_part + i_part root2 = r_part – i_part Step 9: Stop
Dept of CSE, CMRIT, B’ lore – 37
Page 5
CCP Lab Manual, 10CPL16/26 Flowchart: Start
Read a, b, c
disc=b*b-4*a*c
TRUE
root1 = -b/(2*a) root2 = root1
If disc = 0?
Output root1, root2 with suitable message
FALSE
If disc>0?
FALSE
TRUE
root1 = (-b+sqrt(disc))/(2*a) root2 = (-b-sqrt(disc))/(2*a)
r_part = -b/(2*a) i_part = sqrt(-(disc))/(2*a)
Output root1, root2 with suitable message
Output root1 as r_part + i_part, root2 as r_part – i_ part
Stop
Dept of CSE, CMRIT, B’ lore – 37
Page 6
CCP Lab Manual, 10CPL16/26 /* Program to find the roots of a Quadratic equation */ #include
#include void main() { float a,b,c,root1,root2,r_part,i_part,disc; clrscr(); printf("Enter the 3 non-zero coefficients\n"); /* Read three non-zero coefficients such as a,b,c */ scanf("%f%f%f",&a,&b,&c); disc=(b*b)-(4*a*c); if(disc==0) { printf("Roots are equal\n"); root1=-b/(2*a); root2=root1; printf("root1=root2=%f",root1); } else if(disc>0) { printf("Roots are real and distinct\n"); root1=(-b+sqrt(disc))/(2*a); root2=(-b-sqrt(disc))/(2*a); printf("root1 = %f \t root2 = %f\n",root1,root2); } else { printf("Roots are complex\n"); r_part=-b/(2*a); i_part=(sqrt(-disc))/(2*a); printf("root1 = %f+i%f \t root2 = %f-i%f\n",r_part,i_part,r_part,i_part); } getch(); }
Output: First Run: Enter the 3 non-zero coefficients 1 2 1 Roots are equal root1=root2=-1.000000
Dept of CSE, CMRIT, B’ lore – 37
Page 7
CCP Lab Manual, 10CPL16/26
Second Run: Enter the 3 non-zero coefficient 2 5 2 Roots are real and distinct root1 = -0.500000 root2 = -2.000000 Third Run: Enter the 3 non-zero coefficient 2 2 2 Roots are complex root1 = -0.500000+i0.866025 root2 = -0.500000-i0.866025
Dept of CSE, CMRIT, B’ lore – 37
Page 8
CCP Lab Manual, 10CPL16/26
Lab Program 2 Design, develop and execute a program in C to implement Euclid’s algorithm to find the GCD and LCM of two integers and to output the results along with the given integers. Euclid’s Algorithm The method of finding the GCD of two numbers was named after mathematician Euclid form Alexandria and this is often called “Euclid‟s algorithm to find GCD of two numbers”.
Algorithm: To find GCD and LCM of two non-zero integers using Euclid‟s algorithm and output results along with given integers. Step 1: Start Step 2: Read the two non-zero integers num1 and num2. Step 3: Keep num1 and num2 in temporary variables to print later. n1 = num1 n2 = num2 Step 4:Compute remainder = num1 % num2. Step 5: Check if remainder is not equal to zero. If true, repeat Step 6 to Step 8. Otherwise (i.e if remainder is equal to zero) goto Step 9. Step 6: Assign num2 to num1. num1=num2 Step 7: Assign remainder to num2. num2= remainder Step 8: Compute remainder = num1 % num2. Goto Step 5. Step 9: Output num2 as GCD of n1 and n2. Step 10: Output (n1*n2) / num2 as LCM of n1 and n2. Step 11: Stop.
Dept of CSE, CMRIT, B’ lore – 37
Page 9
CCP Lab Manual, 10CPL16/26 Flowchart: START
Input two non-zero numbers num1 & num2
n1 = num1 n2 = num2
rem = num1 % num2
FALSE
while (rem!=0) Output num2 as GCD of n1 & n2
Output (n1*n2)/num2 as LCM of n1 & n2
TRUE
num1 = num2
num2 = rem
rem = num1 % num2 STOP
/* C Program to find the GCD and LCM of two integers */ #include void main() { int num1,num2,n1,n2,rem=0; clrscr(); printf("Enter two non-zero integer numbers\n"); scanf("%d%d",&num1,&num2); /*Keep num1 and num2 in temporary variables to print later*/ n1=num1; n2=num2;
Dept of CSE, CMRIT, B’ lore – 37
Page 10
CCP Lab Manual, 10CPL16/26 rem=num1%num2; while(rem!=0) { num1=num2; num2=rem; rem=num1%num2; } printf("GCD of %d and %d = %d\n", n1,n2,num2); printf("LCM of %d and %d = %d\n",n1,n2,(n1*n2)/num2); getch(); } Output: First Run Enter two non-zero integer numbers 16 8 GCD of 16 and 8 = 8 LCM of 16 and 8 = 16
Dept of CSE, CMRIT, B’ lore – 37
Page 11
CCP Lab Manual, 10CPL16/26
Lab Program 3 Design, develop and execute a program in C to reverse a given four digit integer number and check whether it is a palindrome or not. Output the given number with suitable message. Algorithm: To reverse a four digit number and check whether it is a palindrome or not. Step 1: Start Step 2: Read the four digit number, digit_no. Step 3: Keep digit_no in a temporary variable to verify with it‟s reverse later and decide whether it is a palindrome or not. num = digit_no Step 4: Initialize reverse to zero. Step 5: Output the four digit number, digit_no. Step 6: Check if digit_no is not equal to zero. If true, repeat Step 7 to Step 9. Otherwise (i.e if digit_no is equal to zero), goto Step 10. Step 7: Compute remainder = digit_no % 10. Step 8: Compute reverse = reverse * 10 + remainder. Step 9: Compute digit_no = digit_no / 10. Goto Step 6. Step 10: Output reverse. Step 11: Check if reverse is equal to num. If true, output the message “The number is a palindrome”. Otherwise, output the message “The number is not a palindrome”. Step 12: Stop.
Dept of CSE, CMRIT, B’ lore – 37
Page 12
CCP Lab Manual, 10CPL16/26 Flowchart: START
Input the four digit number digit_no
num = digit_no
rev =0
Output the four digit number
FALSE
while (digit_no!=0) TRUE
Output rev rem = digit_no %10 TRUE
is num = rev?
rev = rev*10 + rem
digit_no = digit_no / 10 FALSE
Output message “The number is not a palindrome
Output message “The number is a palindrome
STOP
Dept of CSE, CMRIT, B’ lore – 37
Page 13
CCP Lab Manual, 10CPL16/26 /* C Program to find whether a given 4-digit integer is palindrome or not */ #include void main() { int digit_no,num,rev,rem; clrscr(); printf("Enter the four digit integer number\n"); scanf("%d",&digit_no); num=digit_no; rev=0; printf("The given integer number = %d\n",num); while(digit_no != 0) { rem=digit_no%10; rev=rev*10+rem; digit_no = digit_no/10; } printf("The reverse of given number %d is %d\n",num,rev); if(num == rev) printf("The given number %d is a palindrome\n",num); else printf("The given number %d is not a palindrome\n",num); getch(); }
Output: First Run: Enter the four digit integer number 2442 The given integer number = 2442 The reverse of given number 2442 is 2442 The given number 2442 is a palindrome Second Run: Enter the four digit integer number 1234 The given integer number = 1234 The reverse of given number 1234 is 4321 The given number 1234 is not a palindrome
Dept of CSE, CMRIT, B’ lore – 37
Page 14
CCP Lab Manual, 10CPL16/26
Lab Program 4 Design, develop and execute a program in C to evaluate the given polynomial f(x) = a4x4 + a3x3 + a2x2 + a1x + a0 for given value of x and the coefficients using Horner’s method. Method: Evaluating the polynomial means, finding the value of f(x), given the value of x and the co-efficients, a0,a1,a2,…,an In general, the polynomial can be of the form: (a0+x(a1+x(a2+x(a3+…+x(an-1+x.an))))) In nested parenthesis expression, innermost parenthesis is evaluated first. So, sum (i.e… f(x)) is initialized to a[n]*x. Then, from (n-1)th term to 1st term, sum is repeated calculated by the expression sum = (sum+a[i])*x. At last, 0th term is added to sum.
Example: If the degree of polynomial is 4, then polynomial equation will be 5x4 + 4x3 + 3x2 + 2x1 + 1. Value of x = 2 then 5(2)4 + 4(2)3 + 3(2)2 + 2(2)1 + 1 The sum of polynomial = 129
Algorithm: To evaluate the polynomial using Horner’s method. Step 1: Start Step 2: Read the order of the polynomial. (i.e.. n). Step 3: Read (n+1) co-efficients of the polynomial and store in an array, a.. Step 4: Read the value of x. Step 5: Initialize sum (i.e. f(x)) to a[n]*x. Step 6: Initialize index i to n-1. Step 7: Check if i is greater than 0. If true, then goto Step 8. Otherwise, goto Step 9. Step 8: Compute sum. sum=(sum+a[i])*x. Decrement i and goto Step 7. Step 9: Compute sum. sum=sum+a[0]. Step 10: Output sum (i.e. f(x)). Step 11: Stop
Dept of CSE, CMRIT, B’ lore – 37
Page 15
CCP Lab Manual, 10CPL16/26 Flowchart: START
Read n, the order of polynomial FALSE
for (i=0;i<=n;i++) TRUE
Read a[i]
Read x
sum = a[n]*x FALSE
for (i=n-1;i>0;i--) TRUE
sum=(sum+a[i])*x
sum=sum+a[0]
Print sum
STOP
Dept of CSE, CMRIT, B’ lore – 37
Page 16
CCP Lab Manual, 10CPL16/26 /* C program to evaluate a polynomial using Horner’s method */ #include void main() { int n,i; float a[20],x,sum; clrscr(); printf("Enter the order of the polynomial\n"); scanf("%d",&n); printf("Enter the (n+1) co-efficients\n"); for(i=0;i<=n;i++) scanf("%f",&a[i]); printf("Enter the value of x\n"); scanf("%f",&x); /*Evaluate the polynomial*/ sum=a[n]*x; for(i=n-1;i>0;i--) sum=(sum+a[i])*x; sum=sum+a[0]; printf("Evaluation of polynomial,f(%f)=%f\n",x,sum); getch(); }
Output: Enter the order of the polynomial 4 Enter the (n+1) co-efficients 1 2 3 4 5 Enter the value of x 2 Evaluation of polynomial, f(2)=129.000000
Dept of CSE, CMRIT, B’ lore – 37
Page 17
CCP Lab Manual, 10CPL16/26
Lab Program 5 Design, develop and execute a program in C to copy its input to its output, replacing each string of one or more blanks by a single blank.
Algorithm: To copy string input to its output, replacing each string of one or more blanks by a single blank. Step 1: Start Step 2: Read source string. Step 3: Initialize first index of source string to Zero Step 4: Initialize first index of destination string to Zero. Step 5: Check if source string character is equal to null character. If true repeat Step 6 to Step 10. Otherwise goto Step11. Step 6: Copy a character from source to destination. Step 7: Update source and destination index. Step 8: Check if previous stored character is blank. If true goto Step 9. Otherwise goto Step 5. Step 9: Check if current source character is blank. If true repeat Step 10. Otherwise goto Step 5. Step 10: Skip remaining blank spaces from the source string by incrementing the source index by one. Step 11: Terminate the destination string with null character. Stop 12: Print the destination string. Stop 13: Stop.
Dept of CSE, CMRIT, B’ lore – 37
Page 18
CCP Lab Manual, 10CPL16/26 Flowchart: Start
Read source string i=0 j=0
while(src[i]!=‟\0‟)
FALSE
TRUE
dest[j]=src[i]
i++
j++
FALS E
if(src[i-1]==‟ „)? TRUE
FALS E
while(src[i]==‟ „)? TRUE
i++
dest[j]=‟\0 '‟
Output destination string
STOP
Dept of CSE, CMRIT, B’ lore – 37
Page 19
CCP Lab Manual, 10CPL16/26 /* C program to copy its input to its output, replacing each string of one or more blanks by a single blank */ #include void main() { char src[100],dest[100]; int i,j; clrscr(); printf("Enter a string with blanks\n"); gets(src); i=0; /* First index of source string */ j=0; /* First index of destination string */ while(src[i]!='\0') { dest[j]=src[i]; /* Copy a character from source to destination */ i++; /* Update source index */ j++; /* Update destination index */ if(src[i-1]==' ') /* If previous stored character is blank */ { while(src[i]==' ') /* Skip remaining blanks in the source */ i++; } } dest[j]='\0'; /* Terminate the destination string with null character */ printf("The string with single blank : %s", dest); getch(); }
Output: First Run: Enter a string with blanks CMRIT IN AECSLAYOUT The string with single blank: CMRIT IN AECSLAYOUT Second Run: Enter a string with blanks CMR INSTITUTE OF TECHNOLOGY BANGALORE The string with single blank: CMR INSTITUTE OF TECHNOLOGY BANGALORE
Dept of CSE, CMRIT, B’ lore – 37
Page 20
CCP Lab Manual, 10CPL16/26
Lab Program 6 Design, develop and execute a program in C to input N integer numbers in ascending order into a single dimension array, and then to perform a binary search for a given key integer number and report success or failure in the form of a suitable message. Algorithm: To conduct a binary search for key integer number in an ascending ordered array of numbers. Step 1: Start Step 2: Read the number of elements in an array (i.e.. n). Step 3: Initialize index i to zero. Step 4: Check if i is less than n (total number of elements in the array). If true, then goto Step 5. Otherwise, goto Step 6. Step 5: Read the ith item in the array, a[i]. Increment i and goto Step 4. Step 6: Read the key element to be searched in the array. Step 7: Initialize low to 0 and high to (n-1). Step 8: Check if low is less than or equal to high. Execute Step 9 to Step 11 until this satisfied. When condition fails, Output the message “Key Not found....
condition is
UnSuccessful
search” and goto Step 12. Step 9: Calculate mid which is (low+high)/2. Step 10: Check if key is equal to a[mid]. If true, Output the message “Key found....Successful search” and goto to Step 12. Otherwise, goto Step 11. Step 11: Check if key is less then a[mid]. If true, the key is present in the first half of the array. So, update high to (mid-1). Otherwise, the key is present in the second half. So, low is updated to (mid+1). Goto Step 8. Step 12: Stop
Dept of CSE, CMRIT, B’ lore – 37
Page 21
CCP Lab Manual, 10CPL16/26 Flowchart:
START
Read n
for i=0;i
FALSE
TRUE
Read a[i]
Read key
low=0 high=n-1
FALSE
Output Key Not Found Unsuccessful search
while(low<=high) TRUE
mid=(low+high)/2
Is key==a[mid] ? ?
TRUE
Output Key Found Successful search
STOP
FALSE
Is key
TRUE
high=mid-1
FALSE
low=mid+1
Dept of CSE, CMRIT, B’ lore – 37
Page 22
CCP Lab Manual, 10CPL16/26 /* C program to search a key element in ascending order array using binary search technique */ #include void main() { int a[10],key,n,i,low,mid,high; clrscr(); printf("Enter the number of elements in the list\n"); scanf("%d",&n); printf("Enter the real numbers in ascending order\n"); for(i=0;i
Output: First Run: Enter the number of elements in the list 7 Enter the real numbers in ascending order 3
Dept of CSE, CMRIT, B’ lore – 37
Page 23
CCP Lab Manual, 10CPL16/26 7 10 23 35 42 60 Enter the key element to be searched 35 Key element found. Successful Search Second Run: Enter the number of elements in the list 5 Enter the real numbers in ascending order 44 76 98 105 200 Enter the key element to be searched 105 Key element found. Successful Search Third Run: Enter the number of elements in the list 6 Enter the real numbers in ascending order 18 38 59 85 90 100 Enter the key element to be searched 42 Key element not found. Unsuccessful Search
Dept of CSE, CMRIT, B’ lore – 37
Page 24
CCP Lab Manual, 10CPL16/26
Lab Program 7 Design, develop and execute a program in C to input N integer numbers into a single dimension array, sort them in to ascending order using bubble sort technique, and then to print both the given array and the sorted array with suitable headings. Algorithm: To sort the array of integers in ascending order using bubble sort technique. Step 1: Start Step 2: Read the number of elements into an array (i.e.. n). Step 3: Initialize index i to zero. Step 4: Check if i is less than n (total number of elements in the array). If true, then goto Step5. Otherwise, goto Step 6. Step 5: Read the ith item in the array, a[i]. Increment i and goto Step 4. Step 6: Output the unsorted array elements. Step 7: Initialize index i to zero. Step 8: Check if i is less than n (total number of elements in the array). If true, then goto Step9. Otherwise, goto Step 10. Step 9: Output the ith item in the array, a[i]. Increment i and goto Step 8. Step 10: Initialize pass to 1. Step 11: Check if pass is less than n. If true, goto Step 12. Otherwise, goto Step 15. Step 12: Initialize index i to zero. Step 13: Check if i is less than (n-pass) (i.e there are(n-pass) comparisons to be done in each pass). If true, goto Step 14. Otherwise, increment pass and goto Step 11. Step 14: Check if a[i] is greater than a[i+1] (i.e 2 adjacent elements are compared). If true, then swap the two elements using temporary variable. Otherwise, goto Step 13. Step 15: Output the sorted array elements.. Step 16: Initialize index i to zero. Step 17: Check if i is less than n (total number of elements in the array). If true, then goto Step 18. Otherwise, goto Step 19. Step 18: Output the ith item in the array, a[i]. Increment i and goto Step 17. Step 19: Stop
Dept of CSE, CMRIT, B’ lore – 37
Page 25
CCP Lab Manual, 10CPL16/26 Flowchart:
START
Read n
for i=0;i
FALSE
TRUE
Read a[i]
Output Unsorted array elements
for i=0;i
FALSE
TRUE
Output a[i]
FALSE
for pass=1;pass
for i=0;i
FALSE
TRUE
FALSE
if a[i]>a[i+1] ? ? TRUE
temp= a[i] a[i]= a[i+1] a[i+1]= temp
A Dept of CSE, CMRIT, B’ lore – 37
Page 26
CCP Lab Manual, 10CPL16/26
A
Output Sorted array elements
for i=0;i
FALSE
TRUE
Output a[i]
STOP
/* C program to sort a given list of integers using bubble sort technique*/ #include void main() { int a[20],n,i,pass,temp; clrscr(); printf("Enter the size of an array\n"); scanf("%d",&n); printf("Enter the array elements to be sorted:\n"); for(i=0;ia[i+1]) { temp=a[i]; a[i]=a[i+1];
Dept of CSE, CMRIT, B’ lore – 37
Page 27
CCP Lab Manual, 10CPL16/26 a[i+1]=temp; } } } printf("Sorted array elements are:\n"); for(i=0;i
Output: Enter the size of an array 7 Enter the array elements to be sorted: 65 48 36 72 5 7 14 Unsorted array elements are: a[0] = 65 a[1] = 48 a[2] = 36 a[3] = 72 a[4] = 5 a[5] = 7 a[6] = 14 Sorted array elements are: a[0] = 5 a[1] = 7 a[2] = 14 a[3] = 36 a[4] = 48 a[5] = 65 a[6] = 72
Dept of CSE, CMRIT, B’ lore – 37
Page 28
CCP Lab Manual, 10CPL16/26
Lab Program 8 Design, develop and execute a program in C to compute and print the word length of the host machine. Algorithm: To compute and print the word length on the host machine. Step 1: Start Step 2: Declare two variables to hold word length and minimum or maximum number. Step 3: Initialize word length to Zero. Step 4: Initialize maximum number to 1‟s complement of Zero. Step 5: Check if maximum number is not equal to Zero. If true repeat Step 6 and Step 7. Otherwise goto Step 8. Step 6: Shift the bits towards left by 1. Step 7: Update the word length. Step 8: Print word length of machine. Stop 9: Stop.
Flowchart: Start
count=0
n=~0
while(n!=0)
FALSE
Output Wordlength of Machine
TRUE n=n<<1
Stop
count++
Dept of CSE, CMRIT, B’ lore – 37
Page 29
CCP Lab Manual, 10CPL16/26 /* C Program to compute and print the word length on the host machine */ #include void main() { int count; /* To hold word length */ unsigned int n; /* To Hold minimum or maximum number */ clrscr(); count=0; /* Initial word length */ n=~0; /* Maximum number: 1's complement of 0 */ while(n!=0) /* As long as value is not Zero */ { n=n<<1; /* Shift the bits towards left */ count++; /* Update the word length */ } printf("Wordlength of Machine=%d-bits\n",count); getch(); }
Output: If the program is executed on Windows Platform then the output is Wordlength of Machine=16-bits (For 32-bit Machine) If the program is executed on Linux Platform then the output is Wordlength of Machine=32-bits (For 32-bit Machine)
Dept of CSE, CMRIT, B’ lore – 37
Page 30
CCP Lab Manual, 10CPL16/26
Lab Program 9 Design, develop and execute a program in C to calculate the approximate value of exp(0.5) using the Taylor Series expansion for the exponential function. Use the terms in the expansion until the last term is less than the machine epsilon defined FLT_EPSILON in the header file . Also print the value returned by the Mathematical function exp( ). The Taylor Series Equation is
Algorithm: To calculate the approximate value of exp(0.5) using the Taylor Series expansion for the exponential function . Step 1: Start Step 2: Initialize x to 0.5 Step 3: Initialize sum to One. Step 4: Find sum of Exponential Series by repeating the Step 5 to Step7. Step 5: Find term by using the following equation term=pow(x,i)/fact(i) Step 6:Check if term is less than FLT_EPSILON. If it is true goto Step 8 .Otherwise goto Step 7. (FLT_EPSILON is a library constant, the definition is available in float.h header file). The value of this is 1.16219E-07) Step 7: sum=sum+term. Goto Step 5. Step 8: Print the output by using Taylor Series. Stop 9: Print the output by using Mathematical Library Function. Stop 10: Stop.
Algorithm for Factorial Function: Step 1: Start Step 2: Initialize product to 1. Step 3: Check if i is less than or equal to n( A number of which factorial is to be find). If it is true repeat the Step 4. Otherwise, goto Step 5. Step 4: prod=prod*I Step 5: Stop
Dept of CSE, CMRIT, B’ lore – 37
Page 31
CCP Lab Manual, 10CPL16/26 Flowchart: Start
x=0.5
sum=1 Output the sum using Taylor Series
for(i=1; ;i++) TRUE
term=pow(x,i) /
fact(i)
Output the sum using Mathematical Library Function
TRUE Is (term
Stop FALSE sum=sum+term void fact(int n)
prod=1 FALSE
for(i=1;i<=n;i++) TRUE TRUE prod=prod*i
RETURN
Dept of CSE, CMRIT, B’ lore – 37
Page 32
CCP Lab Manual, 10CPL16/26 /* C Program to calculate the approximate value of exp(0.5) using the Taylor Series expansion for the exponential function */ #include #include #include int fact(int); /* A function used to determine the factorial of a number */ void main() { int i; float x=0.5; double sum,term; clrscr(); sum=1; /* Find sum of Exp series */ for(i=1;;i++) { term=pow(x,i)/fact(i); if(term
int fact(int n) { int i,prod; prod=1; for(i=1;i<=n;i++) prod=prod*i; return prod; }
Output: Using Taylor Series e^0.5=1.648721 Using Library function e^0.5=1.648721
Dept of CSE, CMRIT, B’ lore – 37
Page 33
CCP Lab Manual, 10CPL16/26
Lab Program 10 Design, develop and execute a program in C to read two matrices A (M x N) and B (P x Q) and compute the product of A and B if the matrices are compatible for multiplication. The program must print the input matrices and 3 3 the resultant matrix with suitable headings and format if the matrices are compatible for multiplication, otherwise the program must print a suitable message. (For the purpose of demonstration, the array sizes M, N, P, and Q can all be less than or equal to 3)
Algorithm: To compute product of two matrices. Step 1: Start Step 2: Read the size of the two matrices m, n, p, q. Step 3: Check if n is not equal to p. If true, goto Step 4. Otherwise, goto Step 5 Step 4: Print the message Matrix Multiplication not possible. Goto Step 15. Step 5: Read the elements into matrix A (i.e.. a[3][3]) and B (i.e.. b[3][3]) and also print them. Step 6: Initialize index row to 0. Step 7: Check if row is less than m. If true, then goto Step 8. Otherwise, goto Step 14. Step 8: Initialize index col to 0. Step 9: Check if col is less than q. If true, then goto Step 10. Otherwise, goto Step 7. Step 10: Initialize c[row][col] to 0 Step 11: Initialize index k to 0. Step 12: Check if k is less than n. If true, then goto Step 13. Otherwise, goto Step 9. Step 13: Compute c[row][col] = c[row][col]+a[row][k]*b[k][col]. Increment k and goto Step 12. Step 14: Print the matrix C (i.e.. c[3][3]) Step 15: Stop
Dept of CSE, CMRIT, B’ lore – 37
Page 34
CCP Lab Manual, 10CPL16/26 Flowchart: START
Read m, n, p, q. The size of matrices
TRUE
If (n!=p) ?
Print Matrix Multiplication not possible
A
FALSE
for (row=0;row
FALSE TRUE
TRUE FALSE TRUE
for (col=0;col
for (row=0;row
FALSE TRUE
TRUE
for (col=0;col
TRUE Read b[row][col]
B
Dept of CSE, CMRIT, B’ lore – 37
Page 35
CCP Lab Manual, 10CPL16/26
B FALSE TRUE
for (row=0;row
for (col=0;col
FALSE TRUE
for (row=0;row
for (col=0;col
A
FALSE
for (row=0;row
Output Matrix C
STOP
TRUE
for (col=0;col
c[row][col]=0 FALSE
for (k=0;k
c[row][col]+= a[row][k]* b[k][col]
Dept of CSE, CMRIT, B’ lore – 37
Page 36
CCP Lab Manual, 10CPL16/26 /* C program to multiply two matrices A and B */ #include void main() { int m,n,p,q,row,col,k,a[3][3],b[3][3],c[3][3]; clrscr(); printf("Enter the size of matrix A\n"); scanf("%d%d",&m,&n); printf("Enter the size of matrix B\n"); scanf("%d%d",&p,&q); if(n!=p) { printf("Matrix Multiplication is not possible\n"); getch(); exit(0); } printf("Enter the elements into matrix A\n"); for(row=0;row
Dept of CSE, CMRIT, B’ lore – 37
Page 37
CCP Lab Manual, 10CPL16/26 for(col=0;col
Output: First Run: Enter the size of matrix A 22 Enter the size of matrix B 23 Enter the elements into matrix A 6428 Enter the elements into matrix B 324147 The elements of matrix A are 6 4 2 8 The elements of matrix B are
Dept of CSE, CMRIT, B’ lore – 37
Page 38
CCP Lab Manual, 10CPL16/26 3 2 4 1 4 7 Product of Matrix A and B is 22 28 52 14 36 64
Second Run: Enter the size of matrix A 23 Enter the size of matrix B 23 Matrix Multiplication is not possible
Dept of CSE, CMRIT, B’ lore – 37
Page 39
CCP Lab Manual, 10CPL16/26
Lab Program 11 Design, develop and execute a parallel program in C to add, elementwise, two onedimensional arrays A and B of N integer elements and store the result in another onedimensional array C of N integer elements. Note: It is not possible to execute a parallel program which is written in C language on Turbo C/Turbo C++ Compiler. Therefore it can be executed on machine with Linux Operating System or by using a tool.
If you are using a Linux Platform, you have to follow the steps mentioned below: •
Go to the Linux command prompt (# or $).
•
Type vi filename.c for example vi program11.c
•
The vi editor will open.
•
Press Insert key or I key to start to type.
•
Type the program in the editor.
•
After typing the program, Press
•
Type w and q
Esc, Shift and then :
followed by file name for example ‘hello.c’. w is used for Saving
a file where as q for quit. •
To compile a program, At the command prompt type cc –fopenmp hello.c .
•
Type
./a.out to run the program.
Algorithm: To add, elementwise, two one-dimensional arrays A and B of N integer elements. Step 1: Start Step 2: Read the size of an array Step 3: Read the elements into array a and b and also print them. Step 4: #pragma omp parallel for Step 5: Check if i is less than n. If true, then goto Step 6. Otherwise, goto Step 7. Step 6: Compute c[i]=a[i]+b[i]. Increment i and goto Step 5. Step 7: Print Thread id by invoking Library function omp_get_thread_num(). Increment I and goto Step 5. Step 8: Print the array C. Step 9: Stop
Dept of CSE, CMRIT, B’ lore – 37
Page 40
CCP Lab Manual, 10CPL16/26 Flowchart: START
Read n
FALSE
for i=0;i
Read a[i]
FALSE
for i=0;i
Read b[i]
FALSE
for i=0;i
Output a[i]
FALSE
for i=0;i
Output b[i]
Z
Dept of CSE, CMRIT, B’ lore – 37
Page 41
CCP Lab Manual, 10CPL16/26
Z
for i=0;i
FALSE
TRUE
c[i]=a[i]+b[i]
Output c[i] & Thread id
FALSE
for i=0;i
Output c[i]
STOP
/* Parallel Program in C to add, elementwise, two one-dimensional arrays A and B of N integer elements */ #include #include int main() { int a[10],b[10],c[10],i, n; printf("Enter the number of elements: "); scanf("%d",&n); printf("Enter the elements of 1st array: "); for(i=0;i
Dept of CSE, CMRIT, B’ lore – 37
Page 42
CCP Lab Manual, 10CPL16/26 printf("\nThe contents of 1st array: "); for(i=0;i
Output: Enter the number of elements: 4 Enter the elements of 1st array: Enter the elements of 2nd array: The contents of 1st array: a[0]=1 a[1]=2 a[2]=3 a[3]=4 The contents of 2nd array: b[0]=1 b[1]=2 b[2]=3 b[3]=4
1 1
2 2
3 3
c[0]=2,Thread id=0
c[1]=4,Thread id=0
c[2]=6,Thread id=1
c[3]=8,Thread id=1
4 4
The new array is : c[0]=2 c[1]=4 c[2]=6 c[3]=8
Dept of CSE, CMRIT, B’ lore – 37
Page 43
CCP Lab Manual, 10CPL16/26
Lab Program 12 Design and develop a function rightrot (x, n) in C that returns the value of the integer x rotated to the right by n bit positions as an unsigned integer. Invoke the function from the main with different values for x and n and print the results with suitable headings. Algorithm for main() function: Step 1: Start Step 2: Read an unsigned integer that should be less than or equal to 65535. Step 3: Read the value of x i.e. how many times to rotate. Step 4: Find the result by calling rightrot(x,n) function Step 5: Print the output Step 6: Stop.
Algorithm for rightrot(x,n) function: Step 1: Start Step 2: Check if i is less than or equal to n. If it is true, then goto Step 3. Otherwise, goto Step 6. Step 3: Check if the x is divisible by 2. If it is Zero then goto Step 4. Otherwise, goto Step 5. Step 4: x=x>>1 Step 5: x=x>>1 and x+=32768; Step 6: Stop.
Dept of CSE, CMRIT, B’ lore – 37
Page 44
CCP Lab Manual, 10CPL16/26 Flowchart Start
Read x
Read n
result=rightrot(x,n)
Output the Result
STOP
unsigned int rightrot(unsigned int x, int n)
for(i=1;i<=n;i++)
FALSE
TRUE FALSE
x=x>>1 x+=32768
Is (x%2==0) TRUE TRUE x=x>>1
RETURN (x)
Dept of CSE, CMRIT, B’ lore – 37
Page 45
CCP Lab Manual, 10CPL16/26 /* C Program that displays the value of the integer x rotated to the right by n bit positions as an unsigned integer */ #include unsigned int rightrot(unsigned int, int); void main() { unsigned int x, result; int n; clrscr(); printf("Enter an unsigned integer <=65535\n"); scanf("%u",&x); printf("Rotate %u how many times:",x); scanf("%d",&n); result=rightrot(x,n); printf("rightrot(%u,%d)=%u\n",x,n,result); } unsigned int rightrot(unsigned int x, int n) { int i; for(i=1;i<=n;i++) { if(x%2==0) x=x>>1; else { x=x>>1; x+=32768; } } return x; }
Output: First Run: Enter an unsigned integer <=65535 1 Rotate 1 how many times: 1 rightrot(1,1)=32768
Second Run: Enter an unsigned integer <=65535
Dept of CSE, CMRIT, B’ lore – 37
Page 46
CCP Lab Manual, 10CPL16/26 65535 Rotate 65535 how many times: 5 rightrot(65535,5)=65535
Third Run: Enter an unsigned integer <=65535 32768 Rotate 32768 how many times: 15 rightrot(32768,15)=1
Dept of CSE, CMRIT, B’ lore – 37
Page 47
CCP Lab Manual, 10CPL16/26
Lab Program 13 Design and develop a function isprime (x) that accepts an integer argument and returns 1 if the argument is prime and 0 otherwise. The function is to use plain division checking approach to determine if a given number is prime. Invoke this function from the main with different values obtained from the user and print appropriate messages. Algorithm for main() function: Step 1: Start Step 2: Read the number „n‟. Step 3: Check if n is equal to zero. If true, then output the message “Number is not a prime” and goto Step 8. Otherwise, goto Step 4. Step 4: Call the isprime(n) function. Step 5: Check the returned value is equal to Zero. If it is true then output the message “ Number is not a prime” and goto Step 7. Otherwise, goto Step 6. Step 6: Output the message “Number is prime”. Step 7: Stop.
Algorithm for isprime(x) function: Step 1: Start Step 2: Initialize i to 2 Step 3: Check if i is less than or equal to (x/2). If true, repeat the Step 4. Otherwise, goto Step 5. Step 4: Check if x is divisible by i ( i.e check if ( x % i ) is equal to zero). If true, then return the value as Zero and goto Step 6. Otherwise, increment i and goto Step 3. Step 5: Return the value as One and goto Step 6. Step 6: Stop.
Dept of CSE, CMRIT, B’ lore – 37
Page 48
CCP Lab Manual, 10CPL16/26 Flowchart: Start
Input the integer number
TRUE
Is (n=0)?
Output n is not a Prime
FALSE
flag=isprime(n)
TRUE
Is (flag=0)?
Output n is not a Prime
FALSE Output n is a Prime
STOP
int prime(int n)
for(i=2;i<=n/2;i++)
FALSE
TRUE FALSE
Is (x%i==0)? TRUE RETURN 0
RETURN 1
Dept of CSE, CMRIT, B’ lore – 37
Page 49
CCP Lab Manual, 10CPL16/26 /* C program to find whether a given number is prime or not by using function */ #include int isprime(int); void main() { int n,i,flag; clrscr(); printf("Enter an integer number \n"); scanf("%d",&n); if(n == 0) { printf("%d is not a prime number\n",n); getch(); exit(0); } flag=isprime(n); if(flag==0) printf("%d is not a prime number\n",n); else printf("%d is a prime number\n",n); getch(); } int isprime(int x) { int i; for(i=2;i<=x/2;i++) if(x%i == 0) return 0; return 1; }
Output: First Run: Enter an integer number 23 23 is a prime number
Second Run: Enter an integer number 15 15 is not a prime number
Dept of CSE, CMRIT, B’ lore – 37
Page 50
CCP Lab Manual, 10CPL16/26
Lab Program 14 Design, develop and execute a parallel program in C to determine and print the prime numbers which are less than 100 making use of algorithm of the Sieve of Eratosthenes. Algorithm: To find Prime Numbers Using The Sieve Of Eratosthenes. Step 1: Start Step 2: #pragma omp parallel for Step 3: Check if i is less than or equal to 99. If true, then goto Step 4. Otherwise goto Step 6. Step 4: num[i]=i+1 Step 5: Print Thread id by invoking Library function omp_get_thread_num().Increment i and goto Step 3. Step 6: #pragma omp parallel for Step 7: Check if i is less than or equal to 99. If true, then goto Step 8. Otherwise goto Step 14. Step 8: Check if num[i] is not equal to zero. If true, then goto Step 9. Otherwise increment i and goto Step 7. Step 9: #pragma omp parallel for Step 10: Check if j is less than or equal to 99. If true, then goto Step 11. Otherwise increment i and goto Step 7. Step 11: Check if num[j] is not equal to zero. If true, then goto Step 12. Otherwise increment j and goto Step 10. Step 12: Check if num[j] is a multiple of num[i]. If true, then set num[j]=0. Otherwise increment j and goto Step 10. Step 13: Check if i is less than or equal to 99. If true, then goto Step 14. Otherwise goto Step 15. Step 14: Check if num[i] is not equal to zero. If true, then print Prime numbers which are less than 100. Otherwise goto Step 15. Step 15: Stop.
Dept of CSE, CMRIT, B’ lore – 37
Page 51
CCP Lab Manual, 10CPL16/26 Flowchart:
START
FALSE
for (i=0;i<=99;i++) TRUE
num[i]=i+1
Output num[i] and Thread id
FALSE
for (i=1;i<=99;i++) TRUE
if(num[i]!=0)
Z TRUE
FALSE
for (j=i+1;j<=99;j++) TRUE FALSE
if(num[j]!=0) TRUE FALSE
if(num[j]!%num[i]=0)
TRUE
num[j]=0
Dept of CSE, CMRIT, B’ lore – 37
Page 52
CCP Lab Manual, 10CPL16/26
Z
for (i=0;i<=99;i++)
FALSE
TRUE FALSE
if(num[i]!=0)
STOP
TRUE
Output num[i]
/* Parallel Program in C to Find Prime Numbers Using The Sieve Of Eratosthenes*/ #include #include int main() { int num[100], i, j; #pragma omp parallel for for(i=0;i<=99;i++) /*Fill num with the first 100 numbers*/ { num[i]=i+1; printf("num[%d]=%d,Thread id=%d\n",i,num[i],omp_get_thread_num()); } #pragma omp parallel for for(i=1;i<=99;i++) { if(num[i]!=0) { #pragma omp parallel for for(j=(i+1);j<=99;j++) { if(num[j]!=0) { if((num[j]%num[i])==0) /*check if num[j] is a multiple of num[i]*/ num[j]=0; /* if it is a multiple then set it to 0*/
Dept of CSE, CMRIT, B’ lore – 37
Page 53
CCP Lab Manual, 10CPL16/26 } } } }
printf(“The prime numbers are: \n“); for(i=0;i<=99;i++) { if(num[i]!=0) /*Print all prime numbers (less than 100)*/ printf("%d\t",num[i]); } printf(“\n“); return 0; }
Output: num[0]=1,Thread id=0 num[1]=2,Thread id=0 num[2]=3,Thread id=0 num[3]=4,Thread id=0 num[4]=5,Thread id=0 num[5]=6,Thread id=0 num[6]=7,Thread id=0 num[7]=8,Thread id=0 num[8]=9,Thread id=0 num[9]=10,Thread id=0 num[10]=11,Thread id=0
num[11]=12,Thread id=0
num[12]=13,Thread id=0
num[13]=14,Thread id=0
num[14]=15,Thread id=0
num[15]=16,Thread id=0
num[16]=17,Thread id=0
num[17]=18,Thread id=0
num[18]=19,Thread id=0
num[19]=20,Thread id=0
num[20]=21,Thread id=0
num[21]=22,Thread id=0
num[22]=23,Thread id=0
num[23]=24,Thread id=0
num[24]=25,Thread id=0
num[25]=26,Thread id=0
num[26]=27,Thread id=0
num[27]=28,Thread id=0
num[28]=29,Thread id=0
num[29]=30,Thread id=0
num[30]=31,Thread id=0
num[31]=32,Thread id=0
num[32]=33,Thread id=0
num[33]=34,Thread id=0
num[34]=35,Thread id=0
num[35]=36,Thread id=0
num[36]=37,Thread id=0
num[37]=38,Thread id=0
num[38]=39,Thread id=0
num[39]=40,Thread id=0
num[40]=41,Thread id=0
num[41]=42,Thread id=0
num[42]=43,Thread id=0
num[43]=44,Thread id=0
num[44]=45,Thread id=0
num[45]=46,Thread id=0
num[46]=47,Thread id=0
num[47]=48,Thread id=0
Dept of CSE, CMRIT, B’ lore – 37
Page 54
CCP Lab Manual, 10CPL16/26 num[48]=49,Thread id=0
num[49]=50,Thread id=0
num[50]=51,Thread id=1
num[51]=52,Thread id=1
num[52]=53,Thread id=1
num[53]=54,Thread id=1
num[54]=55,Thread id=1
num[55]=56,Thread id=1
num[56]=57,Thread id=1
num[57]=58,Thread id=1
num[58]=59,Thread id=1
num[59]=60,Thread id=1
num[60]=61,Thread id=1
num[61]=62,Thread id=1
num[62]=63,Thread id=1
num[63]=64,Thread id=1
num[64]=65,Thread id=1
num[65]=66,Thread id=1
num[66]=67,Thread id=1
num[67]=68,Thread id=1
num[68]=69,Thread id=1
num[69]=70,Thread id=1
num[70]=71,Thread id=1
num[71]=72,Thread id=1
num[72]=73,Thread id=1
num[73]=74,Thread id=1
num[74]=75,Thread id=1
num[75]=76,Thread id=1
num[76]=77,Thread id=1
num[77]=78,Thread id=1
num[78]=79,Thread id=1
num[79]=80,Thread id=1
num[80]=81,Thread id=1
num[81]=82,Thread id=1
num[82]=83,Thread id=1
num[83]=84,Thread id=1
num[84]=85,Thread id=1
num[85]=86,Thread id=1
num[86]=87,Thread id=1
num[87]=88,Thread id=1
num[88]=89,Thread id=1
num[89]=90,Thread id=1
num[90]=91,Thread id=1
num[91]=92,Thread id=1
num[92]=93,Thread id=1
num[93]=94,Thread id=1
num[94]=95,Thread id=1
num[95]=96,Thread id=1
num[96]=97,Thread id=1
num[97]=98,Thread id=1
num[98]=99,Thread id=1
num[99]=100,Thread id=1
The prime numbers are: 1
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
Dept of CSE, CMRIT, B’ lore – 37
Page 55
CCP Lab Manual, 10CPL16/26
Lab Program 15 Design and develop a function reverses (s) in C to reverse the string s in place. Invoke this function from the main for different strings and print the original and reversed strings. Algorithm for main() function: Step 1: Start Step 2: Read the string. Step 3: Call the reverse(s) function. Step 4: Stop.
Algorithm for reverse(s) function: Step 1: Start Step 2: Find length of the inputted string. n=strlen(string) Step 3: Check if i is less than n. If true, then repeat the Step 4. Otherwise, goto Step 5. Step 4: reverse[n-1-i]=src[i]. Increase the value of i by One and goto Step 3. Step 5: reverse[n]='\0' Step 6: Print the Inputted String and Reversed String. Step 7: Stop.
Flowchart: Start
reverse(char src[]) Read the string n=strlen(src)
reverse(s)
for(i=0;i
reverse[n]=‟\0‟
TRUE
reverse[n-1-i]=src[i]
Dept of CSE, CMRIT, B’ lore – 37
FALSE
Output the Input and Reverse String
Page 56 RETURN
CCP Lab Manual, 10CPL16/26 /* C Program to reverse the given string by using user defined function */ #include #include void reverse(char []); void main() { char s[20]; printf("Enter the string: "); gets(s); reverse(s); getch(); } void reverse(char src[]) { char t; int j, i, n; n=strlen(src); for(i=0, j=n-1;i
Output:
First Run: Enter the String ZIA The Reverse String is : AIZ Second Run: Enter the String ACHARYA The Reverse String is : AYRAHCA
Dept of CSE, CMRIT, B’ lore – 37
Page 57
CCP Lab Manual, 10CPL16/26
Lab Program 16 Design and develop a function matchany(s1,s2) which returns the first location in the string s1 where any character from the string s2 occurs, or – 1 if s1 contains no character from s2. Do not use the standard library function which does a similar job! Invoke the function matchany (s1. s2) from the main for different strings and print both the strings and the return value from the function matchany(s1,s2). Algorithm for main() function: Step 1: Start Step 2: Read the First String. Step 3: Read the Second String. Step 4: Call the matchany() function and the value returned is stored in position variable. Step 5: Print Both i.e. First and Second Strings. Step 6: Check if position is equal to -1. If true, then output the message “No character of second String is found in the first String”. Otherwise output the message “Position=”. Step 7: Stop.
Algorithm for matchany(s1,s2) function: Step 1: Start Step 2: Check if character of first string is not equal to null character. If true, then goto Step 3. Otherwise goto Step 7. Step 3: Initialize character of the first string to symbol. i.e. symbol=s1[i]; Step 4: Check if character of second string is not equal to null character. If true, then goto Step 5. Otherwise increment the value of i and goto Step 2. Step 5: Check if symbol (i.e. character of first string) is equal to character of second string. If true, then goto Step 6. Otherwise increment the value of j and goto Step 4. Step 6: Return the value as (i+1) Step 7: Return the value as -1 Step 8: Stop.
Dept of CSE, CMRIT, B’ lore – 37
Page 58
CCP Lab Manual, 10CPL16/26 Flowchart: Start
Read the two strings
Position=matchany(s1,s2)
Output both Strings
is (Position = -1)?
TRUE
Output No character is found
FALSE STOP
Output the Position
matchany(char s1[], char s2[]) FALSE RETURN (-1)
for(i=0;s1[i]!='\0';i++) TRUE
symbol=s1[i]
FALSE
for(j=0;s2[j]!='\0';j++) TRUE is (symbol=s2[j])?
FALSE
TRUE RETURN (i+1)
Dept of CSE, CMRIT, B’ lore – 37
Page 59
CCP Lab Manual, 10CPL16/26 /* C Program to print the position of the first character of the second string from the first string */ #include int matchany(char [],char[]); void main() { char s1[20],s2[20]; int position; clrscr(); printf("Enter the first String: "); gets(s1); printf("Enter the second String: "); gets(s2); position=matchany(s1,s2); printf(“The First String is : %s\n”,s1); printf(“The Second String is : %s\n”,s2); if(position==-1) printf("No character of %s is present in %s\n",s2,s1); else printf("Postion=%d\n",position); getch(); } int matchany(char s1[],char s2[]) { int i,j; char symbol; for(i=0;s1[i]!='\0';i++) { symbol=s1[i]; for(j=0;s2[j]!='\0';j++) { if(symbol==s2[j]) return (i+1); } } return -1; }
Output: First Run: Enter the first String HANUMAN Enter the second String
Dept of CSE, CMRIT, B’ lore – 37
Page 60
CCP Lab Manual, 10CPL16/26 A The First String is : HANUMAN The Second String is : A Postion=2
Second Run: Enter the first String SUDHA Enter the second String Z The First String is : SUDHA The Second String is : Z No character of Z is present in SUDHA
Third Run: Enter the first String MANJUNATH Enter the second String A The First String is : MANJUNATH The Second String is : a No character of a is present in MANJUNATH
Dept of CSE, CMRIT, B’ lore – 37
Page 61
CCP Lab Manual, 10CPL16/26
ADDITIONAL PROGRAMS Additional Program 1. Write a C program to exchange the values of two variables using a dummy varibale and without using a dummy variable. void main() { int a,b,dummy; clrscr(); printf("Enter the values of a and b:\n"); scanf("%d%d%d", &a,&b); printf(“a=%d and b=%d\n”,a,b); printf(“Using a dummy variable\n”); dummy=a; a=b; b=dummy; printf(“a=%d and b=%d\n”,a,b); printf(“Without using a dummy variable\n”); a=a+b; b=a-b; a=a-b; printf(“a=%d and b=%d\n”,a,b); getch(); }
Additional Program 2. Write a C program to accept the temperature in Fahrenheit and convert it into Celsius. #include void main() { float ct,ft; printf(“Enter the temperature in Fahrenheit\n”);
scanf(“%f”,&ft); ct=(ft-32.0)/1.8; printf(“Fahrenheit temperature = 6.2%f\n”, ft); printf(“Celsius temperature = 6.2%f\n”, ct); getch(); }
Dept of CSE, CMRIT, B’ lore – 37
Page 62
CCP Lab Manual, 10CPL16/26 Additional Program 3. Write a C program to find largest of three numbers using if else construct. void main() { int a,b,c,big; clrscr(); printf("“ **** Welcome. This program find Biggest of Three Numbers ****\n"); printf("Enter the value of a , b and c:\n"); scanf("%d%d%d", &a,&b,&c); big=a; if(big
Additional Program 4. Write a C program to print the number 5, five times; number 4, four times; number 3, three times; and so on number 1 , once. #include void main() { int i,j,num=5; printf(“Number pattern\n”); for(i=num;i>=1;i--) { for(j=1;j<=i;j++) printf(“%d”,num); printf(“\n”); num--; } getch(); }
Output: Number Pattern 55555 4444 333 22 1
Dept of CSE, CMRIT, B’ lore – 37
Page 63
CCP Lab Manual, 10CPL16/26
Additional Program 5. Write a C program to print the following pattern.
* ** *** **** ***** #include void main() { int i,j; char ch=‟*‟; clrscr(); for(i=0;i<5;i++) for(j=1;j<=i;j++) printf(“%c”,ch); printf(“\n”); getch(); }
Additional Program 6. Write a C program to read a binary number and convert it into decimal number. #include void main() { int num,result,digit,sum=0,base=1; printf(“Enter Binary Number\n”); scanf(“%d”,&num); while(num!=0) { digit=num%10; num=num/10; sum=sum+digit*base; base=base*2; } printf(“Binary : %d\n Decimal : %d\n”,num,sum); printf(“\n”); getch(); }
Dept of CSE, CMRIT, B’ lore – 37
Page 64
CCP Lab Manual, 10CPL16/26 Additional Program 7. Write a C program to read a decimal number and convert it into binary number. #include void main() { int num,result,digit,sum=0,base=1; printf(“Enter Decimal Number\n”); scanf(“%d”,&num); while(num!=0) { digit=num%2; num=num/2; sum=sum+digit*base; base=base*10; } printf(“Decimal : %d\n Binary : %d\n”,num,sum); printf(“\n”); getch(); }
Additional Program 8. Write a C program to find factorial of a given number using recursion technique. #include int fact(int n); void main() { int n,result; printf(“Enter the value of n\n”); scanf(“%d”,&n); result=fact(n); printf(“%d!=%d\n”, n,result); getch(); } int fact(int n) { if(n==0) return 1; return(n*fact(n-1)); }
Dept of CSE, CMRIT, B’ lore – 37
Page 65
CCP Lab Manual, 10CPL16/26 Additional Program 9. Write a C program to print sum of all integers between n1 and n2 divisible by 5. #include void main() { int n1,n2,i,sum=0; printf(“Enter the range of numbers\n”); scanf(“%d%d”,&n1,n2); for(i=n1;i<=n2;i++) { if(i%5==0) sum+=i; } printf(“Sum of Series=%d\n”, sum); getch(); }
Additional Program 10. Write a C program to simulate a simple calculator that performs arithmetic operations like addition, subtraction, multiplication and division only on integers. Error message should be reported, if any attempt is made to divide by zero. (Using switch statement) #include void main() { int a,b; float res; char ch; clrscr(); for(;;) { printf("Enter the two integers \n"); scanf("%d %d",&a,&b); printf("Enter your choice\n"); printf("+ : Addition \n - :Subtrction \n * :Multiplication \n / :Division \n"); ch=getche(); printf("\n"); switch(ch) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res=a*b; break;
Dept of CSE, CMRIT, B’ lore – 37
Page 66
CCP Lab Manual, 10CPL16/26 case'/' : if (b==0) { printf("Divide by zero error \n"); continue; } else res=(float)a/b; break; default: printf("Not an arithmetic operator \n"); getch(); exit(0); } printf("Result = %f \n",res); } }
Additional Program 11. Write a C program to generate and print first ‘N’ Fibonacci numbers. (Using looping constructs) #include #include void main() { int n,fib1,fib2,fib,i; clrscr(); printf("Enter the value of n\n"); scanf("%d",&n); fib1=0; fib2=1; printf("Fibonacci series is as follows for n=%d\n",n); if(n==1) printf("%d\n",fib1); else { printf("%d\t%d\t",fib1,fib2); for(i=3;i<=n;i++) { fib=fib1+fib2; printf("%d\t",fib); fib1=fib2; fib2=fib; } } getch(); }
Dept of CSE, CMRIT, B’ lore – 37
Page 67
CCP Lab Manual, 10CPL16/26 Output: Enter the value of n 6 Fibonacci series is as follows for n=6 0 1 1 2 3 5
Additional Program 12. Write C user-defined functions i) To input N integer numbers into a single dimension array. ii) To compute their MEAN. iii) To compute their VARIANCE. iv) To compute their STANDARD DEVIATION. Using these functions, write a C program to input N integer numbers into a single dimension array, compute their MEAN, VARIANCE and STANDARD DEVIATION. Output the computed results with suitable headings. #include #include float a[10], sum, mean, var, dev; int i,n; void input() { printf("Enter the elements\n"); for (i=0; i
Dept of CSE, CMRIT, B’ lore – 37
Page 68
CCP Lab Manual, 10CPL16/26 sum = 0; for(i=0; i
VIVA VOCE 1. What is a computer? 2. Who is the father of computer? 3. What are the characteristics of computer? 4. What are applications of computer? 5. What are the different features of computer? 6. What are the functional units of computer? 7. What are the different types of computers? 8. What are the differences between analog and digital computers? 9. What are the different input and output devices? 10. What are the different types of mouse? 11. What is an optical input device? 12. What is barcode? 13. What is barcode reader? 14. What is printer? 15. What is an algorithm? 16. What are the characteristics of an algorithm? 17. What are the notations used while writing an algorithm? Dept of CSE, CMRIT, B’ lore – 37
Page 69
CCP Lab Manual, 10CPL16/26 18. What is flowchart? 19. List the symbols used while writing flowchart. 20. What is structure chart? 21. What is pseudocode? 22. What is software development life cycle? 23. Which steps to be followed while developing program? 24. What is testing? 25. What are the different types of testing? 26. What is ASCII? 27. What is software? What are different types of software? 28. What is hardware? 29. What is the difference between System software and Application software? 30. What is an operating system? What are the functions of operating system? 31. What is memory? Why is it required? 32. What are the different types of memory? 33. What is volatile and non-volatile memory? 34. What is cache memory? 35. What are magnetic storage devices? 36. What is a network? What are the advantages of using network? 37. What is LAN? What are the advantages and disadvantages of LAN? 38. What is WAN? What are the advantages and disadvantages of WAN? 39. What is a topology? Explain the different types of topology. 40. What are network linking devices? 41. What is Internet? What are the services of Internet? 42. What is high level language? 43. What is compiler? 44. What are tokens? 45. What are identifiers? 46. What are keywords? How many keywords is their in C programming language? 47. What is a variable? 48. What is the significance of a variable? 49. What are the rules to be followed while declaring a variable? 50. What is a constant? 51. What is a datatype? What are the different dataypes? 52. What are the basic or primary or fundamental datatypes supported by C programming language? 53. What are escape sequence characters? 54. What are backslash constants? Name some constants. 55. List the size and range of basic datatypes. 56. What is the difference between a character and string containing a single character? 57. What is the meaning of associativity of an operator? 58. What is left associativity and right associativity? 59. What is side effect? 60. What is implicit type conversion and explicit type conversion (type casting)? 61. What is precedence of an operator means? 62. List the precedence of all the types of operators along with associativity.
Dept of CSE, CMRIT, B’ lore – 37
Page 70
CCP Lab Manual, 10CPL16/26 63. List the formatted input and output functions. 64. Describe printf() and scanf() functions. 65. What is an expression? What are the different types of expressions? 66. What is compound statement? 67. What is function? What are the advantages of functions? 68. What are the different types of functions? 69. What are the elements of functions? 70. What is a library function? 71. What is calling function and called function? 72. What is the meaning of actual parameter and formal parameter? 73. What is function prototype or function declaration? 74. What is a function call? 75. What are the various categories of user defined functions? 76. What is scope? What is the difference between local scope and global scope? 77. What is logical data? 78. Which are the logical operators? 79. Define decision making statement? 80. What is an if statement? What are the verities of if-statements? 81. What is the purpose of switch statement? Explain with syntax. 82. What is loop? List the differences between pre-test and post-test loop. 83. What is the meaning of event controlled loop and counter controlled loop? 84. What are the advantages of loops? 85. What is control statement? What are the various types of control statements available in C language? 86. Explain for loop with syntax. 87. What is the difference between while and do-while loop? 88. What are unconditional control statements? 89. What is the use of break statement? 90. What is recursion? What are the advantages and disadvantages of recursion? 91. What is an array? What is the difference between an ordinary variable and an array variable? 92. How an array will be initialized? Explain with an example. 93. How to declare an array variable? 94. What is bubble sort? 95. What is binary search? 96. What is multi-dimensional array? 97. What are the differences between recursion and iteration? 98. What is string? How strings are represented? 99. How the strings are stored in memory? 100. What is the difference between a character and string containing a single character? 101. How to read all the characters except \n using scanf()? 102. What is the disadvantage of scanf(“%s”, str); 103. What are various I/O functions used in case of strings? 104. How to declare an array of strings? 105. What is parallel computing? 106. What is thread? Why threads are required?
Dept of CSE, CMRIT, B’ lore – 37
Page 71
CCP Lab Manual, 10CPL16/26 107. What is OpenMP? 108. How the data is handled in OpenMP? 109. List and explain the OpenMP Library functions. 110. What are environment variables in OpenMP?
MULTIPLE CHOICE QUESTIONS AND ANSWERS UNIT-1 Introduction to Computer Systems 1. __________ is an example for application software. a) Compiler b) Database Management System c) Editor d) Operating System Ans: Database Management System 2. _______ is the language that most closely resembles machine language. a) High Level Language b) Low Level Language c) Natural Language d) Operating System Ans: Database Management System 3. _________ is used to convert source program to machine language. d) Compiler b) Linker c) Editor d) Operating System Ans: Compiler 4. The _________is a tool which is the visual representation of the logic. a) Algorithm b) Pseudocode c) Flowchart d) None of these Ans: Flowchart 5. A computer is controlled by ________. a) Hardware b) Software c) Information d) Instructions Ans: Instructions 6. Which of these is a powerful type of computer, favored by professionals such as engineers? a) Mainframe b) Workstation c) Notebook d) Desktop Ans: Mainframe 7. Which of the software is used for creating slide show? a) Web design b) Word processing c) Presentation d) Spread sheet Ans: Presentation 8. Which of the following is not a type of mouse? a) infra-red mouse b) optical mouse c) wireless mouse d) None of these Ans: None of these 9. Some notebook systems can be plugged into one of these devices which give the computer additional features. a) Port station b) Network station c) Workstation d) Docking station Ans: Docking Station 10. This cache holds the most recently used data or instructions a) L1 b) L2 c) L3 d) L4 Ans: L3 11. A laptop most likely uses ________ memory chips. a) DIMM b) SO-DIMM c) SIPP d) PIPO Ans: DIMM
Dept of CSE, CMRIT, B’ lore – 37
Page 72
CCP Lab Manual, 10CPL16/26 12. Approximate value of one Terabyte computer memory and its storage is a) 109 bytes b) 1010 bytes c) 1012 bytes d) 1015 bytes 12 Ans: 10 bytes 13. Memory that loses its data when power is turned off is considered _______ memory. a) Volatile b) Static c) Dynamic d) Refreshed Ans: Volatile 14. A computer converts data into _________. a) Instructions b) Information c) Software d) Input and Output Ans: Information 15. The earliest computers were ___________ systems. a) Digital b) Analog c) Slide rule d) Paper Ans: Analog 16. Personal Computers are also called as __________. a) Minicomputers b) Supercomputers c) Micro computers d) None of these Ans: Microcomputers 17. ___________ are used by many scientists, engineers and animators. a) Workstations b) PDAs c) Minicomputers d) Networks Ans: Workstations 18. Network servers are sometimes set up in groups that may be called _________. a) Work groups b) Clusters c) Units d) Racks Ans: Clusters 19. Which of the following device stores instructions that help the computer startup? a) RAM b) ROM c) Monitor d) CPU Ans: ROM 20. Which of the following is also known as PDAs (Personal Digital Assistant)? a) Workstation b) Mainframes c) Handheld PCs d) Super computer Ans: Handheld PCs 21. Which type of software is used to make the computer to perform a specific task,such as writing a letter or drawing a picture? a) Application software b) Utility Software c) Operating System Software d) System Software Ans: Application Software 22. Which of the units represents the largest amount of data? a) Kilo byte b) Tera byte c) Giga byte d) Mega byte Ans: Tera byte 23. Which type of disk can store up to 17 GB of data? a) Floppy Disk b) Compact Disk c) Optical Disk d) Digital Video Disk Ans: Digital Video Disk 24. The common keyboard arrangement is called the __________ layout. a) QUWTYR b) QYWERT c) QWERTY d) QWERYT Ans: QWERTY 25. Which of the following is not a modifier key? a) Shift b) BACKSPACE c) CTRL d) ALT Ans: BACKSPACE 26. In most of the programs _________ key is used to get help. a) ESC b) F1 c) F12 d) ALT Ans: F1 27. ___________ type of mouse uses reflected light to measure its movements. a) Laser b) Wireless c) Mechanical d) Optical Ans: Optical 28. Pen based systems are commonly used for _____________.
Dept of CSE, CMRIT, B’ lore – 37
Page 73
CCP Lab Manual, 10CPL16/26
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
a) taking pictures b) data collection c) writing text d) recording sound Ans: data collection ________ are well suited for use as input device at automated teller machines (ATM). a) Pens b) Microphones c) Monitors d) Touch Screen Ans: Touch Screen A ________ is used to identify a product and provide information about it. a) Optical Character Recognition b) Barcode Reader c) Numeric Digit d) Light Sensitive Detector Ans: Barcode Reader _________ type of software can translate scanned text into text that you can edit? a) OCS b) OCR c) ORC d) ORS Ans: OCR The process of converting analog sounds into code a computer can use is a) Sound Recognition b) OCR c) Digitization d) Scanning Ans: Digitization The type of connection that lets a computer communicate with control and record electronic music instruments is a) DIMI b) MIDI c) DIIM d) MDII Ans: MIDI A monitor which can display only a color white against a black background. a) Monochrome b) Gray scale c) Color d) SVGA Ans: Monochrome An LCD monitor uses crystal that become opaque when _________ is applied. a) Pressure b) Electricity c) Force d) Phosphor Ans: Electricity Most passive matrix LCD monitors now use ______ technology. a) Thin film b) Active matrix c) Dual scan d) Flat panel Ans: Dual scan Resolution is determined by the computer‟s a) Monitor b) CPU c) System Unit d) Video controller Ans: Video controller A monitor‟s ________ is measured in Hertz (Hz). a) Speed b) Refresh Rate c) Resolution d) Viewable Area Ans: Refresh Rate The Video Graphics Array resolution standard is _________ pixels. a) 640x480 b) 800x600 c) 1024x768 d) 1280x768 Ans: 640x480 When you choose a monitor, look for one with a dot pitch that is not greater than _____ a) 0.08mm b) 0.28mm c) 0.38mm d) 1.8mm Ans: 0.28mm Which of the following is the most common type of impact printer? a) Typewriter b) Dot matrix printer c) Line printer d) Band printer Ans: Typewriter A laser printer works like _______. a) Scanner b) Dot matrix printer c) Photocopier d) Fax machine Ans: Photocopier Cyan, magenta, yellow and black are sometimes called _________ colors. a) Multiplicative b) Divisive c) Additive d) Subtractive Ans: Subtractive The term dots per inch (dpi) refer to a printer‟s ________. a) Resolution b) Speed c) Output d) Colors
Dept of CSE, CMRIT, B’ lore – 37
Page 74
CCP Lab Manual, 10CPL16/26 Ans: Resolution 45. Most photo printers use __________ technology. a) Plotter b) Laser c) Ink-jet d) None of these Ans: Ink-jet 46. ________ is used to print large format copies of construction drawings, an architect might use. a) Photo printer b) Line printer c) Plotter d) Laser printer Ans: Plotter 47. In a dot matrix printer _______ contains a cluster (or matrix) of pins. a) Cartridge b) Print head c) Drum d) None of these Ans: Print head 48. The back of a CRT monitor is coated with ________ . a) Electrons b) Elements c) Phosphors d) None of these Ans: Phosphors 49. A barcode reader emits ______. a) Sound b) Light c) Commands d) None of these Ans: Light 50. Which special keyboard key has a picture of the Windows logo on it? a) START key b) SHORTCUT key c) ALT key d) CTRL key Ans: START key 51. A device that holds a disk is called a __________. a) ROM b) Drive c) Memory d) Hard disk Ans: Drive 52. ________ software is used for tasks such as managing disks and troubleshooting hardware problems. a) Application b) System c) Utility d) Operating System Ans: Utility 53. What does the term SCSI stands for? a) Small Computer Software Interface b) Small Computer Storage Interface c) Small Computer System Interface d) Small Computer Standard Interface Ans: Small Computer System Interface 54. Which of the following is NOT a standard text code system a) ASCII b) LCD c) UNICODE d) EBCDIC Ans: LCD 55. A laser printer‟s speed is measured in _______. a) cps b) ppm c) dpi d) ltpm Ans: ppm 56. Which of these is hot swappable bus? a) Local bus b) USB c) PCI d) AGP Ans: USB 57. Which of the following acts as the primary controlling mechanism for the computer‟s hardware? a) RAM b) CPU c) CDROM d) OS Ans: OS 58. Which of these is a freeware operating system? a) MS-DOS b) WIN-95 c) WIN-XP d) LINUX Ans: LINUX 59. A collection of 8-bits is called a) Byte b) Word c) Record d) File Ans: Byte 60. Which of the following is not an output device?
Dept of CSE, CMRIT, B’ lore – 37
Page 75
CCP Lab Manual, 10CPL16/26 a) Printer b) Keyboard c) VDU d) CRT Screen Ans: Keyboard 61. Which of the following is not a type of keyboard connector? a) 5-pin connector b) 6-pin connector c) 8-pin connector d) USB connector Ans: 8-pin connector 62. The standard that promises to provide enough characters to cover all the world‟s languages a) ASCII b) Unicode c) Extended ASCII d) EBCDIC Ans: Unicode
Test your C programming skills 1. Write a c program to check given number is perfect number or not. 2. Write a c program to check given number is Armstrong number or not. 3. Write a c program to check given number is prime number or not. 4. Write a c program to check given number is strong number or not. 5. C program to check a number is odd or even. 6. Write a c program to check given number is palindrome number or not. 7. Write a c program to check given string is palindrome number or not. 8. Write a c program to print Fibonacci series of given range. 9. Write a c program to get factorial of given number. 10. Write a c program for Floyd‟s triangle. 11. Write a c program to print Pascal triangle. 12. Write a c program to generate multiplication table. 13. C program to print hello world without using semicolon 14. Write a c program to reverse any number. 15. Write a c program to find out sum of digit of given number. 16. Write a c program to add two numbers without using addition operator. 17. Write a c program to find largest among three numbers using binary minus operator. 18. Write a c program to find largest among three numbers using conditional operator 19. Write a c program to find out prime factor of given number. 20. Write a c program to find out NCR factor of given number. 21. Program in c to print 1 to 100 without using loop 22. C program for swapping of two numbers 23. Program to find largest of n numbers in c 24. C program to count number of digits in a number 25. Write a c program to find out H.C.F. of two numbers. 26. Write a c program to swap two numbers. 27. Write a c program to swap two numbers without using third variable.
Dept of CSE, CMRIT, B’ lore – 37
Page 76
CCP Lab Manual, 10CPL16/26 28. Write a c program for swapping of two arrays. 29. C program for addition of binary numbers . 30. C program for multiplication of two binary numbers. 31. C program to convert currency or number in word. 32. StringWrite a c program to convert the string from upper case to lower case. 33. Write a c program to convert the string from lower case to upper case. 34. Write a c program to count the different types of characters in given string. 35. Write a c program to sort the characters of a string. 36. Write a c program for concatenation two strings without using string.h header file. 37. Write a c program to find the length of a string using pointer. 38. Write a c program which prints initial of any name. 39. Write a c program to print the string from given character. 40. Write a c program to reverse a string 41. Reverse a string using recursion in c 42. String concatenation in c without using strcat 43. How to compare two strings in c without using strcmp String copy without using strcpy in c 44. Convert a string to ASCII in c 45. Write a c program for subtraction of two matrices 46. Write a c program for multiplication of two matrices. 47. Write a c program to find out transport of a matrix. 48. Write a c program to find out the sum of series 1 + 2 + …. + n. 49. Write a c program to find out the sum of series 1^2 + 2^2 + …. + n^2. 50. Write a c program to find out the sum of series 1^3 + 2^3 + …. + n^3. 51. Write a c program to find out the sum of given A.P. 52. Write a c program to find out the sum of given G.P. 53. Write a c program to find out the sum of given H.P. 54. Write a c program to find out the sum of series 1 + 2 + 4 + 8 … to infinity. 55. Write a c program to find out largest element of an array. 56. Write a c program to find out second largest element of an unsorted array. 57. Write a c program to find out second smallest element of an unsorted array. 58. Write a c program which deletes the duplicate element of an array. 59. Write a c program for delete an element at desired position in an array. 60. Write a c program for insert an element at desired position in an array. 61. C program to find largest and smallest number in an array 62. Write a c program to find the area of circle. 63. Write a c program to find the area of any triangle. 64. Write a c program to find the area of equilateral triangle. 65. Write a c program to find the area of right angled triangle. 66. Write a c program to find the area of rectangle.
Dept of CSE, CMRIT, B’ lore – 37
Page 77
CCP Lab Manual, 10CPL16/26 67. Write a c program to find the area of trapezium. 68. Write a c program to find the area of rhombus. 69. Write a c program to find the area of parallelogram. 70. Write a c program to find the volume and surface area of cube. 71. Write a c program to find the volume and surface area of cuboids. 72. Write a c program to find the volume and surface area of cylinder. 73. Write a c program to find the surface area and volume of a cone. 74. Write a c program to find the volume and surface area of sphere. 75. Write a c program to find the perimeter of a circle, rectangle and triangle.
Reference Books 1. Introduction to Computer Science, ITL Education Solutions Ltd.Pearson Education, 2004 2. Fundamentals of Computers, V.Rajaraman, 4th Edition, PHI 2005. 3. Programming Techniques through C, M.G. V. Murthy, Pearson Education, 2002 4. Let Us C ,Yashavant P. Kanetkar,11th Edition, BPB Publications, 5. Programming in ANSI C, E Balagurusamy, Tata McGraw - Hill Education, 2010 6. The Complete reference C, Herb Schildt, McGraw-Hill Osborne Media; 4th edition (April 26, 2000)
Dept of CSE, CMRIT, B’ lore – 37
Page 78