www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenC/C++C++ Builder Aufgabe
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "C/C++" - C++ Builder Aufgabe
C++ Builder Aufgabe < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

C++ Builder Aufgabe: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:58 Do 04.05.2006
Autor: espritgirl

Aufgabe
1)
Programmiere folgendes Würfelspiel für eine Person, das durch den Button1Click aktiviert werden soll.

* Es werden zufällig zwei Zahlen (mit herkömmlichen Würfel) gewürfelt
* Wenn die Summe der gewürfelten Augenzahl kleiner als 4 oder größer als 8 ist, hat der Spieler gewonnen, ansonsten verloren.

Schreibe das Programm ohne die vom Builder automatisch angegebenen Inhalte.
randomize () kann mit in den Button programiert werden.

2)
Mit a=random(5) und b=random(4)+1 werden zwei Zahlen auf Knopfdruck gewählt. Der Spieler erhält zwei Punkte, wenn beide gleich sind und einen Punkt, wenn die erste Zahl (a) gerade ist. Ansonsten erhält er keinen Punkt. Bei Mehrdeutigkeiten erhält der Benutzer immer die größere Punktzahl.

Ich denke, ich konnte das Programm ohne größere Probleme schreiben, dennoch kommen mir ein paar Fragen auf, die ich in rot schreiben werde.
1)
int a, b;

Button1Click

randomize ();
a=random (6)+1 heißt das dann, das es Zahlen von 1-6 gibt?
b=random (6)+1

if ((a+b>8))  [mm] \parallel [/mm] 8a+b<4))
Label1->Caption"Sie haben gewonnen";
else
  Label1->Caption"Sie haben verloren";



2)
int a,b;

Button1Click

randomize ():
a=random (5);
b=random (4)+1;

if ((a==0) [mm] \parallel (a==2)\parallel(a==4)) [/mm]
Label1->Caption"Sie erhalten zwei Punkte!";
if (a==b)
Label1->Caption"Sie erhalten zwei Punkte!";
else
Label1->Caption"Sie erhalten keine Punkte!";


Stimmen die zwei Programmierungen?

Ich habe aber noch ein paar Verständnisfragen:

Wann benutzt man String?

Und was heißt z.B.
"Kapital ++"?

Und die letzte Frage:

Wenn man
int z1;   definiert, dann muss man ja auch IntToStr(z1); irgendwann programmieren, aber wieso ist das so? Ich verstehe nicht, wieso eine Zahl, die man in ein edit eingeben kann dann in einen Text oder anders rum umgewandelt werden muss!

Ich hoffe, ihr könnt mir helfen!

LG,
Sarah

        
Bezug
C++ Builder Aufgabe: Antwort
Status: (Antwort) fertig Status 
Datum: 09:35 Fr 05.05.2006
Autor: Frank05


>  Ich denke, ich konnte das Programm ohne größere Probleme
> schreiben, dennoch kommen mir ein paar Fragen auf, die ich
> in rot schreiben werde.

Ich hab nie mit dem C++ Builder gearbeitet, daher werde ich mich nur auf die eigentlichen C++ Inhalte konzentrieren. Aber scheinbar hat dir die Zuordnung des Codes zu den Buttons ja auch keine Probleme bereitet.

>  1)
>  int a, b;
>  
> Button1Click
>  
> randomize ();
>  a=random (6)+1 heißt das dann, das es Zahlen von 1-6
> gibt?

Normalerweise ja. Die meisten random(z) Implementierungen sind so gehalten, dass sie ein Ergebnis aus [mm]\Z_z[/mm] liefern, also von 0 bis z-1.

>  b=random (6)+1
>  
> if ((a+b>8))  [mm]\parallel[/mm] 8a+b<4))

Ich nehme an die zweite 8 ist ein Tippfehler?

>   Label1->Caption"Sie haben gewonnen";
>   else
>    Label1->Caption"Sie haben verloren";
>  
>
>
> 2)
>  int a,b;
>  
> Button1Click
>  
> randomize ():
>  a=random (5);
>  b=random (4)+1;
>  
> if ((a==0) [mm]\parallel (a==2)\parallel(a==4))[/mm]

'Gerade' und 'ungerade' testet man vorzugsweise mit der Modulo-Operation. Es geht zwar so auch, aber sobald der Wertebereich größer als der eines Würfels ist wird es etwas umständlich.
if ( (a % 2) == 0 ) Label1->Caption("a ist gerade");
else if ( (a % 2) == 1) Label1->Caption("a ist ungerade");
else Label1->Caption("den Fall gibts nicht [0 wäre gerade]");

> Label1->Caption"Sie erhalten zwei Punkte!";

Das stimmt nicht ganz mit der Aufgabenstellung überein.. in dem Fall soll es nur einen Punkt geben (und dann musst du noch mit der Reihenfolge wegen Mehrdeutigkeit aufpassen).

>  if (a==b)
>   Label1->Caption"Sie erhalten zwei Punkte!";
>  else
>   Label1->Caption"Sie erhalten keine Punkte!";
>  
>
> Stimmen die zwei Programmierungen?

Sieht gut aus soweit.

> Ich habe aber noch ein paar Verständnisfragen:
>  
> Wann benutzt man String?

String ist ein Datentyp, der Zeichenketten speichert. Da sehr sehr viel in textueller Form verarbeitet werden kann wird dieser Typ entsprechend häufig verwendet. z.B. könntest du anstatt die Caption jedesmal mit einem konstanten String zu ändern den Text dynamisch erzeugen, indem du eine String Variable verwendest, den Text z.B. abhängig vom Würfelwurf erzeugst und darin speicherst und ihn dann an die Caption übergibst.

> Und was heißt z.B.
> "Kapital ++"?

Keine Ahnung woher das nun kommt, aber alles was zwischen diesen Anführungszeichen steht ist einfach nur ein Text.

> Und die letzte Frage:
>  
> Wenn man
>  int z1;   definiert, dann muss man ja auch IntToStr(z1);
> irgendwann programmieren, aber wieso ist das so? Ich
> verstehe nicht, wieso eine Zahl, die man in ein edit
> eingeben kann dann in einen Text oder anders rum
> umgewandelt werden muss!

Weil sich die Datentypen unterscheiden. Ein int ist eine Zahl und in einem edit Feld gibt man einen Text ein. Das sind prinzipiell unterschiedliche Dinge und auch wenn du erwartest, dass in dem Text eine Zahl steht, dann ist 3 immer noch etwas anderes als "3". Die entsprechende Umwandlung kann dann auch fehlschlagen, wenn z.B. "a3b" eingegeben wird.

> Ich hoffe, ihr könnt mir helfen!

Wie gesagt ich hatte nie mit dem C++ Builder zu tun, aber ich hoffe ich konnte dir ein paar Sachen klarer machen.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]