1
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Algorithmus
bull Der genaue Loumlsungsplan
bull manchmal trivial
bull manchmal nicht trivial -)
bull die auszufuumlhrenden Aktionen
bull die Reihenfolge in der die Aktionen auszufuumlhren sind
bull unabhaumlngig von der Programmiersprache
bull Dokumentation in Pseudocode
2
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Algorithmus - VorgehensweiseVorgehensweise
- bei einfachen Problemen direkte Programmierung
- bei komplexeren Problemstellungen
o Herleitung des Algorithmus
o Umsetzung des Algorithmus
3
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-AnweisungSyntax
if(logischer Ausdruck) if($nenner==0)
anweisung 1 echo Geht nichtanweisung 2 echo Zahl eingeben
else else
anweisung 1 $ergebnis=$zaehler $nenneranweisung 2 echo Das Ergebnis ist $ergebnis
true oder false
4
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash RegelnWiesoEingaben uumlberpruumlfenProgrammverzweigungenSyntax
if ($tag==Mittwoch)
echo Heute ist Mittwoch 16 Uhrltbrgt$anzahlZeichen=strlen($tag)if ($anzahlZeichen==8)
echo Mittwoch hat 8 Zeichen
else
echo Heute ist kein Mittwoch
logischer Ausdruck entweder true oder false
kein am CodeEnde
optionaler else-Block
5
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash JavaScript - Uumlbungltscript language = JavaScriptgt
var zaehlervar nennervar quotientzaehler=prompt(Bitte geben Sie den Zaumlhler ein)nenner=prompt(Bitte geben Sie den Nenner ein)if(nenner==0)
documentwrite(Versuch durch 0 zu teilen)else
zaehler=parseFloat(zaehler)nenner=parseFloat(nenner)quotient=zaehlernennerdocumentwrite (Der Quotient von + zaehler +
und + nenner + ist + quotient)
6
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHPAufgabe
Erstellen Sie ein Formular mit 2 Eingabefeldern
Zaumlhler und Nenner sowie einem Absende-Button
Die Datei auf welche zugegriffen werden soll heisst division2php
Erstellen Sie die Datei division2php mit dem fuumlr die Division erforderlichen
PHP ndash Code
7
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash HTML Loumlsungltform name=division action=division2php method=postgt
lttable bordergtlttrgt
lttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
8
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash Programmltphp
if($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)gtltphp
if($nenner==0)
die(Jetzt wuumlrgen wir das Script mit die ab)
gt
Unterschiedexit() bricht sofort ab die gibt noch Meldung aus
9
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Affenformular- ruft sich selbst auf - Bei GET wird ein Block aufgerufen- Bei POST ein anderer
ltphpif($REQUEST_METHOD=POST)
stelleFormularDarelse
werteFormularAusgt
10
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendung Wir pruefen nun ob die Anfrage ueber get oder post erfolgte
if($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=division action=$PHP_SELF method=postgt
gtlttable bordergt
lttrgtlttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegt
ltformgtltphp
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
2
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Algorithmus - VorgehensweiseVorgehensweise
- bei einfachen Problemen direkte Programmierung
- bei komplexeren Problemstellungen
o Herleitung des Algorithmus
o Umsetzung des Algorithmus
3
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-AnweisungSyntax
if(logischer Ausdruck) if($nenner==0)
anweisung 1 echo Geht nichtanweisung 2 echo Zahl eingeben
else else
anweisung 1 $ergebnis=$zaehler $nenneranweisung 2 echo Das Ergebnis ist $ergebnis
true oder false
4
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash RegelnWiesoEingaben uumlberpruumlfenProgrammverzweigungenSyntax
if ($tag==Mittwoch)
echo Heute ist Mittwoch 16 Uhrltbrgt$anzahlZeichen=strlen($tag)if ($anzahlZeichen==8)
echo Mittwoch hat 8 Zeichen
else
echo Heute ist kein Mittwoch
logischer Ausdruck entweder true oder false
kein am CodeEnde
optionaler else-Block
5
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash JavaScript - Uumlbungltscript language = JavaScriptgt
var zaehlervar nennervar quotientzaehler=prompt(Bitte geben Sie den Zaumlhler ein)nenner=prompt(Bitte geben Sie den Nenner ein)if(nenner==0)
documentwrite(Versuch durch 0 zu teilen)else
zaehler=parseFloat(zaehler)nenner=parseFloat(nenner)quotient=zaehlernennerdocumentwrite (Der Quotient von + zaehler +
und + nenner + ist + quotient)
6
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHPAufgabe
Erstellen Sie ein Formular mit 2 Eingabefeldern
Zaumlhler und Nenner sowie einem Absende-Button
Die Datei auf welche zugegriffen werden soll heisst division2php
Erstellen Sie die Datei division2php mit dem fuumlr die Division erforderlichen
PHP ndash Code
7
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash HTML Loumlsungltform name=division action=division2php method=postgt
lttable bordergtlttrgt
lttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
8
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash Programmltphp
if($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)gtltphp
if($nenner==0)
die(Jetzt wuumlrgen wir das Script mit die ab)
gt
Unterschiedexit() bricht sofort ab die gibt noch Meldung aus
9
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Affenformular- ruft sich selbst auf - Bei GET wird ein Block aufgerufen- Bei POST ein anderer
ltphpif($REQUEST_METHOD=POST)
stelleFormularDarelse
werteFormularAusgt
10
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendung Wir pruefen nun ob die Anfrage ueber get oder post erfolgte
if($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=division action=$PHP_SELF method=postgt
gtlttable bordergt
lttrgtlttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegt
ltformgtltphp
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
3
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-AnweisungSyntax
if(logischer Ausdruck) if($nenner==0)
anweisung 1 echo Geht nichtanweisung 2 echo Zahl eingeben
else else
anweisung 1 $ergebnis=$zaehler $nenneranweisung 2 echo Das Ergebnis ist $ergebnis
true oder false
4
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash RegelnWiesoEingaben uumlberpruumlfenProgrammverzweigungenSyntax
if ($tag==Mittwoch)
echo Heute ist Mittwoch 16 Uhrltbrgt$anzahlZeichen=strlen($tag)if ($anzahlZeichen==8)
echo Mittwoch hat 8 Zeichen
else
echo Heute ist kein Mittwoch
logischer Ausdruck entweder true oder false
kein am CodeEnde
optionaler else-Block
5
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash JavaScript - Uumlbungltscript language = JavaScriptgt
var zaehlervar nennervar quotientzaehler=prompt(Bitte geben Sie den Zaumlhler ein)nenner=prompt(Bitte geben Sie den Nenner ein)if(nenner==0)
documentwrite(Versuch durch 0 zu teilen)else
zaehler=parseFloat(zaehler)nenner=parseFloat(nenner)quotient=zaehlernennerdocumentwrite (Der Quotient von + zaehler +
und + nenner + ist + quotient)
6
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHPAufgabe
Erstellen Sie ein Formular mit 2 Eingabefeldern
Zaumlhler und Nenner sowie einem Absende-Button
Die Datei auf welche zugegriffen werden soll heisst division2php
Erstellen Sie die Datei division2php mit dem fuumlr die Division erforderlichen
PHP ndash Code
7
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash HTML Loumlsungltform name=division action=division2php method=postgt
lttable bordergtlttrgt
lttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
8
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash Programmltphp
if($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)gtltphp
if($nenner==0)
die(Jetzt wuumlrgen wir das Script mit die ab)
gt
Unterschiedexit() bricht sofort ab die gibt noch Meldung aus
9
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Affenformular- ruft sich selbst auf - Bei GET wird ein Block aufgerufen- Bei POST ein anderer
ltphpif($REQUEST_METHOD=POST)
stelleFormularDarelse
werteFormularAusgt
10
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendung Wir pruefen nun ob die Anfrage ueber get oder post erfolgte
if($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=division action=$PHP_SELF method=postgt
gtlttable bordergt
lttrgtlttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegt
ltformgtltphp
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
4
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash RegelnWiesoEingaben uumlberpruumlfenProgrammverzweigungenSyntax
if ($tag==Mittwoch)
echo Heute ist Mittwoch 16 Uhrltbrgt$anzahlZeichen=strlen($tag)if ($anzahlZeichen==8)
echo Mittwoch hat 8 Zeichen
else
echo Heute ist kein Mittwoch
logischer Ausdruck entweder true oder false
kein am CodeEnde
optionaler else-Block
5
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash JavaScript - Uumlbungltscript language = JavaScriptgt
var zaehlervar nennervar quotientzaehler=prompt(Bitte geben Sie den Zaumlhler ein)nenner=prompt(Bitte geben Sie den Nenner ein)if(nenner==0)
documentwrite(Versuch durch 0 zu teilen)else
zaehler=parseFloat(zaehler)nenner=parseFloat(nenner)quotient=zaehlernennerdocumentwrite (Der Quotient von + zaehler +
und + nenner + ist + quotient)
6
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHPAufgabe
Erstellen Sie ein Formular mit 2 Eingabefeldern
Zaumlhler und Nenner sowie einem Absende-Button
Die Datei auf welche zugegriffen werden soll heisst division2php
Erstellen Sie die Datei division2php mit dem fuumlr die Division erforderlichen
PHP ndash Code
7
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash HTML Loumlsungltform name=division action=division2php method=postgt
lttable bordergtlttrgt
lttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
8
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash Programmltphp
if($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)gtltphp
if($nenner==0)
die(Jetzt wuumlrgen wir das Script mit die ab)
gt
Unterschiedexit() bricht sofort ab die gibt noch Meldung aus
9
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Affenformular- ruft sich selbst auf - Bei GET wird ein Block aufgerufen- Bei POST ein anderer
ltphpif($REQUEST_METHOD=POST)
stelleFormularDarelse
werteFormularAusgt
10
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendung Wir pruefen nun ob die Anfrage ueber get oder post erfolgte
if($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=division action=$PHP_SELF method=postgt
gtlttable bordergt
lttrgtlttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegt
ltformgtltphp
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
5
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash JavaScript - Uumlbungltscript language = JavaScriptgt
var zaehlervar nennervar quotientzaehler=prompt(Bitte geben Sie den Zaumlhler ein)nenner=prompt(Bitte geben Sie den Nenner ein)if(nenner==0)
documentwrite(Versuch durch 0 zu teilen)else
zaehler=parseFloat(zaehler)nenner=parseFloat(nenner)quotient=zaehlernennerdocumentwrite (Der Quotient von + zaehler +
und + nenner + ist + quotient)
6
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHPAufgabe
Erstellen Sie ein Formular mit 2 Eingabefeldern
Zaumlhler und Nenner sowie einem Absende-Button
Die Datei auf welche zugegriffen werden soll heisst division2php
Erstellen Sie die Datei division2php mit dem fuumlr die Division erforderlichen
PHP ndash Code
7
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash HTML Loumlsungltform name=division action=division2php method=postgt
lttable bordergtlttrgt
lttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
8
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash Programmltphp
if($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)gtltphp
if($nenner==0)
die(Jetzt wuumlrgen wir das Script mit die ab)
gt
Unterschiedexit() bricht sofort ab die gibt noch Meldung aus
9
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Affenformular- ruft sich selbst auf - Bei GET wird ein Block aufgerufen- Bei POST ein anderer
ltphpif($REQUEST_METHOD=POST)
stelleFormularDarelse
werteFormularAusgt
10
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendung Wir pruefen nun ob die Anfrage ueber get oder post erfolgte
if($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=division action=$PHP_SELF method=postgt
gtlttable bordergt
lttrgtlttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegt
ltformgtltphp
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
6
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHPAufgabe
Erstellen Sie ein Formular mit 2 Eingabefeldern
Zaumlhler und Nenner sowie einem Absende-Button
Die Datei auf welche zugegriffen werden soll heisst division2php
Erstellen Sie die Datei division2php mit dem fuumlr die Division erforderlichen
PHP ndash Code
7
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash HTML Loumlsungltform name=division action=division2php method=postgt
lttable bordergtlttrgt
lttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
8
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash Programmltphp
if($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)gtltphp
if($nenner==0)
die(Jetzt wuumlrgen wir das Script mit die ab)
gt
Unterschiedexit() bricht sofort ab die gibt noch Meldung aus
9
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Affenformular- ruft sich selbst auf - Bei GET wird ein Block aufgerufen- Bei POST ein anderer
ltphpif($REQUEST_METHOD=POST)
stelleFormularDarelse
werteFormularAusgt
10
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendung Wir pruefen nun ob die Anfrage ueber get oder post erfolgte
if($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=division action=$PHP_SELF method=postgt
gtlttable bordergt
lttrgtlttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegt
ltformgtltphp
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
7
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash HTML Loumlsungltform name=division action=division2php method=postgt
lttable bordergtlttrgt
lttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
8
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash Programmltphp
if($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)gtltphp
if($nenner==0)
die(Jetzt wuumlrgen wir das Script mit die ab)
gt
Unterschiedexit() bricht sofort ab die gibt noch Meldung aus
9
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Affenformular- ruft sich selbst auf - Bei GET wird ein Block aufgerufen- Bei POST ein anderer
ltphpif($REQUEST_METHOD=POST)
stelleFormularDarelse
werteFormularAusgt
10
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendung Wir pruefen nun ob die Anfrage ueber get oder post erfolgte
if($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=division action=$PHP_SELF method=postgt
gtlttable bordergt
lttrgtlttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegt
ltformgtltphp
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
8
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
if-Anweisung ndash PHP ndash Programmltphp
if($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)gtltphp
if($nenner==0)
die(Jetzt wuumlrgen wir das Script mit die ab)
gt
Unterschiedexit() bricht sofort ab die gibt noch Meldung aus
9
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Affenformular- ruft sich selbst auf - Bei GET wird ein Block aufgerufen- Bei POST ein anderer
ltphpif($REQUEST_METHOD=POST)
stelleFormularDarelse
werteFormularAusgt
10
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendung Wir pruefen nun ob die Anfrage ueber get oder post erfolgte
if($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=division action=$PHP_SELF method=postgt
gtlttable bordergt
lttrgtlttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegt
ltformgtltphp
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
9
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Affenformular- ruft sich selbst auf - Bei GET wird ein Block aufgerufen- Bei POST ein anderer
ltphpif($REQUEST_METHOD=POST)
stelleFormularDarelse
werteFormularAusgt
10
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendung Wir pruefen nun ob die Anfrage ueber get oder post erfolgte
if($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=division action=$PHP_SELF method=postgt
gtlttable bordergt
lttrgtlttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegt
ltformgtltphp
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
10
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendung Wir pruefen nun ob die Anfrage ueber get oder post erfolgte
if($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=division action=$PHP_SELF method=postgt
gtlttable bordergt
lttrgtlttdgtZampaumlhlerlttdgtlttdgtltinput type=text name=zaehler size=12gtlttdgt
lttrgtlttrgt
lttdgtNennerlttdgtlttdgtltinput type=text name=nenner size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegt
ltformgtltphp
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
11
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Anwendungelse
$methode=$_SERVER[REQUEST_METHOD]echo Der Browser greift mit ltbgt$methodeltbgt zultbrgt Anfrage ueber post das bedeutet das Formular wurde abgeschicktif($nenner==0)
echo Versuch durch Null zu teilenexit()
$quotient=$zaehler$nennerecho (Der Quotient von $zaehler und $nenner
ist $quotient)
gt
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
12
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode Get der Datei Division3php
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
13
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Screenshot Quellcode POST der Datei Division3php
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
14
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
PHP und die unendliche Geschichte mit den register_globals
ALT (Bis Version 420)$REQUEST_METHOD Diese Variable enthaumllt die vom Browser spezifizierte Methode also get oder post$PHP_SELF Dies ist die php-Datei selber
NeuAb Version 421$REQUEST_METHOD=$_SERVER[REQUEST_METHOD]$PHP_SELF=$_SERVER[PHP_SELF]
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
15
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Aumlnderungen in der Formularverarbeitung
$PHP_SELF=$_SERVER[PHP_SELF] $REQUEST_METHOD=$_SERVER[REQUEST_METHOD]
if ($REQUEST_METHOD=POST)gt
ltform action=ltphp $PHP_SELF gt method=POST name=someFormgtltinput type=text name=variablenNamegt
ltinput type=submitgtltformgt
ltphpelse
statt Dateiname nun $PHP_SELF
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
16
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2Das Programm zur Euro-Dollar Umrechnung soll verbessert werden Das Programm soll nun nicht nur Euro-Betraumlge umrechnen koumlnnen sondern auchDollar-Betraumlge in Euro Dazu muumlssen die Anwender die Zielwaumlhrung eingebenkoumlnnen Ausgegeben werden soll dann das Ergebnis der Umrechnung
Als Angabe fuumlr die Zielwaumlhrung Dollar ist Dollar oder dollar erlaubt fuumlr den Euro entsprechend euro oder Euro Bei anderen Eingaben soll die Anwendung eineFehlermeldung ausgeben und die erlaubten Eingaben darstellen
Vorgehensweise1 Definieren der Variablen2 Abgreifen der Zielwaumlhrung3 wenn Dollar mache das wenn Euro mache das4 Ergebnis ausgeben
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
17
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeltscript language = JavaScriptgt
var zielwaehrungvar eurobetragvar dollarbetragvar kurs=09zielwaehrung=prompt(Bitte geben Sie die Zielwaumlhrung ein) von euro nach dollarif((zielwaehrung==Dollar)||(zielwaehrung==dollar))
eurobetrag=prompt(Bitte geben Sie den Euro-Betrag ein)eurobetrag=parseFloat(eurobetrag)dollarbetrag=eurobetragkursdocumentwrite(eurobetrag + Euro entsprechen +
dollarbetrag + Dollar)
Beachten Punkt statt Komma als Trennzeichen
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
18
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 Quellcodeelse
von dollar nach euroif((zielwaehrung==euro)||(zielwaehrung==Euro))
dollarbetrag=prompt(Bitte geben Sie den Dollar-Betrag ein)dollarbetrag=parseFloat(dollarbetrag)eurobetrag=dollarbetrag(1kurs)documentwrite(dollarbetrag + Dollar entsprechen +eurobetrag + Euro)
else
nicht von euro nach dollar und auch nicht andersrum falsche Zielwaehrung
documentwrite(Falsche Zielwampaumlhrung ltbrgtErlaubt sind Euro oder Dollar)
ltscriptgt
Bitte denken Sie an CodeStyling
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
19
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPltphp
Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST) erster Aufruf das Formular muss praesentiert werden
echo ltform name=euro2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgt
lttdgtZielwampaumlhrung
lttdgtlttdgt
ltinput type=text name=zielwaehrung size=12gtlttdgt
lttrgt
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
20
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHPlttrgt
lttdgtBetrag
lttdgtlttdgt
ltinput type=text name=betrag size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengt
lttdgtlttrgt
lttablegtltformgt
ltphp
else
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
21
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Euro ndash Dollar Umrechnung Teil 2 in PHP$kurs=09
if(($zielwaehrung==Dollar)||($zielwaehrung==dollar))
$dollarbetrag=$kurs$betragecho $betrag Euro entspricht $dollarbetrag Dollar
else
if(($zielwaehrung==euro)||($zielwaehrung==Euro))
$eurobetrag=(1$kurs)$betragecho $betrag Dollar entsprechen $eurobetrag Euro
else
echo(Falsche Zielwampaumlhrung ltbrgt Erlaubt sind Euro oder Dollar)
gt
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
22
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel fortgesetztWir benutzen hier (und im weiteren Verlauf) allerding die in Aufgabe 53modifizierte Version
Wir fuumlgen folgende weitere Abaumlnderungen hinzu
Die Rakete startet und landet im gleichen Monat undnicht mehr am gleichen Tag
Wenn der Landzeitpunkt vor dem Startzeitpunkt liegt soll das Programm eineFehlermeldung ausgeben und abbrechen
Wenn die Rakete mehrere Tage unterwegs ist soll die Anzahl Tage mit ausgegebenwerden erfolgen Start und Landung jedoch am selben Tag sollen Tage gar nichtauftauchen
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
23
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel alter Ablauf1 Umrechnen der Startzeit in Sekunden
2 Umrechnen der Landezeit in Sekunden
3 Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekunden
4 vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60
5 Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
6 Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60
7 Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
24
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Neuer AlgorithmusUmrechnen der Startzeit in Sekunden(starttag243600+startStunden3600+startMinuten60+startSekunden)Umrechnen der Landezeit in Sekunden(landetag243600+landeStunden3600+landeMinuten60+landeSekunden)
Flugzeit in Sekunden = Landezeit in Sekunden - Startzeit in Sekundenif(Flugzeit in Sekunden lt 0)
Fehlermeldung ausgebenelse
vorlaumlufige Minuten der Flugzeit = Flugzeit in Sekunden integerdividiert durch 60Sekunden der Flugzeit = Flugzeit in Sekunden modulo 60
vorlaumlufige Stunden der Flugzeit = vorlaumlufige Minuten der Flugzeit integerdividiert durch 60Minuten der Flugzeit = vorlaumlufige Minuten der Flugzeit modulo 60Tage der Flugzeit = vorlaumlufige Stunden der Flugzeit integerdividiert durch 24Stunden der Flugzeit = vorlaumlufige Stunden der Flugzeit modulo 24
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
25
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landezeitInSekundenvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTage
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
26
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptEinlesenstarttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der +Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der +Landezeit ein)
landeSekunden=prompt(Bitte geben Sie die Sekunden der +Lande ein)
Umwandelnstarttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden)
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
27
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScript start-und landezeit in sekunden umrechnen
startzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekunden
landezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden
flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)flugzeitStunden=flugzeitStunden24
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
28
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in JavaScriptausgeben
if(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
29
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPif($REQUEST_METHOD=POST)
erster Aufruf des Scripts wir muessen das Eingabeformular praesentierenecho ltform name=raketen2 action=$PHP_SELF method=postgtgt
lttable bordergtlttrgtlttdgtStarttaglttdgt
lttdgtltinput type=text name=starttag size=12gtlttdgtlttrgtlttrgt
lttdgtStartzeit Stundenlttdgtlttdgtltinput type=text name=startStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Minutenlttdgtlttdgtltinput type=text name=startMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtStartzeit Sekundenlttdgtlttdgtltinput type=text name=startSekunden size=12gtlttdgt
lttrgt
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
30
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPlttrgtlttdgtLandetaglttdgt
lttdgtltinput type=text name=landetag size=12gtlttdgtlttrgtlttrgt
lttdgtLandezeit Stundenlttdgtlttdgtltinput type=text name=landeStunden size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Minutenlttdgtlttdgtltinput type=text name=landeMinuten size=12gtlttdgt
lttrgtlttrgt
lttdgtLandezeit Sekundenlttdgtlttdgtltinput type=text name=landeSekunden size=12gtlttdgt
lttrgtlttrgt
lttd colspan=2 align=centergtltinput type=submit name=Button1 value=Abschickengtlttdgt
lttrgtlttablegtltformgt
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
31
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPltphp
else
zweiter Aufruf nun rechnen$startzeitInSekunden=$starttag243600+$startStunden3600+$startMinuten60+$startSekunden$landezeitInSekunden=$landetag243600+$landeStunden3600+$landeMinuten60+$landeSekunden flugzeitInSekunden berechnen$flugzeitInSekunden=$landezeitInSekunden-$startzeitInSekunden
if($flugzeitInSekundenlt0)
echo Fehleingabe Landezeit vor Startzeitelse
Flugzeit umrechnen zuerst Sekunden und Minuten$flugzeitMinuten=floor($flugzeitInSekunden60)$flugzeitSekunden=$flugzeitInSekunden60nun minuten und stunden$flugzeitStunden=floor($flugzeitMinuten60)$flugzeitMinuten=$flugzeitMinuten60$flugzeitTage=floor($flugzeitStunden24)$flugzeitStunden=$flugzeitStunden24
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
32
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Raketenbeispiel Loumlsung in PHPausgeben
if($flugzeitTage==0)
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
else
echo Die Flugzeit betrampaumlgt ltbrgt$flugzeitTage Tage ltbrgt$flugzeitStunden Stunden ltbrgt$flugzeitMinuten Minuten ltbrgt$flugzeitSekunden Sekunden ltbrgt
gt
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
33
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
AufgabenAufgabe 61
Sie sollen fuumlr eine Bank die Errechnung von Darlehenskonditionen fuumlr Kunden derBank uumlber das Internet ermoumlglichen
Eingegeben werden soll das Eigenkapital und der Preis der Immobiliedie gekauft werden soll
Der Zinssatz ist 5 die Tilgung 1
Das Programm soll die monatliche Belastung ausgeben
Wenn die Eigenkapitalquote des Kunden kleiner als 30 ist soll keine Berechnungdurchgefuumlhrt werden und anstelle dessen ausgegeben werden dass die Bank
Immobilienerwerb mit einer so geringen Eigenkapitalquote nicht finanziert
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
34
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung Aufgabe 61Pseudocode
1 Subtraktion Preis ndash Eigenkaptital2 Berechnen der Eigenkapitalquote3 if (eigenKapitalQuotelt30)
Kunden uumlber Ablehnung informieren
else
(a) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(b) jahresZahlung=(betrag dividiert durch 100) multipliziert mit (zins+tilgung)(c) monatsZahlung=jahresZahlung dividiert durch Anzahl der Monate(d) Ergebnis ausgeben
httpwwwfb6infoiksysource_imagesloesung6_1gif
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
35
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
ProblemhellipBeispielUser kann Mann Frau oder Kind oder sogar ein Tier sein
if ($user==tier)
echo Hundefutter bestellenelse
if($user==Mann)
echo Bier bestellenelse
if($user==Frau)
echo Kaffee bestellenelseif($user==Kind)
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
36
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Loumlsung switchswitch($user)
case Mannecho Bier bestellen
breakcase Frau
echo Kaffee bestellenbreakcase Kind
echo Cola bestellenbreakcase Tier
echo Hundefutter bestellenbreakdefault Wasser bestellen
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
37
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch - Mehrfachauswertungenltphp$day=date(l)
switch ($day)
case Mondayecho Montagbreak
case Tuesdayecho Dienstagbreak
case Wednesdayecho Mittwochbreak
defaultecho Irgendein Tag wird heute schon sein
gt
selector (Variable)
wenn Wert=Variable mach das
break wichtig weilzwar werden weitere Case-Anweisungennicht beachtet jedoch die enthaltenen Befehle werden sonst ausgefuumlhrt
default wird ausgegeben wenn kein passender case-Befehl existiert
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
38
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlt-- TaschenrechnerDateiname taschenrechner2php --gtltphp Wir pruefen zuerst ob die Anfrage ueber get oder post erfolgteif($REQUEST_METHOD=POST)
erster Aufruf das Formular muss praesentiert werdenecho ltform name=rsquotaschenrechnerrsquo action=rsquo$PHP_SELFrsquo method=rsquopostrsquogt
gtlttable bordergtlttrgt
lttdgtErster Operandlttdgtlttdgtltinput type=text name=ersterOperand size=12gtlttdgt
lttrgtlttrgt
lttdgtOperatorlttdgtlttdgtltinput type=text name=operator size=12gtlttdgt
lttrgt
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
39
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerlttrgt
lttdgtZweiter Operandlttdgtlttdgtltinput type=text name=zweiterOperand size=12gtlttdgt
lttrgtlttrgtlttd colspan=2 align=centergt
ltinput type=submit name=Button1 value=Abschickengtlttdgtlttrgt
lttablegtltformgtltphpelse
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
40
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerswitch ($operator)
case +$ergebnis=$ersterOperand+$zweiterOperand
breakcase -
$ergebnis=$ersterOperand-$zweiterOperandbreakcase
$ergebnis=$ersterOperand$zweiterOperandbreakcase
if($zweiterOperand=0)
$ergebnis=$ersterOperand$zweiterOperandelse
$ergebnis=Versuch durch 0 zu teilen
breakdefault$ergebnis=Falscher Operator eingegeben
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
41
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
switch ndash Taschenrechnerecho Das Ergebnis ist $ergebnis
schliesst else zu if REQUEST_METHODgt
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
42
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - RaketenbeispielBeispiel 614 Raketenprogramm Teil 3lt-- Raketenbeispiel 3 des TextesDateiname raketen3html --gtBitte geben Sie in die Eingabefenster die Startzeit einer Rakete und sodann die
Landezeit einltbrgtDie Flugzeit wird berechnetltbrgtltscript language = JavaScriptgt
var startSekundenvar startMinutenvar startStundenvar starttagvar startmonatvar startzeitInSekundenvar landeStundenvar landeMinutenvar landeSekundenvar landetagvar landemonatvar landezeitInSekunden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
43
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch - Raketenbeispielvar flugzeitInSekundenvar flugzeitStundenvar flugzeitMinutenvar flugzeitSekundenvar flugzeitTageEinlesenstartmonat=prompt(Bitte geben Sie den Startmonat ein)starttag=prompt(Bitte geben Sie den Starttag ein)startStunden=prompt(Bitte geben Sie die Stunden der Startzeit ein)startMinuten=prompt(Bitte geben Sie die Minuten der Startzeit ein)startSekunden=prompt(Bitte geben Sie die Sekunden der Startzeit ein)landemonat=prompt(Bitte geben Sie den Landemonat ein)landetag=prompt(Bitte geben Sie den Landetag ein)landeStunden=prompt(Bitte geben Sie die Stunden der Landezeit ein)landeMinuten=prompt(Bitte geben Sie die Minuten der Landezeit ein)landeSekunden=prompt(Bitte geben Sie die Sekunden der Landezeit ein)
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
44
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -1Umwandelnstartmonat=parseInt(startmonat)starttag=parseInt(starttag)startStunden=parseInt(startStunden)startMinuten=parseInt(startMinuten)startSekunden=parseInt(startSekunden)landemonat=parseInt(landemonat)landetag=parseInt(landetag)landeStunden=parseInt(landeStunden)landeMinuten=parseInt(landeMinuten)landeSekunden=parseInt(landeSekunden) start-und landezeit in sekunden umrechnen zuerst der switch fuer startzeit
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
45
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -2switch(startmonat)
case 1starttag=starttag ueberflussig nur der Klarheit wegenbreakcase 2starttag=31+starttagbreakcase 3starttag=31+28+starttagbreakcase 4starttag=31+28+31+starttagbreakcase 5starttag=31+28+31+30+starttagbreakcase 6starttag=31+28+31+30+31+starttagbreakcase 7starttag=31+28+31+30+31+30+starttagbreakcase 8starttag=31+28+31+30+31+30+31+starttagbreakcase 9starttag=31+28+31+30+31+30+31+31+starttagbreakcase 10starttag=31+28+31+30+31+30+31+31+30+starttagbreakcase 11starttag=31+28+31+30+31+30+31+31+30+31+starttagbreakcase 12starttag=31+28+31+30+31+30+31+31+30+31+30+starttagbreak
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
46
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -3switch(landemonat)
case 1landetag=landetagueberflussig nur der Klarheit wegen
breakcase 2
landetag=31+landetagbreakcase 3
landetag=31+28+landetagbreakcase 4
landetag=31+28+31+landetagbreakcase 5
landetag=31+28+31+30+landetagbreakcase 6
landetag=31+28+31+30+31+landetagbreakcase 7
landetag=31+28+31+30+31+30+landetagbreakcase 8
landetag=31+28+31+30+31+30+31+landetagbreakcase 9
landetag=31+28+31+30+31+30+31+31+landetagbreakcase 10
landetag=31+28+31+30+31+30+31+31+30+landetagbreakcase 11
landetag=31+28+31+30+31+30+31+31+30+31+landetagbreakcase 12
landetag=31+28+31+30+31+30+31+31+30+31+30+landetagbreak
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
47
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -4 jetzt in Sekunden umrechnenstartzeitInSekunden=starttag243600+startStunden3600+startMinuten60+startSekundenlandezeitInSekunden=landetag243600+landeStunden3600+landeMinuten60+landeSekunden flugzeitInSekunden berechnenflugzeitInSekunden=landezeitInSekunden-startzeitInSekundenif(flugzeitInSekundenlt0)
documentwrite(Fehleingabe Landezeit vor Startzeit)else
Flugzeit umrechnen zuerst Sekunden und MinutenflugzeitMinuten=Mathfloor(flugzeitInSekunden60)flugzeitSekunden=flugzeitInSekunden60nun minuten und stundenflugzeitStunden=Mathfloor(flugzeitMinuten60)flugzeitMinuten=flugzeitMinuten60flugzeitTage=Mathfloor(flugzeitStunden24)
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
48
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel -5flugzeitStunden=flugzeitStunden24ausgebenif(flugzeitTage==0)
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
else
documentwrite(Die Flugzeit betrampaumlgt ltbrgt +flugzeitTage + Tage ltbrgt +flugzeitStunden + Stunden ltbrgt +flugzeitMinuten + Minuten ltbrgt +flugzeitSekunden + Sekunden ltbrgt)
ltscriptgt
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden
49
PHP ndash JavaScript Kapitel 6
PHP JavaScript Bernd Bluumlmel amp Christian Metzger ndash Version 14052003
Uumlbung zu switch ndash Raketenbeispiel in PHP1 Eingabeformular2 Formular an Webserver senden (mit Selbstaufruf)3 Bei den Variablen das $ - Zeichen 4 statt documentwrite() echo verwenden