49
1 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Algorithmus Der genaue Lösungsplan manchmal trivial manchmal nicht trivial :-) die auszuführenden Aktionen die Reihenfolge, in der die Aktionen auszuführen sind unabhängig von der Programmiersprache Dokumentation in Pseudocode

PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 2: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 3: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 4: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 5: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 6: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 7: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 8: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 9: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 10: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 11: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 12: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 13: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 14: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 15: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 16: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 17: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 18: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 19: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 20: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 21: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 22: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 23: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 24: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 25: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 26: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 27: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 28: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 29: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 30: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 31: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 32: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 33: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 34: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 35: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 36: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 37: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 38: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 39: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 40: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 41: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 42: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 43: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 44: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 45: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 46: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 47: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 48: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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

Page 49: PHP – JavaScript Kapitel 6 Algorithmus file10 PHP – JavaScript Kapitel 6 PHP / JavaScript Bernd Blümel & Christian Metzger – Version 14.05.2003 Anwendung // Wir pruefen nun

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