www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 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 "Matlab" - Schleife programmieren
Schleife programmieren < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Schleife programmieren: while-Schleife
Status: (Frage) beantwortet Status 
Datum: 02:16 Mo 06.08.2012
Autor: Ichlerndasnie

Aufgabe
Der Computer "merkt" sich eine Zufallszahl zwischen 1 und 100, die der
Spieler erraten soll. Der Spieler hat unendlich viele Versuche. Nach jedem falschen Versuch gibt der Computer an, ob die angegebene Zahl zu klein oder zu groß ist. Der Spieler hat gewonnen, wenn er die gesuchte Zahl errät.

Hallo, ich habe es mit einer while-Schleife versucht, aber da ist irgendwo ein Denkfehler drin.
Erster Ansatz:
Ergebnis = randi(100,1);
Antwort_VP = input('Bitte errate die Zahl zwischen 1 und 100:  ');

while Antwort_VP~=Ergebnis
if  (Antwort_VP>Ergebnis);
disp('Meine Zahl ist kleiner, versuch es noch einmal!');
elseif (Antwort_VP<Ergebnis);
disp('Meine Zahl ist größer, versuch es noch einmal!');
else;
disp('Hatt ja nicht mehr mit gerechnet, bist doch nicht so dusselig, wie Du aussiehst, das war richtig!');
end
Dann hängt Matlab sich nach der ersten Eingabe auf!

Zweiter Ansatz:
Ergebnis = randi(100,1);
Antwort_VP = input('Bitte errate die Zahl zwischen 1 und 100:  ');

while Antwort_VP~=Ergebnis
if  (Antwort_VP>Ergebnis);
disp('Meine Zahl ist kleiner, versuch es noch einmal!');
end
elseif (Antwort_VP<Ergebnis);
disp('Meine Zahl ist größer, versuch es noch einmal!');
end
else;
disp('Hatt ja nicht mehr mit gerechnet, bist doch nicht so dusselig, wie Du aussiehst, das war richtig!');
end
end
Dann habe ich eine Endlosschleife....WO LIEGT MEIN DENKFEHLER??

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Schleife programmieren: Antwort
Status: (Antwort) fertig Status 
Datum: 08:48 Mo 06.08.2012
Autor: Al-Chwarizmi


> Der Computer "merkt" sich eine Zufallszahl zwischen 1 und
> 100, die der
>  Spieler erraten soll. Der Spieler hat unendlich viele
> Versuche. Nach jedem falschen Versuch gibt der Computer an,
> ob die angegebene Zahl zu klein oder zu groß ist. Der
> Spieler hat gewonnen, wenn er die gesuchte Zahl errät.
>  Hallo, ich habe es mit einer while-Schleife versucht, aber
> da ist irgendwo ein Denkfehler drin.
> Erster Ansatz:
> Ergebnis = randi(100,1);
>  Antwort_VP = input('Bitte errate die Zahl zwischen 1 und
> 100:  ');
>  
> while Antwort_VP~=Ergebnis
>  if  (Antwort_VP>Ergebnis);
>  disp('Meine Zahl ist kleiner, versuch es noch einmal!');
>  elseif (Antwort_VP<Ergebnis);
>  disp('Meine Zahl ist größer, versuch es noch einmal!');
>  else;
>  disp('Hatt ja nicht mehr mit gerechnet, bist doch nicht so
> dusselig, wie Du aussiehst, das war richtig!');
>  end
>  Dann hängt Matlab sich nach der ersten Eingabe auf!
>  
> Zweiter Ansatz:
>  Ergebnis = randi(100,1);
>  Antwort_VP = input('Bitte errate die Zahl zwischen 1 und
> 100:  ');
>  
> while Antwort_VP~=Ergebnis
>  if  (Antwort_VP>Ergebnis);
>  disp('Meine Zahl ist kleiner, versuch es noch einmal!');
>  end
>  elseif (Antwort_VP<Ergebnis);
>  disp('Meine Zahl ist größer, versuch es noch einmal!');
>  end
>  else;
>  disp('Hatt ja nicht mehr mit gerechnet, bist doch nicht so
> dusselig, wie Du aussiehst, das war richtig!');
>  end
>  end
>  Dann habe ich eine Endlosschleife....WO LIEGT MEIN
> DENKFEHLER??


Hallo Ichlerndasnie  [haee]

( ... mittels MR vielleicht ja doch noch ...  ;-) )

            [willkommenmr]

Ohne mich in Matlab wirklich auszukennen:

stecken in deinem Programmtext nicht viel zu viele
Strichpunkte ??

(ein Strichpunkt unmittelbar nach einem "else" macht
z.B. wirklich keinen Sinn !)

LG   Al-Chwarizmi

Bezug
                
Bezug
Schleife programmieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:59 Mo 06.08.2012
Autor: Ichlerndasnie

Hallo,
danke dass mir hier geholfen wird, hab ich schon festgestellt.... Habe inzwischen den Fehler selbst gefunden, Dein Tipp mit dem Zuviel an Strich-Punkten war dabei recht hilfreich. Hier meine richtge Lösung:

Ergebnis = randi(100,1);
Antwort_VP=input('Bitte errate die Zahl zwischen 1 und 100:  ');
     while Antwort_VP~=Ergebnis
Antwort_VP=input('Bitte errate die Zahl zwischen 1 und 100:  ');
if  (Antwort_VP>Ergebnis)
disp('Meine Zahl ist kleiner, versuch es noch einmal!');
elseif (Antwort_VP<Ergebnis)
disp('Meine Zahl ist größer, versuch es noch einmal!');
else
disp('Hatt ja nicht mehr mit gerechnet, bist doch nicht so dusselig, wie Du aussiehst, das war richtig!');
end
end

Trotzdem Danke!! ;-)


Bezug
        
Bezug
Schleife programmieren: Antwort
Status: (Antwort) fertig Status 
Datum: 10:59 Mo 06.08.2012
Autor: franzzink

Hallo,

die Zeile

Antwort_VP = input('Bitte errate die Zahl zwischen 1 und 100:  ')

gehört in die while-Schleife. Andernfalls macht man eine Eingabe und hat keine Chance mehr sie zu verändern. War die Eingabe dann falsch, läuft die Schleife endlos weiter, weil man ja keine Chance mehr hat, die Zahl zu verändern.


Und noch ein kleiner Hinweis:
Nach "if", "else" und "disp" muss man nicht unbedingt ein ";" setzen, weil dies keinen Effekt hat. Also spart man sich das in der Regel.

Bezug
                
Bezug
Schleife programmieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:04 Mo 06.08.2012
Autor: Ichlerndasnie

Ist schon nett, dass ich meine LÖsung zur gleichen Zeit gepostet habe, wie Du. Danke für die Mühe :-)

Bezug
        
Bezug
Schleife programmieren: völlig OT
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:14 Mo 06.08.2012
Autor: angela.h.b.

Hallo,

programmieren kann ich gar nichts,
aber mal ein Hinweis völlig OT:

Dein Nickname ist nicht gut für Dich...
"Ichkannganzbestimmtalleslernen" wäre echt besser - und auch treffender, nicht wahr?

Viel Erfolg!
LG Angela



Bezug
                
Bezug
Schleife programmieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:21 Mo 06.08.2012
Autor: Ichlerndasnie

Ist lediglich der Ausdruck von totalem Frust und von meiner Verweigerungshaltung in Sachen Programmieren. Würde mich damit nicht mehr beschäftigen, wenn ich nicht dieses Seminar an der Uni abschliessen wollte.

Bezug
                        
Bezug
Schleife programmieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:28 Mo 06.08.2012
Autor: fred97

"Lernen und Genießen sind das Geheimnis eines erfüllten Lebens. Lernen ohne Genießen verhärmt, Genießen ohne Lernen verblödet."

Richard David Precht:  Wer bin ich – und wenn ja, wie viele? Eine philosophische Reise (Goldmannverlag)

Gruß FRED

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]