PDA

View Full Version : سوال: کمک برای برنامه ای که عدد بگیرد و حروف نمایش دهد؟!



raid3n
شنبه 08 مهر 1391, 19:19 عصر
سلام،
برنامه ای می خوام بنویسم که وقتی عدد بهش میدم مثلا 5 سپس به حروف و در یک فایل دیگر به نام out.txt "پنج" رو ذخیره کنه،وقتی که بهش می دم 605 بنویسه ششصد و پنج و ..


تا اعداد سه رقمی رو هم پشتیبانی کنه،کار باید بر اساس فایل ها باشه و من اعداد رو داخل فایلی به نام in.txt ذخیره می کنم بره و جواب رو در فایل out.txt دخیره کنه...

بر اساس آرایه ها

یا علی

Unique
شنبه 08 مهر 1391, 22:53 عصر
کافیه یکان و دهگان و صدگان را تعریف کنید بعد از راست به چپ طبق تعریف عمل کنید البته به غیر از 11 تا 19 که باید چک کنید ! راحته کمی وقت بگذارید انجام میشه.

raid3n
شنبه 08 مهر 1391, 22:57 عصر
لطف می کنید برنامش رو بنویسید،منم به یه جاهایی رسیدم اما کلا قرو قاتی و اشتباه شده،ارور میده،اما منطقم یه چیز تو مایه های مال شمایه..

فکر نمی کنم از چند خط بیشتر بشه

imanitc
یک شنبه 09 مهر 1391, 07:06 صبح
<?php
/*
Author : SIMN
date : 1389-08-13
*/
$Yekan =array();
$Str_10_20=array();
$Dahgan=array();
$Sadgan=array();
$DogNo=array();
function Str_0_100($No) {
global $Str_10_20;
global $Yekan;
global $Dahgan;
$s='';
if ($No < 10)
$s = $Yekan[$No];
elseif ($No < 20)
$s = $Str_10_20[$No - 10];
elseif ($No < 100) {
$s = $Dahgan[intval(($No / 10)) - 1];
if (($No % 10) > 0)
$s = $s . ' و ' . $Yekan[$No % 10];
}
return $s;
}

function Str_0_1000($No) {
global $Sadgan;
$s='';
if ($No < 100)
$s = Str_0_100($No);
else{
$s = $Sadgan[intval(($No / 100)) - 1];
if ($No % 100 > 0)
$s = $s . ' و ' . Str_0_100($No % 100);
}
return $s;
}
Function No2Str($No) {
global $Yekan ;
global $Str_10_20 ;
global $Dahgan ;
global $Sadgan ;
global $DogNo ;


$s='';
$i= $k =0;

$Yekan[0] = "صفر";
$Yekan[1] = "یک";
$Yekan[2] = "دو";
$Yekan[3] = "سه";
$Yekan[4] = "چهار";
$Yekan[5] = "پنج";
$Yekan[6] = "شش";
$Yekan[7] = "هفت";
$Yekan[8] = "هشت";
$Yekan[9] = "نه";


$Str_10_20[0] = "ده";
$Str_10_20[1] = "یازده";
$Str_10_20[2] = "دوازده";
$Str_10_20[3] = "سیزده";
$Str_10_20[4] = "چهارده";
$Str_10_20[5] = "پانزده";
$Str_10_20[6] = "شانزده";
$Str_10_20[7] = "هفده";
$Str_10_20[8] = "هیجده";
$Str_10_20[9] = "نوزده";

$Dahgan[0] = "ده";
$Dahgan[1] = "بیست";
$Dahgan[2] = "سی";
$Dahgan[3] = "چهل";
$Dahgan[4] = "پنجاه";
$Dahgan[5] = "شصت";
$Dahgan[6] = "هفتاد";
$Dahgan[7] = "هشتاد";
$Dahgan[8] = "نود";

$Sadgan[0] = "صد";
$Sadgan[1] = "دویست";
$Sadgan[2] = "سیصد";
$Sadgan[3] = "چهارصد";
$Sadgan[4] = "پانصد";
$Sadgan[5] = "ششصد";
$Sadgan[6] = "هفتصد";
$Sadgan[7] = "هشتصد";
$Sadgan[8] = "نهصد";

$DogNo[0] = "هزار";
$DogNo[1] = "میلیون";
$DogNo[2] = "میلیارد";
$DogNo[3] = "تریلیون";


$s = '';
$i = 0;
if((int)$No==0) $s=$Yekan[0];
else
While ($No > 0){
$k = $No - 1000 * intval(($No / 1000));
$No = intval(($No / 1000));
if ($k > 0) {
if ($i > 0) {
if (strlen($s) > 0)
$s = $DogNo[$i - 1] . " و" . $s;
else
$s = $DogNo[$i - 1] . $s;
}
$s = Str_0_1000($k) . ' ' . $s;
}
$i = $i + 1;
}//while
return $s;
}

function Full_No2Str($FullNo) {
if (strpos(strval($FullNo), '.') == 0)
return No2Str($FullNo);
else
{
$No = 0.0 ;
$Mantisa = 0.0;
$S1=$S2=$str_mid='';
$No = intval(substr(strval($FullNo) , 0, strpos(strval($FullNo), '.')));
$S1 = No2Str($No);
$Mantisa = substr(strval($FullNo), strpos(strval($FullNo), '.') + 1);
$S2 = No2Str(intval($Mantisa));
switch ( strlen(strval($FullNo)) - strpos(strval($FullNo), '.') -1 ){
case 1: $str_mid = "دهم"; break;
case 2: $str_mid = "صدم"; break;
case 3: $str_mid = "هزارم"; break;
}
return ($S2=='' ? $S1 : $S1 . " و " . $S2 . ' ' . $str_mid);
}
}

?>