If - Else (Logik) < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Hallo zusammen:
Schreib in einer Woche eine wichtige DV Klausur und wollt deshalb fragen, ob ihr mir bei einigen Aufgaben weiterhelfen könnt. (Danke nochmal stovi0040)
4. If - Else (Logik
4.1 Schreiben Sie ein Prg., dass zwei Variablen a, b miteinander Und - Verknüpft (entsprechend der angegebenen Wahrheitstabelle) und das Erg. dieser Verknüpfung (E) auf den Monitor ausgibt.
E = a und b
b a E (Ergebnis)
False False False
False True False
True False False
True True True
Zur Lösung des Programms darf nur die If - Else Anweisung sowie der logische Operetor NOT benutzt werden.
Die Methode read Boolean () ließt einen Boolschen-Wert (True oder False)
über die Tastatur ein.
public class WS 05
.
.
.
public static void main (String args [] )
boolean a, b,E : ;
a= read Boolean () ; // eingabe true oder false
b= read Boolean () ; // eingabe true oder false
// ab hier sind Sie gefordert
if
|
|
|
|
Hallo DaniSan22!
> 4. If - Else (Logik
>
> 4.1 Schreiben Sie ein Prg., dass zwei Variablen a, b
> miteinander Und - Verknüpft (entsprechend der angegebenen
> Wahrheitstabelle) und das Erg. dieser Verknüpfung (E) auf
> den Monitor ausgibt.
>
> E = a und b
>
> b a E (Ergebnis)
> False False False
> False True False
> True False False
> True True True
>
> Zur Lösung des Programms darf nur die If - Else Anweisung
> sowie der logische Operetor NOT benutzt werden.
> Die Methode read Boolean () ließt einen Boolschen-Wert
> (True oder False)
> über die Tastatur ein.
>
> public class WS 05
> .
> .
> .
> public static void main (String args [] )
> boolean a, b,E : ;
> a= read Boolean () ; // eingabe true oder false
> b= read Boolean () ; // eingabe true oder false
> // ab hier sind Sie gefordert
> if
Ginge nicht einfach:
if(a==true) then
if(b==true) then true
else false
else false
? Wobei ich erstens jetzt die Syntax nicht kenne und zweitens mir nicht sicher bin, ob die beiden "else's" nötig sind, oder ob als default-Wert sonst sowieso false ausgegeben würde.
Viele Grüße
Bastiane
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:36 Mi 31.01.2007 | Autor: | Frank05 |
> Ginge nicht einfach:
> if(a==true) then
> if(b==true) then true
> else false
> else false
>
> ? Wobei ich erstens jetzt die Syntax nicht kenne und
> zweitens mir nicht sicher bin, ob die beiden "else's" nötig
> sind, oder ob als default-Wert sonst sowieso false
> ausgegeben würde.
Es wundert mich, dass hier überhaupt eine Antwort kommt. Vielleicht ist meine Einstellung hier auch einfach nur zu extrem, aber mir stößt hier so einiges auf. Ohne den OP oder sonstwen hier angreifen zu wollen würde mich mal interessieren, wie das andere hier sehen. Hier sind ein paar der Punkte, die mir Kopfschmerzen bereiten wenn ich so eine Frage lese:
- Der OP postet maßenweise Aufgaben im Hausaufgabenstil, die alle mit einem einfachen Tutorial sehr leicht zu lösen sind. Ich erwarte eigentlich von jedem Erstsemester der eine Programmiervorlesung jetzt für etwa 3 Monate besucht hat, dass er/sie über derartige Aufgaben nur noch müde lächelt.
- Natürlich kann es sein, dass es Verständnisprobleme gibt. Dass dies aber bei nahezu allen elementaren Kontrollstrukturen der Fall ist halte ich für äußerst unwahrscheinlich. Nichtsdestotrotz erwarte ich dann eine genauere Beschreibung, was dem OP nun Probleme bereitet.
- In einer Woche Klausur und jetzt panikartig Fragen zu den Grundlagen posten? Das zeugt für mich in erster Linie von mangelndem Interesse.
- Aufgaben werden gestellt, ohne dass im Geringsten klar wird, ob/wie sich der OP mit diesen Aufgaben überhaupt auseinandergesetzt hat. Was soll eine Antwort hier überhaupt ergeben? Einem Kandidaten der diesen Stoff nicht begriffen hat fertige Lösungen zu präsentieren ist imo Zeitverschwendung. Damit besteht man keine Prüfungen. Aber ohne zu wissen, was die Probleme bereitet ist eine vernünftige (Vor-)Hilfe auch nicht möglich.
PS: Was die Syntax betrifft, so ist diese oBdA korrekt. Da der OP nicht einmal eine Programmiersprache angegeben hat definieren wir uns die Sprache eben so, dass deine Syntax stimmt.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:05 Mi 31.01.2007 | Autor: | DaniSan22 |
Du hast vollkommen Recht Frank.Dass, was ich hier gemacht hab, war nicht unsinnig.
Sorry nochmal.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:32 Do 01.02.2007 | Autor: | Karl_Pech |
Hallo Frank,
> Vielleicht ist meine Einstellung hier auch einfach nur zu
> extrem
Hmm, nee wieso?
> - Der OP postet maßenweise Aufgaben im Hausaufgabenstil,
> die alle mit einem einfachen Tutorial sehr leicht zu lösen
> sind.
Ja, im Prinzip gebe ich dir da Recht, ein Bißchen mehr Eigeninitiative vom Fragesteller wäre schon nicht schlecht (Punkt 6 der Forenregeln)... . (Also nicht bloß Fragen der Art <Einleitungssatz><Aufgabe>, wobei <Einleitungssatz> ::= "Ich schreibe in n Wochen eine wichtige ...".)
> Es wundert mich, dass hier überhaupt eine Antwort kommt.
Das ist eigentlich ganz normal hier. Die meisten Leute, die hier viel antworten, sind nämlich Sternchenjäger mußt du wissen.
> PS: Was die Syntax betrifft, so ist diese oBdA korrekt. Da
> der OP nicht einmal eine Programmiersprache angegeben hat
> definieren wir uns die Sprache eben so, dass deine Syntax
> stimmt.
hehe ... Das merke ich mir für meine zukünftigen Prüfungen.
Grüße
Karl
|
|
|
|
|
Hallo nochmal .....
Wäre dies eine mögliche Antwort.
if
System.out.println("a und b= " + E);
if (a)
if (b)
E = true;
else
E = false;
else {
E = false;
}
System.out.println ("a und b = " + E);
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 11:52 Do 01.02.2007 | Autor: | Frank05 |
> Wäre dies eine mögliche Antwort.
So bringt das doch gleich viel mehr
> if
> System.out.println("a und b= " + E);
> if (a)
> if (b)
> E = true;
> else
> E = false;
> else {
> E = false;
> }
> System.out.println ("a und b = " + E);
Hier ist wohl was bei der Formatierung schiefgegangen. Das erste if mit dem println muss natürlich weg. Danach ist es soweit in Ordnung, falls du die Variable E noch ordentlich deklarierst.
Übrigens kannst du Ausdrücke in der Art
if (b) E = true; else E = false;
auch einfach als E = b; schreiben.
|
|
|
|
|
Hi Frank!
Danke für deine Hilfe.
Habs nochmal versucht.
boolean E;
boolean a = true;
boolean b = false;
1: |
| 2: | If (a)
| 3: | If(b) {
| 4: | E =true;
| 5: | System.out.print("a und b oder nicht-b=" +E+"\n\n");}
| 6: | If(!a)
| 7: | If(!b) {
| 8: | E =true;
| 9: | System.out.print("a und b oder nicht-b="+E+"\n\n");}
| 10: |
| 11: | Else = false;
| 12: | System.out.print("a und b oder nicht-b="+E+"\n\n");}
| 13: | }
| 14: | }
| 15: |
|
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 12:26 Fr 02.02.2007 | Autor: | Frank05 |
> Habs nochmal versucht.
Vorher sahs besser aus.
1: |
| 2: | boolean E;
| 3: | boolean a = true;
| 4: | boolean b = false;
| 5: |
| 6: | If (a)
| 7: | If(b) {
| 8: | E =true;
| 9: | System.out.print("a und b oder nicht-b="
| 10: | +E+"\n\n");}
|
Wenn du E nur benutzt um es gleich danach wieder auszugeben kannst du dir die Variable auch sparen. Davon abgesehen was passiert wenn a==true und b==false? Dann gibt es hier gar keine Ausgabe!
1: |
| 2: | If(!a)
| 3: | If(!b) {
| 4: | E =true;
| 5: | System.out.print("a und b oder
| 6: | nicht-b="+E+"\n\n");}
|
Hier nochmal der gleiche Fehler für den Fall a==false und b==true.
1: |
| 2: | Else = false;
| 3: | System.out.print("a und b oder nicht-b="+E+"\n\n");[red][b]}[/b][/red]
| 4: | [red][b]}[/b][/red]
| 5: | [red][b]}[/b][/red]
|
Hier sind viel zu viele falsche Klammern unterwegs. Versuch doch deine Programme auch mal zu kompilieren und zu testen. Die Zuweisung Else=false; funktioniert ebenfalls nicht, weil es keine Variable namens Else gibt in deinem Programm.
Zum größten Teil mögen das nun lediglich Flüchtigkeitsfehler sein, aber es erweckt wieder den Eindruck, dass du dich nur unzureichend mit der Materie auseinandersetzt. Ich lege dir dringend nahe dir eine Java-Umgebung zu installieren und ein paar kleine Programme dieser Art auch wirklich mal zum Laufen zu bringen um diese ganzen Kleinigkeiten in den Griff zu bekommen. Auf 'Papier' zu programmieren ist gerade am Anfang sehr schwer ohne die Unterstützung eines Compilers! Und gerade wenn du bald eine Klausur hast ist der Programm schreiben - überprüfen - neu schreiben Zyklus wesentlich schneller mit einem Compiler zu bewerkstelligen als hier über das Forum.
Wenn du dich dann über Ergebnisse wunderst oder wenn du einen bestimmten Compilerfehler nicht verstehst melde dich nochmal. Ansonsten aber bitte ein syntaktisch korrektes Programm angeben, denn hier helfen alle viel lieber wenn es um Inhaltliches geht.
PS: Wenn du die Aufgabenstellung abgewandelt hast und jetzt wirklich "a und b oder nicht b" berechnen willst, dann solltest du auch gleich beachten, dass [mm](a \wedge b) \vee \neg b = a \vee \neg b[/mm] gilt.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:20 Fr 02.02.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|