TÆLLER FUNGERE IKKE!!!!!!! HVORFOR!!!!! HMMMMM
Hej Arne!Jeg har lige siddet ca. 2 timer med det du havde sendt til mig men, jeg ka ikke få det til at hænge sammen, programmet viser en del fejl. Jeg tænkte på om du lige hurtigt kunne kigge på det igen. Jeg kan lige uddybe min problem stilling. Jeg har lavet programmet Forkortbroker, som skal lærer små elever, at forkorte brøker. Når disse elever har regnet opgaver opgaverne, så skal der dukke en tæller op som bare lige skal fortælle børnene, at de har regnet så så man rigtige, og så så mange forkerte, det sku være meget enkelt har jeg fået at vide, men jeg kan det altså ikke! Håber at du kan!!
På forhånd mange tak!!
Michelle M.
import java.util.Random;
import cs1.Keyboard;
import cs1.*;
public class Forkortbroker2
{
public static void main (String[] args)
{
Random tilfældig1 = new Random();
int facit;
int naev = 0;
int tael = 0;
int tal1 = 0;
int tal2 = 0;
int naevner = 0;
int taeller = 0;
int tæller = 0;
int antalopgaver = 0;
// int antaloperander, indtastsvar, operander, numeriskVaerdi;
// char fortegn;
// char operator;
String sum;
String resultat;
// System.out.println ("hej verden");
System.out.println (); // Her indtastes de oenskede antal opgaver.
System.out.println ("Indtast hvor mange opgaver du vil have af typen 'Forkort broek'! ");
System.out.println ();
antalopgaver = Keyboard.readInt();
// I opgavetype 3, er der en begrænsning på to operander!!
// Her indtastes det ønskede værdi for naevner.
System.out.println ();
System.out.println("Indtast max-vaerdien for naevneren: ");
naev = Keyboard.readInt();
System.out.println ();
System.out.println (); // Her indtastes det ønskede værdi for taeller.
System.out.println("Indtast max-vaerdien for taeller: ");
tael = Keyboard.readInt();
System.out.println ();
System.out.println ();
System.out.println ("Forkort foelgende broeker!");
System.out.println ();
// for-løkke kører indtil de indtastede antalopgaver er udført!
for (int i=1; i<=antalopgaver; i++)
{
Random generator = new Random();// Random objekt oprettes
// Tilfældige tal mellem max og min
tal1= generator.nextInt(tael)+ naev;
tal2= generator.nextInt(tael)+ naev;
// generel formel for beregningen udregnes vha. klassen Metode3 - oprettet nederst.
Metode3 regn = new Metode3 (tal1, tal2);
// de generede tal sammenlægges med tegn, formel skabes
System.out.println("Forkort :"+ tal1 + "/" + tal2);
resultat=Keyboard.readString();
// Resultatet udskrives
System.out.println ("\t Resultat: "+ regn );
System.out.println ();
}
int rigtige = 0;
int forkerte = 0;
for(int i = 0; i < totale; i++) {
udskriv opgave
x = bruger indtastet svar;
y = beregnet rigtigt svar;
if(x==y) {
rigtige++;
} else {
forkerte++;
}
}
System.out.println("rigtige: " + rigtige + " forkerte: " + forkerte);
}
}
class Metode3 // beregner type3 ligninger
{
public int tæller, nævner;
public Metode3 (int tæl, int næv)
{
// tilpasser så 0 ikke forekommer som nævner og tildeler tæller et "-"
if (næv == 0)
næv = 1;
// negative tæller
if (næv < 0)
{
tæl = tæl * -1;
næv = næv * -1;
}
tæller = tæl;
nævner = næv;
forkort ();
}
// returnerer tælleren
public int getTæller ()
{
return tæller;
}
// returnerer nævneren
public int getNævner ()
{
return nævner;
}
// returnerer reciprokken af en bestemt værdi
public Metode3 reciprokke ()
{
return new Metode3 (nævner, tæller);
}
// retunerer værdien og "/" som string
public String toString ()
{
String resultat;
if (tæller == 0)
resultat = "0";
else
if (nævner == 1)
resultat = tæller + "";
else
resultat = tæller + "/" + nævner;
return resultat;
}
// forkorter værdien ved at dividere tæller og nævner med største fællesnævner
public void forkort ()
{
if (tæller != 0)
{
// kalder metoden størstFællesnævner som heltal
int fællesnævner = StørstFællesnævner (Math.abs(tæller), nævner);
tæller = tæller / fællesnævner;
nævner = nævner / fællesnævner;
}
}
// beregner og retunerer den største fællesnævner vha. Euclids algoritme
private int StørstFællesnævner (int num1, int num2)
{
while (num1 != num2)
if (num1 > num2)
num1 = num1 - num2;
else
num2 = num2 - num1;
return num1;
}
}