Springen naar inhoud

Java opgave eindexamen vorig jaar


  • Log in om te kunnen reageren

#1

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 21 oktober 2007 - 20:36

Vorig jaar snapte ik er de b***** van...

En sinds ik het moet herbeginnen duurt het nog een tijd eer ik er ben.

Maar dus, de volgende situatie was gegeven:


je hebt een dierenasiel waar alle dieren zijn toegestaan. De meest gebruikelijke zijn de volgende

1=Kat
2=Hond
3=Slang
4=Vogel
5=Iets anders


Wat hier gegeven is is een invoercode. De opdracht is een programma te schrijven waarmee je kunt ingeven welke dieren er per dag binnengekomen zijn in het asiel. Komt er een kat binnen, geef je 1 in en alle overeenkomende cijfers voor het dier in kwestie.

Als men het programma opstart is men VERPLICHT een dier in te geven. Het programma kan niet eindigen tenzij er tenminste 1 dier is ingegeven. Men beÔndigt het programma door na de eerste invoer op een willekeurige toets te drukken(behalve 1 tot 5 om duidelijke redenen). Indien men bij eerste ingave een teken invoert dat niet 1 t.e.m. 5 is, dan moet de output een foutmelding geven en opnieuw om de eerste input vragen.


Terwijl de invoer bezig is moet men op een bepaald moment een alarm krijgen, namelijk wanneer het totaal aantal katten en honden groter is dan 20% van de totaalbevolking van het asiel. Zolang dit het geval is moet er na iedere invoer een output getoond worden die weergeeft hoeveel dieren er van iedere categorie zijn en wat het percent honden en katten t.o.v. het totaal is.

Als het invoeren stopt, drukt de persoon op een willekeurige toets om af te sluiten. Als dit eenmaal gebeurd moet er een totaaloverzicht gegeven worden van het aantal ingevoerde dieren voor 1 dag.




Zo, dit is wat ik me ervan heriner, ik denk wel dat dit de totale opgave was. Zoals jullie zien aan de omschrijving is dit programma niet compleet, sinds het niet rekening houdt met het bewaren van invoeren van vorige dagen. Iedere keer je het opnieuw opstart wordt alles gereset. Het bewaren van gegevens op die manier zit niet in de leerstof van het eerste jaar bij ons.



Dit is een hele opgave en ik verwacht van niemand om dit voor mij op te lossen. Ik heriner me dat ik de invoer wel kon bepalen maar stond voor een raadsel voor het afdwingen van de eerste invoer en het weergeven van het alarm.
Graag zou ik wel wat tips hebben hieromtrent...


Het is me opgevallen dat ruben01 blijkbaar ook op het KAHO zit, dus indien dit zijn eerste jaar is: ruben, breek hier je hoofd niet over, zelfs na een compleet jaar kon ik het niet. Onthou enkel dat het eindexamen Java schriftelijk is zonder een computer om eerst te testen of je programma wel lukt. Dit was de 2de examenvraag van vorig jaar


Voor de mensen die niet op KAHO zitten: we maken gebruik van een klasse die gemaakt is door de docenten en in de documenten van de Java folder is gestopt. Het programma dat we gebruiken is Jcreator, dus niet NetBeans.

Die klasse noemt "Input.class"


Een klein voorbeeld:


public class voorbeeld
{
		public static void main(String[] args)
		{
				Input inp = new Input();
				int getal;
				System.out.println("Geef een getal in");
				getal = inp.readInt();
				System.out.println("Het ingegeven getal is : " + getal);
		}
}

De output zal zijn: Het ingegeven getal is 5(indien ik 5 invoer).

Die Input.class is dus en aparte klasse die het makkelijker maakt om dingen in te geven of toe te kennen in Java.

Zo schrijven wij in het eerste jaar programma's. Dit ter verduidelijking

Veranderd door Evil Lathander, 21 oktober 2007 - 20:46

"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

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 21 oktober 2007 - 20:50

ziet mij er niet zo moeilijk uit, maar ik ken geen java.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

#3

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 21 oktober 2007 - 20:54

Als je dat zegt, bedoel je dan om het te schrijven aan je computer en terloops eens te checken via een programma of het wel lukt, of om pen en papier te pakken en uiteindelijk iets dat perfect werkt uit te komen?

"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."


#4

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 21 oktober 2007 - 21:02

op papier is het wel iets moeilijker, maar valt zeker nog mee denk ik.
op zich moet je input hebben in een loop
+ na elke loop checken van die input en eventueel ergens bijtellen of programma sluiten en eventueel dat alarm geven
lijkt mij wel te doen
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

#5

Ruben01

    Ruben01


  • >1k berichten
  • 2902 berichten
  • Ervaren gebruiker

Geplaatst op 21 oktober 2007 - 21:25

Het is me opgevallen dat ruben01 blijkbaar ook op het KAHO zit, dus indien dit zijn eerste jaar is: ruben, breek hier je hoofd niet over, zelfs na een compleet jaar kon ik het niet. Onthou enkel dat het eindexamen Java schriftelijk is zonder een computer om eerst te testen of je programma wel lukt. Dit was de 2de examenvraag van vorig jaar
Voor de mensen die niet op KAHO zitten: we maken gebruik van een klasse die gemaakt is door de docenten en in de documenten van de Java folder is gestopt. Het programma dat we gebruiken is Jcreator, dus niet NetBeans.

Inderdaad, ik zit in het eerste jaar. Ik heb wel al wat ervaring met Java maar om zoiets op te lossen is mijn kennis voorlopig onvoldoende. Ik wacht vol spanning op het antwoord :D .
BOINC mee met het WSF-team: <a href="http://www.wetenscha...howtopic=60653" target="_blank">http://www.wetenscha...topic=60653</a>

#6

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 21 oktober 2007 - 22:17

Idd, vrij simpel een beetje omgaan met loopjes. Input vragen, input checken in een while en indien incorrecte input in de while voor nieuwe input vragen. Daarna plaats je dit alles in een omhullende loop zodat je opnieuw dieren kan ingeven en check je ondertussen of je die 20% nog niet voorbij bent.

Maar ik ken ook geen java, dus een stukje code schrijven voor jou zit er jammer genoeg niet in ;)

Edit: Een stukje pseudocode voor de invoer waar je twijfels over had:

vraag een getal;

// maak een loop waar je kijkt of het gevraagde getal binnen de grenzen ligt
while (getal < 0 || getal > 5) {
	 vraag een nieuw getal;
}

Ik hoop dat dit de zaken een beetje verduidelijkt, mochten er nog stukjes zijn waar zo'n stukje pseudocode je zou kunnen helpen mag je altijd eens roepen natuurlijk :D

Veranderd door Cycloon, 21 oktober 2007 - 22:22


#7

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 21 oktober 2007 - 22:23

Hopelijk geeft een voorbeeld van een mogelijke structuur voor je programma je inzicht. Probeer de link te vinden tussen de code en de omschrijving.
final int END_PROGRAM_REQUEST = 0;

boolean allowTerminate = false;
int[] animals = new int[6];

while (!allowTerminate) {
  int anInputCode = getAnimal(); // getAnimal method moet een integer teruggeven van 0 t/m 5. 0 = geen valide dier.
  if (anInputCode == END_PROGRAM_REQUEST) {
	if (numberOfAnimals() > 0) {
	  allowTerminate = true;
	} else {
	  printErrorMessage();
	}
  } else {
	 ...
  }
}
...
Succes.

#8

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 21 oktober 2007 - 22:32

nja, END_PROGRAM_REQUEST is iets dat wij niet te zien krijgen in onze lessen.

ALLES, maar dan ook alles behalve de klasse "Input" moeten we zelf schrijven.

Een aparte klasse voor voor ieder dier, een toevoeging daarin, een weergavecommando, etc etc...


we gebruiken geen imports, geen vooropgestelde kleine finals die ergens in de bib zitten, niks, allemaal zelf schrijven


maar dus, zo had ik het nog niet gezien, het programma schrijven om te runnen zolang de terminate voorwaarde niet voldaan wordt...

getAnimal kan ik me wel inbeelden wat die inhoud, erstaat een voorbeeld in de cursus waar we met lijnstukken werken en X-Y coordinaten bijwelke getX() of getY() gebruikt moet worden

nu, die allowTerminate, is dat een klasse die je toepast? Waar heb je die vooraf geschreven en wat houdt die exact in? numberOfAnimals, zelfde vraag.

Al die dingen, iedere klasse die je moet verzinnen die nodig is om het programma af te maken moet allemaal mee opgeschreven en afgegeven worden. Dus eerst schrijf je alle klassen, en daarom de "public static void main..."

met daarin een hoop verwijzingen naar alle klassen die geschreven zijn zodat het allemaal correct zou zijn


en

int[] animals = new int[6];

dat is me een compleet raadsel... zoiets heb ik nog nooit gezien, vierkante haken gebruiken in codetoepassingen? Ik weet dat het bestaat maar dit wordt niet aangehaald in onze cursus...

@cycloon: wat ik niet weet is of dat ander teken weldegelijk beperkt is tot getallen of men eigenlijk alle ASCII symbolen mag gebruiken als einde van het programma

Veranderd door Evil Lathander, 21 oktober 2007 - 22:42

"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

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 21 oktober 2007 - 22:46

Heb je het al eens met de leerkracht over je probleem gehad? Zo'n oefening op een examen is vaak een combinatie van alle technieken die je doorheen het jaar aangeleerd krijgt. Het probleem lijkt me eerder bij je basiskennis te zitten, en dan is zo'n programmatje waar vanalles en nog wat tesamen gevraagd wordt natuurlijk teveel. Mss kan je leerkracht je simpelere oefeningtjes bezorgen die je beter sturen om je problemen op te lossen?

@cycloon: wat ik niet weet is of dat ander teken weldegelijk beperkt is tot getallen of men eigenlijk alle ASCII symbolen mag gebruiken als einde van het programma


Volgens mij is dat niet echt struikelblok waar je moet over zitten nadenken. Je mag er wel vanuit gaan dat de gebruiker het bij normale zaken houdt. Als je een char in een int variabele gaat gooien zal het zoiezo niet herkend worden als getal en zal je dus bij de test (getal < 0 || getal > 5) zoiezo een TRUE als antwoord krijgen als men een ASCII symbool ingeeft.

#10

Burgie

    Burgie


  • >250 berichten
  • 582 berichten
  • Ervaren gebruiker

Geplaatst op 21 oktober 2007 - 23:16

Opgave is helemaal niet zo moeilijk, misschien een basiscursus java zoeken? Er zijn er ongelooflijk veel op internet te vinden, en na het lezen zou deze oefening kinderspel moeten zijn.

nja, END_PROGRAM_REQUEST is iets dat wij niet te zien krijgen in onze lessen.

Let op de 'int' die eraan voorafgaat. Dat is niets anders dan een integer.

maar dus, zo had ik het nog niet gezien, het programma schrijven om te runnen zolang de terminate voorwaarde niet voldaan wordt...

Dat is inderdaad de bedoeling van de opgave... Lussen (for; while; do..while) worden altijd gevraagd op examens :D.

nu, die allowTerminate, is dat een klasse die je toepast? Waar heb je die vooraf geschreven en wat houdt die exact in? numberOfAnimals, zelfde vraag.

'allowTerminate' is een boolean dat gedefinieerd wordt in de 2de lijn van zijn code. Een boolean kan 'true' of 'false' aannemen. Zolang '!allowTerminate' gelijk is aan 'true' of dus 'allowTerminate' gelijk is aan false, wordt zijn programma niet beŽindigd.
'numberOfAnimals' is een int, maar die is niet gedefinieerd in de code. (Vergetelheidje van EvilBro.) Het is een integer dat het totaal aantal dieren bijhoudt.

int[] animals = new int[6];

dat is me een compleet raadsel... zoiets heb ik nog nooit gezien, vierkante haken gebruiken in codetoepassingen? Ik weet dat het bestaat maar dit wordt niet aangehaald in onze cursus...

Stelt een rij van integers voor. 'animals' is dus een rij van 6 integers.

Veranderd door Burgie, 21 oktober 2007 - 23:17


#11

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 22 oktober 2007 - 05:30

'numberOfAnimals' is een int,

Nee, numberOfAnimals() is een methode die het totaal aantal dieren als int teruggeeft. De implementatie ervan heb ik expres niet meegegeven.

#12

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 22 oktober 2007 - 06:26

Stelt een rij van integers voor. 'animals' is dus een rij van 6 integers.


Of kortweg een tabel genoemd natuurlijk :D

#13

Lathander

    Lathander


  • >1k berichten
  • 2501 berichten
  • Ervaren gebruiker

Geplaatst op 22 oktober 2007 - 13:22

ah, een tabel.

vorig jaar vroeg ik dat eens en tabellen zijn dus bij on leerstof van het 2de jaar...

m.a.w., als we dat op onze examens zetten, meteen gebuisd, sinds het niet volgens de cursus gedaan is...

"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."


#14

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 22 oktober 2007 - 15:36

Vreemd dat ze iets als tabellen zo lang achterhouden. Eťnmaal je vlot omspringt met tabellen zijn zoveel zaken makkelijker te verwezenlijken.

#15

Ruben01

    Ruben01


  • >1k berichten
  • 2902 berichten
  • Ervaren gebruiker

Geplaatst op 22 oktober 2007 - 17:55

vorig jaar vroeg ik dat eens en tabellen zijn dus bij on leerstof van het 2de jaar...

m.a.w., als we dat op onze examens zetten, meteen gebuisd, sinds het niet volgens de cursus gedaan is...

Is het verboden om code te gebruiken die je aangeleerd hebt buiten de cursus ? De meeste problemen kan je toch op 1001 mogelijkheden oplossen.
BOINC mee met het WSF-team: <a href="http://www.wetenscha...howtopic=60653" target="_blank">http://www.wetenscha...topic=60653</a>





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures