Wednesday, December 11, 2019

ASSIGNMENTS (3rd CSE-1 & 2)

--------------------------------------------------------------------------
ASSIGNMENT -1    Dt : 11-12-2019   20m (3rd CSE-1 & 2)
--------------------------------------------------------------------------
 Define a class Numbers
 with one data member to store number of
 integers (use array or vector) and
  methods follows

  methods :
     public Numbers(int [])
     to initialise class instance member(array)
   
     public int calculateSum()
    to return sum of numbers

     public static calculateSum(int [])
         to return sum of numbers
NOTE:
     *implement the above Numbers class
     object and methods in  another class
     and find observations.
------------------------------------------------------------------------

Friday, December 6, 2019

First Yr Special Notes and Sample questions


Initializing  pointer with zero :

#include<stdio.h>
# include <stdlib.h>
int main()
{
  
int *iptr;
iptr=0;
if(iptr==0)
puts("ok");
else
puts("not ok");
}
Pointers and Multidimensional Arrays:
It is usually best to allocate an array of pointers, and then initialize each pointer to a dynamically allocated row. Here is an example:

 #include<stdio.h>
# include <stdlib.h>
int main()
{
    int row=5,col=5;
int **arr,i,j;
arr=(int**)malloc(row*sizeof(int*));

for(i=0;i<row;i++)
{
    arr[i]=(int*)malloc(col*sizeof(int));
}

for(i=0;i<row;i++)
{
    for(j=0;j<col;j++)
    {
        scanf("%d",&arr[i][j]);
    }
}

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

}
1.       Explain the evolution of computers.
2.       With suitable diagram explain about computer organization
3.       With a suitable example, explain about Number Systems.
4.       Explain the various types of softwares with suitable examples.
5.       Explain in detail about the software development steps.
6.       Draw a flowchart to multiply two matrices.
7.       Write the pseudo code to multiply two matrices.
8.       What is an algorithm? Write an algorithm to print even numbers from 2 to 100.
9.       Explain any 8 formatting features with an example for each.
10.   Explain the various looping constructs. Give an example fo each and explain the working of the construct.
11.   Write a C program to find the sum of the series
Simple Level:
_A_
1.       Write a c program to print ASCII value of all characters.
2.       sub  two numbers without using arithmetic operators
3.       addition  two numbers without using arithmetic operators
4.       multiplication two numbers without using arithmetic operators
5.       reminder of two numbers without using modules operators
6.       Factorial of given number.
7.       print fibonacci numbers upto the given range.
8.       Program to find power of given number.(use loops)
9.       write a program to convert binary to decimal
10.   write a program to convert decimal to binary?
Medium Level:
_B_
1.       Write a c program for swapping of two arrays
2.       Swapping of strings using c programming language
3.       Program to convert string into ASCII values in c
4.       Program to count number of alphabets, digits and special characters in string?
5.       find duplicate numbers in an array.
6.       insert or delete a number in an array
7.       sort array elements.
8.       find the max and min value of an array?
9.       read 3x3 matrix and print diagonal sum?
10.   Program to check perfect number or not.
Complex Level:
_C_
1.       C program to prints initial of any name
2.       Write a C program to delete all vowels from a sentence.
3.       C program to insert a sub-string in to given main string from a given position.
4.       C Program to delete n characters from a given position in a given string.
5.       Write a C program to delete all consonants from a sentence.
6.       C Program – Sorting of a Set of Strings in Ascending alphabetical order
7.       C program to print count of all the characters occurrences in given string?
8.       Read a string 'i love java' and   print 'java love i'
9.       accept 5 strings and copy all strings to another string.
10.   Program to Remove Characters in String Except Alphabets


First Yr R19 Lab Excecises


C programming Lab :-

EXERCISE-1


  • 1. Write a C program to print a block F using hash (#), where the F has a height of six characters and width of five and four characters.
  • 2. Write a C program to compute the perimeter and area of a rectangle with a height of 7 inches and width of 5 inches.
  • 3. Write a C program to display multiple variables.



1. Write a C program to print a block F using hash (#), where the F has a height of six characters and width of five and four characters.

SOURCE CODE:

#include<stdio.h>
int main(){
    printf("#####\n");
    printf("#\n");
    printf("#\n");
    printf("####\n");
    printf("#\n");
    printf("#\n");
    return 0;
}
OUTPUT:
#####
#
#
####
#
#

2. Write a C program to compute the perimeter and area of a rectangle with a height of 7 inches and width of 5 inches.
SOURCE CODE:
#include<stdio.h>
int main(){
    float length, width, area, perimeter;
    printf("Enter the length and width of the rectangle : ");
    scanf("%f%f",&length,&width);
    area = length*width;
    perimeter = 2*(length+width);
    printf("Area of rectangle : %f square inches\n",area);
    printf("Perimeter of rectangle : %f inches\n",perimeter);
    return 0;
}
OUTPUT:
Enter the length and width of the rectangle : 7 5
Area of rectangle : 35.000000 square inches
Perimeter of rectangle : 24.000000 inches

3. Write a C program to display multiple variables.
SOURCE CODE:
#include<stdio.h>
int main(){
 int i;
 short int si;
 long int li;
 float f;
 double d;
 long double ld;
 char c;
 printf("Enter int, short int and long int values : ");
 scanf("%d%hd%ld",&i,&si,&li);
 printf("Enter float, double and long double values : ");
 scanf("%f%lf%Lf",&f,&d,&ld);
 printf("Enter a character : ");
 scanf(" %c",&c);
 printf("Given int value : %d\n",i);
 printf("Given short int value : %hd\n",si);
 printf("Given long int value : %ld\n",li);
 printf("Given float value : %f\n",f);
 printf("Given double value : %lf\n",d);
 printf("Given long double value : %Lf\n",ld);
 printf("Given character : %c\n",c);
 return 0;
}
OUTPUT:
Enter int, short int and long int values : 12345 123 1234567
Enter float, double and long double values : 1.2 3.14 9.334
Enter a character : G
Given int value : 12345
Given short int value : 123
Given long int value : 1234567
Given float value : 1.200000
Given double value : 3.140000
Given long double value : 9.334000
Given character : G




EXERCISE-2


1. Write a C program to calculate the distance between the two points.
SOURCE CODE:
#include<stdio.h>
#include<math.h>
int main(){
float x1,x2,y1,y2,dist;
printf("Enter x1 and x2 : ");
scanf("%f%f",&x1,&x2);
printf("Enter y1 and y2 : ");
scanf("%f%f",&y1,&y2);
dist = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
printf("Distance between two points : %f\n",dist);
return 0;
}
OUTPUT:
Enter x1 and x2 : 5 9
Enter y1 and y2 : 4 8
Distance between two points : 5.656854

2. Write a C program that accepts 4 integers p, q, r, s from the user where r and s are positive and p is even. If q is greater than r and s is greater than p and if the sum of r and s is greater than the sum of p and q print "Correct values", otherwise print "Wrong values".
SOURCE CODE:
#include<stdio.h>
int main(){
    int p,q,r,s;
    printf("Enter p,q,r,s values:");
    scanf("%d%d%d%d",&p,&q,&r,&s);
    if(r>0 && s>0 && p%2==0 && q>r && s>p && r+s>p+q)
        printf("Correct values");
    else
        printf("Wrong values");
    return 0;
}
OUTPUT-1:
Enter p,q,r,s values:4 8 2 13
Correct values

OUTPUT-2:
Enter p,q,r,s values:9 3 1 45
Wrong values


EXERCISE-3

1. Write a C program to convert a string to a long integer.
SOURCE CODE:
#include<stdio.h>
#include<stdlib.h>
int main(){
    long int l;
    char str[30];
    printf("Enter a string:\n");
    scanf("%s",str);
    l=atol(str);
    printf("String to long integer is : %ld",l);
    return 0;
}
OUTPUT:
Enter a string:
123456789
String to long integer is : 123456789

2. Write a program in C which is a Menu-Driven Program to compute the area of the various geometrical shape.
SOURCE CODE:
#include<stdio.h>
#include<stdlib.h>
int main(){
float radius, length, width, base, height, area;
int choice;
do{
printf("1. Area of circle\n2. Area of rectangle\n3. Area of triangle\n4. Exit\n");
printf("Enter your choice : ");
scanf("%d",&choice);
switch(choice){
case 1:
printf("Enter radius : ");
scanf("%f",&radius);
area = 3.14 * radius * radius;
printf("Area of circle : %f\n",area);
break;
case 2:
printf("Enter length and width : ");
scanf("%f%f",&length,&width);
area = length * width;
printf("Area of rectangle : %f\n",area);
break;
case 3:
printf("Enter base and height : ");
scanf("%f%f",&base,&height);
area = (base*height)/2;
printf("Area of triangle : %f\n",area);
break;
case 4:
exit(0);
}
} while(1);
return 0;
}
OUTPUT:
1. Area of circle
2. Area of rectangle
3. Area of triangle
4. Exit
Enter your choice : 1
Enter radius : 4
Area of circle : 50.240002
1. Area of circle
2. Area of rectangle
3. Area of triangle
4. Exit
Enter your choice : 2
Enter length and width : 4 8
Area of rectangle : 32.000000
1. Area of circle
2. Area of rectangle
3. Area of triangle
4. Exit
Enter your choice : 3
Enter base and height : 2 3
Area of triangle : 3.000000
1. Area of circle
2. Area of rectangle
3. Area of triangle
4. Exit
Enter your choice : 4

3. Write a C program to calculate the factorial of a given number.
SOURCE CODE:
#include<stdio.h>
int main(){
    int num,fact=1,i;
    printf("Enter a number: ");
    scanf("%d",&num);
    for(i=1;i<=num;i++)
        fact = fact*i;
    printf("Factorial of %d is %d",num,fact);
    return 0;
}
OUTPUT:
Enter a number: 5
Factorial of 5 is 120

EXERCISE-4

1. Write a program in C to display the n terms of even natural number and their sum.
SOURCE CODE:
#include<stdio.h>
int main(){
    int n,i=1,c=1,sum=0;
    printf("Enter number of terms : ");
    scanf("%d",&n);
    printf("Even natural numbers are : \n");
    while(c<=n){
        if(i%2==0){
            printf("%d ",i);
            sum=sum+i;
            c++;
        }
        i++;
    }
    printf("\nSum of even natural numbers is: %d\n",sum);
    return 0;
}
OUTPUT:
Enter number of terms : 5
Even natural numbers are :
2 4 6 8 10
Sum of even natural numbers is: 30

2. Write a program in C to display the n terms of harmonic series and their sum. 1 + 1/2 + 1/3 + 1/4 + 1/5 ... 1/n terms.
SOURCE CODE:
#include<stdio.h>
int main(){
    int n,i;
    float sum=0;
    printf("Enter range:");
    scanf("%d",&n);
    printf("Series is:\n");
    for(i=1;i<=n;i++){
        printf("1/%d",i);
        if(i<n)
            printf("+");
        sum = sum + (float)1/i;
    }
    printf("\nSum of series is: %f",sum);
    return 0;
}
OUTPUT:
Enter range:5
Series is:
1/1+1/2+1/3+1/4+1/5
Sum of series is: 2.283334

3. Write a C program to check whether a given number is an Armstrong number or not.
SOURCE CODE:
/*Program to check whether the given number is Armstrong number or not.*/
#include<stdio.h>
#include<math.h>
int main(){
    int n,temp,arm=0,c=0;
    printf("Enter number:");
    scanf("%d",&n);
    temp=n;
    while(temp>0){
        temp=temp/10;
        c++;
    }
    temp=n;
    while(temp>0){
        arm=arm+pow((temp%10),c);
        temp=temp/10;
    }
    if(n==arm)
        printf("Given number is Armstrong.");
    else
        printf("Given number is not Armstrong.");
    return 0;
}
OUTPUT-1:
Enter number:371
Given number is Armstrong.

OUTPUT-2:
Enter number:151
Given number is not Armstrong.

EXERCISE-5

1. Write a program in C to print all unique elements in an array.
SOURCE CODE:
#include<stdio.h>
int main(){
    int a[20],n,i,j,k;
    printf("Enter array size:");
    scanf("%d",&n);
    printf("Enter array elements:\n");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<n;i++){
        for(j=i+1;j<n;j++){
            if(a[i]==a[j]){
                for(k=j;k<n-1;k++)
                    a[k]=a[k+1];
                n--;
                j--;
            }
        }
    }
    printf("\nUnique elements in array are:\n");
    for(i=0;i<n;i++)
        printf("%d\t",a[i]);
    return 0;
}

OUTPUT:
Enter array size:5
Enter array elements:
1 2 3 2 1

Unique elements in array are:
1       2       3

2. Write a program in C to separate odd and even integers in separate arrays.
SOURCE CODE:
#include<stdio.h>
int main(){
    int arr[30],evenArr[30],oddArr[30],i,j=0,k=0,ea=0,oa=0,n;
    printf("Enter array size:");
    scanf("%d",&n);
    printf("Enter %d elements:\n",n);
    for(i=0;i<n;i++)
        scanf("%d",&arr[i]);
    for(i=0;i<n;i++){
        if(arr[i]%2==0)
            evenArr[j++]=arr[i];
        else
            oddArr[k++]=arr[i];
    }
    printf("Even elements in the array:\n");
    for(i=0;i<j;i++)
        printf("%d\t",evenArr[i]);
    printf("\nOdd elements in the array:\n");
    for(i=0;i<k;i++)
        printf("%d\t",oddArr[i]);
    return 0;
}
OUTPUT:
Enter array size:5
Enter 5 elements:
10 25 30 35 55
Even elements in the array:
10      30
Odd elements in the array:
25      35      55

3. Write a program in C to sort elements of array in ascending order.
SOURCE CODE:
#include<stdio.h>
int main(){
    int arr[20],n,i,j,temp;
    printf("Enter array size:");
    scanf("%d",&n);
    printf("Enter %d elements:\n",n);
    for(i=0;i<n;i++)
        scanf("%d",&arr[i]);
    printf("Before sorting array elements are:\n");
    for(i=0;i<n;i++)
        printf("%d\t",arr[i]);
    for(i=0;i<n-1;i++){
        for(j=i+1;j<n;j++){
            if(arr[i]>arr[j]){
                temp=arr[i];
                arr[i]=arr[j];
                arr[j]=temp;
            }
        }
    }
    printf("\nAfter sorting array elements are:\n");
    for(i=0;i<n;i++)
        printf("%d\t",arr[i]);
    return 0;
}
OUTPUT:
Enter array size:5
Enter 5 elements:
3 4 2 5 1
Before sorting array elements are:
3       4       2       5       1
After sorting array elements are:
1       2       3       4       5

EXERCISE-6


1. Write a program in C for multiplication of two square Matrices.
SOURCE CODE:
#include<stdio.h>
int main(){
    int mtrx1[20][20],mtrx2[20][20],mulmtrx[40][40],n1,n2,i,j,k;
    printf("Enter matrix sizes:");
    scanf("%d%d",&n1,&n2);
    if(n1==n2){
        printf("Enter first matrix elements\n");
        for(i=0;i<n1;i++)
            for(j=0;j<n1;j++)
                scanf("%d",&mtrx1[i][j]);
        printf("Enter second matrix elements\n");
        for(i=0;i<n2;i++)
            for(j=0;j<n2;j++)
                scanf("%d",&mtrx2[i][j]);
        for(i=0;i<n1;i++){
            for(j=0;j<n2;j++){
                mulmtrx[i][j]=0;
                for(k=0;k<n1;k++)
                    mulmtrx[i][j]=mulmtrx[i][j]+mtrx1[i][k]*mtrx2[k][j];
            }
        }
        printf("\nResult matrix is\n");
        for(i=0;i<n1;i++){
            for(j=0;j<n1;j++)
                printf("%d\t",mulmtrx[i][j]);
            printf("\n");
        }
    }
    else
        printf("Matrix multiplication is not possible");
    return 0;
}
OUTPUT-1:
Enter matrix sizes:3 3
Enter first matrix elements
1 2 3
4 5 6
7 8 9
Enter second matrix elements
9 8 7
6 5 4
3 2 1

Result matrix is
30      24      18
84      69      54
138     114     90

OUTPUT-2:
Enter matrix sizes:3 2
Matrix multiplication is not possible
2. Write a program in C to find transpose of a given matrix.
SOURCE CODE:
#include<stdio.h>
int main(){
    int mtrx[10][10],r,c,i,j,temp;
    printf("Enter matrix size:\n");
    scanf("%d %d",&r,&c);
    printf("Enter matrix elements:\n");
    for(i=0;i<r;i++)
        for(j=0;j<c;j++)
            scanf("%d",&mtrx[i][j]);
    if(r>=c){
    for(i=0;i<c;i++){
        for(j=0;j<r;j++){
            if(j>i){
                temp = mtrx[i][j];
                mtrx[i][j] = mtrx[j][i];
                mtrx[j][i] = temp;
            }
        }
    }
    }
    else{
    for(i=0;i<r;i++){
        for(j=0;j<c;j++){
            if(j>i){
                temp = mtrx[i][j];
                mtrx[i][j] = mtrx[j][i];
                mtrx[j][i] = temp;
            }
        }
    }
    }
    printf("Transpose of the given matrix is\n");
    for(i=0;i<c;i++){
        for(j=0;j<r;j++)
            printf("%d ",mtrx[i][j]);
        printf("\n");
    }
    return 0;
}
OUTPUT-1:
Enter matrix size:
2 3
Enter matrix elements:
1 2 3
4 5 6
Transpose of the given matrix is
1 4
2 5
3 6

OUTPUT-2:
Enter matrix size:
3 2
Enter matrix elements:
1 2
3 4
5 6
Transpose of the given matrix is
1 3 5
2 4 6

La b 7.1
Aim:Search in a row wise and column wise sorted matrix
// C program to search an element in row-wise
// and column-wise sorted matrix
#include <stdio.h>
  
/* Searches the element x in mat[][]. If the 
element is found, then prints its position 
and returns true, otherwise prints "not found"
and returns false */
int search(int mat[4][4], int n, int x)
{
    if (n == 0)
        return -1;
    int smallest = a[0][0], largest = a[n - 1][n - 1];
    if (x < smallest || x > largest)
        return -1;
    int i = 0, j = n - 1; // set indexes for top right element
    while (i < n && j >= 0) {
        if (mat[i][j] == x) {
            printf("\n Found at %d, %d", i, j);
            return 1;
        }
        if (mat[i][j] > x)
            j--;
        else // if mat[i][j] < x
            i++;
    }
  
    printf("n Element not found");
    return 0; // if ( i==n || j== -1 )
}
  
// driver program to test above function
int main()
{
    int mat[4][4] = {
        { 10, 20, 30, 40 },
        { 15, 25, 35, 45 },
        { 27, 29, 37, 48 },
        { 32, 33, 39, 50 },
    };
    search(mat, 4, 29);
    return 0;
}
Output :
Found at 2, 1

La b 7.2
Aim:Write a program to print individual characters in reverse.
Solution :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void main()
{
    char str[100]; /* Declares a string of size 100 */
    int l,i;
    
       printf("\n\nPrint individual characters of string in reverse order :\n");
       printf("------------------------------------------------------\n");     
       printf("Input the string : ");
       fgets(str, sizeof str, stdin);
        l=strlen(str);
        printf("The characters of the string in reverse are : \n");
       for(i=l;i>=0;i--)
        {
          printf("%c  ", str[i]);
        }
    printf("\n");
}

Output:
Input the string : w3resource.com                                                                             
The characters of the string in reverse are :                                                                 
                                                                                                              
  m  o  c  .  e  c  r  u  o  s  e  r  3  w 


Lab 8.1
Aim: Write a c program to compare two strings without using library functions.

Solution :
# include <stdio.h>
main()
{
 char str1[100],str2[100];
 int L1,L2,i;
 printf("\nEnter string1 and string2?");
 scanf("%s%s",&str1,&str2);
 /* string1 length */
 for(L1=0;str1[L1]!=NULL;L1++);
 for(L2=0;str1[L2]!=NULL;L2++);
  if(L1==L2)
  {
   for(i=0;str1[i]!=NULL;i++)
   {
    if(str1[i]!=str2[i])
    break;
   }
   if(L1==i)
   printf("\nEqual strings");
   else
   printf("\nEqual in lengths");

  }
  else
  printf("\nUn equal strings");
}

Lab 8.2
Aim: Write a c program to copy one string to another string
Solution :

# include <stdio.h>
main()
{
 char str1[100],str2[100];
 int i;
 printf("\nEnter a string ?");
 scanf("%s",&str1);
 /*  string copying */
 for(i=0;str1[i]!=0 ; i++)
 {
  str2[i]=str1[i];
 }
 /* init NULL */
 str2[i]=NULL;

 puts("\nAfter copy ...");
 puts(str2);
}

Output :



Lab 9.1
Aim: Write a c program to store information using structures with dynamic memory allocation :

The following program uses Student structure to allocate dynamically memory to store sz number of students and to print all the student details
#include <stdio.h>
struct Student
{
    int sno;
    char sname[20];
};
int main()
{
    struct Student *s;
    int i,sz;
    printf("Enter No of students to store ?");
    scanf("%d",&sz);
    /* memory allocation for sz number of students */
    s=(struct Student*)malloc(sz*sizeof(struct Student));
    /* reading students data */
    for(i=0;i<sz;i++)
    {
        printf("\nEnter student%d number and name?",i+1);
        scanf("%d%s",&(*(s+i)).sno,&(*(s+i)).sname);
       
    }
    puts("\nOutput");
    for(i=0;i<sz;i++)
    {
    printf("\n%d     %s",(*(s+i)).sno,(*(s+i)).sname);
       
    }

    return 0;
}

Output :

Enter No of students to store ?2                                                                                         
                                                                                                                                
Enter student1 number and name?101 babe                                                                                         
                                                                                                                                
Enter student2 number and name?102 Harish                                                                                       
                                                                                                                                
Output                                                                                                        
                                                                                                                                
101     babe                                                                                                                    
102     Harish                                                                                                                  
                                                                                                                                
...Program finished with exit code 0                                                                                            
Press ENTER to exit console.               


Lab 9.2
Aim: Write a c program to demonstrate how to handle the pointers:

The following program uses sub function sum(int *,int ) to carry the  reference, size  and returns
The sum of digits
#include <stdio.h>

/* function to return sum of sz numbers from the starting address */
int sum(int*n,int sz)
{
    int i,nsum=0;
    for(i=0;i<sz;i++)
    {
        nsum+=*(n+i);
    }
return nsum;
}


int main()
{
    int no[100];
    int i,sz,ns,numsum;
    printf("\nEnter How many Number to Enter?");
    scanf("%d",&sz);
    printf("\nEnter %d numbers?",sz);
    for(i=0;i<sz;i++)
    scanf("%d",&no[i]);
    printf("\nHow many first numbers to some?");
    scanf("%d",&ns);
    numsum=sum(no,ns);
    printf("\n number sum = %d",numsum);
     
   
    return 0;
}

Enter How many Number to Enter?5                                                                                                
                                                                                                                                
Enter 5 numbers?12  23  34  45  11                                                                                              
                                                                                                                                
How many first numbers to some?3                                                                                                
                                                                                                                                
 number sum = 69   



Lab 10.1
Aim: Write a program to demonstrate the use of & (address of) , * (value at address)
Operator

In the following program iptr is initialized with first element address. And accessed the values using * operator.

#include <stdio.h>
int main()
{
    int *iptr,no[10];
    int i,sz;
    printf("\nEnter How many Number to Enter?");
    scanf("%d",&sz);
    printf("\nEnter %d numbers?",sz);
    for(i=0;i<sz;i++)
    scanf("%d",&no[i]);
    /* initializing first element address to iptr */
    iptr=&no[0];   /*  or  iptr=no; */
    puts("Elements in reverse..");
    for(i=sz-1;i>=0;i--)
    printf("%5d",*(iptr+i));
    return 0;
}
Output ;

Enter How many Number to Enter?5                                                                                                
                                                                                                                                
Enter 5 numbers?12 23 34 45 56                                                                                                  
Elements in reverse..                                                                                                           
   56   45   34   23   12   


Lab 10.2
Aim: Write a program in c two add two numbers using pointers

#include <stdio.h>
int main()
{
int first, second, *p, *q, sum;
printf("Enter two integers to add\n");
scanf("%d%d", &first, &second);
p = &first; q = &second;
sum = *p + *q;
printf("Sum of the numbers = %d\n", sum);
return 0;
   
}

Output:

Enter two integers to add                                                                                                       
34 45                                                                                                                           
Sum of the numbers = 79 


Lab 11.1
Aim: Write a program in c to add numbers using call by reference

The following program uses add function( add(int *,int ) ) to carry the  reference, size  and returns  sum of numbers. The  add function called by passing reference or address.

#include <stdio.h>

/* function to return sum of sz numbers from the starting address */
int add(int*n,int sz)
{
    int i,nsum=0;
    for(i=0;i<sz;i++)
    {
        nsum+=*(n+i);
    }
return nsum;
}


int main()
{
    int no[100];
    int i,sz,ns,numsum;
    printf("\nEnter How many Number to Enter?");
    scanf("%d",&sz);
    printf("\nEnter %d numbers?",sz);
    for(i=0;i<sz;i++)
    scanf("%d",&no[i]);
     numsum=sum(&no[0],sz);  /* sum called by passing reference */
    printf("\n number sum = %d",numsum);
    return 0;
}

Output :-

Enter How many Number to Enter?5                                                                                                
                                                                                                                                
Enter 5 numbers?12  2  4  5  11                                                                                              
                                                                                                                             
                                                                                                                                
 number sum =    34


Lab 11.2
Aim: Write a program in c to find the largest element using dynamic memory allocation.

#include <stdio.h>
# include <stdlib.h>
int main()
{
    int *no;
    int i,sz,large,index=0;
    printf("\nEnter How many Number to Enter?");
    scanf("%d",&sz);
   
    /* dynamic memory allocation capable to store sz integers*/
    no=(int*)malloc(sizeof(int) * sz);
   
    printf("\nEnter %d numbers?",sz);
    for(i=0;i<sz;i++)
    scanf("%d",&no[i]);

    /* finding largest element */
    large=no[0];
    for(i=1;i<sz;i++)
    {
        if(large<no[i]){
        large=no[i];
        index=i;}
    }
    printf("\n largest element is  %d  , value = %d",index+1,large);

return 0;
   
}

Output :-

Enter How many Number to Enter?5                                                                                                
                                                                                                                                
Enter 5 numbers?12 23 44 3 11                                                                                                   
                                                                                                                                
 largest element is  2  , value = 44  



EXERCISE-12

1. Write a program in C to swap elements using call by reference.
SOURCE CODE:
#include<stdio.h>
int main() {
int num1, num2;
printf("Enter two integer values : ");
scanf("%d %d", &num1, &num2);
printf("Before swapping in main : num1 = %d \t num2 = %d\n", num1, num2);
swap(&num1, &num2);
printf("After swapping in main : num1 = %d \t num2 = %d\n", num1, num2);
return 0;
}

void swap(int *num1, int *num2){
    int temp;
    temp = *num1;
    *num1 = *num2;
    *num2 = temp;
    printf("After swapping in swap : *num1 = %d \t *num2 = %d\n", *num1, *num2);
}
OUTPUT:
Enter two integer values : 5 6
Before swapping in main : num1 = 5       num2 = 6
After swapping in swap : *num1 = 6       *num2 = 5
After swapping in main : num1 = 6        num2 = 5

2. Write a program in C to count the number of vowels and consonants in a string using a pointer.
SOURCE CODE:
#include<stdio.h>
int main(){
char str[100], *ch;
int i, v=0, c=0;
printf("Enter a string: ");
scanf("%s",str);
ch = str;
while(*ch!='\0'){
if(*ch=='a' || *ch=='e' || *ch=='i' || *ch=='o' || *ch=='u' || *ch=='A' || *ch=='E' || *ch=='I' || *ch=='O' || *ch=='U'){
v++;
}
else{
c++;
}
ch++;
}
printf("Total number of vowels : %d, consonants : %d\n",v,c);
return 0;
}
OUTPUT:
Enter a string: welcometocprogramming
Total number of vowels : 7, consonants : 14

EXERCISE-13

1. Write a program in C to show how a function returning pointer.
SOURCE CODE:
#include<stdio.h>
int* findLarger(int*, int*);
int main() {
int num1, num2;
int *result;
printf("Enter two numbers : ");
scanf("%d %d", &num1, &num2);
result = findLarger(&num1, &num2);
printf("Largest number : %d\n" , *result);
return 0;
}

int* findLarger(int *num1, int *num2){
return *num1>*num2?num1:num2;
}
OUTPUT:
Enter two numbers : 4 6
Largest number : 6

2. Write a C program to find sum of n elements entered by user. To perform this program, allocate memory dynamically using malloc( ) function.
SOURCE CODE:
#include<stdio.h>
#include<stdlib.h>
int main(){
    int n, *eles, i, sum=0;
    printf("Enter number of elements : ");
    scanf("%d",&n);
    eles = (int*)malloc(sizeof(int)*n);
    printf("Enter %d elements : ",n);
    for(i=0;i<n;i++)
        scanf("%d",&eles[i]);
    for(i=0;i<n;i++)
        sum = sum + eles[i];
    printf("Sum of all elements is : %d\n",sum);
    return 0;
}
OUTPUT:
Enter number of elements : 4
Enter 4 elements : 2 6 1 5
Sum of all elements is : 14

EXERCISE-14

1. Write a C program to find sum of n elements entered by user. To perform this program, allocate memory dynamically using calloc( ) function. Understand the difference between the above two programs.
SOURCE CODE:
#include<stdio.h>
#include<stdlib.h>
int main(){
    int n, *eles, i, sum=0;
    printf("Enter number of elements : ");
    scanf("%d",&n);
    eles = (int*)calloc(n,sizeof(int));
    printf("Enter %d elements : ",n);
    for(i=0;i<n;i++)
        scanf("%d",&eles[i]);
    for(i=0;i<n;i++)
        sum = sum + eles[i];
    printf("Sum of all elements is : %d\n",sum);
    return 0;
}
OUTPUT:
Enter number of elements : 4
Enter 4 elements : 5 4 3 2
Sum of all elements is : 14

2. Write a program in C to convert decimal number to binary number using the function.
SOURCE CODE:
#include <stdio.h>
long decimalToBinary(int);
int main() {
int d;
long int b;
printf("Enter a positive decimal number : ");
scanf("%d", &d);
b=decimalToBinary(d);
printf("The binary number of decimal %d is : %ld\n", d, b);
return 0;
}
long decimalToBinary(int d){
long int bn=0, revbn=0;
int c=0;
while(d>0){
revbn=(revbn*10)+(d%2);
d=d/2;
c++;
}
while(c>0){
bn=(bn*10)+(revbn%2);
revbn=revbn/10;
c--;
}
return bn;
}
OUTPUT:
Enter a positive decimal number : 36
The binary number of decimal 36 is : 100100

EXERCISE-15

1. Write a program in C to check whether a number is a prime number or not using the function.
SOURCE CODE:
#include<stdio.h>
void isPrime(int);
int main(){
    int n;
    printf("Enter number : ");
    scanf("%d",&n);
    isPrime(n);
    return 0;
}
void isPrime(int n){
    int i, c=0;
    for(i=1;i<=n/2;i++){
        if(n%i==0)
            c++;
    }
    if(c==1)
        printf("Given number %d is a prime number.\n",n);
    else
        printf("Given number %d is not a prime number.\n",n);
}
OUTPUT-1:
Enter number : 5
Given number 5 is a prime number.

OUTPUT-2:
Enter number : 25
Given number 25 is not a prime number.

2. Write a program in C to get the largest element of an array using the function.
SOURCE CODE:
#include <stdio.h>
int large(int[], int);
int main() {
int a[10], i, n;
printf("Enter number of elements to be insert : ");
scanf("%d", &n);
printf("Enter %d elements : ",n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("The largest element of the array = %d\n", large(a, n));
return 0;
}
int large(int ary[], int n){
int i, max;
max=ary[0];
for(i=1;i<n;i++){
if(ary[i]>max)
max=ary[i];
}
return max;
}
OUTPUT:
Enter number of elements to be insert : 4
Enter 4 elements : 8 3 4 2
The largest element of the array = 8

EXERCISE-16

1. Write a program in C to append multiple lines at the end of a text file.
SOURCE CODE:
#include<stdio.h>
int main() {
FILE *fp;
char ch;
fp = fopen("Sample.txt", "w");
printf("Enter the text press ctrl+z for end of file: \n");
while ((ch=getchar())!=EOF) {
putc(ch,fp);
}
fclose(fp);
fp = fopen("Sample.txt", "a");
printf("Enter the text to append to a file press ctrl+z for end of file: \n");
while ((ch=getchar())!=EOF) {
putc(ch,fp);
}
fclose(fp);
fp = fopen("Sample.txt", "r");
printf("File content after appending : \n");
while ((ch=fgetc(fp))!=EOF) {
putchar(ch);
}
printf("\n");
fclose(fp);
return 0;
}
OUTPUT:
Enter the text press ctrl+z for end of file:
Hello
^Z
Enter the text to append to a file press ctrl+z for end of file:
Welcome
here you learn file concepts.
^Z
File content after appending :
Hello
Welcome
here you learn file concepts.

2. Write a program in C to copy a file in another name.
SOURCE CODE:
#include<stdio.h>
int main() {
FILE *fp1, *fp2;
char ch;
fp1 = fopen("Sample.txt", "w");
printf("Enter the text press ctrl+z for end of file: \n");
while ((ch=getchar())!=EOF) {
putc(ch,fp1);
}
fclose(fp1);
fp1 = fopen("Sample.txt", "r");
fp2 = fopen("CopiedFile.txt", "w");
    while((ch=fgetc(fp1))!=EOF){
        putc(ch,fp2);
    }
    putc(ch,fp2);
    fclose(fp1);
    fclose(fp2);
    fp2 = fopen("CopiedFile.txt", "r");
    printf("Copied text is : \n");
    while((ch=fgetc(fp2))!=EOF){
        putchar(ch);
    }
    fclose(fp2);
    printf("\n");
    return 0;
}
OUTPUT:
Enter the text press ctrl+z for end of file:
welcome
learn file concepts
^Z
Copied text is :
welcome
learn file concepts

3. Write a program in C to remove a file from the disk.
SOURCE CODE:
#include<stdio.h>
int main() {
FILE *fp;
char ch, fileName[30]="Sample.txt";
int status;
fp = fopen(fileName, "w");
printf("Enter the text press ctrl+z for end of file: \n");
while ((ch=getchar())!=EOF) {
putc(ch,fp);
}
fclose(fp);
    fp = fopen(fileName,"r");
    if(fp==NULL){
        printf("File doesn't exists.\n");
        return 0;
    }
    else{
        printf("File exists.\n");
    }
    fclose(fp);
    status = remove(fileName);
    if(status==0)
        printf("%s file is deleted.",fileName);
    else
        printf("Unable to delete %s file.",fileName);
    return 0;
}
OUTPUT:
Enter the text press ctrl+z for end of file:
hello
^Z
File exists.
Sample.txt file is deleted.