Moderators: ArcherBarry, Fuzzwood
-
- Berichten: 689
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."
-
- Berichten: 10.179
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
-
- Berichten: 2.609
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
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
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}\)
.
-
- Berichten: 689
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."
-
- Berichten: 10.179
Voor de 3de zou ik waanzin zijn idee eigenlijk toepassen. Betwijfel trouwens dat java vermenigvuldigen van booleans kent
-
- Berichten: 689
Voor de 3de zou ik waanzin zijn idee eigenlijk toepassen. Betwijfel trouwens dat java vermenigvuldigen van booleans kent
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."
-
- Berichten: 2.609
Voor de 3de zou ik waanzin zijn idee eigenlijk toepassen. Betwijfel trouwens dat java vermenigvuldigen van booleans kent
Khad het even snel getest in VB, daar lukt het wel in.
-
- Berichten: 300
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
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 (&&)
-
- Berichten: 689
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
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
-
- Berichten: 689
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
"Her face shown like the sun that I strived to reach."
-
- Berichten: 300
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