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

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.)
#3
vote_ok
von paddlboot (3970 Punkte) - 14.08.2019 um 11:21 Uhr
Quellcode ausblenden PHP-Code
<?php
//beliebige Zahl eingeben
$zahlDE = 155;
$zahlEN = '';

echo $zahlDE.' in englisch:<br/>';


do
{
	if($zahlDE > 99)
	{
		$zahlEN .= getEiner(intval($zahlDE/100));
		$zahlEN .= ' hundred ';

		$zahlDE -= intval($zahlDE/100).'00';
	}
	else if($zahlDE > 9)
	{
		if(intval($zahlDE/10) == 1)
		{
			switch($zahlDE)
			{
				case 10:
					$zahlEN .= 'ten';
					$zahlDE -= 10;
					break;
				case 11:
					$zahlEN .= 'eleven';
					$zahlDE -= 11;
					break;
				case 12:
					$zahlEN .= 'twelve';
					$zahlDE -= 12;
					break;
				case 13:
					$zahlEN .= 'thirteen';
					$zahlDE -= 13;
					break;
				case 14:
					$zahlEN .= 'fourteen';
					$zahlDE -= 14;
					break;
				case 15:
					$zahlEN .= 'fifteen';
					$zahlDE -= 15;
					break;
				case 16:
					$zahlEN .= 'sixteen';
					$zahlDE -= 16;
					break;
				case 17:
					$zahlEN .= 'seventeen';
					$zahlDE -= 17;
					break;
				case 18:
					$zahlEN .= 'eighteen';
					$zahlDE -= 18;
					break;
				case 19:
					$zahlEN .= 'nineteen';
					$zahlDE -= 19;
					break;
			}
		}
		else
		{
			$zahlEN .= getZehner(intval($zahlDE/10));
			$zahlDE -= (intval($zahlDE/10)).'0';
		}
	}
	else
	{
		if($zahlEN != '')
		{
			$zahlEN .= '-';
		}

		$zahlEN .= getEiner($zahlDE);
		$zahlDE -= $zahlDE;
	}

}while($zahlDE > 0);


echo $zahlEN;




function getEiner($zahl)
{
	switch ($zahl)
	{
		case 1:
			return 'one';
		case 2:
			return 'two';
		case 3:
			return 'three';
		case 4:
			return 'four';
		case 5:
			return 'five';
		case 6:
			return 'six';
		case 7:
			return 'seven';
		case 8:
			return 'eight';
		case 9:
			return 'nine';
	}
}


function getZehner($zahl)
{
	switch($zahl)
	{
		case 2:
			return 'twenty';
		case 3:
			return 'thirty';
		case 4:
			return 'fourty';
		case 5:
			return 'fifty';
		case 6:
			return 'sixty';
		case 7:
			return 'seventy';
		case 8:
			return 'eighty';
		case 9:
			return 'ninety';
	}
}

?>

Kommentare:

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

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