CSC103 - Subjective Part (Fall 2020) 1

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

COMSATS University Islamabad, Islamabad campus

Department of Computer Science

Terminal Examination (Subjective Part), Fall 2020

Class: BCS/BSE 2 Marks: 30


Subject: CSC103 Programming Fundamentals Time: 02 hrs.
Instructors: Dr. Manzoor / Mr. Rizwan / Ms. Saadia / Dr. Behjat Dated: January 11, 2021

Question 01 – Recursion Points: 06


Take two coding problems that can be solved recursively. You are required to provide their:
a. Iterative implementation
b. Recursive implementation
c. Call stack information of recursive implementation (you can draw call stacks for each problem and
insert pictures in the word file)

Answer: Example: Muhammad Farhan sp20-bse-049

Iterative implementation GCD of two numbers

package javaapplication36;

import java.util.Scanner;

public class JavaApplication36 {

public static void main(String[] args) {

Scanner Input = new Scanner (System.in);

System.out.println("enter number 1: ");

int a = Input.nextInt();

System.out.println("enter number 2: ");

int b = Input.nextInt();

int num1=0;

int num2;

if (a > b)

Page 1 of 9
num1 = b;

if (a < b)

num1 = a;

num2 = num1/2;

while (num2 != 0){

if ( a % num2 == 0 && b % num2 == 0)

break;

num2 -= 1;

System.out.println("Greatest common divisor" + "is" + num2);

Recursive implementation GCD finder

package javaapplication37;

import java.util.Scanner;

public class GCDRECURSIVE {

Page 2 of 9
public static void main(String[] args) {

Scanner input = new Scanner (System.in);

System.out.println("Enter number1: ");

int num1 = input.nextInt();

System.out.println("Enter number2: ");

int num2 = input.nextInt();

int hcf = hcf(num1, num2);

System.out.printf("G.C.D of %d and %d is %d.", num1, num2, hcf);

System.out.println();

public static int hcf(int num1, int num2)

if (num2 != 0)

return hcf(num2, num1 % num2);

else

return num1;

Call stack

Page 3 of 9
Example 2:

Iterative implementation

package javaapplication39;

public class JavaApplication39 {

public static void main(String[] args) {

int num = 6;

int fact = 1;

for(int i = 1; i<=num; i++) {

fact = fact * i;

System.out.println("Factorial of the given number is:: "+fact);

Recursive implementation Factorial of 6

package javaapplication38;

public class JavaApplication38 {

Page 4 of 9
public static void main(String[] args) {

int factorial = fact(6);

System.out.println("Factorial of 6 is: "+factorial);

public static int fact(int n){

int out;

if(n==1){

return 1;

out = fact(n-1)* n;

return out;

Call stack

Question 02 – Two-dimensional array Points: 10

Page 5 of 9
Code an application that displays the number of times a value appears in a two-dimensional array. It displays the
number of times each of the numbers from 1 through 9 appears in the numbers array.
Example: Suppose the user entered the following array.
1 2 7
2 2 2
1 1 7

Output: The value 1 appears 3 times.


The value 2 appears 4 times.
The value 7 appears 2 times.

package javaapplication36;

public class JavaApplication36 {

public static void main(String[] args) {


int[][] num = new int[][]{{4,4,4,8},{1,2,4,4},{4,7,9,5}};
Occurence(num);
}
public static void Occurence(int[][] num){

for (int i = 1; i < 9; i++) {


int count = 0;
for (int j = 0; j < num.length; j++) {
for (int k = 0; k < num[j].length; k++) {
if (i == num[j][k]) {
count++;
}
}
}
if (count > 0) {
System.out.println("The value " + i + " appears " + count + " times.");
}
}

Page 6 of 9
Question 03 – Strings Points: 04
Given a string, determine the length of the widest/biggest fragment, where all the characters of the fragment are same.
Example: abbbbacacccafffd
Output: 4
package javaapplication41;

public class JavaApplication41 {

public static void main(String[] args) {


String str = "zzzzzavvvaffaggggggaadddnnnncccafffdddddddd";
Max(str);
}
public static void Max(String str) {
int m = 0;
char element = 0;

for (int i = 0; i < str.length(); i++) {


int count = 1;
for (int j = i; j < str.length(); j++) {
element = str.charAt(i);
if (str.charAt(i) == str.charAt(j)) {
if (++count > m) {
m = count;
}
} else {
i = j;
break;
}

Page 7 of 9
}
}

System.out.println("the character is " + element + " and occurence is " + m);


}

Question 04 – Text I/O Points: 10


Write a program to create a file named randomNumbers.txt if it does not exist. Write 25 numbers, generated randomly,
to the file using text I/O. The numbers must be separated by spaces in the file. Read the data back from the file and
display the data in decreasing order.
package javaapplication42;

import java.util.*;
import java.io.*;
public class JavaApplication42 {

public static void main(String[] args) throws Exception{


File file = new File("randomnumbers.txt");

try (

PrintWriter output = new PrintWriter(file);


){

Page 8 of 9
for (int i = 0; i < 25; i++) {
output.print(((int)(Math.random() * 10000) + 1));
output.print(" ");
}
}
ArrayList<Integer> array = new ArrayList<>();

try(

Scanner input = new Scanner(file);


){

while (input.hasNext()) {
array.add(input.nextInt());
}
}
Collections.sort(array);

System.out.print(array);
System.out.println();

Page 9 of 9

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy