من یک برنامه به زبان جاوا نیاز دارم که یک عدد را در ورودی بگیرد وبه حروف در خروجی نمایش دهد....
با تشکر....![]()
خب باید برای اعدادیک رقمی-دورقمی -سه رقمی و..... هرکدوم یه جدول از حروف درنظرگرفت که بعداز مشخص شدن تعداد حروف به سراغ اون جدول بره امامیشه به اندازه تعداد حروف یه جدول درنظرگرفت بعدبااستفاده از همون جدول های حروف قبلی اونو ساخت...؟؟فکرکنم حافظه زیادی می بره!!چطوری میشه مقدارحافظه مصرفی رو به حداقل رسوند؟؟؟من فکر میکنم یه راهش هم میتونه این جوری باشه:
مثلا اگر عدد دو رقمی هست میام با استفاده از عمل تقسیم و باقی مانده رقم دهگان رو بدست میاریم. بعد طبق جدولی که
در برنامه ذخیره کردیم معادل اون رقم چاپ میشود :
مثال : عدد 25 . خب رقم دهگان 2 میشود طبق برنامه برای 2 " بیست " چاپ میشود و بعد " و " و بعدش رقم یکان هم
که در برنامه براش حروف ذخیره شده چاپ میشه .
فقط کافیه که با استفاده از دستورات حروف در برنامه ذخیره بشه.
این فکر من بود. که فکر نکنم پیاده سازیش سخت باشه.
[LEFT]import java.util.Scanner;
public class Hadi {
public static void yekan (int indexY){
String arYekan[] = {"","Yek","Do","Se","Chahar","Panj","Shesh","Haft","Hasht","Noh"};
System.out.print(arYekan[indexY]);
}
public static void dahgan (int indexD){
String arDahgan[] = {"","dah","Bist","Si","Chehel","Panjah","Shasht","Haftad","Hashtad","Navad"};
System.out.print(arDahgan[indexD]);
}
public static void sadgan (int indexS){
String arSadgan[] = {"","Sad","Divist","Sisad","Chaharsad","Pansad","Sheshsad","Haftsad","Hashtsad","Nohsad"};
System.out.print(arSadgan[indexS]);
}
public static void [COLOR=#008000]Estesna [/COLOR](int indexE){
String arSadgan[] = {"","Yazdah","Davazdah","Sizdah","Chahardah","Panzdah","Shanzdah","Hefdah","Hejdah","Nuzdah"};
System.out.print(arSadgan[indexE]);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Adad: ");
String strAdad = input.next();
[COLOR=#ff0000]strAdad = String.valueOf(Integer.valueOf(strAdad));[/COLOR]
if (Integer.valueOf(strAdad) != 0){
switch (strAdad.length()){
case 1:
yekan(Integer.valueOf(strAdad));
break;
case 2:
dahgan(Integer.valueOf(strAdad.substring(0, 1)));
if(Integer.valueOf(strAdad.substring(1, 2)) != 0)
System.out.print("o ");
yekan(Integer.valueOf(strAdad.substring(1, 2)));
break;
case 3:
sadgan(Integer.valueOf(strAdad.substring(0, 1)));
if(Integer.valueOf(strAdad.substring(1, 2)) != 0)
System.out.print("o ");
dahgan(Integer.valueOf(strAdad.substring(1, 2)));
if(Integer.valueOf(strAdad.substring(2, 3)) != 0)
System.out.print("o ");
yekan(Integer.valueOf(strAdad.substring(2, 3)));
break;
}
} else System.out.println("Sefr");
System.out.println("");
}
}
[/LEFT]
سلام...
ممنون به خاطر کد....
فکرکنم برای اعداد ده تا نوزده یه شرط برارقم دهگان بذاریم که اگه برابر با یک باشه یکی ازاعدادده تانوزده میشه که برای تشخیص اون هم باید کاراکتر بعداز یک با اعدادیک تا نه مقایسه بشه بعد مطابق بااون عددچاپ کنه....درغیراینصورت بیست،سی،.....چاپ بشه.
راستی باswitch باید یه محدوده برای اعداد درنظربگیریم.حالااگه قرارباشه محدوده اعدادورودی رو کاربرتعیین کنه باید چیکارکرد؟؟
[LEFT]default:
System.out.println("Kharej az mahdude");
break
[/LEFT]
[LEFT]
boolean kntrl_adad = true;
while (kntrl_adad) {
if (Integer.valueOf(strAdad) > [COLOR=#008000]999[/COLOR]){
System.err.println("kharej az mahdude...");
System.out.print("Adad: ");
strAdad = input.next();
}else
kntrl_adad = false;
}
[/LEFT]
Thread starter | عنوان | تالار | پاسخ ها | تاریخ |
---|---|---|---|---|
S | کدهای برنامه های زیر به زبان جاوا میخواستم 0 ممنون | Java | 2 | |
![]() |
برنامه ای به زبان جاوا ، کسی می تونه کمکم کنه ؟ | Java | 1 | |
N | برنامه مبدل زبان C به جاوا | Java | 1 | |
![]() |
برنامه نویسی در محیط پویا به زبان جاوا | Java | 0 | |
A | دانلود نرم افزار آموزش برنامه نویسی java به زبان فارسی | Java | 0 |