www.vorkurse.de
Ein Projekt von vorhilfe.de
Die Online-Kurse der Vorhilfe

E-Learning leicht gemacht.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Forenbaum
^ Forenbaum
Status Mathe-Vorkurse
  Status Organisatorisches
  Status Schule
    Status Wiederholung Algebra
    Status Einführung Analysis
    Status Einführung Analytisc
    Status VK 21: Mathematik 6.
    Status VK 37: Kurvendiskussionen
    Status VK Abivorbereitungen
  Status Universität
    Status Lerngruppe LinAlg
    Status VK 13 Analysis I FH
    Status Algebra 2006
    Status VK 22: Algebra 2007
    Status GruMiHH 06
    Status VK 58: Algebra 1
    Status VK 59: Lineare Algebra
    Status VK 60: Analysis
    Status Wahrscheinlichkeitst

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
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.vorkurse.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]