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
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.vorhilfe.de