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

Nulovanie premenej – Java – Fórum – Programujte.comNulovanie premenej – Java – Fórum – Programujte.com

 

johnw
~ Anonymní uživatel
17 příspěvků
13. 11. 2012   #1
-
0
-

Ahojte,

mam tento zdrojovy kod:

import java.util.Scanner;
public class Interval {
	public static void main (String [] args) {
		Scanner sc = new Scanner (System.in);
			int cislo, n;										
			int p = 0;											
			int hranica = 0;
			int interval = 0;
			int mimo = 0;
			int x = 1;											
			System.out.print("Program rozlišuje, či sa číslo nachádza v intervale (1,10),");									
			System.out.println("\nalebo či jen na hranici tohto intervalu alebo\n či je mimo tohto intervalu.\n ");
			System.out.print("Zadaj počet čísel na vstupe: ");
			n = sc.nextInt();
			System.out.println("\nPostupne zadávaj celé čísla, väčšie ako 0");
		do {
			
			do {
				System.out.print("zadaj "+x+". číslo: ");
				cislo = sc.nextInt();
				if (cislo<=0) System.out.println("Číslo musí byť väčšie ako 0!");
				
			}while (cislo<=0);
				x++;																			
			
			
				p++;

				if ((cislo<10)&&(cislo>1)) interval++;											
				else if ((cislo==1)||(cislo==10)) {hranica++;									
				interval++;}
				else mimo++;																	
			}while (p<n);
			System.out.println("\nČisel na hranici: "+hranica+",\nčísel v intervale: "+interval+" ,\nčísel mimo intervalu: "+mimo+"\n");
			System.out.print("KONIEC PROGRAMU");
	}
}

a k tomu komentar :

Navíc jste zařadil opakování výpočtu a tím jste si "vyrobil" další chybu - musíte dát do cyklu nulování proměnných pro uložení počtu čísel uvnitř, mimo a na hranici intervalu.

ako by som to mal opravit? 

Ďakujem

Nahlásit jako SPAM
IP: 195.146.151.–
johnw
~ Anonymní uživatel
17 příspěvků
14. 11. 2012   #2
-
0
-

#1 johnw
Nikto nic? 

Nahlásit jako SPAM
IP: 195.146.151.–
sakal910
Stálý člen
14. 11. 2012   #3
-
0
-

#1 johnw
Nějak nechápu tvůj problém :) Program dělá to co má, takže v tom nevidím chybu :)

Nahlásit jako SPAM
IP: 31.222.8.–
Aleš
~ Anonymní uživatel
102 příspěvků
14. 11. 2012   #4
-
0
-

#2 johnw
Tak sem si to pročetl (nezkoušel jsem to pustit), a co se myslí "nulováním proměnných" to nemám zdání. Jediný co nechápu je :

else if ((cislo==1)||(cislo==10)) {hranica++;									
interval++;}

když je číslo na hranici, tak už neni v intervalu ne? Jinak až na absenci komentářů mi to přijde v pohodě :)

Nahlásit jako SPAM
IP: 2001:718:1c01:154:99f3:bd...–
sakal910
Stálý člen
14. 11. 2012   #5
-
0
-

#4 Aleš
Nulování proměnných se myslí to že například vynuluješ tu hranici ( hranice = 0), dále záleží jestli se jedná o otevřený interval nebo ne... Pokud ano tak čísla 1 a 10 už neleží v intervalu, pokud ne tak jsou součástí :)

Nahlásit jako SPAM
IP: 31.222.8.–
Aleš
~ Anonymní uživatel
102 příspěvků
14. 11. 2012   #6
-
0
-

#5 sakal91
Co to znamená obecně bych věděl :) . Ale nechápu proč si to dotyčný(nejspíše učitel) žádá v tomhle programu, protože mi to tam nechybí. Program tak jak je napsanej funguje. Kdyby celej program běhal v nekonečnym cyklu aby po vypsání výsledku bylo možné zase zadat počet čísel a počítat znovu, tak tam bych to chápal. Ale tohle podle mě funguje, nevím kde to chce dotyčný nulovat, a co chce nulovat.

Jinak v komentáři má johnw napsaný kulatý závorky, takže na hranici nemůže bejt teoreticky i prakticky nic :) Proto je to trochu matoucí

Nahlásit jako SPAM
IP: 2001:718:1c01:154:99f3:bd...–
reciproke0
Návštěvník
14. 11. 2012   #7
-
0
-

#1 johnw
nevím proč by nemal jít zadávat záporná čísla...

Ten kdo psal komentář si zřejmě myslel, že po zadání všech čísel se vypíše výsledek a pak to poběží znovu. Tehdy by jsi musel použít ono nulování.

Nahlásit jako SPAM
IP: 147.32.184.–
johnw
~ Anonymní uživatel
17 příspěvků
14. 11. 2012   #8
-
0
-

#6 Aleš

tie zatvroky, maju byt hranate, to som zle napsal. Takze si myslim ze 1 a 10 patri aj do intervalu aj su to zaroven hranice intervalu. 

A to nulovanie, jedine co ma napada, ze by som na zaciatok cyklu, napisal :

int hranica = 0;
int interval = 0;

int mimo = 0;

je to postacujuce? aj ked uplne tomu nerozumiem, preco to musi byt aj tam, ked ako ste pisali, program sa nebude opakovat. 

Nahlásit jako SPAM
IP: 195.146.151.–
Aleš
~ Anonymní uživatel
102 příspěvků
14. 11. 2012   #9
-
0
-

#8 johnw
Ale to už tam stejně máš. U nějakých jazyků jako je např. C nebo možná C++ je nutné nulovat vytvořené proměnné, protože "int n;" alokuje paměť ale už ji nepřepíše, takže je tam náhodné číslo. Ale ty to tam máš, a  java si to nuluje sama mám dojem.

Pořád mi podle věty "Navíc jste zařadil opakování výpočtu a tím jste si "vyrobil" další chybu"  připadá, že to dotyčný pochopil tak že program pojede v nekonečné smyčce. Ty tam podle mě žádné opakování výpočtu nemáš. Pouze provádíš stejný kus kódu(to porovnávání) pro všechny čísla, což mi přijde v pořádku. Nejvíc ti k tomu asi řekne autor toho komentáře.

Nahlásit jako SPAM
IP: 2001:718:1c01:154:99f3:bd...–
sakal910
Stálý člen
14. 11. 2012   #10
-
0
-

Asi to opravdu myslel tak, ze program se sam neukonci a pojede porad dokola, dokud uzivatel sam neukonci, tudiz by pak bylo logicke nulovat ty promenne na konci cyklu po vypsani... jinak mi to hlava nebere:-D takhle je program v poradku jinak;-)

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.208.–
johnw
~ Anonymní uživatel
17 příspěvků
14. 11. 2012   #11
-
0
-

Ano, je to OK :)

dakujem za pomoc.

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

Podobná vlákna

Ciastocne nulovanie matice v C — založil pietro62

Menenie premenej po kliknutí — založil Patrik

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ý