|
Autor |
Eingabe überprüfen ob eine Zahl oder Buchstabe eingegeben wurde. |
|
Serenum
Junior  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  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  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  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  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  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  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  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  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. |
|
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]
|