WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

while-Schleife im Intervall

 

trust114
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.12.2015, 17:44     Titel: while-Schleife im Intervall
  Antworten mit Zitat      
Hallo Leute,

hab ne Frage zu Matlab!

Ich habe ein Programm geschrieben, dass per input eine Abfrage macht.
Code:
Enter=input('Bitte geben Sie eine Zahl zwischen 1-100 ein:')


Falls man nun einen Wert außerhalb des Intervalles eingegeben würde, soll mein Programm den Anwender darauf hinweisen und die Abfrage quasi endlos erneut stellen, bis eine richtige Zahl eingegeben wird.

Habe das bis jetzt nur mit einer if-Schleife hinbekommen. Die allerdings stellt die Frage nur zweimal.

Mit einer while-Schleife könnte ich die Abfrage endlos oft stellen, aber leider habe ich Schwierigkeiten bei while-Schleifen in Kombination mit Intervallen.

Kann mir einer helfen?
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.12.2015, 21:02     Titel: Re: while-Schleife im Intervall
  Antworten mit Zitat      
Hallo trust114,

Es gibt keine "IF-Schleifen".
Wenn Du Deinen Code postest und erklärst, welche Probleme Du genau mit "while-Schleifen in Kombination mit Intervallen" hast, könnte man Dir bestimmt direkt helfen.

Ich rate mal:
Code:
ready = false;
while ~ready
  Enter = input('Bitte geben Sie eine Zahl zwischen 1-100 ein:')
  ready = (Enter >= 1 && Enter <= 100);
end

Oder noch kompakter:
Code:
Enter = inf;
while Enter < 1 || Enter > 100
  Enter = input('Bitte geben Sie eine Zahl zwischen 1-100 ein:')
end

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
trust114
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.12.2015, 21:46     Titel:
  Antworten mit Zitat      
Hi Jan S!

Also mein code sieht so aus:

Code:
str_Messpunkt='\nBitte geben Sie für den \nZeit-Druck-Verlauf der Messpunkte \ndie gewünschte Messpunktzahl \nzwischen 1-%d%d';
Mess_Punkt=sprintf(str_Messpunkt,length(Messpunkte_end));
Mess_PUNKT=[Mess_Punkt,' ein:\n'];
MESS_PUNKT=input(Mess_PUNKT);
mess_punkt=num2str(MESS_PUNKT);

if (0<MESS_PUNKT && MESS_PUNKT<=length(Messpunkte_end))

    Enter_MessP=input('\nMöchten Sie den Zeit-Druck-Verlauf \nder Messpunkte sehen? Falls ja, \nbitte mit 1, falls nein, \nbitte mit einer anderen Zahl bestätigen.\n');
    if Enter_MessP==1
        figure(3)

        plot(MP{MESS_PUNKT}(1:length(MP{MESS_PUNKT})))
        title(['Zeit-Druck-Verlauf, für Messpunktnummer ',mess_punkt])
        xlabel('Zeit in Sekunden')
        ylabel('Druck')
        grid on
        axis tight
    end
       
end


Gibt der Anwender für MESS_PUNKT nun eine Zahl ein die im Intervall 1-length(Messpunkte_end) liegt, ist alles Ok. Keine Probleme. Jetzt soll aber der Fall einer fehlerhaften Eingabe berücksichtigt werden. D. h. eine Zahl wird eingegeben die nicht im Intervall liegt. Das Programm soll den natürlich als Fehler identifizieren und erneut fragen, bis die Eingabe richtig gemacht wird.

Hoffe es ist jetzt klarer.

Schönen Gruß
Trust114
Private Nachricht senden Benutzer-Profile anzeigen
 
trust114
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.12.2015, 22:36     Titel:
  Antworten mit Zitat      
Hi Jan S,

hab es mit deinen Tipps hinbekommen. Danke! Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.