Springen naar inhoud

[informatica] programmeren in java met bluej


  • Log in om te kunnen reageren

#1

HosteDenis

    HosteDenis


  • >250 berichten
  • 689 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 00:51

Misschien is het een simpele opgave, maar ik zie het niet. De vraag is met de logische operatoren '&&', '||' en '!' de volgende resultaten te verkrijgen (&& = en, || = of, en ! = niet):

  • Schrijf een expressie met de booleaanse variabelen A en B die evalueert als 'true' wanneer A en B of beide 'true' of beide 'false' zijn.
  • Schrijf een expressie met de booleaanse variabelen A en B die alleen evalueert als 'true' wanneer A of B 'true' is, maar 'false' is wanneer A en B beide 'true' of 'false' zijn.
  • Veronderstel de expressie (a && b). Schrijf een gelijkwaardige expressie (die alleen evalueert als 'true' wanneer zowel A als B 'true' is zonder de operator '&&' te gebruiken).


Ik heb dit al, maar ben ook niet zeker van de correctheid:

  • (A && B) || (!A && !B), hier ben ik wel zeker van.
  • ((A || B) || !((A && B) || (!A && !B))), hierbij maak ik gebruik van mijn antwoord op de vorige vraag, maar ben niet helemaal zeker van de correctheid.
  • Geen idee.
"Her face shown like the sun that I strived to reach."

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

#2

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 28 februari 2009 - 10:21

Voor de 2de, door het gebruik van de "||"-operator

((A || B) || !((A && B) || (!A && !B)))

gaat ie nog steeds true geven als A en B false/true zijn...

Voor de 3de heb ikzelf ook niet zo meteen een idee :D
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#3

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 28 februari 2009 - 10:36

Voor die 3de:
booleans worden ook voorgesteld als 1 en 0 voor respectievelijk true en false.
Als je dan evalueert (A*B = 1) geeft dat enkel true als zowel A als B 1 (true) zijn.

Ik weet niet of je daar iets mee bent? Het maakt niet echt gebruik van de logische operatoren, maar iets anders zie ik ook zo direct niet.

#4

waanzin

    waanzin


  • >250 berichten
  • 300 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 10:54

