Übungsaufgabe für alle :: Nr. 1

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

wunderkind

Betreff: Übungsaufgabe für alle :: Nr. 1

BeitragDi, Nov 09, 2004 22:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Studium wurden wir diese Woche mit untenstehender Aufgabe belästigt. Umzusetzen mit Pascal 6.0, welches eine Reihe Nachteile gegenüber BlitzBasic hat (Vorteile natürlich auch).

Dabei kam mir die Idee, dass diese Aufgabe auch all jene (und die anderen Wink) zu lösen versuchen können, die mit Programmiertsprachen generell noch nicht so fit sind.

Also, seht's euch an und versucht euch daran! Wenn Fragen sind, dann werden die (erfahreneren) Mitglieder dieses Forums euch sicher helfen. Die Spezies unter uns bitte ich darum, sich eben auf diese Hilfe zu beschränken und keine Komplettlösungen zu posten.

Die Aufgabe (Ende & Lösung: Fr. 12.11., 22:00)
Ein pyrotechnisches Experiment soll simuliert werden. Für das Experiment stehen 4 Zutaten zur Auswahl. Zudem wird gefragt ob die Raumtemperatur über 30°C ist, der Arbeitsbereich sauber ist und ob das Ansetzen der Mischung in einem Sicherheitsabzug durchgeführt wird. Die Mengen der einzelnen Zutaten 1 bis 4 werden vom Programm nacheinander abgefragt. Sollte eine Zutat nicht verwendet werden, dann gibt der Anwender als Menge 0 an. Anschließend werden die booleschen Fragen gestellt - ob die Raumtemperatur über 30°C ist und der Arbeitsbereich sicher ist.

Nun muss dass Programm ermitteln ob die Verbindung stabil ist, oder in die Luft geht. Das Programm gibt aus: Die Verbindung ist stabil: <TRUE/FALSE>

Dabei gibt es folgende Kriterienliste
  • Wenn die Zutaten 1 und 4 gemischt werden, explodiert die Mischung sofort.
  • Von jeder Zutat darf nur eine maximale Grammzahl genommen werden. Diese maximalen Grammzahlen sollen im Programm als Konstante hinterlegt werden. Die Werte dieser Konstanten müssen aber jeweils > 400g sein. Sollten diese Grammzahlen bei einer Substanz überschritten werden, dann explodiert das Gemisch.
  • Sollte die Summe der Menge von Zutat 2 und 3 > 600 g sein, dann explodiert das Gemisch.
  • Sollte der Raum über 30°C haben oder der Arbeitsbereich schmutzig sein, dann explodiert das Gemisch, außer der Chemiker arbeitet mit einem Sicherheitsabzug. In dem Fall - dass er mit einem Sicherheitsabzug arbeitet - kann die Raumtemperatur auch über 30°C betragen und der Raum dreckig sein.

Drastische Einschränkung: zur Lösung der Aufgabe dürfen keine Select / Case Anweisungen und keine if / then Abfragen benutzt werden.

Tipp: Die Aufgabe lässt sich über boolesche Operationen lösen. Wenn euch dieser Tipp verwirrt, dann ignoriert ihn Wink.
Weiterer Tipp: Sammelt die Informationen für euch auf einem Zettel und macht euch klar, was die Aufgabe tatsächlich von euch will.

Viel Erfolg!

Ctuchik

BeitragMi, Nov 10, 2004 0:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sollte funktionieren, habs aber nicht besonders ausführlich getestet!

Code: [AUSKLAPPEN]

editiert by Triton
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!

eXceptION

BeitragMi, Nov 10, 2004 0:56
Antworten mit Zitat
Benutzer-Profile anzeigen
-=Laugh Out Loud=-
Norweger...

Spreche aber verdammt gut 8086

BladeRunner

Moderator

BeitragMi, Nov 10, 2004 10:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Möööönsch Ctuchik:
wunderkind hat Folgendes geschrieben:
...keine Komplettlösungen zu posten.


Post die Lösung doch bitte erst nach "Ende" der Aufgabe, damit keiner "abschreiben" kann Wink

@ Topic: Gefällt mir sehr gut. Will mehr davon Exclamation
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

judos

BeitragMi, Nov 10, 2004 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
was ist wenn man pascal 6.0 nicht hat ???
kann man das irgend wo herunterladen ???
möchte es gerne einmal ausprobieren.....
 

David

BeitragMi, Nov 10, 2004 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Wenn du es nicht hast, dann nimmst du BlitzBasic... Rolling Eyes
Und vom runterladen würde ich abraten!
Bzw, die Version 5.0 gibts kostenlos (soweit ich weis) alles darüber kostet!

grüße
http://bl4ckd0g.funpic.de

Ctuchik

BeitragMi, Nov 10, 2004 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Möööönsch Ctuchik:

Post die Lösung doch bitte erst nach "Ende" der Aufgabe, damit keiner "abschreiben" kann Wink


Oh, tut mir leid, das hab ich irgendwie überlesen Confused
naja, jetz is eh egal jetzt isses weg, nochmal schreib ich des eh net Smile keine Lust und keine Zeit dazu!
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!

wunderkind

BeitragMi, Nov 10, 2004 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Aufgabe soll selbstverständlich mit BlitzBasic gelöst werden! Wink Turbo Pascal nutzt unsere FH zur Einführung in Programmierung allgemein.

Also: BlitzBasic benutzen.
 

Blitzkrieg Bop

BeitragMi, Nov 10, 2004 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hätte eventuell auch noch 1,2 Knobelaufgaben, für Turbo Pascal!
Machen wir in Informatik...
Die könnte ich dann hier reinsetzen. Natürlich kann man zur Lösung dann BB nutzen.
~ Hey Ho Let's Go ~

Twit

BeitragMi, Nov 10, 2004 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey das mit der aufgabe find ich cool. Da kommt mir wider die diskussion über das wikki buch in den sinn. Mann könnte doch son wikki buch oder ne website machen wo man dann ne mänge von aufgaben für Noob's finden kann.

simi

BeitragDo, Nov 11, 2004 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich habs auch mal gelöst.....

Jetzt ist mir etwas in den Sinn gekommen:

Man kann ja eigentlich if-Abfragen auch mit einer While-Schleife machen (habs nicht so gemacht!):
Code: [AUSKLAPPEN]

While x=y and b=0
  mach etwas
  exit
wend


Das ist ja auch nicht erlaubt, denke ich??

cu simi

pile

BeitragDo, Nov 11, 2004 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, da es in der Aufgabenstellung nicht erwähnt wurde.
Hab aber auch mal 2 Fragen: Soll das Programm Hinweise darauf geben warum die Mischung nun Explodiert ist und kann danach noch mal gemischt werden oder endet dann das Programm?
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%

wunderkind

BeitragDo, Nov 11, 2004 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
@simi
Also mit Schleifen die logischen Ergebnisse zu erfragen ist ziemlich ineffizient Wink.

@pile
Nein, der Hinweis muss nicht gegeben werden, zumal die Prüfung ohne If recht umständlich ist.

Wenn du willst., kannst du das Programm neu starten, das ist aber nicht Bestandteil der Aufgabe. Nett wäre es aber, wenn man das Ergebnis zu Gesicht bekommt Wink.
 

Timo

BeitragDo, Nov 11, 2004 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ha!! habs auch geschafft, diese Aufgabe gefällt mir, weil sie mal was ganz anderes ist. Hier merkt man mal, wie wichtig die Bedingungen sind *gg*.

@Simi: Das geht auch ohne Schleifen als Bedingungen... Smile

wo darf man denn mal seine Lösung präsentieren?

pile

BeitragDo, Nov 11, 2004 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Also sind while schleifen erlaubt. Simi hat schon recht, wenn sie richtig genutzt werden isses das Selbe wie ne If-Abfrage.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%

wunderkind

BeitragDo, Nov 11, 2004 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
@Timo
Lass den anderen noch bis Freitagabend Zeit. Dann kannst du hier deinen Lösungsweg posten und wir werden darauf hinweisen, was gut ist oder was besser gemacht werden könnte.

pile

BeitragDo, Nov 11, 2004 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab noch ne kleine Frage: Was soll passieren wenn man bei über 30 Grad arbeitet, also wo es ja eigendlich explodiert aber man bei jeder Zutat 0 Gramm angibt? Soll das ganze dann auch explodieren?
Ich weiß wenn man logisch überlegt kann es nicht explodieren, aber vieleicht gehört es ja trotzdem zur Aufgabenstellung.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%
 

Timo

BeitragDo, Nov 11, 2004 23:29
Antworten mit Zitat
Benutzer-Profile anzeigen
hast recht, das könnte man ja noch einbauen, das am Ende noch einmal geprüft wird, ob die Temp. über 30 Grad ist, und ob wir vielleicht gar kein Gemisch haben.

wunderkind

BeitragFr, Nov 12, 2004 10:40
Antworten mit Zitat
Benutzer-Profile anzeigen
pile hat Folgendes geschrieben:
Ich hab noch ne kleine Frage: Was soll passieren wenn man bei über 30 Grad arbeitet, also wo es ja eigendlich explodiert aber man bei jeder Zutat 0 Gramm angibt? Soll das ganze dann auch explodieren?

Richtig, das ist eigentlich eine Lücke. Also, wenn die Mengenangaben überall 0 sind, dann ist es unerheblich, was mit den Folgebedingungen ist. In diesem Fall ist die Verbindung stabil und es kommt zu keiner Explosion.

Wenn der Fall bisher nicht berücksichtigt wurde, macht das nichts. Es stand ja auch nicht in der Aufgabenstellung. Ist mir auch nicht aufgefallen.

eXceptION

BeitragFr, Nov 12, 2004 11:37
Antworten mit Zitat
Benutzer-Profile anzeigen
wunderkind hat Folgendes geschrieben:
Also mit Schleifen die logischen Ergebnisse zu erfragen ist ziemlich ineffizient


stimmt nicht, weil:Code: [AUSKLAPPEN]
while x=y and b=0
  mach etwas
  exit
wend
wird (ungefähr):Code: [AUSKLAPPEN]
0: mov  eax, [x] ;schieb x in eax
1: test eax, [y] ;x = y?
2: jnz  @9 ;wenn nicht, spring zur ende loop
3: mov  eax, [b] ;schieb b in eax
4: test eax, eax ;b gleich 0?
5: jnz  @9 ;wenn nicht, spring zur ende loop
6: { mach etwas }
7: jmp  @9 ;exit
8: jmp  @0 ;wend
9: { weitere befehle }
genau das gleiche wie IF..THEN, weil 8 (wend) nie ausgeführt wird...

EDIT: deswegen ist es tatsächlich eine IF..THEN abfrage, nur anders geschrieben... also ich würde sagen es ist genau so wenig erlaubt wie IF..THEN
Norweger...

Spreche aber verdammt gut 8086

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group