Kann mir jemand bei Aufgaben zu Java helfen?-Anfänger?
Hallo, die Aufgabe lautet: 5) Die Variable ch sei vom Typ char. Geben Sie einen logischen Ausdruck an, mit dem Sie testen können, ob ch eine Dezimalziffer ist. Stellen Sie fest, ob ch ein großes Y oder ein kleines y ist. Stellen Sie fest, ob ch ein Vokal (Selbstlaut; a, e, i, o oder u) ist.
und Aufgabe 6 ist: 6) Die folgenden Deklarationen seien gegeben: boolean p = true, q = false; Welche logischen Werte liefern die Ausdrücke p ^ q (p & !q) | (q & !p) (p | !q) & (!p | q) Geben Sie alle logischen Werte für die Variablen p und q an, welche die Ausdrücke p & !q false und p | (p != q) true machen. Stellen Sie dazu eine Wertetabelle auf. Sind die folgenden logischen Ausdrücke äquivalent? Falls nicht, geben Sie Werte für p und q an, die zeigen, dass die Ausdrücke nicht äquivalent sind. Stellen Sie auch hier eine Wertetabelle auf. p != q !(p & q) p != q (p | q) & !(p & q) Welchen Wert hat die boolesche Variable bexp nach jeder Zuweisung? bexp = false != true; bexp = !false;
ich hoffe jemand kann mir ein paar Starthilfe oder nur Hinweise/Tipps geben, darüber wäre ich sehr dankbar.
3 Antworten
5a) Die Zahlen 48 und 57 stehen im ASCII-Code für die Zeichen 0 und 9. Prüfe durch Vergleiche, ob sich die Variable innerhalb dieser Grenzen bewegt (48 <= ch <= 57).
So ein Vergleich kann so aussehen:
boolean result = ch == 'A' || ch == 'B';
In diesem Fall ist er dann wahr, wenn die Variable entweder das Zeichen A oder das Zeichen B als Wert in sich trägt.
5b) Kannst du anhand des obigen Beispiels von mir lösen.
6) Setze die Werte direkt ein und werte mit Hilfe dieser Tabelle für die Rangfolge der Operatoren aus: http://openbook.rheinwerk-verlag.de/javainsel/javainsel_02_004.html#dodtpb218d93c-4f16-4a70-ac88-2cae6c5ba95e
Für deine 5 hätte ich diesen Code als Beispiellösung:
char ch = 23;
if(ch == 24)
{
// Ausgabe, dass ch eine Dezimalzahl ist
}
if(ch == 'Y')
{
// Ausgabe, dass ch das große Y ist
}
else if (ch == 'y')
{
// Ausgabe, dass ch das große Y ist
}
else if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' ||ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U')
{
// ch ist ein SelbstlautM geht wahrscheinlich noch einfacher...
}
Bei deiner anderen Aufgabe bin ich leider überfragt. Nur bei der Variable bexp vom Typ Boolean kann ich dir sagen, dass sie in beiden Fällen true ist.
Hoffentlich konnte ich dir weiterhelfen.
zu 5)
Kennst du schon switch ... case? Das ist dieser Art von Fragestellung angepasst.
bool istZiffer = false; bool istY = false; bool istSelbstlaut = false;
switch (ch) {
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
istZiffer = true; break;
case 'Y': case 'y':
istY = true; break;
// Selbstlaute ...
}
zu 6) a): hier geht es um boolesche Operatoren und Operatorpräzedenzen. HIer müsste ich auch nachschauen, ob ^ gleichrangig, vorrangig oder nachrangig zu | ist. (& ist vorrangig gegenüber |)
Zu 6) b): Schleife für Wertetabelle: siehe z. B. http://stackoverflow.com/questions/2383209/java-looping-on-the-two-boolean-values-false-true
Bei Aufgabe 5 ist ein logischer Ausdruck gefordert, keine Kontrollstruktur.
Zum einen ist keine Kontrollstruktur gefragt, zum anderen steht die 24 für den Pfeil nach oben: . Das ist also keine Dezimalzahl.