Paměť v kalkulačce(metoda) – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Paměť v kalkulačce(metoda) – Java – Fórum – Programujte.comPaměť v kalkulačce(metoda) – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
B3G1NN3R
~ Anonymní uživatel
13 příspěvků
8. 11. 2011   #1
-
0
-

Zdravím,

potřeboval bych poradit, jak v jednoduché kalkulačce (využití maximálně cyklů a metod - začátečník) vytvořit metodu, která poslouží jako paměť.

Předem děkuji za všechny návrhy

Nahlásit jako SPAM
IP: 147.32.120.–
Reklama
Reklama
liborb
~ Redaktor
+18
Guru
8. 11. 2011   #2
-
0
-

Proměnná třídy kalkulačky.

EDIT: A pokud nejsi zatím kamarád s OO, tak globální proměnná.

Nahlásit jako SPAM
IP: 78.80.52.–
B3G1NN3R
~ Anonymní uživatel
13 příspěvků
8. 11. 2011   #3
-
0
-

#2 liborb
Ve smyslu vytvoření globální proměnné a pak metody, která do ní ukládá výsledek?

Nahlásit jako SPAM
IP: 147.32.120.–
liborb
~ Redaktor
+18
Guru
8. 11. 2011   #4
-
0
-

Ano.

Nahlásit jako SPAM
IP: 78.80.52.–
B3G1NN3R
~ Anonymní uživatel
13 příspěvků
8. 11. 2011   #5
-
0
-

#4 liborb
A metoda musí být typu void?

Nevím jak to využít dál v programu, vymyslel bych tu metodu na ukládání výsledku, ale nevím jak s tím pracovat dál.

Nahlásit jako SPAM
IP: 147.32.120.–
liborb
~ Redaktor
+18
Guru
8. 11. 2011   #6
-
0
-

Taky můžeš přímo přistupovat k té proměnné. A pokud si chceš vytvořit metody pro přístup, tak jsou (většinou) 2: get/set. Jedna na získání hodnoty a druhá na nastavení  hodnoty.

Nahlásit jako SPAM
IP: 78.80.52.–
B3G1NN3R
~ Anonymní uživatel
13 příspěvků
8. 11. 2011   #7
-
0
-

#6 liborb
Takové typy metod jsme ještě neprobírali, tak nevím jestli bych to mohl použít.

Nahlásit jako SPAM
IP: 147.32.120.–
liborb
~ Redaktor
+18
Guru
8. 11. 2011   #8
-
0
-

   

int cislo;

...

// to je set
void nastavCislo(int hodnota)
{
	cislo = hodnota;
}

// to je get
int dejCislo()
{
	return(cislo);
}
Nahlásit jako SPAM
IP: 78.80.52.–
B3G1NN3R
~ Anonymní uživatel
13 příspěvků
8. 11. 2011   #9
-
0
-

   

 

Zatím mám tohle, nevím ale, co je špatně s metodou spocti( chci, aby po stisknutí 1-4 spustil danou metodu(soucet, soucin atd.) a vrátil výsledek) + deklaroval jsem globální proměnnou m ale nevím jak udělat metodu na ukládání

