Avatar billede dml Nybegynder
26. maj 2002 - 16:37 Der er 6 kommentarer og
1 løsning

nemt spørgsmål... hvis man kan ;)

Hej.
Jeg er igang med at skulle lave en lille bitte lommeregner men styrer ikke helt java. Har lavet en klasse lommeregner som laver metoderne beregnSum og beregnDifference.
en anden klasse beregn skal så lave beregningerne ved at tallene indlæses, det går også fint og kan sagtens få lommeregneren enten tila t lægge sammen eller til at trække fra, men hvordan får jeg den til at når jeg taster - så er det beregnDifference og når  + ja så metoden beregnSum. Håber det giver lidt mening her er Lommeregner klassen:
public class Test {
   
    public float x, y;
       
    public Test () {
    }
   
    public float beregnSum (float x, float y) {
    float sum = x + y;
    System.out.println("summen af " + x + " + " + y + " er : " + sum);
    return sum;
    }
   
    public float beregnDiff (float x, float y) {
        float resultat = x - y;
        System.out.println(resultat);
        return resultat;}
   
   
}
   
   
   
    og her er Beregn klassen:
import Test;
import cs1.Keyboard;


public class Test3 {
public static void main(String args []) {
 
    float x, y;
    x = Keyboard.readFloat();
    System.out.println(x);
   
    y = Keyboard.readFloat();
    System.out.println(y);
   
   
    Test t = new Test();
    float sum = t.beregnSum(x,y);
}
   
}

dml :)
Avatar billede bearhugx Nybegynder
26. maj 2002 - 16:46 #1
Du vil have, at man i et indtastningsfelt taster "1000+2" og så skal den svare "1002" ???
/Søren
Avatar billede dml Nybegynder
26. maj 2002 - 16:53 #2
jepper lige præcis
Avatar billede bearhugx Nybegynder
26. maj 2002 - 16:55 #3
Jeg antager at din Keyboard-klasse også kan tage en String med readString();

Test t = new Test();
String eq = Keyboard.readString();
double resultat = 0;
if( eq.indexOf('+') > -1 )
{
  int opPos = eq.indexOf('+');
  double tal1 = (new Double( eq.substring(0, opPos );
  double tal2 = (new Double( eq.substring( opPos+1 );
  resultat = t.beregnSum(tal1,tal2);
} else
if( eq.indexOf('-') > -1 )
{
  int opPos = eq.indexOf('-');
  double tal1 = (new Double( eq.substring(0, opPos );
  double tal2 = (new Double( eq.substring( opPos+1 );
  resultat = t.beregnDiff(tal1,tal2);
}

System.out.println( resultat );

Prøv dette....

/Søren
Avatar billede thundergod Nybegynder
26. maj 2002 - 16:56 #4
Modtag teksten som en string.
Nu skal du gennemgå stringen char for char indtil du når til String.length
Den første float er tallet indtil den første operator, det andet tal resten efter operatoren. Operatoren skriver du over i en char og den tester du på efter det ovenstående f.eks. i en switch.
Avatar billede bearhugx Nybegynder
26. maj 2002 - 17:07 #5
hmm.. Der er vist for mange sløsefejl i mit foregående, så jeg poster lige igen ... Denne gang har deer været afprøvet :-)))) *host-host* :-)

-------------------
        String eq = Keyboard.readString();

        Test t = new Test();
        float resultat = 0;
       
        if( eq.indexOf('+') > -1 )
        {
            int opPos = eq.indexOf('+');
            Double tal1 = new Double( eq.substring(0, opPos ) );
            Double tal2 = new Double( eq.substring( opPos+1 ) );
            resultat = t.beregnSum(tal1.floatValue(), tal2.floatValue() );
        } else
        if( eq.indexOf('-') > -1 )
        {
            int opPos = eq.indexOf('-');
            Double tal1 = new Double( eq.substring(0, opPos ) );
            Double tal2 = new Double( eq.substring( opPos+1 ) );
            resultat = t.beregnSum(tal1.floatValue(), tal2.floatValue() );
        }
       
        System.out.println( resultat );

-------------------

/Søren
Avatar billede bearhugx Nybegynder
26. maj 2002 - 17:09 #6
*pis!* ... og selvfølgelig skal der i "minus" bruges 'beregnDiff' og ikke 'beregnSum' ... Det er simpelthen copy-paste's skyld!

/Søren
Avatar billede dml Nybegynder
26. maj 2002 - 17:23 #7
perfekt så virker det jo :) Mange takker for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester