IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Java pythagorejcské trojice.

Aktivity
Avatar
KaBor
Člen
Avatar
KaBor:11.11.2018 16:46

Zdravím
potřeboval bych pomoct. Máme ve škole vytvořit program který ze vstupu z klávesnice, kterým uživatel zadá bod c, tak aby výstupem byla celá rovnice. Jestli někdo bude chtít, můžu poslat cele zadání. Děkuji předem :)

Zkusil jsem: Zkoušel jsem podle vzorců z internetu, ale nevím jak to nějak tak zapsat do metod.

Chci docílit: Splnění úkolu

 
Odpovědět
11.11.2018 16:46
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:11.11.2018 16:55

To mají být celočíselná řešení?

Nahoru Odpovědět
11.11.2018 16:55
Programátor je stroj k převodu kávy na kód.
Avatar
KaBor
Člen
Avatar
Odpovídá na krepsy3
KaBor:11.11.2018 16:59

Ano, celočíselná. a<b. A ještě samozřejmě když zadané c nebude sedět kombinace, tak to vypíše reseni neexistuje.

 
Nahoru Odpovědět
11.11.2018 16:59
Avatar
Michal Joska
Člen
Avatar
Michal Joska:11.11.2018 17:22

Na pythagorovu větu potřebuji znát ještě jednu stranu, ne? Když chci vypočítat z přepony odvěsnu tak musím znát alespoň jednu

 
Nahoru Odpovědět
11.11.2018 17:22
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:11.11.2018 17:46

Napíšu ti to tady v C#, protože Javu z hlavy neumím a nemám na ní IDE. Myslím, že by se to však nemělo moc lišit. Kdyby něco nešlo, napiš, a já zkusím dohledat jak je to v Javě správně.

int c = ;       //naskenovaná proměnná
c *= c; //uložím do hodnoty její čtverec
int a = 0;
int b = 0;

for (int tmpa = 1; Math.Pow(tmpa, 2) <= c; tmpa++)      //pomocí smyčky budu zkoušet možné N-hodnoty a
{
        float tmpb = Math.Sqrt(c - Math.Pow(tmpa, 2));  //zkusím, jak by vypadal člen b
        if (tmpb == (float)Math.Round(tmpb))    //zkouška přirozenosti čísla b
        {
                a = tmpa;
                b = (int)tmpb;
                break;
        }
}

if (a > 0 && b > 0) //jsou-li členy nenulové, znamená to, že existuje trojice
{
        //vytisknu hodnoty členů
}

else
{
        //vytisknu, že trojice neexistuje
}

Pokud vím, tisk je něco jako System.out.Prin­tLn(...), skenování do proměnné c opravdu nevím, jak udělat (syntakticky). Načtení proměnné c bys měl ošetřit proti nečíselnému vstupu.

Editováno 11.11.2018 17:48
Nahoru Odpovědět
11.11.2018 17:46
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovídá na KaBor
Neaktivní uživatel:11.11.2018 17:48

Co kdyby jsi ukázal, kam až jsi se dostal? Rádi tě navedeme, ale nebudeme dělat úkoly za tebe. To ti totiž k ničemu nebude.

EDIT: Ok, tak nic, píšu moc pomalu :-|

Editováno 11.11.2018 17:50
Nahoru Odpovědět
11.11.2018 17:48
Neaktivní uživatelský účet
Avatar
krepsy3
Tvůrce
Avatar
Odpovídá na Michal Joska
krepsy3:11.11.2018 17:50

Úloha je právě o tom najít, zdali ta N-trojice může existovat pro danou délku přepony. Pokud by věděl i odvěsnu, byl by to jediný jednoduchý výpočet, takže defacto žádná úloha, na tak asi čtyři řádky zdrojového kódu :D

Nahoru Odpovědět
11.11.2018 17:50
Programátor je stroj k převodu kávy na kód.
Avatar
Michal Joska
Člen
Avatar
Michal Joska:11.11.2018 18:05

Aha, já si řikal, že by bylo divné že by to nedokázal :D

Špatně jsem pochopil zadání.

 
Nahoru Odpovědět
11.11.2018 18:05
Avatar
KaBor
Člen
Avatar
Odpovídá na krepsy3
KaBor:11.11.2018 19:16

Jako klasickou pythagorovku bych zvládnul :D Jenže tohle tak není. Děkuji jinak za rady. kouknu na to :)

 
Nahoru Odpovědět
11.11.2018 19:16
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.