WinFuture-Forum.de: C++ Schleifen ///help! - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

C++ Schleifen ///help!


#1 Mitglied ist offline   dRead 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 19. Dezember 04
  • Reputation: 0

  geschrieben 19. Dezember 2004 - 16:48

Hi @ all

Es geht sich um folgendes:
Ich lerne zur Zeit in der Schule c++. Aktuelles Thema: Schleifen.

Das Problem ist, ich blick bei den ganzen Schleifen nicht ganz durch wofür man welche verwendet. ;D

Um folgende Schleifen handelt es sich:

FOR
WHILE
DO WHILE

kann mir vielleicht jemand kurz die wichtigsten merkmale der schleifen nennen, wozu man sie anwendet und worin sie sich unterscheiden ?!? Ein link zu einer guten HP, auf der die einzelnen schleifen erklärt sind, würde mir auch schon weiterhelfen (hab bis jetzt nichts brauchbares gefunden).

besten dank im voraus
stephan
0

Anzeige



#2 Mitglied ist offline   stefanra 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.208
  • Beigetreten: 13. September 04
  • Reputation: 1

geschrieben 19. Dezember 2004 - 16:50

Hallo,
willkommen bei uns im Forum! ;D

Vielleicht hilft dir das weiter:
http://tutorial.scho...t/schleifen.htm

http://www.math.uni-wuppertal.de/~axel/skr...oop/oop5_4.html
0

#3 Mitglied ist offline   I3lack0ut 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.047
  • Beigetreten: 14. Oktober 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart

geschrieben 19. Dezember 2004 - 16:52

Die For Schleife wird immer x-mal durchlaufen

Die While schleife nur solange eine bestimmte Bedingung erfüllt ist

Die Do While genauso wie die While Schleife, jedoch wird sie auf jeden Fall 1 mal durchlaufen
Never run a changing system.
Micro Game Reviews (Mein Blog)
0

#4 Mitglied ist offline   dRead 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 19. Dezember 04
  • Reputation: 0

geschrieben 19. Dezember 2004 - 17:18

ok, danke euch beiden.

doch da bleibt noch einiges offen:

Hab zur for schleife hier stehen das sie "kopfgesteuert" ist, was bedeutet das ?
das die "durchlaufanzahl" ganz am anfang bestimmt wird oder wie?

Ich "programmiere" hier zu hause mit Dev-C++ und damit das "programm" nicht sofort schließen soll (beim öffnen) braucht man da einen befehl.. irgendwas mit system ende, kann mir den jemand sagen?
0

#5 Mitglied ist offline   dRead 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 19. Dezember 04
  • Reputation: 0

geschrieben 19. Dezember 2004 - 17:27

nochwas, wenn ich anstatt

for(int i=0;i<2;++i)

for(int i=0;i<2;+i) schreibe, was genau ändert sich dann (was passiert?)

einfach: wofür steht +i, ++i ?!?!?
0

#6 Mitglied ist offline   DK2000 

  • Gruppe: Administration
  • Beiträge: 19.797
  • Beigetreten: 19. August 04
  • Reputation: 1.435
  • Geschlecht:Männlich
  • Wohnort:Oben auf dem Berg
  • Interessen:Essen, PC, Filme, TV Serien...

geschrieben 19. Dezember 2004 - 17:28

Ja. Bei kopfgesteuerten schleifen wird die Bedingungm welche zum Abbruch der Schleife führt, am Anfabg gesetzt. Do ... While () ist dagegen eine Fußschleife.

For Schleifen werden immer dann gerne genommen, wenn die Anzahl der Schleifendurchgänge von Anfang an bekannt sind, while Schleifen gerne dann, wenn die Anzahl der Schleifendurchgänge nicht bekannt ist, also wann die Bedingung erfüllt ist und wenn zu Anfang die Bedingung nicht erfüllt ist (wobei Do .... While mindestens einen Durchlauf haben, da die Bedingung am Ende geprüft wird).
Ich bin kein Toilettenpapier-Hamster.
---
Ich bin ein kleiner, schnickeldischnuckeliger Tiger aus dem Schwarzwald.
Alle haben mich ganz dolle lila lieb.
0

#7 Mitglied ist offline   Matze 

  • Gruppe: aktive Mitglieder
  • Beiträge: 666
  • Beigetreten: 29. Februar 04
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 19. Dezember 2004 - 18:09

do... While macht immer mindestens einen Durchgang (fußgesteuert). Bei while hingegen muss direkt oben die Bedingung zutreffen damit die Schleife durchlaufen wird. (Kopfgesteuert)

i = 10;
do{
// Schleife läuft einmal durch obwohl i = 10 ist
}while(i != 10);

while(i != 10){
// Schleife läuft gar nicht durch
}


i++ bzw. ++i erhöht i um 1 und i-- bzw. --i senkt i um 1.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
0

#8 Mitglied ist offline   dRead 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 19. Dezember 04
  • Reputation: 0

geschrieben 19. Dezember 2004 - 18:26

danke.

aber wenn ich i+ nehme, ist das dann ne endlosschleife? ;)
0

#9 Mitglied ist offline   oliver2642 

  • Gruppe: aktive Mitglieder
  • Beiträge: 60
  • Beigetreten: 26. Juli 04
  • Reputation: 0
  • Interessen:Programmieren, Computer zusammenbauen/reparieren

geschrieben 19. Dezember 2004 - 18:45

Hi!

Also zu deiner letzten Frage:
++y;
Dies ist eine Präfixnotation (++ vor der Variable)

