From f75a9a1d790565ae2235b9fc3a034e807de239e2 Mon Sep 17 00:00:00 2001
From: LorenaBerchesan <91964957+LorenaBerchesan@users.noreply.github.com>
Date: Thu, 29 Feb 2024 20:16:58 +0200
Subject: [PATCH 1/2] ex 1-10
---
.idea/.gitignore | 0
.idea/java-course.iml | 9 +
.idea/modules.xml | 8 +
.idea/runConfigurations.xml | 10 +
.idea/vcs.xml | 6 +
.idea/workspace.xml | 39 +++
.../main/java/com/rinftech/codewars/Main.java | 112 +++++++++
.../java/com/rinftech/develop/Animal.java | 11 +
.../main/java/com/rinftech/develop/Car.java | 23 ++
.../java/com/rinftech/develop/Circle.java | 13 +
.../java/com/rinftech/develop/Employee.java | 24 ++
.../main/java/com/rinftech/develop/Lion.java | 20 ++
.../main/java/com/rinftech/develop/Main.java | 233 ++++++++++++++++++
.../java/com/rinftech/develop/Motorcycle.java | 24 ++
.../java/com/rinftech/develop/Panther.java | 15 ++
.../java/com/rinftech/develop/Person.java | 33 +++
.../java/com/rinftech/develop/Rectangle.java | 16 ++
.../main/java/com/rinftech/develop/Shape.java | 7 +
.../main/java/com/rinftech/develop/Tiger.java | 15 ++
.../java/com/rinftech/develop/Triangle.java | 16 ++
.../main/java/com/rinftech/develop/Truck.java | 22 ++
.../java/com/rinftech/develop/Vehicle.java | 55 +++++
22 files changed, 711 insertions(+)
create mode 100644 .idea/.gitignore
create mode 100644 .idea/java-course.iml
create mode 100644 .idea/modules.xml
create mode 100644 .idea/runConfigurations.xml
create mode 100644 .idea/vcs.xml
create mode 100644 .idea/workspace.xml
create mode 100644 JavaCourse/src/main/java/com/rinftech/codewars/Main.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Animal.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Car.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Circle.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Employee.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Lion.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Main.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Motorcycle.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Panther.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Person.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Rectangle.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Shape.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Tiger.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Triangle.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Truck.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/develop/Vehicle.java
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/java-course.iml b/.idea/java-course.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/java-course.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..edb5d78
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000..797acea
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..696731f
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1709037762257
+
+
+ 1709037762257
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaCourse/src/main/java/com/rinftech/codewars/Main.java b/JavaCourse/src/main/java/com/rinftech/codewars/Main.java
new file mode 100644
index 0000000..d278509
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/codewars/Main.java
@@ -0,0 +1,112 @@
+package com.rinftech.codewars;
+
+import java.util.Locale;
+import java.util.stream.Stream;
+
+public class Main {
+
+ public static void main(String[] args) {
+ String a = "abcd";
+ System.out.println(solution("a"));
+ System.out.println();
+
+ int n = 1234;
+ System.out.println(countBits(n));
+ System.out.println();
+
+ System.out.println(fisrtNonRepeatingLetter("hello word,c?"));
+ System.out.println();
+
+ int[] input = new int[]{-10,-9,-8,-6,-3,-2,-1,0,1,3,4,5,7,8,9,10,11,14,15,17,18,19,20};
+ System.out.println(rangeExtraction(input));
+
+
+ }
+
+ //'abc'=> ["ab","c_"] ; "abcd" => ["ab","cd"]
+ public static String[] solution(String s) {
+
+ boolean isOdd = s.length() % 2 == 1;
+ if (isOdd) {
+ s = s + "_";
+
+ }
+ String[] result = new String[s.length() / 2];
+
+ for (int i = 0; i < s.length() - 1; i += 2) {
+ result[i / 2] = s.substring(i, i + 2);
+
+ }
+ return result;
+ }
+
+ //1234 => 100111010010 transformare in baza doi si sa se calculeze cati de 1 sunt =5
+ public static int countBits(int n) {
+ String binaryForm = Integer.toBinaryString(n);
+
+ return (int) Stream.of(binaryForm.split(""))
+ .filter(digit -> Integer.parseInt(digit) == 1)
+ .count();
+ }
+
+ //first_non_repeating_letter "stress"=> t prima litera care nu se repeta
+ public static String fisrtNonRepeatingLetter(String s) {
+
+ if (s.isEmpty()) {
+ return "";
+ }
+
+ String lowerS = s.toLowerCase();
+ char[] chars = lowerS.toCharArray();
+ for (int i = 0; i < chars.length - 1; i++) {
+ int firstIndex = s.indexOf(chars[i]);
+ int lastIndex = s.lastIndexOf(chars[i]);
+
+ if (firstIndex == lastIndex) {
+ return s.substring(i, i + 1);
+
+ }
+
+ }
+ String lastChar = s.substring(s.length() - 1);
+ if (lowerS.indexOf(lastChar) == lowerS.length() - 1) {
+ return s.substring(s.length() - 1);
+ }
+ return "";
+
+ }
+
+ //int=-10,-9,-8,-6,-1,0,1,2,4 => -10--8,-6,-1-2,4
+ public static String rangeExtraction(int[] arr) {
+ StringBuilder result = new StringBuilder();
+ int left = 0;
+ for (int right = 1; right < arr.length; right++) {
+ if (arr[right - 1] - arr[right] != -1) {
+ if (left == right - 1) {
+ //result += arr[left];
+ result.append(arr[left])
+ .append(",");
+ } else {
+ //result += arr[left]+"-"+arr[right-1];
+ result.append(arr[left])
+ .append("-")
+ .append(arr[right - 1])
+ .append(",");
+ }
+ left = right;
+
+ }
+
+ }
+ if ( left == arr.length - 1) {
+ result.append(arr[left]);
+ }else{
+ result.append(arr[left])
+ .append("-")
+ .append(arr[arr.length-1]);
+ }
+ return result.toString();
+ }
+
+ //aceasi prob dar afiseaza doar intervale care sunt minim 3 altfel nr sunt puse singure
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Animal.java b/JavaCourse/src/main/java/com/rinftech/develop/Animal.java
new file mode 100644
index 0000000..15f4d09
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Animal.java
@@ -0,0 +1,11 @@
+package com.rinftech.develop;
+
+public class Animal {
+ public String eat() {
+ return "hi";
+ }
+
+ public String sound(){
+ return "hi2";
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Car.java b/JavaCourse/src/main/java/com/rinftech/develop/Car.java
new file mode 100644
index 0000000..b50fa2c
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Car.java
@@ -0,0 +1,23 @@
+package com.rinftech.develop;
+
+public class Car extends Vehicle{
+ public Car(String make, String model, Integer year, String fuel_type){
+ super(make,model,year,fuel_type);
+ }
+
+ @Override
+ public int maximumSpeed(){
+ return 120;
+ }
+
+ @Override
+ public double calculateFuelEfficiency(double distance, double fuelConsumptionRate) {
+ return distance / fuelConsumptionRate;
+ }
+
+ @Override
+ public double distanceTraveled(double time, double speed){
+ return time*speed;
+ }
+
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Circle.java b/JavaCourse/src/main/java/com/rinftech/develop/Circle.java
new file mode 100644
index 0000000..81c1c57
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Circle.java
@@ -0,0 +1,13 @@
+package com.rinftech.develop;
+
+public class Circle extends Shape{
+ private int radius;
+ public Circle(int radius){
+ this.radius = radius;
+ }
+
+ @Override
+ public double calculateArea(){
+ return Math.PI*this.radius*this.radius;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Employee.java b/JavaCourse/src/main/java/com/rinftech/develop/Employee.java
new file mode 100644
index 0000000..711df5d
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Employee.java
@@ -0,0 +1,24 @@
+package com.rinftech.develop;
+
+
+public class Employee extends Person {
+
+ private Integer empoyeeId;
+ private String jobTitle;
+
+ public Employee(String firstName, String lastName, Integer empoyeeId , String jobTitle) {
+ super(firstName, lastName);
+ this.empoyeeId = empoyeeId;
+ this.jobTitle = jobTitle;
+ }
+ //get
+ public Integer getEmpoyeeId() {
+ return empoyeeId;
+ }
+
+ @Override
+ public String getLastName(){
+ return super.getLastName()+","+jobTitle;
+ }
+}
+
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Lion.java b/JavaCourse/src/main/java/com/rinftech/develop/Lion.java
new file mode 100644
index 0000000..2e93a7a
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Lion.java
@@ -0,0 +1,20 @@
+package com.rinftech.develop;
+
+public class Lion extends Animal{
+ private String meal;
+ private String sound;
+ public Lion(String meal, String sound){
+ this.meal = meal;
+ this.sound = sound;
+ }
+
+ @Override
+ public String eat(){
+ return this.meal;
+ }
+
+ @Override
+ public String sound(){
+ return this.sound;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Main.java b/JavaCourse/src/main/java/com/rinftech/develop/Main.java
new file mode 100644
index 0000000..8001e1e
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Main.java
@@ -0,0 +1,233 @@
+package com.rinftech.develop;
+
+import java.util.*;
+
+public class Main {
+ public static void main(String[] args){
+ int number = 8733;
+ System.out.println("The sum of the integer "+number+" is: "+computeSum(number));
+ System.out.println();
+
+ String input = "The quick brown fox jumps over 42 lazy dogs";
+ countAll(input);
+ System.out.println();
+
+ Employee employee = new Employee("Ana","Pop",12,"dks");
+ System.out.println("Last name and job: "+employee.getLastName());
+ System.out.println();
+
+ Car car = new Car("c", "b",2020,"d");
+ System.out.println("Maximum speed car:"+car.maximumSpeed());
+ System.out.println("Calculate fuel efficiency: "+car.calculateFuelEfficiency(car.distanceTraveled(20,60),5.5));
+ System.out.println("Distance traveled: "+car.distanceTraveled(20,60));
+ System.out.println();
+
+ Motorcycle motorcycle = new Motorcycle("m","r", 2021,"b");
+ System.out.println("Maximum speed motorcycle: "+motorcycle.maximumSpeed());
+ System.out.println("Calculate fuel efficiency: "+motorcycle.calculateFuelEfficiency(motorcycle.distanceTraveled(20,80),7.5));
+ System.out.println("Distance traveled: "+motorcycle.distanceTraveled(20,80));
+ System.out.println();
+
+ Truck truck = new Truck("t", "c", 2019, "b");
+ System.out.println("Maximum speed truck: "+truck.maximumSpeed());
+ System.out.println("Calculate fuel efficiency: "+truck.calculateFuelEfficiency(truck.distanceTraveled(20,50),8));
+ System.out.println("Distance traveled: "+truck.distanceTraveled(20,50));
+ System.out.println();
+
+ commonElements();
+
+ // Creăm un obiect de tip Scanner pentru a citi de la tastatură
+ Scanner scanner = new Scanner(System.in);
+
+ // Afisăm un mesaj pentru utilizator
+ System.out.print("Introduceti un numar intreg: ");
+
+ // Citim numărul introdus de utilizator
+ int element1 = scanner.nextInt();
+
+ // Afisăm un mesaj pentru utilizator
+ System.out.print("Introduceti un numar intreg: ");
+
+ // Citim numărul introdus de utilizator
+ int element2 = scanner.nextInt();
+
+ swapsTwoTlements(element1,element2);
+
+ //9th problem
+
+ // Afisăm un mesaj pentru utilizator
+ System.out.print("Introduceti o culoare: ");
+
+ // Citim numărul introdus de utilizator
+ String c = scanner.next();
+
+ positionSpecifiedElement(c);
+
+
+ anagramsMap();
+ System.out.println();
+
+ Circle circle = new Circle(5);
+ System.out.println("Circle area : "+circle.calculateArea());
+
+ Triangle triangle = new Triangle(5,10);
+ System.out.println("Triangle area: "+triangle.calculateArea());
+
+ Rectangle rectangle = new Rectangle(5,5);
+ System.out.println("Rectangle area: "+rectangle.calculateArea());
+ System.out.println();
+
+ Lion lion = new Lion("Hyenas","roar");
+ System.out.println("Lion eats: "+lion.eat()+" and it makes: "+lion.sound());
+ Panther panther = new Panther("deer","grr" );
+ System.out.println("Panther makes: "+panther.sound());
+ Tiger tiger = new Tiger("humans","hss");
+ System.out.println("Tiger makes: "+tiger.sound());
+
+ }
+
+ //first problem
+ public static int computeSum(int number) {
+ int sum = 0;
+ while ( number !=0 ) {
+ sum = sum + number % 10;
+ number = number / 10;
+ }
+ return sum;
+ }
+
+ //second problem
+ public static void countAll(String input){
+ int letters = 0;
+ int numbers = 0;
+ int spaces = 0;
+ for ( int i = 0 ; i< input.length() ; i++ ){
+ char ch = input.charAt(i);
+ if ( Character.isLetter(ch) ){
+ letters++;
+ }
+ if ( Character.isSpaceChar(ch) ){
+ spaces++;
+ }
+ if ( Character.isDigit(ch) ){
+ numbers++;
+ }
+
+ }
+ System.out.println("Letter: "+letters);
+ System.out.println("Spaces: "+spaces);
+ System.out.println("Numbers: "+numbers);
+
+ }
+
+ //5th problem
+ public static void commonElements(){
+ List firstArray = new ArrayList<>();
+ List secondArray = new ArrayList<>();
+ firstArray.add("Python");
+ firstArray.add("Java");
+ firstArray.add("GoLang");
+ firstArray.add("Lisp");
+ secondArray.add("Java");
+ secondArray.add("C++");
+ secondArray.add("Apples");
+ secondArray.add("Hamburger");
+ secondArray.add("Lisp");
+ List newArray = new ArrayList<>();
+
+ for ( int i = 0 ; i < firstArray.size() ; i++ ){
+ //verify first element from firstArray if exist in secondArray
+ if ( secondArray.contains(firstArray.get(i)) ){
+ newArray.add(firstArray.get(i));
+ }
+ }
+ System.out.println("Result for problem 5: "+newArray);
+ System.out.println();
+ }
+
+ //8th problem
+ public static void swapsTwoTlements(int element1, int element2){
+ List colorArray = new ArrayList<>();
+ colorArray.add("Red");
+ colorArray.add("Green");
+ colorArray.add("Black");
+ colorArray.add("White");
+ colorArray.add("Pink");
+
+
+
+ if ( !(element1 < colorArray.size())){
+ System.out.println("The element 1 is bigger than colorArray size");
+ }
+ if ( !(element2 < colorArray.size())){
+ System.out.println("The element 2 is bigger than colorArray size");
+ }
+
+ String obj1 = colorArray.get(element1);
+ String obj2 = colorArray.get(element2);
+ for ( int i = 0 ; i < colorArray.size() ; i ++ ){
+ if ( colorArray.get(i).equals(obj1)){
+ colorArray.remove(i);
+ colorArray.add(i,obj2);
+ }else {
+ if (colorArray.get(i).equals(obj2)) {
+ colorArray.remove(i);
+ colorArray.add(i, obj1);
+ }
+ }
+ }
+ System.out.println("Output for problem 8: "+colorArray);
+ System.out.println();
+ }
+
+ //9th problem
+ public static void positionSpecifiedElement(String c){
+ List color = new ArrayList<>();
+ color.add("Red");
+ color.add("Green");
+ color.add("Black");
+ color.add("White");
+ color.add("Pink");
+ color.add("Green");
+ color.add("Green");
+ color.add("Black");
+ color.add("Yellow");
+ color.add("White");
+
+ int firstPosition = color.indexOf(c);
+ int lastPosition = color.lastIndexOf(c);
+
+ System.out.println("First occurrence for "+c+" is position "+firstPosition+" and last is position "+lastPosition);
+ System.out.println();
+ }
+
+ //10th problem
+ public static void anagramsMap(){
+ String[] strs = {"eat", "tea", "tan", "ate", "nat", "bat", "listen", "silent", "enlist", "hello", "world", "dlrow"};
+
+ // Crearea unui map pentru a grupa anagramele
+ Map> map = new HashMap<>();
+ for (String str : strs) {
+ char[] charArray = str.toCharArray();
+ Arrays.sort(charArray);
+
+ String sortedStr = new String(charArray);
+
+ // Dacă șirul sortat nu există în map, adăugăm o nouă listă goală
+ if (!map.containsKey(sortedStr)) {
+ map.put(sortedStr, new ArrayList<>());
+ }
+ map.get(sortedStr).add(str);
+ }
+ List> groupedAnagrams = new ArrayList<>(map.values());
+ for (List group : groupedAnagrams) {
+ System.out.println("Output problem 10: "+group);
+ }
+ }
+
+
+
+
+
+
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Motorcycle.java b/JavaCourse/src/main/java/com/rinftech/develop/Motorcycle.java
new file mode 100644
index 0000000..1ae3867
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Motorcycle.java
@@ -0,0 +1,24 @@
+package com.rinftech.develop;
+
+public class Motorcycle extends Vehicle{
+ public Motorcycle(String make, String model, Integer year, String fuel_type){
+ super(make,model,year,fuel_type);
+ }
+
+ @Override
+ public int maximumSpeed(){
+ return 120;
+ }
+
+
+
+ @Override
+ public double calculateFuelEfficiency(double distance, double fuelConsumptionRate) {
+ return distance / fuelConsumptionRate;
+ }
+
+ @Override
+ public double distanceTraveled(double time, double speed){
+ return time*speed;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Panther.java b/JavaCourse/src/main/java/com/rinftech/develop/Panther.java
new file mode 100644
index 0000000..9101dbb
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Panther.java
@@ -0,0 +1,15 @@
+package com.rinftech.develop;
+
+public class Panther extends Animal{
+ private String meal;
+ private String sound;
+ public Panther(String meal, String sound){
+ this.meal = meal;
+ this.sound = sound;
+ }
+
+ @Override
+ public String sound(){
+ return this.sound;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Person.java b/JavaCourse/src/main/java/com/rinftech/develop/Person.java
new file mode 100644
index 0000000..5cc0ea0
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Person.java
@@ -0,0 +1,33 @@
+package com.rinftech.develop;
+//3 problem
+public class Person {
+ private String firstName;
+ private String lastName;
+
+ //constructor
+ public Person(String firstName, String lastName) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ //get
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void calculateFuelEfficiency(){
+
+ }
+
+ public int distanceTraveled(int time, int speed){
+ return time*speed;
+ }
+
+ public int maximumSpeed(){
+ return 0;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Rectangle.java b/JavaCourse/src/main/java/com/rinftech/develop/Rectangle.java
new file mode 100644
index 0000000..f413764
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Rectangle.java
@@ -0,0 +1,16 @@
+package com.rinftech.develop;
+
+public class Rectangle extends Shape{
+ private int length;
+ private int width;
+
+ public Rectangle(int length, int width){
+ this.length = length;
+ this.width = width;
+ }
+
+ @Override
+ public double calculateArea(){
+ return this.length*this.width;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Shape.java b/JavaCourse/src/main/java/com/rinftech/develop/Shape.java
new file mode 100644
index 0000000..aec4a39
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Shape.java
@@ -0,0 +1,7 @@
+package com.rinftech.develop;
+
+public class Shape {
+ public double calculateArea(){
+ return 0;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Tiger.java b/JavaCourse/src/main/java/com/rinftech/develop/Tiger.java
new file mode 100644
index 0000000..981bcc7
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Tiger.java
@@ -0,0 +1,15 @@
+package com.rinftech.develop;
+
+public class Tiger extends Animal{
+ private String meal;
+ private String sound;
+ public Tiger(String meal,String sound){
+ this.meal = meal;
+ this.sound = sound;
+ }
+
+ @Override
+ public String sound(){
+ return this.sound;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Triangle.java b/JavaCourse/src/main/java/com/rinftech/develop/Triangle.java
new file mode 100644
index 0000000..65d27b2
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Triangle.java
@@ -0,0 +1,16 @@
+package com.rinftech.develop;
+
+public class Triangle extends Shape{
+
+ private int hight;
+ private int base;
+ public Triangle(int hight, int base){
+ this.hight =hight;
+ this.base = base;
+ }
+
+ @Override
+ public double calculateArea(){
+ return (this.hight*this.base)/2;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Truck.java b/JavaCourse/src/main/java/com/rinftech/develop/Truck.java
new file mode 100644
index 0000000..8bea4b3
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Truck.java
@@ -0,0 +1,22 @@
+package com.rinftech.develop;
+
+public class Truck extends Vehicle{
+ public Truck(String make, String model, Integer year, String fuel_type){
+ super(make,model,year,fuel_type);
+ }
+
+ @Override
+ public int maximumSpeed(){
+ return 100;
+ }
+
+ @Override
+ public double calculateFuelEfficiency(double distance, double fuelConsumptionRate) {
+ return distance / fuelConsumptionRate;
+ }
+
+ @Override
+ public double distanceTraveled(double time, double speed){
+ return time*speed;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/develop/Vehicle.java b/JavaCourse/src/main/java/com/rinftech/develop/Vehicle.java
new file mode 100644
index 0000000..3c56b0b
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/develop/Vehicle.java
@@ -0,0 +1,55 @@
+package com.rinftech.develop;
+
+public abstract class Vehicle {
+ private String make;
+ private String model;
+ private Integer year;
+ private String fuel_type;
+
+ public Vehicle(String make, String model, Integer year, String fuel_type){
+ this.make = make;
+ this.model = model;
+ this.year = year;
+ this.fuel_type = fuel_type;
+ }
+
+
+
+ public String getMake() {
+ return make;
+ }
+
+ public void setMake(String make) {
+ this.make = make;
+ }
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public Integer getYear() {
+ return year;
+ }
+
+ public void setYear(Integer year) {
+ this.year = year;
+ }
+
+ public String getFuel_type() {
+ return fuel_type;
+ }
+
+ public void setFuel_type(String fuel_type) {
+ this.fuel_type = fuel_type;
+ }
+
+ public abstract int maximumSpeed();
+
+ public abstract double calculateFuelEfficiency(double distance, double fuelConsumptionRate);
+
+ public abstract double distanceTraveled(double time, double speed);
+}
From 805294a07a8a4796494e0f9e7c18e252f0c7fa2a Mon Sep 17 00:00:00 2001
From: RaresSuflet
Date: Sat, 2 Mar 2024 21:55:54 +0200
Subject: [PATCH 2/2] solved exercises 1-10
---
.../java/com/rinftech/problems/Exercise1.java | 16 +++++++
.../com/rinftech/problems/Exercise10.java | 47 +++++++++++++++++++
.../java/com/rinftech/problems/Exercise2.java | 22 +++++++++
.../java/com/rinftech/problems/Exercise5.java | 30 ++++++++++++
.../java/com/rinftech/problems/Exercise8.java | 23 +++++++++
.../java/com/rinftech/problems/Exercise9.java | 28 +++++++++++
.../rinftech/problems/exercise3/Employee.java | 21 +++++++++
.../com/rinftech/problems/exercise3/Main.java | 8 ++++
.../rinftech/problems/exercise3/Person.java | 19 ++++++++
.../com/rinftech/problems/exercise4/Car.java | 22 +++++++++
.../com/rinftech/problems/exercise4/Main.java | 21 +++++++++
.../problems/exercise4/Motorcycle.java | 23 +++++++++
.../rinftech/problems/exercise4/Truck.java | 23 +++++++++
.../rinftech/problems/exercise4/Vehicle.java | 44 +++++++++++++++++
.../rinftech/problems/exercise6/Circle.java | 13 +++++
.../com/rinftech/problems/exercise6/Main.java | 13 +++++
.../problems/exercise6/Rectangle.java | 16 +++++++
.../rinftech/problems/exercise6/Shape.java | 5 ++
.../rinftech/problems/exercise6/Triangle.java | 20 ++++++++
.../rinftech/problems/exercise7/Animal.java | 10 ++++
.../com/rinftech/problems/exercise7/Lion.java | 12 +++++
.../com/rinftech/problems/exercise7/Main.java | 12 +++++
.../rinftech/problems/exercise7/Panther.java | 12 +++++
.../rinftech/problems/exercise7/Tiger.java | 12 +++++
24 files changed, 472 insertions(+)
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/Exercise1.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/Exercise10.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/Exercise2.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/Exercise5.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/Exercise8.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/Exercise9.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise3/Employee.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise3/Main.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise3/Person.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise4/Car.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise4/Main.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise4/Motorcycle.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise4/Truck.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise4/Vehicle.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise6/Circle.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise6/Main.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise6/Rectangle.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise6/Shape.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise6/Triangle.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise7/Animal.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise7/Lion.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise7/Main.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise7/Panther.java
create mode 100644 JavaCourse/src/main/java/com/rinftech/problems/exercise7/Tiger.java
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/Exercise1.java b/JavaCourse/src/main/java/com/rinftech/problems/Exercise1.java
new file mode 100644
index 0000000..19a8ea4
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/Exercise1.java
@@ -0,0 +1,16 @@
+package com.rinftech.problems;
+
+public class Exercise1 {
+
+ public static void main(String[] args) {
+ System.out.println("Result: " + computeDigitsSum(8733));
+ }
+ private static int computeDigitsSum(int input) {
+ int result = 0;
+ while (input != 0) {
+ result += input % 10;
+ input /= 10;
+ }
+ return result;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/Exercise10.java b/JavaCourse/src/main/java/com/rinftech/problems/Exercise10.java
new file mode 100644
index 0000000..589d974
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/Exercise10.java
@@ -0,0 +1,47 @@
+package com.rinftech.problems;
+
+import java.util.*;
+
+public class Exercise10 {
+ public static void main(String[] args) {
+ String[] input = {"eat", "tea", "tan", "ate", "nat", "bat", "listen", "silent", "enlist", "hello", "world", "dlrow"};
+ Map> result = groupAnagrams(input);
+
+ for (Map.Entry> entry : result.entrySet()) {
+ System.out.println("Group nr.: " + entry.getKey() + ", Elements: " + entry.getValue());
+ }
+ }
+
+ public static Map> groupAnagrams(String[] input) {
+ Map> anagramMap = new HashMap<>();
+ anagramMap.put(0, new ArrayList<>(Collections.singletonList(input[0])));
+
+ for (int i = 1; i < input.length; i++) {
+ String currentElement = input[i];
+ boolean alreadyAdded = false;
+
+ for (Map.Entry> entry : anagramMap.entrySet()) {
+ List groupList = entry.getValue();
+ if (!groupList.isEmpty()) {
+ String groupMember = groupList.get(0);
+ if (currentElement.length() == groupMember.length()) {
+ char[] firstWord = currentElement.toCharArray();
+ char[] secondWord = groupMember.toCharArray();
+ Arrays.sort(firstWord);
+ Arrays.sort(secondWord);
+
+ if (Arrays.equals(firstWord, secondWord)) {
+ groupList.add(currentElement);
+ alreadyAdded = true;
+ break;
+ }
+ }
+ }
+ }
+ if (!alreadyAdded) {
+ anagramMap.put(anagramMap.size(), new ArrayList<>(Collections.singletonList(currentElement)));
+ }
+ }
+ return anagramMap;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/Exercise2.java b/JavaCourse/src/main/java/com/rinftech/problems/Exercise2.java
new file mode 100644
index 0000000..0894052
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/Exercise2.java
@@ -0,0 +1,22 @@
+package com.rinftech.problems;
+
+public class Exercise2 {
+ public static void main(String[] args) {
+ countCharacters("The quick brown fox jumps over 42 lazy dogs");
+ }
+ private static void countCharacters(String input) {
+ int letterCount = 0;
+ int spaceCount = 0;
+ int numberCount = 0;
+ for (char c : input.toCharArray()) {
+ if ((c >= 65 && c <= 90 ) || (c >= 97 && c <= 122)) {
+ letterCount++;
+ } else if (c == 32) {
+ spaceCount++;
+ } else if (c >= 48 && c <= 57){
+ numberCount++;
+ }
+ }
+ System.out.println("Letters: " + letterCount + " Spaces: " + spaceCount + " Numbers: " + numberCount);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/Exercise5.java b/JavaCourse/src/main/java/com/rinftech/problems/Exercise5.java
new file mode 100644
index 0000000..95ae160
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/Exercise5.java
@@ -0,0 +1,30 @@
+package com.rinftech.problems;
+
+import java.util.Arrays;
+import java.util.HashSet;
+
+public class Exercise5 {
+ public static void main(String[] args) {
+ String[] firstArray = {"Python", "Java", "GoLang", "Lisp"};
+ String[] secondArray = {"Java", "C++", "Apples", "Hamburger", "Lisp"};
+ System.out.println(findCommonElements(firstArray, secondArray));
+
+ }
+
+ public static StringBuilder findCommonElements(String[] firstArray, String[] secondArray) {
+ HashSet firstSet = new HashSet<>(Arrays.asList(firstArray));
+ StringBuilder commonElements = new StringBuilder();
+
+ for (String element : secondArray) {
+ if (firstSet.contains(element)) {
+ if (commonElements.length() == 0) {
+ commonElements.append(element);
+ } else {
+ commonElements.append(", ");
+ commonElements.append(element);
+ }
+ }
+ }
+ return commonElements;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/Exercise8.java b/JavaCourse/src/main/java/com/rinftech/problems/Exercise8.java
new file mode 100644
index 0000000..6c582f7
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/Exercise8.java
@@ -0,0 +1,23 @@
+package com.rinftech.problems;
+
+import java.util.ArrayList;
+
+public class Exercise8 {
+ public static void main(String[] args) {
+ ArrayList input = new ArrayList();
+ input.add("Red");
+ input.add("Green");
+ input.add("Black");
+ input.add("White");
+ input.add("Pink");
+ System.out.println("Output: " + swapTwoElements(input, 1, 4));
+ }
+
+ public static ArrayList swapTwoElements (ArrayList input, int firstIndex, int secondIndex) {
+ String elementCopy;
+ elementCopy = input.get(firstIndex);
+ input.set(firstIndex, input.get(secondIndex));
+ input.set(secondIndex, elementCopy);
+ return input;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/Exercise9.java b/JavaCourse/src/main/java/com/rinftech/problems/Exercise9.java
new file mode 100644
index 0000000..44ce2b7
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/Exercise9.java
@@ -0,0 +1,28 @@
+package com.rinftech.problems;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class Exercise9 {
+ public static void main(String[] args) {
+ List input = Arrays.asList("Red", "Green", "Black", "White", "Pink", "Green", "Green", "Black", "Yellow"
+ , "White");
+ findFirstAndLastOccurrence(input, "Green");
+ }
+ public static void findFirstAndLastOccurrence(List input, String elementToFind) {
+ int firstOccurrence = -1;
+ int lastOccurrence = -1;
+ int j = input.size() - 1;
+ for (int i = 0; i < input.size() && (firstOccurrence == -1 || lastOccurrence == -1); i++) {
+ if (input.get(i).equals(elementToFind) && (firstOccurrence < 0)) {
+ firstOccurrence = i;
+ }
+ if (input.get(j).equals(elementToFind) && (lastOccurrence < 0)) {
+ lastOccurrence = j;
+ }
+ j--;
+ }
+ System.out.println("First occurrence for " + elementToFind + " is position " + firstOccurrence +
+ " and last position is " + lastOccurrence);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise3/Employee.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise3/Employee.java
new file mode 100644
index 0000000..63521ba
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise3/Employee.java
@@ -0,0 +1,21 @@
+package com.rinftech.problems.exercise3;
+
+public class Employee extends Person{
+ private int employeeId;
+ private String jobTitle;
+
+ public Employee(String firstName, String lastName, int employeeId, String jobTitle) {
+ super(firstName, lastName);
+ this.employeeId = employeeId;
+ this.jobTitle = jobTitle;
+ }
+
+ public int getEmployeeId() {
+ return employeeId;
+ }
+
+ @Override
+ public String getLastName() {
+ return this.jobTitle + " " + super.getLastName();
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise3/Main.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise3/Main.java
new file mode 100644
index 0000000..334bad4
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise3/Main.java
@@ -0,0 +1,8 @@
+package com.rinftech.problems.exercise3;
+
+public class Main {
+ public static void main(String[] args) {
+ Employee employee = new Employee("James", "Smith", 17, "Business Analyst");
+ System.out.println("Job Title and Last name: " + employee.getLastName());;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise3/Person.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise3/Person.java
new file mode 100644
index 0000000..1bf266f
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise3/Person.java
@@ -0,0 +1,19 @@
+package com.rinftech.problems.exercise3;
+
+public class Person {
+ private String firstName;
+ private String lastName;
+
+ public Person(String firstName, String lastName) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Car.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Car.java
new file mode 100644
index 0000000..77fb5e4
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Car.java
@@ -0,0 +1,22 @@
+package com.rinftech.problems.exercise4;
+
+public class Car extends Vehicle{
+ public Car(String make, String model, int year, String fuelType) {
+ super(make, model, year, fuelType);
+ }
+ @Override
+ public void calculateFuelEfficiency() {
+ System.out.println(this.getMake() + " cars have all kinds of fuel depending on their model and fuel type.");
+
+ }
+ @Override
+ public void calculateDistanceTraveled(int traveledDistance) {
+ System.out.println("This " + this.getMake() + " " + this.getModel() + " " + this.getYear() + " has traveled " + traveledDistance +
+ " kilometres already!");
+ }
+ @Override
+ public void calculateMaximumSpeed(int speed) {
+ System.out.println(this.getMake() + " " + this.getModel() + " " + this.getYear() + " can reach a speed of " + speed
+ + " kilometres per hour!");
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Main.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Main.java
new file mode 100644
index 0000000..e7badd3
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Main.java
@@ -0,0 +1,21 @@
+package com.rinftech.problems.exercise4;
+
+public class Main {
+ public static void main(String[] args) {
+ Car car = new Car("Toyota", "Supra MKIV", 1996, "Petrol");
+ Motorcycle motorcycle = new Motorcycle("Kawasaki", "Ninja 400", 2018, "Unleaded Petrol");
+ Truck truck = new Truck("Ford", "F-250", 2021, "Diesel Fuel");
+
+ car.calculateFuelEfficiency();
+ motorcycle.calculateFuelEfficiency();
+ truck.calculateFuelEfficiency();
+
+ car.calculateDistanceTraveled(137582);
+ motorcycle.calculateDistanceTraveled(48973);
+ truck.calculateDistanceTraveled(62586);
+
+ car.calculateMaximumSpeed(250);
+ motorcycle.calculateMaximumSpeed(196);
+ truck.calculateMaximumSpeed(173);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Motorcycle.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Motorcycle.java
new file mode 100644
index 0000000..4f7f713
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Motorcycle.java
@@ -0,0 +1,23 @@
+package com.rinftech.problems.exercise4;
+
+public class Motorcycle extends Vehicle{
+ public Motorcycle(String make, String model, int year, String fuelType) {
+ super(make, model, year, fuelType);
+ }
+
+ @Override
+ public void calculateFuelEfficiency() {
+ System.out.println(this.getMake() + " motorcycles have all kinds of fuel depending on their model and fuel type.");
+
+ }
+ @Override
+ public void calculateDistanceTraveled(int traveledDistance) {
+ System.out.println("This " + this.getMake() + " " + this.getModel() + " " + this.getYear() + " has traveled " + traveledDistance +
+ " kilometres already!");
+ }
+ @Override
+ public void calculateMaximumSpeed(int speed) {
+ System.out.println(this.getMake() + " " + this.getModel() + " " + this.getYear() + " can reach a speed of " + speed
+ + " kilometres per hour!");
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Truck.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Truck.java
new file mode 100644
index 0000000..8b5fb05
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Truck.java
@@ -0,0 +1,23 @@
+package com.rinftech.problems.exercise4;
+
+public class Truck extends Vehicle{
+ public Truck(String make, String model, int year, String fuelType) {
+ super(make, model, year, fuelType);
+ }
+
+ @Override
+ public void calculateFuelEfficiency() {
+ System.out.println(this.getMake() + " trucks have all kinds of fuel depending on their model and fuel type.");
+
+ }
+ @Override
+ public void calculateDistanceTraveled(int traveledDistance) {
+ System.out.println("This " + this.getMake() + " " + this.getModel() + " " + this.getYear() + " has traveled " + traveledDistance +
+ " kilometres already!");
+ }
+ @Override
+ public void calculateMaximumSpeed(int speed) {
+ System.out.println(this.getMake() + " " + this.getModel() + " " + this.getYear() + " can reach a speed of " + speed
+ + " kilometres per hour!");
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Vehicle.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Vehicle.java
new file mode 100644
index 0000000..cf8357c
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise4/Vehicle.java
@@ -0,0 +1,44 @@
+package com.rinftech.problems.exercise4;
+
+public class Vehicle {
+ private String make;
+ private String model;
+ private int year;
+ private String fuelType;
+
+ public Vehicle(String make, String model, int year, String fuelType) {
+ this.make = make;
+ this.model = model;
+ this.year = year;
+ this.fuelType = fuelType;
+ }
+
+ public String getMake() {
+ return make;
+ }
+
+ public String getModel() {
+ return model;
+ }
+
+ public int getYear() {
+ return year;
+ }
+
+ public String getFuelType() {
+ return fuelType;
+ }
+
+ public void calculateFuelEfficiency() {
+ ;
+ }
+
+ public void calculateDistanceTraveled(int traveledDistance) {
+ ;
+ }
+
+ public void calculateMaximumSpeed(int speed) {
+ ;
+ }
+
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Circle.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Circle.java
new file mode 100644
index 0000000..62c4688
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Circle.java
@@ -0,0 +1,13 @@
+package com.rinftech.problems.exercise6;
+
+public class Circle extends Shape{
+ private double radius;
+
+ public Circle(double radius) {
+ this.radius = radius;
+ }
+ @Override
+ public double calculateArea() {
+ return Math.PI * Math.pow(this.radius, 2);
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Main.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Main.java
new file mode 100644
index 0000000..9aec5fd
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Main.java
@@ -0,0 +1,13 @@
+package com.rinftech.problems.exercise6;
+
+public class Main {
+ public static void main(String[] args) {
+ Circle circle = new Circle(6);
+ Rectangle square = new Rectangle(8, 8);
+ Triangle triangle = new Triangle(3, 4, 5);
+
+ System.out.println("Circle area: " + circle.calculateArea());
+ System.out.println("Rectangle area: " + square.calculateArea());
+ System.out.println("Triangle area: " + triangle.calculateArea());
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Rectangle.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Rectangle.java
new file mode 100644
index 0000000..6ca378b
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Rectangle.java
@@ -0,0 +1,16 @@
+package com.rinftech.problems.exercise6;
+
+public class Rectangle extends Shape{
+ private double length;
+ private double width;
+
+ public Rectangle(double length, double width) {
+ this.length = length;
+ this.width = width;
+ }
+
+ @Override
+ public double calculateArea() {
+ return this.length * this.width;
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Shape.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Shape.java
new file mode 100644
index 0000000..11fac44
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Shape.java
@@ -0,0 +1,5 @@
+package com.rinftech.problems.exercise6;
+
+abstract class Shape {
+ public abstract double calculateArea();
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Triangle.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Triangle.java
new file mode 100644
index 0000000..6c3aa3a
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise6/Triangle.java
@@ -0,0 +1,20 @@
+package com.rinftech.problems.exercise6;
+
+public class Triangle extends Shape{
+ private double sideA;
+ private double sideB;
+ private double sideC;
+
+ public Triangle(double sideA, double sideB, double sideC) {
+ this.sideA = sideA;
+ this.sideB = sideB;
+ this.sideC = sideC;
+ }
+
+ @Override
+ public double calculateArea() {
+ double semiPerimeter = (this.sideA + this.sideB + this.sideC) / 2;
+ return Math.sqrt(semiPerimeter * (semiPerimeter - this.sideA) * (semiPerimeter - this.sideB) *
+ (semiPerimeter - this.sideC));
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Animal.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Animal.java
new file mode 100644
index 0000000..a32ffb8
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Animal.java
@@ -0,0 +1,10 @@
+package com.rinftech.problems.exercise7;
+
+public class Animal {
+ public void eat() {
+ System.out.println("An animal can eat very different things compared to another");
+ }
+ public void sound() {
+ System.out.println("An animal makes very diverse sounds.");
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Lion.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Lion.java
new file mode 100644
index 0000000..9a61827
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Lion.java
@@ -0,0 +1,12 @@
+package com.rinftech.problems.exercise7;
+
+public class Lion extends Animal{
+ @Override
+ public void eat() {
+ System.out.println("A lion primarily hunts zebras and wildebeests.");
+ }
+ @Override
+ public void sound() {
+ System.out.println("A lion roars");
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Main.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Main.java
new file mode 100644
index 0000000..2bf64da
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Main.java
@@ -0,0 +1,12 @@
+package com.rinftech.problems.exercise7;
+
+public class Main {
+ public static void main(String[] args) {
+ Lion lion = new Lion();
+ Tiger tiger = new Tiger();
+ Panther panther = new Panther();
+ lion.eat();
+ tiger.eat();
+ panther.eat();
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Panther.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Panther.java
new file mode 100644
index 0000000..6c36da6
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Panther.java
@@ -0,0 +1,12 @@
+package com.rinftech.problems.exercise7;
+
+public class Panther extends Animal{
+ @Override
+ public void eat() {
+ System.out.println("A panther primarily hunts wild hog and deer.");
+ }
+ @Override
+ public void sound() {
+ System.out.println("A panther is usually silent");
+ }
+}
diff --git a/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Tiger.java b/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Tiger.java
new file mode 100644
index 0000000..dfd400e
--- /dev/null
+++ b/JavaCourse/src/main/java/com/rinftech/problems/exercise7/Tiger.java
@@ -0,0 +1,12 @@
+package com.rinftech.problems.exercise7;
+
+public class Tiger extends Animal{
+ @Override
+ public void eat() {
+ System.out.println("A tiger primarily hunts deer and wild boar");
+ }
+ @Override
+ public void sound() {
+ System.out.println("A tiger roars");
+ }
+}