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 Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

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
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. Informatik • Physik • Technik • Biologie • Chemie
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.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]