Add 10 2
This commit is contained in:
parent
c2cc7330d5
commit
7fd326360f
@ -13,7 +13,7 @@ Dateien wie Bilder die zur Lösung einer Aufgabe gehören sind in <br><ins>Medie
|
||||
- Vorlesung 7 komplett
|
||||
- Vorlesung 8 komplett
|
||||
- Vorlesung 9 Aufgabe 2
|
||||
- Vorlesung 10 Aufgabe 1
|
||||
- Vorlesung 10 komplett
|
||||
|
||||
## Angefangene unfertige Lösungen:
|
||||
- Damenproblem: VL 5 Aufgabe 2
|
||||
|
7
src/part10/aufg2/NegativeValueException.java
Normal file
7
src/part10/aufg2/NegativeValueException.java
Normal file
@ -0,0 +1,7 @@
|
||||
package part10.aufg2;
|
||||
|
||||
public class NegativeValueException extends RuntimeException{
|
||||
NegativeValueException(String s) {
|
||||
super(s);
|
||||
}
|
||||
}
|
94
src/part10/aufg2/PositiveVector.java
Normal file
94
src/part10/aufg2/PositiveVector.java
Normal file
@ -0,0 +1,94 @@
|
||||
package part10.aufg2;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class PositiveVector {
|
||||
double[] values;
|
||||
|
||||
PositiveVector(int size){
|
||||
this.values = new double[size];
|
||||
Arrays.fill(values, 0);
|
||||
}
|
||||
|
||||
public int length(){
|
||||
return this.values.length;
|
||||
}
|
||||
public void setValues(double[] values) {
|
||||
for (int i=0; i<values.length; i++){
|
||||
assert (values[i] >= 0) : "Value cannot be negative";
|
||||
}
|
||||
this.values = values;
|
||||
}
|
||||
|
||||
public double[] getValues() {
|
||||
return values;
|
||||
}
|
||||
|
||||
public void setSingleValue(double value, int index){
|
||||
if (value < 0){
|
||||
System.out.println(value + " is negativ and cannot be assigned!");
|
||||
return;
|
||||
}
|
||||
this.values[index] = value;
|
||||
}
|
||||
|
||||
public double getSingleValue(int index){
|
||||
return this.values[index];
|
||||
}
|
||||
|
||||
public void print(){
|
||||
System.out.println(Arrays.toString(this.values));
|
||||
}
|
||||
|
||||
public PositiveVector vectorAddition(PositiveVector vector2){
|
||||
PositiveVector result = new PositiveVector(this.length());
|
||||
|
||||
if (this.values.length == vector2.getValues().length){
|
||||
for (int i=0; i<this.values.length; i++){
|
||||
result.setSingleValue((this.getSingleValue(i) + vector2.getSingleValue(i)), i);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public PositiveVector vectorSubtraction(PositiveVector vector2) throws NegativeValueException {
|
||||
PositiveVector result = new PositiveVector(this.length());
|
||||
|
||||
if (this.values.length == vector2.getValues().length){
|
||||
for (int i=0; i<this.values.length; i++){
|
||||
if ((this.getSingleValue(i) - vector2.getSingleValue(i)) < 0){
|
||||
throw new NegativeValueException(this.getSingleValue(i) + " - " + vector2.getSingleValue(i) + " ist negativ");
|
||||
}
|
||||
result.setSingleValue((this.getSingleValue(i) - vector2.getSingleValue(i)), i);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public double dotProduct(PositiveVector vector2) {
|
||||
double result = 0;
|
||||
|
||||
if (this.length() == vector2.length()) {
|
||||
for (int i = 0; i < this.length(); i++) {
|
||||
result += this.getSingleValue(i) * vector2.getSingleValue(i);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args){
|
||||
PositiveVector vector1 = new PositiveVector(3);
|
||||
PositiveVector vector2 = new PositiveVector(3);
|
||||
|
||||
vector1.setValues(new double[] {1,0,5});
|
||||
vector2.setValues(new double[] {0,0,1});
|
||||
|
||||
PositiveVector vector3 = vector1.vectorSubtraction(vector2);
|
||||
vector3.print();
|
||||
|
||||
System.out.println(vector1.dotProduct(vector2));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user