Springen naar inhoud

[java] probleem met code...


  • Log in om te kunnen reageren

#1

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 31 maart 2007 - 22:59

Ik geef hieronder een code in Java.

het doel van dit specifiek programma is je een oneindig aantal getallen die element zijn van de reŽle getallen. Op het einde van het programma geeft het weer wat het maximum en het minimum dat je ingegeven hebt en hoeveel keer je dat gedaan hebt.

Mijn probleem is het volgende: om het einde van mijn document aan te geven maak ik gebruik van een while-lus, die geldig blijft zolang het einde van het document niet bereikt wordt. Dus zolang de input niet eof(end of file) is. dat kun je zien in de code.

Probleem is dat als ik het uitvoer, het gebruiklijke CTRL+Z commando niet werkt...(dat commando gebruikt men in Java om end of file aan te geven)

Ik gebruik JCreator light om dit te kunnen uitvoeren, ook een probleem is dat ik wil dat het programma dat ik wil uitvoeren moet uitgevoerd worden in een DOS venster dat geopend wordt, wat niet gebeurd, ik moet gewoon in een general-output van het programma zelf werken...

kan iemand me helpen dit in te stellne?

[codebox]public class oef4_3
{ public static void main(String[]arguments)
{ int getal;int max,min,maxAantal=0, minAantal=0;
System.out.println("Geef een reeks getallen in. Beeindig met een 'CTRL+Z'.");
Input inp = new Input();
getal = inp.readInt();
max = getal;
min = getal;
while (!inp.eof())
{ if (getal!= 0)
{
if (getal> max)
{max = getal;
maxAantal = 0;}
if (getal==max)
maxAantal = maxAantal +1;
if (getal
{min = getal;
minAantal = 0;}
if (getal==min)
minAantal = minAantal +1;
}
getal=inp.readInt();
}
System.out.println("Het maximum is "+max+" en komt "+maxAantal+ " keer voor");
System.out.println("Het minimum is "+min+" en komt "+minAantal+ " keer voor");[/codebox]

Veranderd door Evil Lathander, 31 maart 2007 - 23:00

"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 01 april 2007 - 07:52

Ik heb vrijwel geen Java ervaring, maar is CTRL+Z niet bestuursysteem afhankelijk? Kun je niet beter kijken of iemand een lege waarde of bijvoorbeeld 'end' heeft ingetikt?
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

#3

qrnlk

    qrnlk


  • >5k berichten
  • 5079 berichten
  • Lorentziaan

Geplaatst op 01 april 2007 - 07:58

C-\ wil wel eens quit of end aangeven.

C-z betekend onder unix stop; De taak stopt en kan worden herstart.

Veranderd door qrnlk, 01 april 2007 - 08:01

Any sufficiently analyzed magic is indistinguishable from science.
Any sufficiently advanced technology is indistinguishable from magic.

There is no theory of protecting content other than keeping secrets Ė Steve Jobs

#4

qrnlk

    qrnlk


  • >5k berichten
  • 5079 berichten
  • Lorentziaan

Geplaatst op 01 april 2007 - 08:13

[qrnlk@demo:~](119): cat >/tmp/test			  # leest keyboard en schrijft het naar /tmp/test
hdhhdhdh

[1]+  Stopped				 cat >/tmp/test	 # nadat ik C-z deed.
[qrnlk@demo:~](120): jobs						# met dit commando kun je de status van jobs bekijken
[1]+  Stopped				 cat >/tmp/test
[qrnlk@demo:~](121): fg						  # default start het de eerste job 
cat >/tmp/test
hdshdhhdhdhhd

Quit											 # C-\ is dus ''einde invoer''.
[qrnlk@demo:~](122): cat /tmp/test			   # leest /tmp/test en schrijf het naar het scherm...
hdhhdhdh
hdshdhhdhdhhd

[qrnlk@demo:~](123):

(nag: waarom die space achter een teksthaak? Juist code zou toch de tekst EXACT zo weergeven als dat het bedoeld is.)

Veranderd door qrnlk, 01 april 2007 - 08:16

Any sufficiently analyzed magic is indistinguishable from science.
Any sufficiently advanced technology is indistinguishable from magic.

There is no theory of protecting content other than keeping secrets Ė Steve Jobs

#5

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 01 april 2007 - 09:35

Voor zover ik weet is 'Input' geen standaard Java klasse. Wat importeer je?

Zonder verder te weten wat 'Input' precies is: 'readInt()' lijkt mij alleen integers te lezen. Wat gebeurt er als er geen integer aangeboden wordt? (Exception? null?)

#6

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 01 april 2007 - 12:29

Als er geen integer wordt aangeboden blokkeert het programma en sluit het zichzelf af...

Nja, hier op de hogeschool hebben ze zelf een bestandje "Input.class" gemaakt.

Dat dient om in te lezen.

Dus als ik typ Input inp = new Input();

dan zegik door die new dat 'inp' de code is waarbij hij een inlezing moet zien

EDIT:

ik zie dus niet in hoe ik CTRL+\ kan invoeren...

ook zou ik graag willen dat mijn test zich opent in een Ms-Dos schermpje

Veranderd door Evil Lathander, 01 april 2007 - 12:35

"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."


#7

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 01 april 2007 - 12:42

Maak gewoon het volgende programma eens:
public class Test { 
  public static void main(String[] arguments) { 
	Input inp = new Input();
	getal = inp.readInt();
	System.out.println(inp.eof());
  }
}
Run het en geef een ctrl+z. Wordt er nu 'true' geprint?

#8

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 01 april 2007 - 12:51

Je hebt getal niet gedeclareerd als zijnde een integer...
je moet nog boven de input "int getal;" zetten
dus zal ie het niet aanvaarden... zal eens zien wat ie doet als ik het wel doe

EDIT: ik heb het gedaan en hij gaf mooi niks weer...

wat betekent dat dus voor mij?

Veranderd door Evil Lathander, 01 april 2007 - 12:55

"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."


#9

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 01 april 2007 - 13:02

je moet nog boven de input "int getal;"

Ik heb het testje snel geschreven en kan hem niet compileren omdat ik de klasse Input niet heb.

EDIT: ik heb het gedaan en hij gaf mooi niks weer...

Dat betekent waarschijnlijk dat het programma nooit bij de print komt...

wat betekent dat dus voor mij?

Dat je een andere manier moet verzinnen om het programma zinnig tot een einde te laten komen.

#10

qrnlk

    qrnlk


  • >5k berichten
  • 5079 berichten
  • Lorentziaan

Geplaatst op 01 april 2007 - 13:16

C-z : press and hold "CTRL", then press "Z", then release both.

C-\ : press and hold "CTRL", then press "\", then release both.
Any sufficiently analyzed magic is indistinguishable from science.
Any sufficiently advanced technology is indistinguishable from magic.

There is no theory of protecting content other than keeping secrets Ė Steve Jobs

#11

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 01 april 2007 - 13:17

Ik probeerde net, maar ik mag dit type bestand hier blijkbaar niet uploaden...

hoe lees je normaal dingen in in Java?

Op de manier dat ik het hier wil doen dus. Een programmatje dat een hoop getallen inleest en zegt welke de grootste/kleinste is en hoeveel keer het voorkomt


qrnlk: dat lukt dus geen van beide

Veranderd door Evil Lathander, 01 april 2007 - 13:19

"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."


#12

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 01 april 2007 - 13:32

http://i53.photobuck...ISBMPFILE-1.gif

hier een pic van de situatie.

Merk op dat ik het programma doen starten heb en reeds op CTRL+Z en CTRL+\ gedrukt heb en er niks gebeurde.

"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."


#13

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 01 april 2007 - 13:35

Je zou het zo kunnen doen (maar helemaal netjes is het niet). Code meegeleverd om er van te leren.

import java.util.Scanner;

public class Test
{ 
	public static void main(String[]arguments) { 
		int getal;
		int max = 0 , 
			min = 0, 
			maxAantal = 0, 
			minAantal = 0;
	
		System.out.println("Geef een reeks getallen in. Beeindig met een 'CTRL+Z'.");
		Scanner sc = new Scanner(System.in);

		try {
			getal = sc.nextInt();
			max = getal;
			min = getal;
		} catch (RuntimeException e) {
			System.out.println("Geen enkele integer ingevoerd.");
			System.exit(0);
		}

		while (true) {
			try {
				getal = sc.nextInt();
				if (getal > max) {
					max = getal;
					maxAantal = 1;
				} else if (getal == max) {
					maxAantal++;
				} else if (getal < min) {
					min = getal;
					minAantal = 1;					
				} else if (getal == min) {
					minAantal++;
				}
			} catch (RuntimeException e) {
				break;
			}
		}
		
		System.out.println("Het maximum is "+max+" en komt "+maxAantal+ " keer voor");
		System.out.println("Het minimum is "+min+" en komt "+minAantal+ " keer voor");
	}
}

#14

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 01 april 2007 - 16:55

Het lukt me nog steeds niet om hem te stoppen...

CTRL+Z heeft geen enkel effect

CTRL+\ trouwens ook niet, ik zie trouwens niet in hoe ik die \ kan indruken zonder eerst de Alt Gr toets in te drukken

Veranderd door Evil Lathander, 01 april 2007 - 16:57

"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."


#15

qrnlk

    qrnlk


  • >5k berichten
  • 5079 berichten
  • Lorentziaan

Geplaatst op 01 april 2007 - 20:20

Het lukt me nog steeds niet om hem te stoppen...

CTRL+Z heeft geen enkel effect

CTRL+\ trouwens ook niet, ik zie trouwens niet in hoe ik die \ kan indruken zonder eerst de Alt Gr toets in te drukken

Een vreemd toetsenbord heb je. Op mijn toetsenbord zit die \ op de tweede toets van rechts op de bovenste rij.

Maar ik zie dat je geen unix gebruikt dus mijn advies is niet van toepassing.

Veranderd door qrnlk, 01 april 2007 - 20:25

Any sufficiently analyzed magic is indistinguishable from science.
Any sufficiently advanced technology is indistinguishable from magic.

There is no theory of protecting content other than keeping secrets Ė Steve Jobs





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures