Thursday, 24 August 2017

Computer Science Half Yearly Practical Paper Solution

Half-Yearly [Practical] Solution

$ Question 1 :
import java.util.Scanner;
class Question1
{
    Scanner S = new Scanner(System.in);
    public String noToDate(int x)
    {
        String ns="",temp="",str= "";
        int day = x/10000;
        int month = (x%10000)/100;
        int year = x%100;
        str = " "+Integer.toString(year);
        if(month<=12)
        {
            if(month==1)
            str = " January,"+str;
            if(month==2)
            str = " February,"+str;
            if(month==3)
            str = " March,"+str;
            if(month==4)
            str = " April,"+str;
            if(month==5)
            str = " May,"+str;
            if(month==6)
            str = " June,"+str;
            if(month==7)
            str = " July,"+str;
            if(month==8)
            str = " August,"+str;
            if(month==9)
            str = " September,"+str;
            if(month==10)
            str = " October,"+str;
            if(month==11)
            str = " November,"+str;
            if(month==12)
            str = " December,"+str;
        }
        else
        return "INVALID DATE";
        if((day==31)&&((month==2)||(month==4)||(month==6)||(month==9)||(month==11)))
        return "INVALID DATE";
        if((day>28)&&(month==2))
        {
            if(day>29)
            return "INVALID DATE";
            if((day==29)&&(isLeapYear(year)==false))
            return "INVALID DATE";
        }
        if((day<10)&&(day>20))
        {
            if(day%10==1)
            str = Integer.toString(day)+"st"+str;
            if(day%10==2)
            str = Integer.toString(day)+"nd"+str;
            if(day%10==3)
            str = Integer.toString(day)+"rd"+str;
        }
        else
        str = Integer.toString(day)+"th"+str;
        int o =day%10;
        if((o==4)||(o==5)||(o==6)||(o==7)||(o==8)||(o==9)||(o==10))
        str = Integer.toString(day)+"th"+str;
        str = str+"\nVALID DATE";
        return str;
    }
    public boolean isLeapYear(int x)
    {
        if((x%100)%4==0)
        return true;
        else
        return false;
    }
    public void main()
    {
        System.out.print("Enter the date in ddmmyy format : ");
        int date = S.nextInt();
        System.out.println(noToDate(date));
    }
}
$ Question 2 :
import java.util.Scanner;
class Question2
{
    Scanner S = new Scanner(System.in);
    public boolean isKeith(int n)
    {
        int no = n;
        int sum = 0;
        int d = nod(n);
        int digits[] = new int[nod(no)];
        int terms[] = new int[n];
        for(int i = nod(n)-1;i>=0;i--)
        {
            terms[i] = no%10;
            no=no/10;
        }
        while(sum<n)
        {
            sum = 0;
            for(int k =0;k<= nod(n);k++)
            sum=sum+terms[d-k];
            terms[d] = sum;
            d++;
        }
        if(sum==n)
        return true;
        else
        return false;
    }
    public void main()
    {
        System.out.println("Enter the range in which you want to find Keith Numbers :- ");
        System.out.print("Enter m : ");
        int m = S.nextInt();
        System.out.print("Enter n : ");
        int n = S.nextInt();
        if((m<10)||(n<10)||(m>n)||(m>=5000)||(n>=5000))
        System.out.println("Invalid Input");
        else
        System.out.print("Keith numbers between "+m+" and "+n+" are : ");
       
        for(int i= m;i<=n;i++)
        if(isKeith(i))
        System.out.print(i+",");
        System.out.println("\b\n");
    }
    public int nod(int no)
    {
        int result = 0;
        while(no>0)
        {
            result++;
            no=no/10;
        }
        return result;
    }
}
$ Question 3 :
import java.util.Scanner;
class Question3
{
    Scanner S = new Scanner(System.in);
    public boolean areAmicable(int x,int y)
    {
        if((sum_of_factors(x)==y)&&(sum_of_factors(y)==x))
        return true;
        else
        return false;
    }
    public int sum_of_factors(int x)
    {
        int sum = 0;
        for(int i = 1;i<x;i++)
        if(x%i==0)
        sum = sum + i;
        return sum;
    }
    public void main()
    {
        System.out.print("Number 1 : ");
        int a = S.nextInt();
        System.out.print("Number 2 : ");
        int b = S.nextInt();
        if(areAmicable(a,b))
        {
            System.out.print("Amicable Numbers\nSum of Factors of "+a+" : 1");
            for(int u = 2;u<a;u++)
            if(a%u==0)
            System.out.print("+"+u);
            System.out.println(" = "+b);
            System.out.print("Sum of Factors of "+b+" : 1");
            for(int u = 2;u<b;u++)
            if(b%u==0)
            System.out.print("+"+u);
            System.out.println(" = "+a);
        }
        else
        System.out.println("Not Amicable Numbers");
    }
}