Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » php:Taschenrechner er irgnoriert die Voraussetzung in if befehl » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen php:Taschenrechner er irgnoriert die Voraussetzung in if befehl
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
awsed
unregistriert
php:Taschenrechner er irgnoriert die Voraussetzung in if befehl Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hallo leute,

ich muss für die Schule einmal ein einfachen und schweren Taschenrechner in php programmieren, jedoch scheitere ich schon beim einfachen. Irgendwie ignoriert er die Vorraussetzung, das es Zahlen oder zeichen sein müssen, und rechnet fröhlich weiter egal was ich eintippe, irgendwie wird der else Befehl nicht ausgeführt. Warum?[color=#000000][/color]
[color=#000000][/color]
[color=#000000]<html><body><form method='POST'>[/color]
[color=#000000]Zahl1: <input name='Zahl1'><br>[/color]
[color=#000000]Zeichen: <input name='Zeichen'><br>[/color]
[color=#000000]Zahl2: <input name='Zahl2'><br>[/color]
[color=#000000]<input type='submit' value='Rechnen'>[/color]
[color=#000000]</form></body></html>[/color]
[color=#000000][/color]
[color=#000000]<html><body><?php [/color]
[color=#000000]$a= $_POST ["Zahl1"];[/color]
[color=#000000]$b= $_POST ["Zeichen"];[/color]
[color=#000000]$c= $_POST ["Zahl2"];[/color]
[color=#000000][/color]
[color=#000000]if($a==float && $b=="+" OR "-" OR "/" OR ":" OR "*" OR "Wurzel" OR "Exponent" && $c==float)[/color]
[color=#000000]{if ($b=="+")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcadd($a,$c,5);[/color]
[color=#000000]}[/color]
[color=#000000]elseif($b=="-")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcsub($a,$c,5);[/color]
[color=#000000]}[/color]
[color=#000000]elseif($b=="*")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcmul($a,$c,5);[/color]
[color=#000000]}[/color]
[color=#000000]elseif($b=="/")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcdiv($a,$c,5);[/color]
[color=#000000]}[/color]
[color=#000000]elseif($b==":")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcdiv($a,$c,5);[/color]
[color=#000000]}[/color]
[color=#000000]elseif($b=="Wurzel")[/color]
[color=#000000]{[/color]
[color=#000000]$d=bcsqrt($a,5);[/color]
[color=#000000]}[/color]
[color=#000000]echo $d;[/color]
[color=#000000]}else {echo "Fehler in der eingabe, bitte nachmal Versuchen.";}[/color]
[color=#000000]echo "<br>Wenn sie wurzeln wollen, schreiben sie Wurzel in der Eingabe Zeichen <br>[/color]
[color=#000000]Wenn sie exponentzieren wollen, schreiben sie Exponent in der Eingabe Zeichen";[/color]
[color=#000000][/color]
[color=#000000][/color]
[color=#000000]?></body></html>[/color]
[color=#000000][/color]
10.04.2009 12:08
awsed
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

sry ich meinte das


<html><body><form method='POST'>
Zahl1: <input name='Zahl1'><br>
Zeichen: <input name='Zeichen'><br>
Zahl2: <input name='Zahl2'><br>
<input type='submit' value='Rechnen'>
</form></body></html>

<html><body><?php
$a= $_POST ["Zahl1"];
$b= $_POST ["Zeichen"];
$c= $_POST ["Zahl2"];

if($a==float && $b=="+" OR "-" OR "/" OR ":" OR "*" OR "Wurzel" OR "Exponent" && $c==float)
{if ($b=="+")
{
$d=bcadd($a,$c,5);
}
elseif($b=="-")
{
$d=bcsub($a,$c,5);
}
elseif($b=="*")
{
$d=bcmul($a,$c,5);
}
elseif($b=="/")
{
$d=bcdiv($a,$c,5);
}
elseif($b==":")
{
$d=bcdiv($a,$c,5);
}
elseif($b=="Wurzel")
{
$d=bcsqrt($a,5);
}
echo $d;
}else {echo "Fehler in der eingabe, bitte nachmal Versuchen.";}
echo "<br>Wenn sie wurzeln wollen, schreiben sie Wurzel in der Eingabe Zeichen <br>
Wenn sie exponentzieren wollen, schreiben sie Exponent in der Eingabe Zeichen";


?></body></html>
10.04.2009 12:09
Thomas Thomas ist männlich
Administrator


Dabei seit: 06.09.2006
Beiträge: 68

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Deine IF-Bedingung ist falsch:

if($a==float && $b=="+" OR "-" OR "/" OR ":" OR "*" OR "Wurzel" OR "Exponent" && $c==float)

$a==float <- glaube nicht, dass man den Typ so überprüfen kann, in PHP sind Variablen sowieso schwach typisiert, mach besser eine Typumwandlung

Und bei $b musst du das nach dem Schema schreiben: $b=="+" OR $b=="-" ... und Klammern setzen!
10.04.2009 20:05 Thomas ist offline E-Mail an Thomas senden Homepage von Thomas Beiträge von Thomas suchen Nehmen Sie Thomas in Ihre Freundesliste auf
awsed
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

vielen Dank für deine antwort. Also ich hab jetzt den Zahlenwert integer genommen, und habe nach jedem or, oder eher gesagt vor jedem Rechenzeichen $b== gesetzt. Nun rechnet er aber gar nicht mehr und zeigt sofort die Fehlermeldung an, hast du ne Ahnung warum?

EIne Frage hät ich noch, bei dem schweren Taschenrechner benutze ich buttons, bloß wie kann ich in einem if Befehl abfragen( wenn er diesen Button angeklickt hat dann...)


mfg Awsed
11.04.2009 10:33
connzen
unregistriert
Taschenrechner er irgnoriert die Voraussetzung in if befehl Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo awsed,

ich denke, was Du haben willst, ist das hier:

if(is_float($a) && $b == "+" OR $b == "-" OR $b == "*" OR $b == ":" OR $b="Wurzel" OR $b = "Exponent" && is_float($c))
{
...
}

Ich würde das ganze aber eher mit einer Switch-Anweisung machen, das ist eleganter.
Ganz abgesehen davon würde ich einen Taschenrechner im Browser eher mit JavaScript schreiben. Dann brauchst Du keinen Server und kannst sogar alles ohne Seiten-Reloads machen.

Zum Nachlesen von PHP-Funktion empfehlen ich Dir das dt. PHP-Handbuch auf php.net/manual/de

Gruß,
C.
--
rechtsklick.org -- Aktiv gegen Rechtsradikalismus im Internet
12.04.2009 00:03
awsed
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hallo

nunja ich mach das ja für die Schule, die verlangen leider php.
Leider überprüft es immer noch nicht.
Was solls, dann frag ich das in der Schule.
Danke!
12.04.2009 14:20
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Informatik in der Schule » php:Taschenrechner er irgnoriert die Voraussetzung in if befehl