Program java vysvětlení – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Program java vysvětlení – Java – Fórum – Programujte.comProgram java vysvětlení – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Lukáš Stehlík
~ Anonymní uživatel
4 příspěvky
7. 2. 2016   #1
-
0
-

Dobrý den, 

chtěl bych Vás poprosit jestli by někdo nebyl ochoten mi vysvětlit podrobně jak funguje tento program? Děkuji za odpověď. 


package dokcisla;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.ArrayList;

class Dokcisla {

    static ArrayList<Integer>seznam=new ArrayList<>();

    public static void main(String[] args) {
        int n = 0; 
        
        for (int i=1; i<n; i++) {     
            test(i);
    }
           zapsaniDoSouboru();
    }
  
    public static void test (int cislo) {
        int sum= 0;
        for(int delitel=1; delitel < cislo; delitel++) {
            if ((cislo % delitel)==0) {
                sum=sum +delitel;
            }
    }
            if (sum==cislo) {
                seznam.add(cislo);
                System.out.println(cislo+ " je dokonalé číslo");
            }
    }
    public static void zapsaniDoSouboru() {
        try (BufferedWriter bw = new BufferedWriter (new FileWriter("vystup.txt"))) {  
            bw.write ("Dokonalá čísla jsou tato: ");
            bw.write (seznam.toString());
            bw.close();
        }
        catch (Exception e) {  
            System.err.println("Do souboru se nepovedlo zapsat");
           
            return;  
        }
    }
}

Nahlásit jako SPAM
IP: 188.120.199.–
Reklama
Reklama
Kit+11
Guru
7. 2. 2016   #2
-
0
-

#1 Lukáš Stehlík
Tak si nejprve zkus vygooglit, co to jsou "dokonalá čísla".

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Lukáš Stehlík
~ Anonymní uživatel
4 příspěvky
7. 2. 2016   #3
-
0
-

#2 Kit
Číslo je dokonalé pokud je rovno součtu všech kladných dělitelů. Mám pravdu? 

Nahlásit jako SPAM
IP: 188.120.199.–
Kit+11
Guru
7. 2. 2016   #4
-
0
-

#3 Lukáš Stehlík
Kromě sebe samého.

Takže logicky budeš brát jedno číslo za druhým, hledat jejich dělitele a sčítat je. Pokud je součet roven původnímu číslu, vypíšeš to číslo na výstup.

Program je ukázkou, jak se dá v Javě programovat imperativně. S OOP to nemá nic společného.

V programu je logická chyba - nevypíše nic.

Program by se dal významně zrychlit, kdyby se v případě nulového zbytku po dělení započítal do součtu nejen dělitel, ale i výsledek dělení.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Lukáš Stehlík
~ Anonymní uživatel
4 příspěvky
7. 2. 2016   #5
-
0
-

#4 Kit
Mohl bys mi doslova vysvětlit jak funguje tato část programu?

    public static void test (int cislo) {
        int sum= 0;
        for(int delitel=1; delitel < cislo; delitel++) {
            if ((cislo % delitel)==0) {
                sum=sum +delitel;
            }
    }
            if (sum==cislo) {
                seznamcisel.add(cislo);
                System.out.println(cislo+ " je dokonalé číslo");
            }
    }

Nahlásit jako SPAM
IP: 188.120.199.–
Kit+11
Guru
7. 2. 2016   #6
-
0
-

#5 Lukáš Stehlík
Zkoušíš číslo dělit všemi možnými čísly od jedné. Pokud je dělitelné, tak dělitele kumuluješ do sum.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Lukáš Stehlík
~ Anonymní uživatel
4 příspěvky
7. 2. 2016   #7
-
0
-

Jo takhle, tak to moc děkuji. :) ! 

Nahlásit jako SPAM
IP: 188.120.199.–
Kit+11
Guru
7. 2. 2016   #8
-
0
-

#7 Lukáš Stehlík
Ten algoritmus je velmi neefektivní, k pátému dokonalému číslu se už běžný počítač prakticky nedostane.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
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, 166 hostů

Podobná vlákna

Program Katedra.java — založil exelrose

Program pro java — založil Luke

Java a 3D modelovací program? — založil Anonymní uživatel

Můj první program - Java — založil Radek

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ý