Hallo Leute ,
Wir müssen in der Schule ein Programm mit dem M-V-C Konzept schreiben. In diesem Programm sollen wir eine Nte-Fakultät mit Array berechnen.
Im Prinzip ist das Programm schon fertig aber kriege einfach immer nur Nullen raus. Wer kann mir helfen ?
Model :
Controller :
View:
Das ganze wird dann mit der Start.class aufgerufen ...
VIELEN VIELEN Dank im Voraus !
Wir müssen in der Schule ein Programm mit dem M-V-C Konzept schreiben. In diesem Programm sollen wir eine Nte-Fakultät mit Array berechnen.
Im Prinzip ist das Programm schon fertig aber kriege einfach immer nur Nullen raus. Wer kann mir helfen ?
Model :
Java:
class Model
{
// Konstruktoren
Model()
{
}
public int [] mult (int pFeld [] ,int pFaktor,int pStellen)
{
int i = pStellen;
int uebertrag = 0;
int [] erg = new int [pStellen];
for (i=pStellen;i<4;i--)
{
int zwerg = pFaktor*i+uebertrag;
System.out.print(zwerg);
int ezwerg = zwerg / 10;
erg [i] = zwerg % 10;
//System.out.print(erg);
//System.out.print(ezwerg);
}
return erg;
}
public int [] addi (int pFeld[], int pFeld2[])
{
int [] erg= new int [pFeld.length];
if (pFeld.length == pFeld2.length)
{
for (int i=0;i<pFeld.length;)
{
erg[i]=pFeld[i] + pFeld2[i];
}
}
return erg;
}
}
Controller :
Java:
import java.applet.*;
//import java.awt.Container;
//import java.awt.List;
class Controller
{
private View hatView;
private Model hatModel;
private int zFeld [];
private int zStellen;
private int zN;
Controller(Applet a, String ue,String z1, String z2, String z3)
{
hatView= new View(a,ue,z1,z2,z3,this);
hatModel= new Model();
}
Controller(Applet a, String ue, String z1, String z2)
{
hatView= new View(a,ue,z1,z2,this);
hatModel= new Model();
}
private void init (int pN, int pStellen)
{
zFeld = new int [pStellen];
for (int i=0;i<pStellen;i++)
{
zFeld[i]=i;
System.out.print(i);
}
zFeld[0]=1;
//zFeld[pStellen-1]=1;
//zFeld[pStellen-2]=1;
}
public void rechnen ()
{
zStellen =hatView.getB();
zN = hatView.getA();
int [] ergebnis = new int [zStellen];
init(zN,zStellen);
hatView.setListe(zFeld, zStellen);
if (zN==0)
{
System.out.println(1);
}
else {
for (int i=0;i<zN;i++)
{
ergebnis = hatModel.mult(zFeld,i, zStellen);
//hatView.setListe(ergebnis ,zStellen);
}
hatView.setListe(ergebnis,zStellen);
}
}
} // Ende der Klasse Controller
View:
Java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class View extends Frame {
private Applet app;
private String zUe;
private String zBez1= "";
private String zBez2= "";
private Controller kenntController;
private String loeschBez= "Loeschen";
//private String potenz1Bez= "Potenz array";
private String potenz2Bez= "Nte-Fakultaet berechnen";
private TextField eingabe1 = new TextField(8);
private TextField eingabe2 = new TextField(8);
private List liste;
private Button loeschKnopf = new Button();
//private Button potenz1 = new Button();
private Button potenz2= new Button();
private Panel pNord = new Panel();
private Panel pSued = new Panel(new GridLayout(1,2));
private Panel pMitte = new Panel(new GridLayout(1,1));
private Panel pNordOben = new Panel();
private Panel pNordUnten = new Panel();
// Konstruktoren
View(Applet a, String pUe, String pBez1, String pBez2, String pBez3,Controller pC)
{
app=a;
app.setFont(new Font("Helvetica",Font.BOLD,30));
zUe=pUe;
zBez1=pBez1;
zBez2=pBez2;
kenntController=pC;
this.starte();
}
View(Applet a, String pUe, String pBez1, String pBez2,Controller pC)
{
app=a;
app.setFont(new Font("Helvetica",Font.BOLD,12));
zUe=pUe;
zBez1=pBez1;
zBez2=pBez2;
kenntController=pC;
this.starte();
}
View(Applet pA, String pBez1,Controller pC)
{
app=pA;
app.setFont(new Font("Helvetica",Font.BOLD,16));
zBez1=pBez1;
kenntController=pC;
this.starte();
}
public void starte(){
pNordOben.add(new Label(zUe));
if (zBez1 != "")
{ pNordUnten.add(new Label(zBez1));
eingabe1.setBackground(Color.white);
pNordUnten.add(eingabe1);}
if (zBez2 != "")
{ pNordUnten.add(new Label(zBez2));
eingabe2.setBackground(Color.white);
pNordUnten.add(eingabe2);}
pSued.setBackground(Color.lightGray);
loeschKnopf.setLabel(loeschBez);
pSued.add(loeschKnopf);
//potenz1.setLabel(potenz1Bez);
//pSued.add(potenz1);
potenz2.setLabel(potenz2Bez);
pSued.add(potenz2);
liste = new List(12);
pMitte.add(liste);
pMitte.setBackground(Color.white);
pNord.setLayout(new BorderLayout(2,1));
pNord.setBackground(Color.lightGray);
pNord.add("North",pNordOben);
pNord.add("South",pNordUnten);
app.setLayout( new BorderLayout(5,5));
app.add("North",pNord);
app.add("South", pSued);
app.add("Center",pMitte);
potenz2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
kenntController.rechnen();
}
});
loeschKnopf.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
liste.removeAll();
}
});
}
public int getA()
{
return iLies(eingabe1);
}
public int getB ()
{
return iLies(eingabe2);
}
public void setListe(int [] pErgebnis, int pStelle)
{
String erg="Ergebnis:";
for (int i=0;i<pStelle;i++)
{
erg= erg +pErgebnis[i];
System.out.println(pErgebnis[i]);
}
liste.add(erg);
}
// Methode zum Lesen einer double-Eingabe aus eingabe1, eingabe2, eingabe3
private double dLies(TextField s){return Double.valueOf(s.getText()).doubleValue();}
// Methode zum Lesen einer int-Eingabe von einem Textfeld
private int iLies(TextField s){return Integer.valueOf(s.getText()).intValue();}
// Das Hnzuf�gen einer double-Zahl in das Listenfeld
public void dSchreibe(double z) {liste.add(String.valueOf(z));}
// Das Hinzuf�gen einer int-Zahl in das Listenfeld
public void iSchreibe(int z) {liste.add(String.valueOf(z));}
}
Das ganze wird dann mit der Start.class aufgerufen ...
Java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Start1 extends Applet
{Controller m;
public void init(){
m=new Controller (this, "Nte Fakultaet - Array Brechnung" , "Fakultaet= " , "Stellen= ","");
}
}
VIELEN VIELEN Dank im Voraus !