PHP :: Aufgabe #124 :: Lösung #1

3 Lösungen Lösungen öffentlich
#124

Zahlenübersetzer für Mark

Anfänger - PHP von Acel007 - 13.08.2016 um 11:05 Uhr
Fred will seinem Freund Mark, der nicht gut Englisch sprechen kann, aber sich darum bemüht, es zu lernen, ein Programm schreiben, welches eine beliebige eingegebene Zahl (von 1 - 999) in die geschriebene, englische Version übersetzt (1 = one, u.s.w). Doch er kann selber nicht gut programmieren und fragt nun dich um Hilfe. Hilf Fred ein Programm zu schreiben, welches die oben beschriebene Aufgabe erfüllt.
(Die englischen Regeln für gescheieben Zahlen müssen eingehalten werden.)
#1
vote_ok
von reso (270 Punkte) - 18.12.2017 um 14:18 Uhr
Quellcode ausblenden HTML-Code
  
          <form action="zahlen_uebersetzer.php" method="get">
            <input type="text" name="zahl" pattern="[\d]{1,3}"  >
            <br>
            <input type="submit" name="los" value="Los">
            <br>
          </form>  

Quellcode ausblenden PHP-Code
          $numbers = array(1=>one,two,three,four,five,six,seven,eight,nine,ten,
                            eleven,twelve,thirteen,fourteen,fifteen,sixteen,seventeen,
                            eighteen,nineteen,twenty,30=>thirty,40=>forty,50=>fifty,60=>sixty,
                            70=>seventy, 80=>eighty,90=>ninety,100=>hundred);
          
          if(isset($_GET['los']) && !empty($_GET['zahl']))
          {
            $zahl = $_GET['zahl'];            
            $zahl_arr = str_split($zahl);
            switch(count($zahl_arr))
            {
              case 1:
                    $zahl_zusammen = $zahl_arr[1].$zahl_arr[2];
                    echo $numbers[$zahl_arr[0]];
                    break;
             case 2:
                    $zahl_zusammen = $zahl_arr[0].$zahl_arr[1];
                    if($zahl_zusammen < 20 )
                    {
                      echo $numbers[$zahl_arr[1]+10];
                    }
                    else
                    {
                      echo $numbers[$zahl_arr[0]*10]."-".$numbers[$zahl_arr[1]];
                    }
                    break;    
             case 3:
                    $zahl_zusammen = $zahl_arr[1].$zahl_arr[2];
                    if($zahl_zusammen < 20 && $zahl_zusammen > 0 )
                    {
                      echo $numbers[$zahl_arr[0]]." ".$numbers[100]." ".$numbers[$zahl_arr[2]+10];
                    }
                    elseif($zahl_zusammen == 0)
                    {
                      echo $numbers[$zahl_arr[0]]." ".$numbers[100];
                    }
                    else
                    {
                      echo $numbers[$zahl_arr[0]]." ".$numbers[100]." ".$numbers[$zahl_arr[1]*10]."-".$numbers[$zahl_arr[2]];
                    }
                    break;               
            }
          }

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben