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

Cyklus for – Java – Fórum – Programujte.comCyklus for – Java – Fórum – Programujte.com

 

23. 1. 2017   #1
-
0
-

   

/*Vytvorenie triedy Moc  ktora vypocita vysledok umocneneho cisla nejakym celym cislom   */
class Moc{
	double z;
	int e;
	double hodn;
	
	Moc(double zaklad, int exp){
		z = zaklad;
		e = exp;
		hodn = 1;
		if(exp == 0) return;
		for( ; exp > 0; exp--) hodn = hodn * zaklad;    /* Moze mi prosim vas niekto 
		                                                   vysvetlit tento riadok ?
		                                                   Dakujem  
		                                                */
	}
	double zjisti_moc(){
		return hodn;
	}
}
public class UkazMoc {

	public static void main(String[] args) {
		Moc x = new Moc(4.0, 2);
		
		System.out.println(x.z + " umocnene cislom " + x.e + " sa rovna "
		+ x.zjisti_moc());

	}

}
Nahlásit jako SPAM
IP: 78.98.139.–
23. 1. 2017   #2
-
0
-

   

for(
;      //neni zadny prikaz, pred vstupem do cyklu se neprovede nic
exp > 0;   //ukoncovaci podminka cyklu, cyklus se provadi dokud je exp > 0
exp--      //pri kazde iteraci cyklu se exp zmnesi o 1
) hodn = hodn * zaklad; //v tele cyklu je jediny prikaz


mocninu spočítáš takto:
a^2 = a*a
a^5 = a*a*a*a*a
atd.

... a to dělá ten cyklus.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
23. 1. 2017   #3
-
0
-

#2 hlucheucho
Rozumiem cyklu for len mi nejde do hlavy ak hodnota  = 1. Zaklad dajme ze sa rovna 4 . A exp rozumiem tomu ze je ako umocnovatel   jemu pridelim hodnotu napr. 2 .
prikaz:

hodn = hodn * zaklad   // hodn = 1;

                                    // zaklad = 4;

//Ako sa umocni ta 4 na druhu ked to nieje vo vzorci ?   

Nahlásit jako SPAM
IP: 78.98.139.–
23. 1. 2017   #4
-
0
-

Před vstupem do cyklu je hodn = 1. To odpovídá mocnině v případě, že exp = 0. Dále 1 je z pohledu násobení neutrální, číslo násobeno jedničkou je číslo samé. V cyklu se hodn násobí základem a uloží se zpět do hodn tolikrát, kolik je exponent. Takže pokud je exponent 1, proběhne 1 iterace cyklu, 1x se provede hodn = hodn * zaklad - výsledek je hodn = 1*základ. Podobně to je pro exp =  např 3 - proběhnou 3 iterace cyklu:
1. nyní je hodn = 1, provede hodn = 1*základ
2. nyní je hodn = základ, provede se hodn = zaklad*zaklad
3. nyní je hodn = zaklad*zaklad, provede se hodn = (zaklad*zaklad) * zaklad

Vždy je v hodn výsledek součinu po předchozí iteraci cyklu, cyklus začne první mocninou a dekrementuje exp, v další iteraci ji vynásobí základem - vznikne druhá mocnina a dekrementuje exp, tu v další iteraci násobí základem - vznikne třetí mocnina a dekrementuje exp .... až po okamžik, kdy vznikne požadovaná mocnina, v tu chvíli exp dosáhne hodnotu 0 a cyklus je ukončen.

Cyklus s dekrementací je šikovnější, nepotřebuje vytvářet další proměnnou jako řídící proměnnou cyklu a uvádí se, že dekrementace je rychlejší než inkrementace. Cyklus s inkrementací by vypadal takto:

for(int i = 0; i < exp; i++) hodn = hodn * zaklad;

hu

Nahlásit jako SPAM
IP: 195.178.67.–
23. 1. 2017   #5
-
0
-

#4 hlucheucho
Dakujem velmi pekne   

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

Podobná vlákna

Cyklus — založil Jan Burant

Cyklus while v C — založil Marek

Cyklus For — založil nergaldiabolus

Cyklus — založil Mike

Cyklus while — založil pep

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ý