y++;
Dies ist eine Postfixnotation (++ nach der Variable)

Das ganze geht natürlich auch mit --
Es bedeutet übrigens, dass die Variable x um einst inkrementiert/dekrementiert (erhöht/erniedrigt) wird. Postfix und Präfixnotation sind beide gleich.

Mit dem einzelnen Plus meinst du wahrscheinlich das hier:
for (x=-1; x<1; x+=0.1)
Dies bedeutet, dass zu x 0.1 addiert wird.

Noch zur While - Do-While - Schleife:
Bei der While-Schleife erfolgt die Überprüfung am Anfang, bei der Do-While erst am Ende der Schleife, dies bedeutet, dass die Do-While-Schleife mindestens sicher einmal durchlaufen wird. Im Gegensatz zur While-Schleife muss dies nicht dringend der Fall sein, wenn die Bedingung nicht beim Eintreten in die While-Schleife erfüllt wird.

Ich hoffe ich konnte dir helfen
mfg Oliver

Dieser Beitrag wurde von oliver2642 bearbeitet: 19. Dezember 2004 - 18:55

Wer fragt, ist für fünf Minuten ein Idiot, wer nicht, bleibt für sein Leben einer!

Wer zu spät kommt, den bestraft das Leben; wer zu früh, den die Frau!
0

#10 Mitglied ist offline   dRead 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 19. Dezember 04
  • Reputation: 0

geschrieben 19. Dezember 2004 - 19:11

vielen dank, ist schon um einiges durchsichtiger geworden, die geschichte mit den schleifen. Doch/deshalb schluss für heute... ;) ;)

Kann gut sein das ich in den naechsten tagen nochmal auf euch zurueckgreifen muss ;)

thx & gruß,
stephan
0

#11 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 20. Dezember 2004 - 03:23

Zitat

Postfix und Präfixnotation sind beide gleich.

Nein, Postfix-Plusplus steht für Postinkrement (bzw. -- für dekrement) und Präfix für Preinkrement.

i=0;
j=((i++)==0)?0:1;
printf("%i",j);

> 1

i=0;
j=((++i)==0)?0:1;
printf("%i",j);

> 0
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#12 Mitglied ist offline   dRead 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 19. Dezember 04
  • Reputation: 0

geschrieben 20. Dezember 2004 - 17:47

Okkk, da bin ich schon wieder.... mit der naechsten frage(n) :(

Es geht sich jetzt um verzweigungen, und zwar um die if else verzweigung.

das else am ende ist doch dafür da um das programm zB bei (Variable==4) zu schliessen oder?
wenn ja, wie lautet dann die anweisung dafür?

und, wohin schreib ich die eingabe? nach zB "if (variable==0)" ? also:

if (variable==0) {

eingabe;
anweisung/ausgabe;
}


oder wie?

besten dank, stephan :(
0

#13 Mitglied ist offline   DK2000 

  • Gruppe: Administration
  • Beiträge: 19.797
  • Beigetreten: 19. August 04
  • Reputation: 1.435
  • Geschlecht:Männlich
  • Wohnort:Oben auf dem Berg
  • Interessen:Essen, PC, Filme, TV Serien...

geschrieben 20. Dezember 2004 - 18:01

Mit else kann man eine 2. Anweisung mit if ausführen lassen, wenn die Bedingung für die erste Anweisung nicht erfüllt wurde:

if (a==1)                <- Wenn Bedingung Erfüllt, dann
   {
   Anweisung_1     <- führe Anweisung 1 aus,
   }
else                     <- andernfalls (Bedingung nicht erfüllt)
   {
   Anweisung_2     <- führe Anweisung 2 aus
   }
}

Dieser Beitrag wurde von DK2000 bearbeitet: 20. Dezember 2004 - 18:15

Ich bin kein Toilettenpapier-Hamster.
---
Ich bin ein kleiner, schnickeldischnuckeliger Tiger aus dem Schwarzwald.
Alle haben mich ganz dolle lila lieb.
0

#14 Mitglied ist offline   Matze 

  • Gruppe: aktive Mitglieder
  • Beiträge: 666
  • Beigetreten: 29. Februar 04
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 20. Dezember 2004 - 18:03

Der Befehl else bedeuter soviel wie 'ansonsten'.

Wenn ( variable null ist ) dann
CODE
ansonsten
CODE

if(variable == 0){
cout<<"Die Variable ist null";
}else{
cout<<"Die Variable ist nicht null";
}

Habt ihr eigentlich einen Lehrer in der Schule oder sagt der einfach 'Wir machen jetzt if-Anweisungen' und das wars?
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
0

#15 Mitglied ist offline   dRead 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 19. Dezember 04
  • Reputation: 0

geschrieben 20. Dezember 2004 - 18:16

Zitat (Matze: 20.12.2004, 18:03)

Habt ihr eigentlich einen Lehrer in der Schule oder sagt der einfach 'Wir machen jetzt if-Anweisungen' und das wars?
<{POST_SNAPBACK}>


danke, ja so ähnlich ists.

Er gibt bei mir immer ein und dieselbe ausgabe aus... egal welche zahl ich eingebe.
Ich glaub das liegt daran das ich nicht weiss wohin ich mein
cin>>Variable;

hinschreiben soll ?! :(
kann mir da jemand helfen?

edit: achso, bei einer verzweigung macht es doch keinen sinn die variable vorher zu definieren oder ? :-/

Dieser Beitrag wurde von dRead bearbeitet: 20. Dezember 2004 - 18:20

0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0