Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
.idea
*.iws
*.iml
*.ipr
*.ipr
/out/
12 changes: 12 additions & 0 deletions src/ru/milandr/courses/complexnumber/ComplexNumberInterface.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,16 @@ public interface ComplexNumberInterface {
* @return argument value for current complex number
*/
double calculateArgument();

/**
*
* @return value of real part of complex nubmer
*/
double getReal();

/**
*
* @return value of imaginary part of complex number
*/
double getImaginary();
}
119 changes: 119 additions & 0 deletions src/ru/milandr/courses/complexnumber/tkhorzhevskiy/ComplexNumber.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
package ru.milandr.courses.complexnumber.tkhorzhevskiy;

import ru.milandr.courses.complexnumber.ComplexNumberInterface;

public class ComplexNumber implements ComplexNumberInterface {


protected double real;
protected double imaginary;



public ComplexNumber (double x, double y) {
this.real = x;
this.imaginary = y;
}
@Override
public double getReal() {
return this.real;
}
public void setReal(double real) {
this.real = real;
}
@Override
public double getImaginary() {
return this.imaginary;
}
public void setImaginary(double imaginary) {
this.imaginary = imaginary;
}

public void validateNumber(ComplexNumberInterface anotherNumber){
if (!(anotherNumber instanceof ComplexNumber)){
throw new WrongNumberException("Неверный формат числа");
}
}

@Override
public ComplexNumberInterface add(ComplexNumberInterface anotherNumber) {
validateNumber(anotherNumber);
double a = real;
double b = imaginary;
double c = anotherNumber.getReal();
double d = anotherNumber.getImaginary();
return new ComplexNumber((a + c), (b + d));
}

@Override
public ComplexNumberInterface subtract(ComplexNumberInterface anotherNumber) {
validateNumber(anotherNumber);
double a = real;
double b = imaginary;
double c = anotherNumber.getReal();
double d = anotherNumber.getImaginary();
return new ComplexNumber((a - c), (b - d));
}

@Override
public ComplexNumberInterface multiply(ComplexNumberInterface anotherNumber) {
validateNumber(anotherNumber);
double a = real;
double b = imaginary;
double c = anotherNumber.getReal();
double d = anotherNumber.getImaginary();

return new ComplexNumber(a * c - b * d, b * c + a * d);
}

@Override
public ComplexNumberInterface divide(ComplexNumberInterface anotherNumber) {
validateNumber(anotherNumber);
double a = real;
double b = imaginary;
double c = anotherNumber.getReal();
double d = anotherNumber.getImaginary();
return new ComplexNumber((a * c + b * d) / (c * c + d * d), (b * c - a * d) / (c * c + d * d));
}

@Override
public ComplexNumberInterface negate() {
double a = real * -1;
double b = imaginary * -1;
return new ComplexNumber(a,b);
}

@Override
public double calculateModulus() {
double a = real;
double b = imaginary;
return Math.sqrt((a*a + b*b));
}

@Override
public double calculateArgument() {
return 0;
//я тупой и не понял этого.
}

@Override
public String toString() {
return real + "+" + imaginary + "i";
}
public static void main(String[] args) {

ComplexNumber number = new ComplexNumber(2 , 3);
System.out.println(number + " 1 число");
ComplexNumber number2 = new ComplexNumber(1 , 2);
System.out.println(number2 + " 2 число");
System.out.println(number.add(number2) + " их сумма");
System.out.println(number.subtract(number2) + " их разность");
System.out.println(number.divide(number2)+ " результат деления");
System.out.println(number.multiply(number2)+ " результат перемножения");
System.out.println(number.negate() + " негатив 1 числа");
System.out.println(number.calculateModulus() + " модуль 1 числа");
number.add(new WrongNumber());

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package ru.milandr.courses.complexnumber.tkhorzhevskiy;

import ru.milandr.courses.complexnumber.ComplexNumberInterface;

public class WrongNumber implements ComplexNumberInterface {



@Override
public ComplexNumberInterface add(ComplexNumberInterface anotherNumber) {
return null;
}

@Override
public ComplexNumberInterface subtract(ComplexNumberInterface anotherNumber) {
return null;
}

@Override
public ComplexNumberInterface multiply(ComplexNumberInterface anotherNumber) {
return null;
}

@Override
public ComplexNumberInterface divide(ComplexNumberInterface anotherNumber) {
return null;
}

@Override
public ComplexNumberInterface negate() {
return null;
}

@Override
public double calculateModulus() {
return 0;
}

@Override
public double calculateArgument() {
return 0;
}

@Override
public double getReal() {
return 0;
}

@Override
public double getImaginary() {
return 0;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ru.milandr.courses.complexnumber.tkhorzhevskiy;

public class WrongNumberException extends RuntimeException{

public WrongNumberException(String message){
super(message);
}

}
37 changes: 37 additions & 0 deletions src/ru/milandr/courses/farm/tkhorzhevskiy/Application.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package ru.milandr.courses.farm.tkhorzhevskiy;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По всем своим классам автоформатированием пройтись, так не годится


import ru.milandr.courses.farm.Animal;
import ru.milandr.courses.farm.Good;
import ru.milandr.courses.farm.tkhorzhevskiy.animals.Chicken;
import ru.milandr.courses.farm.tkhorzhevskiy.animals.Cow;
import ru.milandr.courses.farm.tkhorzhevskiy.animals.Pig;
import ru.milandr.courses.farm.tkhorzhevskiy.goods.Egg;
import ru.milandr.courses.farm.tkhorzhevskiy.goods.Meat;
import ru.milandr.courses.farm.tkhorzhevskiy.goods.Milk;

public class Application {
public static void main(String[] args) {
Farmer volodya = new Farmer("Володя");
Animal cow = new Cow();
Animal pig = new Pig();
Animal chicken = new Chicken();
Good milk = new Milk();
Good meat = new Meat();
Good egg = new Egg();


volodya.petAnAnimal(cow);
volodya.petAnAnimal(pig);
volodya.petAnAnimal(chicken);
volodya.collectGoods(meat);
volodya.collectGoods(egg);
volodya.collectGoods(milk);
volodya.eatProduct(milk);
volodya.eatProduct(egg);
volodya.eatProduct(meat);
milk.goRotten();
volodya.eatProduct(milk);


}
}
54 changes: 54 additions & 0 deletions src/ru/milandr/courses/farm/tkhorzhevskiy/Farmer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package ru.milandr.courses.farm.tkhorzhevskiy;


import ru.milandr.courses.farm.Animal;
import ru.milandr.courses.farm.GenericFarmer;
import ru.milandr.courses.farm.Good;
import ru.milandr.courses.farm.tkhorzhevskiy.goods.Egg;
import ru.milandr.courses.farm.tkhorzhevskiy.goods.Meat;
import ru.milandr.courses.farm.tkhorzhevskiy.goods.Milk;
import ru.milandr.courses.farm.tkhorzhevskiy.goods.ParentGood;

public class Farmer implements GenericFarmer {
private final String name;


public Farmer(String name) {
this.name = name;
}

@Override
public void collectGoods(Good good) {
if (good instanceof Milk) {
System.out.println(name + " подоил корову");
return;
}
if (good instanceof Egg) {
System.out.println(name + " собрал яйцо");
return;
}
if (good instanceof Meat) {
System.out.println(name + " зарезал свинью");
}
}

@Override
public void petAnAnimal(Animal animal) {
System.out.println(name + " погладил " + animal);
animal.produceSound();

}

@Override
public void eatProduct(Good good) {
ParentGood currGood = (ParentGood) good;
if (currGood.isRotten()) {
System.out.println("Фу, протухло " + good);
return;
}
System.out.println(name + " употребил " + currGood.getName());

}

}

23 changes: 23 additions & 0 deletions src/ru/milandr/courses/farm/tkhorzhevskiy/animals/Chicken.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package ru.milandr.courses.farm.tkhorzhevskiy.animals;

import ru.milandr.courses.farm.Good;
import ru.milandr.courses.farm.tkhorzhevskiy.goods.Egg;

public class Chicken extends ParentAnimal {
private static final String CHICKEN_NAME = "Курица";

public Chicken() {
name = CHICKEN_NAME;
}

@Override
public void produceSound() {
System.out.println("За орду!");
}

@Override
public Good produceGoods() {
return new Egg();
}

}
23 changes: 23 additions & 0 deletions src/ru/milandr/courses/farm/tkhorzhevskiy/animals/Cow.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package ru.milandr.courses.farm.tkhorzhevskiy.animals;

import ru.milandr.courses.farm.Good;
import ru.milandr.courses.farm.tkhorzhevskiy.goods.Milk;

public class Cow extends ParentAnimal {
private static final String COW_NAME = "Корова";

public Cow() {
name = COW_NAME;
}

@Override
public void produceSound() {
System.out.println("Lets get mooooving");
}

@Override
public Good produceGoods() {
return new Milk();
}

}
Loading