slips
November 30, 2023

SLIP17

Q.1 Write a Java Program to implement Strategy Design pattern for arithmetic operations.

import java.util.Scanner;
// Strategy interface
interface ArithmeticOperation {
    int performOperation(int num1, int num2);
}

// Concrete strategy classes
class AddOperation implements ArithmeticOperation {
    @Override
    public int performOperation(int num1, int num2) {
        return num1 + num2;
    }
}

class SubtractOperation implements ArithmeticOperation {
    @Override
    public int performOperation(int num1, int num2) {
        return num1 - num2;
    }
}

class MultiplyOperation implements ArithmeticOperation {
    @Override
    public int performOperation(int num1, int num2) {
        return num1 * num2;
    }
}

class DivideOperation implements ArithmeticOperation {
    @Override
    public int performOperation(int num1, int num2) {
        if (num2 != 0) {
            return num1 / num2;
        } else {
            System.out.println("Cannot divide by zero.");
            return 0;
        }
    }
}
// Context class
class Calculator {
    private ArithmeticOperation arithmeticOperation;

    public Calculator(ArithmeticOperation arithmeticOperation) {
        this.arithmeticOperation = arithmeticOperation;
    }

    public void setArithmeticOperation(ArithmeticOperation arithmeticOperation) {
        this.arithmeticOperation = arithmeticOperation;
    }

    public int executeOperation(int num1, int num2) {
        return arithmeticOperation.performOperation(num1, num2);
    }
}

// Client code
public class StrategyPatternExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // Accept values from the user
        System.out.print("Enter the first number: ");
        int num1 = scanner.nextInt();

        System.out.print("Enter the second number: ");
        int num2 = scanner.nextInt();

        // Create context with initial strategy (AddOperation)
        Calculator calculator = new Calculator(new AddOperation());

        // Perform arithmetic operations
        int resultAdd = calculator.executeOperation(num1, num2);
        System.out.println("Addition result: " + resultAdd);

        calculator.setArithmeticOperation(new SubtractOperation());
        int resultSubtract = calculator.executeOperation(num1, num2);
        System.out.println("Subtraction result: " + resultSubtract);

        calculator.setArithmeticOperation(new MultiplyOperation());
        int resultMultiply = calculator.executeOperation(num1, num2);
        System.out.println("Multiplication result: " + resultMultiply);

        calculator.setArithmeticOperation(new DivideOperation());
        int resultDivide = calculator.executeOperation(num1, num2);
        System.out.println("Division result: " + resultDivide);

        scanner.close();
    }
}

Q.2 Write a python program to implement linear SVM for Classification. Use iris.csv.

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score, classification_report
from sklearn.preprocessing import StandardScaler
data = pd.read_csv('./csv/Iris.csv')
X = data.iloc[:, :-1]  # Features
y = data.iloc[:, -1]   # Target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
svm_classifier = LinearSVC()
svm_classifier.fit(X_train_scaled, y_train)
predictions = svm_classifier.predict(X_test_scaled)
accuracy = accuracy_score(y_test, predictions)
report = classification_report(y_test, predictions)
print(f"Accuracy: {accuracy}")
print("Classification Report:\n", report)

Q.3 Create two components – ParentComponent, ChildComponent a. ParentComponent passes prop as name to ChildComponent b. ChildComponent converts name to uppercase and prints e.g ParentComponent passes John c. ChildComponent prints My name is JOHN

Create A Folder Named “components” In src folder and inside components. Create two folders named “ParentComponent” And “ChildComponent”

Paste ParentComponent.jsx in ParentComponent Folder

// ParentComponent.jsx
import React from 'react';
import ChildComponent from '../ChildComponent/ChildComponent';

const ParentComponent = () => {
  const name = 'John'; // You can change this value

  return (
    <div>
      {/* <h1>Parent Component</h1> */}
      <ChildComponent name={name} />
    </div>
  );
};

export default ParentComponent;


paste ChildComponent.jsx in ChildComponent folder

// ChildComponent.jsx
import React from 'react';

const ChildComponent = (props) => {
  const uppercaseName = props.name.toUpperCase();

  return (
    <div>
      {/* <h2>Child Component</h2> */}
      <p>My name is {uppercaseName}</p>
    </div>
  );
};

export default ChildComponent;



And Paste App.js In Src Folder
// App.js
import React from 'react';
import ParentComponent from './components/ParentComponent/ParentComponent';

function App() {
  return (
    <div className="App">
      <h1>Slip 6</h1>
      <ParentComponent />
    </div>
  );
}

export default App;