1 en 2 lijken mij goed te zijn
3 zouw ik zo zien !(!A//!B) alleen als bijde 1 geven komt hier 1 uit denk ik (weet niet of dit juist is)

tip: ik vind het gemaklijker omdat ik middelbaar( en ik denk in de meest schoolen) het leer met and =&& ,or=// en not=! om het zo even uit te schrijven met worden en het dan om te zeten naar symbolen geeft mij een beter inzicht, ik weet niet of dat jouw ook helpt.

Veranderd door waanzin, 28 februari 2009 - 10:59


#5

Burgie

    Burgie


  • >250 berichten
  • 582 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 12:49

De tweede... neem gewoon het complement van de eerste. Zoals jij hem opschreef is hij fout.

Pas De Morgan toe voor de derde... LaTeX .

Veranderd door Burgie, 28 februari 2009 - 12:51


#6

HosteDenis

    HosteDenis


  • >250 berichten
  • 689 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 13:55

Dus 1 lijkt volgens iedereen juist.

Voor de tweede heeft Drieske gelijk... Burgie zegt dat ik het complement van de eerste moet nemen. Wat bedoel je daarmee, Burgie?

Je oplossing voor de derde werkt niet, tenzij ik het verkeerd toepaste. Ik schreef:
public class BooleaanseOefening
{
	private boolean waarOfNietWaar;
	
	public BooleaanseOefening()
	{
		waarOfNietWaar = false;
	}
		
	public boolean waarOfNietWaar(boolean a, boolean b)
	{
		if(a*b = true) {
			waarOfNietWaar = true;
			System.out.println("Waar");
		}
		else {
			System.out.println("Niet waar");
		}
	}
}

Ik krijg de foutmelding bij a*b, BlueJ zegt dat hij een integer verwachte maar een boolean tegenkwam. Blijkbaar werkt die operator niet met booleans.


Denis

Veranderd door HosteDenis, 28 februari 2009 - 13:57

"Her face shown like the sun that I strived to reach."

#7

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 28 februari 2009 - 13:57

Voor de 3de zou ik waanzin zijn idee eigenlijk toepassen. Betwijfel trouwens dat java vermenigvuldigen van booleans kent :D
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#8

HosteDenis

    HosteDenis


  • >250 berichten
  • 689 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 13:58

Voor de 3de zou ik waanzin zijn idee eigenlijk toepassen. Betwijfel trouwens dat java vermenigvuldigen van booleans kent :D


Ik las over de oplossing van waanzin heen. Eerst eten, dan test ik die!


Denis
"Her face shown like the sun that I strived to reach."

#9

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 28 februari 2009 - 14:13

Voor de 3de zou ik waanzin zijn idee eigenlijk toepassen. Betwijfel trouwens dat java vermenigvuldigen van booleans kent :D



Khad het even snel getest in VB, daar lukt het wel in.

#10

waanzin

    waanzin


  • >250 berichten
  • 300 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 14:15

als ik het concept snap is die juist maar wat is nu eigenlijk de juiste oplossing voor 2?

redenering voor de derde : of=// geeft altijd 1 als een van de twee ingang 1(=true) geeft we willen er voor zorgen dat we alleen een 1 als uit gang krijgen als bijde ingangen 1 geven dit lukt niet maar het of-comando geeft wel alleen uitgang 0(=false) als bijde ingangen 0 dus ingang omdraaien met het niet-commando van 1 naar 0 dan komt er 0 uit als aan de voorwaarde is voldaan en dan zet je met het niet-comando deze terug om naar 1.

de uitleg is nogal slecht ik weet het als je het niet snapt wil ik wel een tekening maken( voor op gesteld dat het juist is waar ik intussen wel bijna zeker van ben)

het doel van deze oefening is volgens mij het laaten in zien dat het of-comando eigenlijk het omgekeerd is van het en-comando , wat "en" doet voor true doet "of" voor false en omgkeerd

Veranderd door waanzin, 28 februari 2009 - 14:16


#11

waanzin

    waanzin


  • >250 berichten
  • 300 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 14:24

voor de tweede drieske heeft gelijk ik denk dat de oplosing weet maar denk eerste zelf eens na je moet de tweede // vervang door iets anders dan is het juist voor de rest is de "formul" juist naar mijn in ziens

probeer het ook eens te verantwoorden voor jezelf vind ik het moeilijkste





oplosing
Verborgen inhoud
vervang door en-comando (&&)

Veranderd door waanzin, 28 februari 2009 - 14:25


#12

HosteDenis

    HosteDenis


  • >250 berichten
  • 689 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 14:25

Khad het even snel getest in VB, daar lukt het wel in.


Van mij lukt het niet, want waanzin's oplossing klopt niet. !(!A || !B) geeft true als A en B true zijn... En het moet false geven.

Denis
"Her face shown like the sun that I strived to reach."

#13

waanzin

    waanzin


  • >250 berichten
  • 300 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 14:27

euu ik dacht dat het juist true moest geven als A en B true zijn dan snap ik de opgave niet

edit we praten toch over de derde

Veranderd door waanzin, 28 februari 2009 - 14:28


#14

HosteDenis

    HosteDenis


  • >250 berichten
  • 689 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 14:31

euu ik dacht dat het juist true moest geven als A en B true zijn dan snap ik de opgave niet


Nee, de opgave zegt:

2. Schrijf een expressie met de booleaanse variabelen A en B die alleen evalueert als 'true' wanneer A of B 'true' is, maar 'false' is wanneer A en B beide 'true' of 'false' zijn.

Wat wil zeggen dat A en B ofwel true en false moeten zijn, ofwel false en true. In geval ze true en true zijn, of false en false, dan moet de expressie ook false geven.


Van antwoord 1 zijn we dus zeker, en ik denk dat ik ondertussen zelf 2 heb gevonden. Nu nog 3.

  • (A && B) || (!A && !B)
  • (A && !B) || (!A && B)
  • Geen idee.

Ik denk nu wel dat ik 2 juist heb. Enkel 3 dus nog.


Denis

Veranderd door HosteDenis, 28 februari 2009 - 14:31

"Her face shown like the sun that I strived to reach."

#15

waanzin

    waanzin


  • >250 berichten
  • 300 berichten
  • Ervaren gebruiker

Geplaatst op 28 februari 2009 - 14:34

Veronderstel de expressie (a && b). Schrijf een gelijkwaardige expressie (die alleen evalueert als 'true' wanneer zowel A als B 'true' is zonder de operator '&&' te gebruiken).


dat is toch de bedoeling dat hij true geeft


edite er onstaat een misverstand mijn eerste posten gaan over antwoord op vrage 3

alleen post 11 gaat over vraag 2 ik zal de volgende keer duidelijker proberen te zijn sorie
edit2 ik stop met posten kun je eens rustig lezen

Veranderd door waanzin, 28 februari 2009 - 14:35






0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures