Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Eingabe überprüfen ob eine Zahl oder Buchstabe eingegeben wurde.
Autor
Ausbildung J Eingabe überprüfen ob eine Zahl oder Buchstabe eingegeben wurde.
Serenum
Junior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 11.07.2017
Mitteilungen: 7
  Themenstart: 2017-07-12

Hallo alle zusammen, brauche kurz Hilfe. Ich muss den Code so schreiben, dass er die Eingabe überprüft. Also: - Überprüfe Eingabe ob eine Zahl oder Buchstabe ist, - wenn Zahl, dann weiter zur nächsten Eingabe, - wenn Buchstabe, dann gebe Fehlermeldung und kehre zurück zur erneuten Eingabe. Mein Ansatz ist folgender, aber irgendwas stimmt nicht. \sourceon Matlab x1=input('Eingabe: X-Wert des Punktes A, x1= '); if x1 == char disp ('Die Eingabe ist unzulässig!') else x1=input('Eingabe: X-Wert des Punktes A, x1= '); end y1=input('Eingabe: Y-Wert des Punktes A, y1= '); if y1 == char disp ('Die Eingabe ist unzulässig!') else x1=input('Eingabe: X-Wert des Punktes A, x1= '); end \sourceoff Hat jemand eventuell ein Tipp? Gruß Serenum.


   Profil
BlakkCube
Senior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 12.02.2010
Mitteilungen: 599
Wohnort: Potsdam
  Beitrag No.1, eingetragen 2017-07-12

Ohne konkret Ahnung von Matlab zu haben, scheint es mir, dass wenn ich bei \quoteon(2017-07-12 00:14 - Serenum im
Dabei seit: 11.07.2017
Mitteilungen: 7
  Beitrag No.2, vom Themenstarter, eingetragen 2017-07-12

Bin ein echter Anfänger in Matlab. Ist es so gemeint: \sourceon Matlab x1=input('Eingabe: X-Wert des Punktes A, x1= '); while (x1 == char) disp ('Die Eingabe ist unzulässig!') x1=input('Eingabe: X-Wert des Punktes A, x1= '); end y1=input('Eingabe: Y-Wert des Punktes A, y1= '); while (y1 == char) disp ('Die Eingabe ist unzulässig!') x1=input('Eingabe: X-Wert des Punktes A, x1= '); end \sourceoff Aber es funktioniert nicht so wie ich das möchte. Oder ich mache es wieder Falsch.


   Profil
BlakkCube
Senior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 12.02.2010
Mitteilungen: 599
Wohnort: Potsdam
  Beitrag No.3, eingetragen 2017-07-12

Hi... ich möchst nochmal vorausschicken, dass ich keine Ahnung von Matlab habe, aber... \quoteon(2017-07-12 00:32 - Serenum in Beitrag No. 2) \sourceon Matlab y1=input('Eingabe: Y-Wert des Punktes A, y1= '); while (y1 == char) disp ('Die Eingabe ist unzulässig!') x1=input('Eingabe: X-Wert des Punktes A, x1= '); end \sourceoff \quoteoff Wenn y1 Zeichenfolge ist, fragst du nochmal x1 ab, ohne dass y1 jemals geändert würde


   Profil
Serenum
Junior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 11.07.2017
Mitteilungen: 7
  Beitrag No.4, vom Themenstarter, eingetragen 2017-07-12

Stimmt, Danke. Tippfehler :) Muss so sein: \sourceon Matlab x1=input('Eingabe: X-Wert des Punktes A, x1= '); while (x1 == char) disp ('Die Eingabe ist unzulässig!') x1=input('Eingabe: X-Wert des Punktes A, x1= '); end y1=input('Eingabe: Y-Wert des Punktes A, y1= '); while (y1 == char) disp ('Die Eingabe ist unzulässig!') y1=input('Eingabe: X-Wert des Punktes A, x1= '); end \sourceoff Aber funktioniert leider trotzdem nicht...


   Profil
BlakkCube
Senior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 12.02.2010
Mitteilungen: 599
Wohnort: Potsdam
  Beitrag No.5, eingetragen 2017-07-12

Läuft denn die erste While-Schleife korrekte ab? Oder kommt man nach zwei falschen Eingaben in die zweite?


   Profil
Serenum
Junior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 11.07.2017
Mitteilungen: 7
  Beitrag No.6, vom Themenstarter, eingetragen 2017-07-12

Also nicht ganz richtig wie ich das möchte. Er meckert zwar, dass die Eingabe undefinierte Variable ist. Ich möchte aber das die Meldung kommt 'Die Eingabe ist unzulässig!'. \sourceon Matlab x1=input('Eingabe: X-Wert des Punktes A, x1= '); while (x1 == char) disp ('Die Eingabe ist unzulässig!') x1=input('Eingabe: X-Wert des Punktes A, x1= '); end y1=input('Eingabe: Y-Wert des Punktes A, y1= '); while (y1 == char) disp ('Die Eingabe ist unzulässig!') y1=input('Eingabe: X-Wert des Punktes A, x1= '); end Eingabe: X-Wert des Punktes A, x1= v Error using input Undefined function or variable 'v'. Eingabe: X-Wert des Punktes A, x1= 1 Eingabe: Y-Wert des Punktes A, y1= v Error using input Undefined function or variable 'v'. Eingabe: Y-Wert des Punktes A, y1= 1 \sourceoff


   Profil
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 814
  Beitrag No.7, eingetragen 2017-07-12

Ich finde die Aufgabenstellung nicht ganz eindeutig. Wie sollen Sonderzeichen behandelt werden? Die Anweisung \quoteon(2017-07-12 01:05 - Serenum in Beitrag No. 4) \sourceon Matlab while (x1 == char) \sourceoff \quoteoff ergibt keinen Sinn. (Vgl. mit dem Befehl "ischar") Eine Möglichkeit wäre die Eingabe als String einzulesen und danach versuchen diesen String in eine Zahl zu konvertieren (Befehl "str2double)). \sourceon Matlab flag = 0; while flag == 0 x1=input('Eingabe: X-Wert des Punktes A, x1= ','s'); x1_double = str2double(x1); if ~isfinite(x1_double) disp ('Die Eingabe ist unzulässig!') else flag = 1; end end x1 x1_double + 1 \sourceoff Wenn man wirklich nur nach den Buchstaben (ohne Sonderzeichen) suchen möchte, könnte man mit \sourceon Matlab double(x1) \sourceoff den Wert im ASCII-Zeichencode ermitteln und danach entsprechend filtern. [Die Antwort wurde nach Beitrag No.5 begonnen.]


   Profil
Serenum
Junior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 11.07.2017
Mitteilungen: 7
  Beitrag No.8, vom Themenstarter, eingetragen 2017-07-13

Super, Danke. Ich werde es ausprobieren und melde mich dann.


   Profil
Serenum
Junior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 11.07.2017
Mitteilungen: 7
  Beitrag No.9, vom Themenstarter, eingetragen 2017-07-13

Es hat funktioniert :). Vielen, vielen Dank an alle! Echt super. Gruß Serenum.


   Profil
Serenum hat die Antworten auf ihre/seine Frage gesehen.
Das Thema wurde von einem Senior oder Moderator abgehakt.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]