double m;
     
     public static double soucet(int a, int b,int c) {
         Scanner sn = new Scanner(System.in);
         System.out.println("Zadejte prvni cislo: ");
         a = sn.nextInt();
         System.out.println("Zadejte druhe cislo: ");
         b = sn.nextInt();
         c = a+b;
        return c;
    }

    public static double rozdil(int a, int b, int c) {
        Scanner sn = new Scanner(System.in);
         System.out.println("Zadejte prvni cislo: ");
         a = sn.nextInt();
         System.out.println("Zadejte druhe cislo: ");
         b = sn.nextInt();
         c = a-b;
        return c;
    }

    public static double soucin(int a, int b, int c) {
        Scanner sn = new Scanner(System.in);
         System.out.println("Zadejte prvni cislo: ");
         a = sn.nextInt();
         System.out.println("Zadejte druhe cislo: ");
         b = sn.nextInt();
         c = a*b;
        return c;
    }

    public static double podil(int a, int b, int c) {
        Scanner sn = new Scanner(System.in);
         System.out.println("Zadejte prvni cislo: ");
         a = sn.nextInt();
         System.out.println("Zadejte druhe cislo: ");
         b = sn.nextInt();
         c = a/b;
        if (b == 0) {
            System.out.println("Nulou nelze dělit.");
            return 0;
        } else {
            return (double) c;
        }
    }public static double spocti(short i){
       
    switch(i){
            case '1':
                return  soucet(a,b);
            case '2':
                return rozdil(a,b);
            case '3':
                return soucin(a,b);
            case '4':
                return podil(a,b);
            default:
                System.out.println("Tato moznost neexistuje!");
                return 0;
           
        }
       
    }    public static void main(String[] args) {
        short i;
        Scanner sn = new Scanner(System.in);
        System.out.println("Vyberte operaci:");
        System.out.println("Soucet - 1");
        System.out.println("Rozdil - 2");
        System.out.println("Soucin - 3");
        System.out.println("Podil - 4");
        i = sn.nextShort();
        
        
Nahlásit jako SPAM
IP: 147.32.120.–
B3G1NN3R
~ Anonymní uživatel
13 příspěvků
8. 11. 2011   #10
-
0
-

#9 B3G1NN3R


double m;
    void vstupPam(double hodnota){
        hodnota=m;
    }
    double vystupPam(){
        return(m);
    }
    public static double soucet() {
        Scanner sn = new Scanner(System.in);
        double a, b;
        System.out.println("Zadejte prvni cislo: ");
        a = sn.nextDouble();
        System.out.println("Zadejte druhe cislo: ");
        b = sn.nextDouble();

        return (double) (a + b);
    }

    public static double rozdil() {
        Scanner sn = new Scanner(System.in);
        double a, b;
        System.out.println("Zadejte prvni cislo: ");
        a = sn.nextDouble();
        System.out.println("Zadejte druhe cislo: ");
        b = sn.nextDouble();

        return (double) (a - b);
    }

    public static double soucin() {

        Scanner sn = new Scanner(System.in);
        double a, b;
        System.out.println("Zadejte prvni cislo: ");
        a = sn.nextDouble();
        System.out.println("Zadejte druhe cislo: ");
        b = sn.nextDouble();
        return (double) (a * b);
    }

    public static double podil() {
        double a, b;
        Scanner sn = new Scanner(System.in);
        System.out.println("Zadejte prvni cislo: ");
        a = sn.nextDouble();
        System.out.println("Zadejte druhe cislo: ");
        b = sn.nextDouble();

        if (b == 0) {
            System.out.println("Nulou, v nasi dimenzi, dělit nelze.");
            return 0;
        } else {
            return (double) (a / b);
        }
    }

    public static double spocti() {
        
        Scanner sn = new Scanner(System.in);
        System.out.println("Vyberte operaci:");
        System.out.println("Soucet - 1");
        System.out.println("Rozdil - 2");
        System.out.println("Soucin - 3");
        System.out.println("Podil - 4");
        short i = sn.nextShort();
        switch (i) {
            case '1':
                return soucet();
            case '2':
                return rozdil();
            case '3':
                return soucin();
            case '4':
                return podil();
            default:
                System.out.println("Tato moznost neexistuje!");
                return 0;

        }

    }

    public static void main(String[] args) {
        spocti();
        double vysledek = spocti();
        System.out.println("Výsledek je: " + vysledek); 



    }

Toto jsem vymyslel a nefunguje to prosím pomoc

Nahlásit jako SPAM
IP: 147.32.120.–
liborb
~ Redaktor
+18
Guru
9. 11. 2011   #11
-
0
-

Mělo být m = hodnota;
a jinak to na pohled vypadá dobře, jenom 2x voláš spocti. To první volání je zbytečné neb si z něj neukládáš výsledek.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.211.–
B3G1NN3R
~ Anonymní uživatel
13 příspěvků
9. 11. 2011   #12
-
0
-

#11 liborb
Nefunguje mi metoda spocti, i když stisknu klávesy 1-4 napíše Tato možnost neexistuje a vyhodí výsledek je 0,00. A nevím jak volat metodu pamet, abych mohl uložit výsledek a pak ho dál použít.

 

double m;
    void uloz(double hodnota){
        m=hodnota;
    }
    double pamet(){
        return(m);
    }
    public static double soucet() {
        Scanner sn = new Scanner(System.in);
        double a, b,c;
        System.out.println("Zadejte prvni cislo: ");
        a = sn.nextDouble();
        System.out.println("Zadejte druhe cislo: ");
        b = sn.nextDouble();

        return c =(double) (a + b);
    }

    public static double rozdil() {
        Scanner sn = new Scanner(System.in);
        double a, b,c;
        System.out.println("Zadejte prvni cislo: ");
        a = sn.nextDouble();
        System.out.println("Zadejte druhe cislo: ");
        b = sn.nextDouble();

        return c=(double) (a - b);
    }

    public static double soucin() {

        Scanner sn = new Scanner(System.in);
        double a, b,c;
        System.out.println("Zadejte prvni cislo: ");
        a = sn.nextDouble();
        System.out.println("Zadejte druhe cislo: ");
        b = sn.nextDouble();
        return c=(double) (a * b);
    }

    public static double podil() {
        double a, b,c;
        Scanner sn = new Scanner(System.in);
        System.out.println("Zadejte prvni cislo: ");
        a = sn.nextDouble();
        System.out.println("Zadejte druhe cislo: ");
        b = sn.nextDouble();

        if (b == 0) {
            System.out.println("Nulou, v nasi dimenzi, dělit nelze.");
            return 0;
        } else {
            return c=(double) (a / b);
        }
    }

    public static double spocti() {
        
        Scanner sn = new Scanner(System.in);
        System.out.println("Vyberte operaci:");
        System.out.println("Soucet - 1");
        System.out.println("Rozdil - 2");
        System.out.println("Soucin - 3");
        System.out.println("Podil - 4");
        short i = sn.nextShort();
        switch (i) {
            case '1':
                return soucet();
            case '2':
                return rozdil();
            case '3':
                return soucin();
            case '4':
                return podil();
            default:
                System.out.println("Tato moznost neexistuje!");
                return 0;

        }

    }

    public static void main(String[] args) {
        
        double vysledek = spocti();
        System.out.println("Výsledek je: " + vysledek); 



    }
Nahlásit jako SPAM
IP: 147.32.120.–
zlz
~ Anonymní uživatel
634 příspěvků
9. 11. 2011   #13
-
0
-

1 != '1'

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 53 hostů

Podobná vlákna

Paměť.... — založil yaqwsx

Pamet — založil Lukaydo

Není paměť — založil hráč

Cas a pamet — založil dalaman

Sdilena pamet — založil markez

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý