[informatica] programmeren in java met bluej

Moderators: ArcherBarry, Fuzzwood

Gebruikersavatar
Berichten: 689

[informatica] programmeren in java met bluej

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):
  1. 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.
  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.
  3. 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:
  1. (A && B) || (!A && !B), hier ben ik wel zeker van.
  2. ((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.
  3. Geen idee.
"Her face shown like the sun that I strived to reach."

Gebruikersavatar
Berichten: 10.179

Re: [informatica] programmeren in java met bluej

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.

Gebruikersavatar
Berichten: 2.609

Re: [informatica] programmeren in java met bluej

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.

Berichten: 300

Re: [informatica] programmeren in java met bluej

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.

Berichten: 582

Re: [informatica] programmeren in java met bluej

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

Pas De Morgan toe voor de derde...
\( A \cdot B = \overline{A}+\overline{B}\)
.

Gebruikersavatar
Berichten: 689

Re: [informatica] programmeren in java met bluej

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:

Code: Selecteer alles

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
"Her face shown like the sun that I strived to reach."

Gebruikersavatar
Berichten: 10.179

Re: [informatica] programmeren in java met bluej

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.

Gebruikersavatar
Berichten: 689

Re: [informatica] programmeren in java met bluej

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

Gebruikersavatar
Berichten: 2.609

Re: [informatica] programmeren in java met bluej

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.

Berichten: 300

Re: [informatica] programmeren in java met bluej

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

Berichten: 300

Re: [informatica] programmeren in java met bluej

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
Spoiler: [+]
vervang door en-comando (&&)

Gebruikersavatar
Berichten: 689

Re: [informatica] programmeren in java met bluej

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

Berichten: 300

Re: [informatica] programmeren in java met bluej

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

Gebruikersavatar
Berichten: 689

Re: [informatica] programmeren in java met bluej

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.
  1. (A && B) || (!A && !B)
  2. (A && !B) || (!A && B)
  3. Geen idee.
Ik denk nu wel dat ik 2 juist heb. Enkel 3 dus nog.

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

Berichten: 300

Re: [informatica] programmeren in java met bluej

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

Reageer