www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de