Převod programu na algoritmus – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Převod programu na algoritmus – Java – Fórum – Programujte.comPřevod programu na algoritmus – Java – Fórum – Programujte.com

 

jura88
~ Anonymní uživatel
3 příspěvky
18. 4. 2012   #1
-
0
-

package javaapplication11;

import java.util.Scanner;
public class Main {

  
    public static void main(String[] args) {
         int a, x = 0, b;

        Scanner scanner;
        scanner = new Scanner(System.in);

        System.out.println("Zadejte kolik mate penez ");
        System.out.print("Pocet:");
        a = scanner.nextInt();

        x = a;
        System.out.print("Vami zadana castka"+ x);
        System.out.println();
        System.out.print(a +"x1");
        System.out.println();
        b = a / 2;
        System.out.print(b +"x2");
        System.out.println();
           b = a / 5;
        System.out.print(b +"x5");
        System.out.println();
           b = a / 10;
        System.out.print(b +"x10");
        System.out.println();
           b = a / 20;
        System.out.print(b +"x20");
        System.out.println();
           b = a / 50;
        System.out.print(b +"x50");
        System.out.println();
           b = a / 100;
        System.out.print(b +"x100");
        System.out.println();
           b = a / 200;
        System.out.print(b +"x200");
        System.out.println();
           b = a / 500;
        System.out.print(b +"x500");
        System.out.println();
           b = a / 1000;
        System.out.print(b +"x1000");
        System.out.println();
           b = a / 2000;
        System.out.print(b +"x2000");
        System.out.println();
           b = a / 5000;
        System.out.print(b +"x5000");
        System.out.println();
    }

}

našel by se někdo kdo by dokázel z tohodle udělat algoritmus mě to moc nejde diky 

Nahlásit jako SPAM
IP: 109.164.1.–
Naemos0
Newbie
18. 4. 2012   #2
-
0
-

Ahoj záleží co máš k dispozici za znalosti (jestli to děláš do školy) - cykly, metody, podmínky, pole, nebo nejsi omezen :-)

Jedno z jednodušších řešeních (ale ne nejméně pracné na napsání) by mohlo vypadat třeba takto:

vypisHodnotu(castka, typPenez);

kde typPenez budeš mít danou hodnotu (1,2,5,10,...)

a k tomu metodu:

    private static void vypisHodnotu(int castka, int typPenez){
        int mnozstvi = castka/typPenez;
        System.out.println(mnozstvi + " x" + typPenez);
    }

Je to tvůj program, co jsi uvedl, jen trochu jinak napsaný. Pracnější je to kvůli tomu, že ty hodnoty tam zadáváš ručně do metody, takže se tam objeví spousta (skoro) stejných řádků (pro každou hodnotu, kterou to dělíš).

Jak jsem psal na začátku, záleží na rozsahu znalostí, které máš k dispozici. Musíš si ještě rozmyslet, jak ošetřit uživatelovi vstupy (např. záporný čísla).

Nahlásit jako SPAM
IP: 93.190.61.–
sakal910
Stálý člen
18. 4. 2012   #3
-
0
-

#2 Naemos
Pokud sem dobře pochopil ten jeho příklad tak chce vše vypsat pro stejnou částku, tudíž mi přijde celkem neefektivní v mainu volat 12x vypisHodnotu(.....) :)

public class Main{
  private static final int[] TYP_MINCE= {1, 2, 5, 10 , 20, 50, 100,
			                 200, 500, 1000, 2000, 5000 };

  private static void vypisHodnotu(int castka){
    int mnozstvi = 0;

    for(int mince : TYP_MINCE){
      mnozstvi = castka / mince;
      System.out.println(mnozstvi + " x" + mince);
    }	
  }	
 
  public static void main(String[] args){
   ...
   vypisHodnotu(castka);
  } 
}
Nahlásit jako SPAM
IP: 31.222.8.–
sakal910
Stálý člen
18. 4. 2012   #4
-
0
-

Případně si ještě vytvořit metodu na načítání vstupu, a pokud si bude moct uživatel zadávat více než jednu částku tak cyklus do-while :)

Nahlásit jako SPAM
IP: 31.222.8.–
Naemos0
Newbie
18. 4. 2012   #5
-
0
-

#3 sakal91
Asi jsem to špatně pochopil. Řešení přes cykl je rozhodně lepší :-)

Nahlásit jako SPAM
IP: 93.190.61.–
jura88
~ Anonymní uživatel
3 příspěvky
19. 4. 2012   #6
-
0
-

diky mos :) už to skoro mam ale potřeboval bych poradit ještě s pokud je int b  (výsledek) jakože číslo a chu ho vypsat v textarea musim ho zase převest na text nebo to už ne hraje roly a vypíše to samo ? pokud jak to udělat diky :))

Nahlásit jako SPAM
IP: 109.164.1.–
sleepy0
Stálý člen
20. 4. 2012   #7
-
0
-

Kazdy objekt ma v jave metodu toString ktora ti ho riamo prevedie do Stringu, takze toto uz zrejme nebude treba.

Nahlásit jako SPAM
IP: 158.195.206.–
sakal910
Stálý člen
20. 4. 2012   #8
-
0
-

#7 sleepy

Objekt ano ale jelikož on nevytváří objekt typu Integer ale primitivní datový typ int, tudíž toString() mu nepújde použít.


#6 jura88

můžeš to udělat třeba takhle:


String vysledek = "" + b; 
textArea.setText(vysledek);

nebo to uděláš takhle :)

textArea.setText("" + b);


 

Nahlásit jako SPAM
IP: 31.222.8.–
Antilles0
Stálý člen
20. 4. 2012   #9
-
0
-

#8 sakal91
Už je to takové "Javařské slovíčkaření" ale tohle mi přijde jako dost šílený způsob převodu na řetězec  

Já bych doporučoval (rozhodně začátečníkovi) tohle:

textArea.setText(Integer.toString(b));

To co jsi napsal Ty samozřejmě fungovat bude, jen mi přišlo důležité zmínit i tento způsob  

Nahlásit jako SPAM
IP: 77.48.30.–
Dejte mi flétnu a já budu hrát, dejte mi Javu a já budu psát.
sakal910
Stálý člen
20. 4. 2012   #10
-
0
-

#9 Antilles
Pravda je to šílené a neefektivní :D Určitě ten Integer.toString(b) je nejlepší volba :)

Nahlásit jako SPAM
IP: 31.222.8.–
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, 14 hostů

Podobná vlákna

Algoritmus — založil RePRO

Algoritmus — založil Jirina.K

Algoritmus — založil LuckaH

Moderátoři diskuze

 

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