Skip to content
Snippets Groups Projects
Commit 9cb5e898 authored by NIRINA Andriantsoa's avatar NIRINA Andriantsoa
Browse files

exercice 1 et 3

parent c195287b
No related branches found
No related tags found
No related merge requests found
Pipeline #34659 failed
Showing
with 288 additions and 2 deletions
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="corretto-16" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
package Formule;
public interface Formula {
String asString();
double asValue();
}
package Formule;
public interface Operator {
String Symbol();
double initialValue();
double cumulative(double acc, double value);
}
package Formule;
public class Product implements Operator{
Formula[]formule;
public Product(Formula[]formule){
this.formule=formule;
}
@Override
public String Symbol() {
return "*";
}
@Override
public double initialValue() {
return 0;
}
@Override
public double cumulative(double acc, double value) {
return acc*value;
}
}
package Formule;
public class ProductOperator extends VariadicOperator{
public ProductOperator(Operator operator, Formula[] formulas) {
super(operator, formulas);
}
}
package Formule;
public class Sum implements Operator{
Formula[]formule;
public Sum(){
this.formule=formule;
}
@Override
public String Symbol() {
return "+";
}
@Override
public double initialValue() {
return 0;
}
@Override
public double cumulative(double acc, double value) {
return acc + value;
}
}
package Formule;
public class SumOperator extends VariadicOperator{
public SumOperator(Formula... formulas) {
super(new Sum(), formulas);
}
}
package Formule;
public class Test {
public static void main(String[] args) {
Variable variable1 = new Variable("x", 2);
Variable variable2 = new Variable("y", 2);
Variable variable3 = new Variable("z", 4);
Formula sum = new SumOperator(variable1, variable2, variable3);
System.out.println(sum.asString());
System.out.println(sum.asValue());
}
}
package Formule;
public class Variable implements Formula{
private String name;
private double value ;
public Variable(String name, double value){
this.name=name;
this.value=value;
}
@Override
public String asString() {
return this.name;
}
@Override
public double asValue() {
return this.value;
}
}
package Formule;
public abstract class VariadicOperator implements Formula{
private Formula[]formulas;
private Operator operator ;
public VariadicOperator(Operator operator,Formula[] formulas){
this.formulas=formulas;
this.operator=operator;
}
public String asString(){
String result="";
for(Formula a:formulas){
result+=a.asString();
result+= operator.Symbol();
}
return result;
}
public double asValue(){
double valeur =0;
for(Formula a:formulas){
valeur+=operator.cumulative(operator.initialValue(), a.asValue());
}
return valeur;
}
}
package shape;
import java.awt.geom.Point2D;
import java.util.List;
public abstract class AbstractShape implements Shape{
List<Point2D> point;
public AbstractShape(List<Point2D>point){
this.point=point;
}
public void addPoints(Point2D points){
point.add(points);
}
}
package shape;
import javafx.scene.canvas.GraphicsContext;
import java.awt.geom.Point2D;
public class BorderDecorator extends Decorator {
private double radius;
public BorderDecorator(Shape decoratedShape, double radius ) {
super(decoratedShape);
this.radius=radius;
}
@Override
public void drawDecoration(GraphicsContext graphicsContext) {
}
@Override
public int pointsCount() {
return 0;
}
@Override
public Point2D point(int index) {
return null;
}
@Override
public void draw(GraphicsContext context) {
}
}
package shape;
import javafx.scene.canvas.GraphicsContext;
import java.awt.geom.Point2D;
public class CenterDecorator extends Decorator{
private double radius;
public CenterDecorator(Shape decoratedShape, double radius) {
super(decoratedShape);
this.radius=radius;
}
@Override
public void drawDecoration(GraphicsContext graphicsContext) {
}
@Override
public int pointsCount() {
return 0;
}
@Override
public Point2D point(int index) {
return null;
}
@Override
public void draw(GraphicsContext context) {
}
}
package shape;
import javafx.scene.canvas.GraphicsContext;
import java.awt.geom.Point2D;
public abstract class Decorator implements Shape {
private Shape decoratedShape;
public Decorator(Shape decoratedShape){
this.decoratedShape=decoratedShape;
}
public abstract void drawDecoration(GraphicsContext graphicsContext);
}
package shape;
import javafx.scene.canvas.GraphicsContext;
import java.awt.geom.Point2D;
import java.util.List;
public class Polygon extends AbstractShape{
public Polygon(List<Point2D> point) {
super(point);
}
@Override
public void addPoints(Point2D points) {
super.point.add(points);
}
@Override
public int pointsCount() {
int result=0;
for(Point2D a:point){
result+=1;
}
return result;
}
@Override
public Point2D point(int index) {
return point.get( index);
}
@Override
public void draw(GraphicsContext context) {
}
}
package shape;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import java.awt.geom.Point2D;
public interface Shape {
int pointsCount();
Point2D point(int index);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment