matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

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

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenC/C++C++ Builder
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
Forum "C/C++" - C++ Builder
C++ Builder < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

C++ Builder: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:39 Mo 10.04.2006
Autor: espritgirl

Hey ihr!

Ich habe leider bei den letzten Informatikstunden nicht teilnehmen können, ich war krank. Ich habe insgesamt 3 doppel Stunden verpasst, muss denoch in zwei Wochen die Arbeit nach schreiben.

Ich hoffe, ihr könnt mir meine Fragen klären!

Ich muss wissen, was eine while und eine if Struktur ist, wann diese verwendet werden, wie die Befehle lauten, wie der Aufbau ist. Dies wird garantiert ein Schwerpunkt der Arbeit werden und ich kenne mich nicht aus damit.

Ich hoffe ihr könnt mir helfen! Danke schon mal im vorraus!

Lg,
Sarah

        
Bezug
C++ Builder: Antwort
Status: (Antwort) fertig Status 
Datum: 17:06 Mo 10.04.2006
Autor: kretschmer

Hallo,

also eigentlich sind beide Anweisungen recht einfach. Übersetz Dir doch mal If. Das bedeutet ja soviel wie falls. Wenn Du jetzt in einem Programm etwas haben möchtest von der "falls <xy> dann mache <abc> ansonsten <def>" dann ist if genau richtig (eventuell ohne ansonsten <def>). Möchtest Du wiederholt etwas machen, dann ist eine "solange <xy> mache <abc>" garnicht so schlecht. Die Frage die sich stellt ist dann natürlich nur, wie muss das genau in C/C++ ausschauen und was kann man für <xy> und <abc> einsetzen.

Also konkreter. Nehmen wir an Du hast zwei Variablen x und y und möchtest ausgeben "beide gleich", "x größer" oder "y größer" je nachdem was zutrifft. Also Du hast sowas wie "falls x gleich y ist, dann gebe "beide gleich" aus, anonsten falls x größer y ist gebe "x größer" aus ansonsten gebe "y größer" aus. In C/C++ ist das <xy> jetzt ein Ausdruck, d.h. ein Term, der einen Wert "zurückgibt" (z.B. if, while tun das nicht). Es muss ein Boolscher Ausdruck im allgemeinen sein (d.h. mit Wahrheitswerten). Allerdings wird in C eine Zahl dafür mißbraucht, wobei 0 identisch zu falsch ist und nicht 0 wahr. Aber es gibt die logischen Operator, wie Gleichheit (==), Ungleichheit (!=), Kleiner (<), Kleinergleich (<=), etc. Aufgepasst, während "=" die Zuweisung signalisiert, ist "==" für den Test auf Gleichheit. "=" ist auch ein Operator, der einen Wert zurück gibt, da muss man aufpassen...
Also zurück, zu unserem eigentlich Beispiel:
falls x gleich y ist, dann gebe "gleich" aus übersetzt sich zu
if (x == y) cout << "beide gleich";
das "ansonsten" leitet man mit "else" ein. Also würde das ganze sein:
if (x == y) cout << "beide gleich"; else if (x > y) cout << "x größer"; else cout << "y größer";

Manchmal muss man aber mehr machen als eine Ausgabe. Mehrere Anweisungen werden dafür eventuell benötigt. Dann muss man diese Anweisungen in geschweifte Klammern setzen. Wie zum Beispiel:

if (x == y) { cout << "beide gleich"; z = x; } else if (x > y) { cout << "x größer"; z = x; } else { cout << "y größer"; z = y; }

(Kleine Aufgabe für Dich: was hat y nach dieser Anweisung für einen Wert?)

Konkret, man hat etwas von der Form
if (<boolscher Ausdruck>) <anweisung>
oder
if (<boolscher Ausdruck>) <anweisung> else <anweisung>
wobei <anweisung> entweder eine einzelne Anweisung ist oder ein Block eingeschlossen durch geschweifte Klammern.


Entwas leichter fällt jetzt hoffentlich eine while-Schleife einzusetzen. Nehmen wir an, Du möchtest etwas wiederholt machen. Als einfaches Beispiel sagen wir, dass wir die Zahlen 1 bis 1000 ausgeben möchten, ohne dazu immer wieder den Code zu kopieren (z.B. was ist wenn wir das auf 10000 ändern möchten). Wir wollen etwas von der Art: solange ein Zähler kleiner oder gleich 1000 ist, gebe diesen Zähler aus. solange == while ->
while (zaehler <= 1000) { cout << zahler << "\n"; zaehler = zaehler + 1; }
um genau zu sein, müssen wir natürlich auch den Zähler deklarieren und initialisieren:

int zaehler = 1;
while (zaehler <= 1000) { cout << zahler << "\n"; zaehler = zaehler + 1; }

wir können das auch vereinfachen:

int zaehler = 1;
while (zaehler <= 1000) cout << zaehler++ << "\n";

aber das ist in meinen Augen schlechter Programmierstil.

Konkret sieht eine While-schleife wie folgt aus
while (<boolscher ausdruck>) <anweisung>
wobei, wie oben, <anweisung> eine einzelne Anweisung ist, oder ein Anweisungsblock in geschweiften Klammern.


Wichtig ist bei sowas die Unterscheidung zwischen "=" und "==". Folgendes ist legaler C++ Code:

if (i = 0) cout << "i = 0";

die Ausgabe wird allerdings nie erscheinen. Denn was wird gemacht. Durch "i = 0" wird der Variablen "i" der Wert 0 zugeordnet, das ist auch das Ergebnis der "i = 0" Operation. Das wird als "falsch" interpretiert. Dagegen würde aber
if (i == 0) cout << "i = 0";
das gewünschte Ergebnis liefern, denn "==" Vergleicht, "=" weist zu.

Ich hoffe das war ausführlich genug.

--
Gruß
Matthias

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


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]