
Java,Netbeans,problem s programom
Ahojte,prosim vas chcel by som sa spytat ci by mi niekto nemohol pomoct s programami v NetBeanse..som zaciatocnik,predtym som programoval len v delphi a c++ a toto musime robit v škole a trosku s tym mam problem :)
toto je prvy,niečo uz viem,ale neviem to zostavit dobre..mam len tie vstupy a este aj zlomok viem,ale upravit ho na zakladny tvar uz vobec..
1. Napíšte program, ktorý načíta zlomok a upraví ho na základný tvar ("vykráti ho").
Príklad vstupu:
citatel = 2
menovatel = 4
Príklad výstupu:
2/4 == 1/2
Príklad vstupu:
citatel = -2
menovatel = 4
Príklad výstupu:
-2/4 == -1/2
a druhy je o tych hviezdickach,ze sa mi ma zobrazit domček..to uz vobec neviem.. 2. Napíšte program Domcek.java, ktorý pre vstupnú hodnotu n predstavujúcu výšku strechy zobrazí domček. Použite dva rôzne znaky.
Ďakujem vam za ochotu :)
Co už máš a co přesně nevíš?
no zadam cez Scanner citatel aj menovatel a vypisem len..ze zadam citatel:2 a menovatel 4 a vypise sa 2/4...ale neviem akym prikazom to mam dat na zakladny tvar
int a = 0, b = 0;
int zt = 0;
System.out.print("čitateľ : ");
Scanner citatel = new Scanner(System.in);
int c = citatel.nextInt();
System.out.print("menovatel : ");
Scanner menovatel = new Scanner(System.in);
int m = menovatel.nextInt();
System.out.println(c + "/" + m);
To se nedělá žádným příkazem, to máš ty naprogramovat.
Ja viem,ale neviem to :/ nejaka pomoc ? ze ako na to a aky cyklus pouzit...
Tak si to rozeber. Jak bys to zkrátil, kdybys to dělal ručně?
tak keby zadam citatel 2 a menovatel 4 tak by som nasiel spolocne delitelne cislo a tym to delil az kym by to nešlo..ale neviem ako mam toto preniest sem na zdrojovy kod
A nešlo by najít jediné číslo, kterým bys to vydělil? To číslo má dokonce svůj název.
ved spolocny menovatel myslím..rozumiem tej logike,len neviem to spravne naprogramovat a ze co mam pouzit
Společný jmenovatel je něco jiného. Ty hledáš největší společný dělitel.
https://www.algoritmy.net/article/22879/Nejvetsi-s polecny-delitel
ahaa :) a ako to teda zakomponujem do toho programu ? pomocou if ? :)
Ne, prostě zavoláš tu metodu, dostaneš výsledek, tím obě čísla podělíš.
napriklad mam 27/9 a zakladny tvar je teda 3/1...ale nerozumiem ako to zapisat tam.. :/
Co konkrétně nechápeš?
ako to zapisat...nie ze nechapem,ale neviem..
Ale co konkrétně nevíš?
Kde dávajú takéto zadania?
Pevně doufám, že v programovacím kroužku na základní škole.
no som zaciatočnik...a neviem ako to mam zapisat,tu logiku..
To nebude základná škola.
Já vím, že ne. Ale stejně v to doufám.
aha dík,cital som niečo aj o tom euklidovom algoritme..ale aj tak to nejak nejde
Co znamená "nejde"?
no ze to tam takto napíšem a vyhodi chybu ze to nejde vypocitat...stale skusam aj ja nejak sa s tym trapiť a prijst na to..
Nauč se vyjadřovat přesně. Jakou chybu to napíše?
nechce mi ani ten prikaz samotny zobrat gcd = gcd (c, m )
Exception in thread "main" java.lang.ArithmeticException: / by zero
at javaapplication10.JavaApplication10.main
Jak přesně teď vypadá tvůj program?
System.out.print("čitateľ : ");
Scanner citatel = new Scanner(System.in);
int c = citatel.nextInt();
System.out.print("menovatel : ");
Scanner menovatel = new Scanner(System.in);
int m = menovatel.nextInt();
int gcd = gcd (c, m);
c /= gcd;
m /= gcd;
System.out.println(c + "/" + m);
}
}
Zkopíroval jsi tam tu metodu? Jaká čísla zadáváš?
ano,toto je cely ten program..nepusti ma to ani k zadaniu cisel,rovno ukazuje chybu
Tak to teda netuším, co s tím děláš, protože mně to funguje. Napiš sem celý tvůj program.
toto tam mam..
System.out.print("čitateľ : ");
Scanner citatel = new Scanner(System.in);
int c = citatel.nextInt();
System.out.print("menovatel : ");
Scanner menovatel = new Scanner(System.in);
int m = menovatel.nextInt();
int gcd = gcd (c, m);
c /= gcd;
m /= gcd;
System.out.println(c + "/" + m);
}
}
Když píšu celý, tak chci vidět celý, ne jenom část.
package javaapplication10;
import java.util.Scanner;
/**
*
* @author Ja
*/
public class JavaApplication10 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.print("čitateľ : ");
Scanner citatel = new Scanner(System.in);
int c = citatel.nextInt();
System.out.print("menovatel : ");
Scanner menovatel = new Scanner(System.in);
int m = menovatel.nextInt();
int gcd = gcd (c, m);
c /= gcd;
m /= gcd;
System.out.println(c + "/" + m);
}
}
Nijak nevidím, že by tam byla ta metoda.
v Jave robim asi 2 tyzdne...nerozumiem skoro ničomu tam,len zaklady..podla mna je toto tazky program na začiatok hned aby som spravil sám..
Těžký? Tohle jsou naprosté základy. A pokud je pravda, že už jsi dříve programoval v C++, tak bys tohle měl zvládnout nejpozději do 5 minut.
no v Delphi skor..c++ len 2 hodiny som mal predtym...
Nebo i v Delphi, to je v principu naprosto jedno.
tak stále sa učím..ty by si toto ako spravil ?
Vždyť já ti to už napsal a mně to funguje, takže něco musí být špatně u tebe. Ale když sem nedáš kompletní program, tak se nedá nijak poradit.
no veď dal som ti sem vsetko z NetBeansu čo tam mam..proste viem len nacitat citatel menovatel a napisat ich ako zlomok...ale dalej uz neviem ako ich dat na zakladny tvar,ten vzorec...neviem co este myslíš
Tak jinak, kam jsi zkopíroval tu metodu na výpočet největšího společného dělitele?
no ved som ti to cele poslal co tam vsetko mam :) nerozumiem teda kam to mam dat alebo ako
Obtěžoval ses kliknout na ten odkaz, který jsem sem dával?
nie čítal som si to,aj som to skusal podla toho...
Četl jsi to a čistě náhodou jsi přehlédl, že tam je i kód pro Javu?
videl som ho...ale tam musim prepisat aj tu triedu a podobne...a to hned bude jasne v škole ze som to nerobol ja,kedze ssme to este nebrali..potrebujem len niečo jednoduche..robime len java aplikaciu normalnu...takze len proste nejaky cyklus alebo podmienku alebo take niečo
Nic nemusíš přepisovat, stačí zkopírovat tak, jak to je.
ahoj,prosim ta posledna vec mi chyba...uz som zistil ako zistit toho spolocneho delitela...uz to len do toho cyklu ptorebujem dat aby mi vypisalo najskor zlomok a potom = zakladny tvar... mozes mi poslednu vec pomoct ? :(
public static void main(String[] args) {
int a = 16;
System.out.println("Čitateľ : " + a);
int b = 36;
System.out.println("Menovatel : " + b);
System.out.println("Zlomok : " + a + "/" + b);
while (a != b) {
if (a>b)
a = a - b;
else
b = b - a;
}
System.out.println("spolocny delitel : " + a);
}
}
Ty to ale nepotřebuješ dávat do cyklu. Chceš to vypsat před cyklem a po cyklu.
programujem v c++ (videl som ho dve hodiny)
tento prístup ma zakaždým udivuje :)
Sorry,fakt som zaciatocnik v NetBeanse uplne...
Niekto ešte mi pomoct prosim vas s?