Java a řazení čísel

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Layo
Level 4.5
Level 4.5
Příspěvky: 1884
Registrován: 16 úno 2010 17:08

Java a řazení čísel

Příspěvek od Layo »

Zdravím,
mám problém s touhle úlohou. Nevím jak seřadit ta čísla pomocí cyklů a podmínek, nic složitějšího to asi nebude. Díky

Na vstupu dostanete tři čísla A, B, C. Vašim úkolem je bude vypsat dle velikosti od největšího po nejmenší a následně naopak.
GIGABYTE Z68XP-UD3| Intel Core i5-3570K @ 4,3Ghz + 212+EVO | HD 7950 FLEX 3GB GDDR5 1200/1650 | GEIL RAM DDR3 8GB(2x4GB) 2133Mhz | SEASONIC S12II-520W | Corsair 300R | OCZ Vertex 4 - 128GB | WD Green 2TB | Dell UltraSharp U2713HM - 27' 1440p
Macbook Pro 15'' Retina 2.0/16/256
Uživatelský avatar
domitea
Tvůrce článků
Příspěvky: 1971
Registrován: 24 čer 2009 19:46
Bydliště: Královehradecký kraj
Kontaktovat uživatele:

Re: Java a řazení čísel

Příspěvek od domitea »

Načteš do pole a pak pomocí cyklu a pár podmínek seřadíš. Žádná věda v tom není ;)
Uživatelský avatar
Layo
Level 4.5
Level 4.5
Příspěvky: 1884
Registrován: 16 úno 2010 17:08

Re: Java a řazení čísel

Příspěvek od Layo »

Pole jsme se ještě neučili... Bylo by fajn, kdyby to někdo napsal :D
GIGABYTE Z68XP-UD3| Intel Core i5-3570K @ 4,3Ghz + 212+EVO | HD 7950 FLEX 3GB GDDR5 1200/1650 | GEIL RAM DDR3 8GB(2x4GB) 2133Mhz | SEASONIC S12II-520W | Corsair 300R | OCZ Vertex 4 - 128GB | WD Green 2TB | Dell UltraSharp U2713HM - 27' 1440p
Macbook Pro 15'' Retina 2.0/16/256
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Java a řazení čísel

Příspěvek od CZechBoY »

Zdravím,
se 3 číslama to je jednoduchý, ani pole/cyklus nepotřebuješ.
Jak seřadíš tyto čísla v hlavě když ti přijdou postupně?
55 99 72
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
Layo
Level 4.5
Level 4.5
Příspěvky: 1884
Registrován: 16 úno 2010 17:08

Re: Java a řazení čísel

Příspěvek od Layo »

Mě fakt nic nenapadá, ale určitě to je jednoduchý...
GIGABYTE Z68XP-UD3| Intel Core i5-3570K @ 4,3Ghz + 212+EVO | HD 7950 FLEX 3GB GDDR5 1200/1650 | GEIL RAM DDR3 8GB(2x4GB) 2133Mhz | SEASONIC S12II-520W | Corsair 300R | OCZ Vertex 4 - 128GB | WD Green 2TB | Dell UltraSharp U2713HM - 27' 1440p
Macbook Pro 15'' Retina 2.0/16/256
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Java a řazení čísel

Příspěvek od CZechBoY »

Ty nevíš jak bys to seřadil? Tak mi napiš ty čísla seřazený od největšího po nejmenší.
Jestli je nenapíšeš tak počítám s tím, že to opravdu neumíš a musíš se vrátit do první třídy ZÁKLADNÍ školy.
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
Layo
Level 4.5
Level 4.5
Příspěvky: 1884
Registrován: 16 úno 2010 17:08

Re: Java a řazení čísel

Příspěvek od Layo »

Já počítám s tím, že uživatel zadá 3 čísla na vstupu, ne že si je vymyslím a dám je tam natvrdo...
GIGABYTE Z68XP-UD3| Intel Core i5-3570K @ 4,3Ghz + 212+EVO | HD 7950 FLEX 3GB GDDR5 1200/1650 | GEIL RAM DDR3 8GB(2x4GB) 2133Mhz | SEASONIC S12II-520W | Corsair 300R | OCZ Vertex 4 - 128GB | WD Green 2TB | Dell UltraSharp U2713HM - 27' 1440p
Macbook Pro 15'' Retina 2.0/16/256
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Java a řazení čísel

Příspěvek od CZechBoY »

Tohle je jeden příklad z miliardy, když si pod těmi čísly představíš reálný čísla, použiješ sobě vlastní metodu řešení tohohle problému tak už převedení do kódu je hračka.
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
Sender
Level 3.5
Level 3.5
Příspěvky: 700
Registrován: 04 led 2007 19:19
Bydliště: Vysočina

Re: Java a řazení čísel

Příspěvek od Sender »

Layo > porovnáš jedno číslo s druhým od zadu a když je větší,tak je přehodíš -takhle několikrát.
Najde se několik způsobů...
Uživatelský avatar
Layo
Level 4.5
Level 4.5
Příspěvky: 1884
Registrován: 16 úno 2010 17:08

Re: Java a řazení čísel

Příspěvek od Layo »

Já to sám vyřešit umím, jenom jsem chtěl poradit s nějakým normálním způsobem. Když jsem se rady nedočkal, tak jsem to napsal idiotsky, co ty na to? Alespoň, že to funguje...
public static void main(String[] args) {
// TODO code application logic here
Scanner sc = new Scanner(System.in);
System.out.print("Zadejte A: ");
int a = sc.nextInt();
System.out.print("Zadejte B: ");
int b = sc.nextInt();
System.out.print("Zadejte C: ");
int c = sc.nextInt();
if(a>b && b>c && c<a){
System.out.println(a+" "+b+" "+c);
}
if(a>b && b<c && c<a){
System.out.println(a+" "+c+" "+b);
}
if(a>b && b<c && c>a){
System.out.println(c+" "+a+" "+b);
}
if(a<b && b<c && c>a){
System.out.println(c+" "+b+" "+a);
}
if(a<b && b>c && c<a){
System.out.println(b+" "+a+" "+c);
}
if(a<b && b>c && c>a){
System.out.println(b+" "+c+" "+a);
}
}
GIGABYTE Z68XP-UD3| Intel Core i5-3570K @ 4,3Ghz + 212+EVO | HD 7950 FLEX 3GB GDDR5 1200/1650 | GEIL RAM DDR3 8GB(2x4GB) 2133Mhz | SEASONIC S12II-520W | Corsair 300R | OCZ Vertex 4 - 128GB | WD Green 2TB | Dell UltraSharp U2713HM - 27' 1440p
Macbook Pro 15'' Retina 2.0/16/256
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Java a řazení čísel

Příspěvek od CZechBoY »

Výborně, teď by to šlo zanořit do ifů, protože se ti tam některé sekvence opakují.
Třeba

Kód: Vybrat vše

if(a<b && b<c && c>a){
System.out.println(c+" "+b+" "+a);
}
if(a<b && b>c && c<a){
System.out.println(b+" "+a+" "+c);
}

lze přepsat na

Kód: Vybrat vše

if(a<b && b<c) {
if(c>a){
System.out.println(c+" "+b+" "+a);
}
else{
System.out.println(b+" "+a+" "+c);
}
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7404
Registrován: 23 pro 2010 09:23

Re: Java a řazení čísel

Příspěvek od faraon »

Tenhle způsob možná není úplně idiotský, ale je strašně složitý. Jednodušší bude opravdu ta čísla nejdřív seřadit, a pak vypsat na oba požadované způsoby. Takže dejme tomu že uživatel zadal výše uvedená čísla 55, 99, 72, a ty jsi už načetl. Stav proměnných tedy v tuhle chvíli je takový:

Kód: Vybrat vše

a=55
b=99
c=72

A jak je tedy nejjednodušeji seřadíš? Takhle: nejdřív první dvojici, potom druhou dvojici, a pak zase první dvojici, protože se ti mezitím mohlo stát že se nejmenší číslo přesunulo z c do b, ale ty ho potřebuješ shodit až do a. Vyměnit obsah dvou proměnných už snad umíš, stačí na to jedna pomocná proměnná, takže vystačíš se třemi if:

Kód: Vybrat vše

if (a>b) {prohodit a,b}
a tak dále...

Následují výpisy a,b,c, a c,b,a.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Odpovědět

Zpět na „Programování a tvorba webu“