((تبدیل تاریخ شمسی عددی به حروفی))
با سلام خدمت دوستان...!:ناراحت:
---------------------------------------------------------------------------------------------------------------
برنامه ای بنویسید که تاریخ شمسی را گرفته (بصورت عددی) و به حروف بنویسید بطور مثال برای تاریخ 1391/10/17 در خروجی نشان دهد.
Hevda home Day mahe
hezaro sisado navado yek
یه راهنمایی هم کرده که سردر نیاوردم ، اینکه گفته:سال حداکثر پنج رقمی باشد%
حامد خان دیگه این با مشکل مطرح کردم ها دیگه دبه نکنی حذف کنی؟؟؟
تورو خدا کمکم کنید پنج شنبه باید تحویل بدم!!!:گریه:
---------------------------------------------------------------------------------------------------------------
دوستان من فقط یک قسمتش رو تونستم اما بازم این اشکال داره!
وقتی پنج رقمی میدی به فرض (11560) بنویسه یازده هزار سی صد و شصت اما نمیدونم دیگه چیکارش کنم درس کار کنه؟
کسی میدونه چطوری میشه از اینم راحت تر نوشت؟
البته بگم این فقط قسمت سال ورودیش هستش،ماه و روزش مونده که اونم تا حدودی ازاین قسمت راحتر هستش!اگه اونم بتونم
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int main ()
{
int a,b,c,w,k,f,r,n,z,m,h;
clrscr();
cin>>a;
b=a%10; // b
c=a/10;
w=c%10; // w
f=c/10;
r=f%10; // r
n=f/10;
m=n%10; // m
h=n/10;
z=h%10; // z
//================================
long int n1,n2,n3,n4,n5,x1,m1;
n1=z*10+m;
n2=n1*10+r;
n3=n2*10+w;
x1=n3*10+b;
{if (a>9999)
//cout<<z<<" "<<m<<" "<<r<<" "<<w<<" "<<b<<" "<<endl;
{if (z==1)cout<<"dahhezaro ";else if (z==2)cout<<"besto ";
else if (z==3)cout<<"seio ";else if (z==4)cout<<"chahalo ";
else if (z==5)cout<<"panjaho ";else if (z==6)cout<<"shasto ";
else if (z==7)cout<<"haftado ";else if (z==8)cout<<"hashtado ";
else if (z==9)cout<<"navado ";}
{if (m==1)cout<<"hezaro";else if (m==2)cout<<"doo hezaro";
else if (m==3)cout<<"see hezaro";else if (m==4)cout<<"chahar hezaro";
else if (m==5)cout<<"panj hezaro";else if (m==6)cout<<"shesh hezaro";
else if (m==7)cout<<"haft hezaro";else if (m==8)cout<<"hasht hezaro";
else if (m==9)cout<<"noh hezaro";}
{if (r==1)cout<<" sado";else if (r==2)cout <<" devisto";
else if (r==3)cout<<" siesado";else if (r==4)cout<<" charsado";
else if (r==5)cout<<" pansado";else if (r==6)cout<<" shishsado";
else if (r==7)cout<<" hafsado";else if (r==8)cout<<" hashsado";
else if (r==9)cout<<" nohsado";}
{if (w==1)cout<<" daho";else if (w==2)cout<<" best";
else if (w==3)cout<<" siy";else if (w==4)cout<<" chahal";
else if (w==5)cout<<" panjah";else if (w==6)cout<<" shast";
else if (w==7)cout<<" haftad";else if (w==8)cout<<" hashtad";
else if (w==9)cout<<" navad";}
{if (b==1)cout<<"o yek";else if (b==2)cout<<"o doo";
else if (b==3)cout<<"o see";else if (b==4)cout<<"o chahar";
else if (b==5)cout<<"o panj";else if (b==6)cout<<"o shiesh";
else if (b==7)cout<<"o haft";else if (b==8)cout<<"o hasht";
else if (b==9)cout<<"o noeh";}
}
else if (a>999)
{
{if (m==1)cout<<"hezaro";else if (m==2)cout<<"doo hezaro";
else if (m==3)cout<<"see hezaro";else if (m==4)cout<<"chahar hezaro";
else if (m==5)cout<<"panj hezaro";else if (m==6)cout<<"shesh hezaro";
else if (m==7)cout<<"haft hezaro";else if (m==8)cout<<"hasht hezaro";
else if (m==9)cout<<"noh hezaro";}
{if (r==1)cout<<" sado";else if (r==2)cout <<" devisto";
else if (r==3)cout<<" siesado";else if (r==4)cout<<" charsado";
else if (r==5)cout<<" pansado";else if (r==6)cout<<" shishsado";
else if (r==7)cout<<" hafsado";else if (r==8)cout<<" hashsado";
else if (r==9)cout<<" nohsado";}
{if (w==1)cout<<" daho";else if (w==2)cout<<" best";
else if (w==3)cout<<" siy";else if (w==4)cout<<" chahal";
else if (w==5)cout<<" panjah";else if (w==6)cout<<" shast";
else if (w==7)cout<<" haftad";else if (w==8)cout<<" hashtad";
else if (w==9)cout<<" navad";}
{if (b==1)cout<<"o yek";else if (b==2)cout<<"o doo";
else if (b==3)cout<<"o see";else if (b==4)cout<<"o chahar";
else if (b==5)cout<<"o panj";else if (b==6)cout<<"o shiesh";
else if (b==7)cout<<"o haft";else if (b==8)cout<<"o hasht";
else if (b==9)cout<<"o noeh";}
}
}
getch();
}
نقل قول: ((تبدیل تاریخ شمسی عددی به حروفی))
با دستورات select()و for میشه پیاده سازیش کرد . از عملگر % روی اعداد صحیح استفاده کن .
سال رو اگه در آوردی ، بقیش زیاد کاری داره . همشو با select () بنویس . ۱۲ ماه رو case های مختلفش قرار بده . چون برنامه لازم نیست چک کنه که تاریخ درست هست یا نه ( مثلا نخواسته که اگه بره نیمه دوم عدد روز رو ۳۱ گذاشتی ارور بگیره ) پس روز رو جدا از ماه حساب کن و لازم نیست تو هر case روز ها رو جداگونه بررسی کنی .
ر کل برنامه راحتیه . فقط باید چیزای تکراری زیادی بنویسی .
نقل قول: ((تبدیل تاریخ شمسی عددی به حروفی))
دوست عزیز ممنون از جوابت
اما یه مشکلی که دارم گفتن عدد از ورودی هست که نمیتونم با کراکتر ازهم جدا کنم
مثال اینکه باید از وورودی 1391/12/12 بنویسم اما چون نمیتونم با کاراکتر از هم جدا کنم 1391 12 12 با فاصله از هم جدا میکنم؟
راحلی هست؟؟؟
نقل قول: ((تبدیل تاریخ شمسی عددی به حروفی))
نقل قول:
نوشته شده توسط
Mrt-amin
دوست عزیز ممنون از جوابت
اما یه مشکلی که دارم گفتن عدد از ورودی هست که نمیتونم با کراکتر ازهم جدا کنم
مثال اینکه باید از وورودی 1391/12/12 بنویسم اما چون نمیتونم با کاراکتر از هم جدا کنم 1391 12 12 با فاصله از هم جدا میکنم؟
راحلی هست؟؟؟
میتونی از token استفاده کنی . اما زیاد استادا به روش دریافت داده توجه نمی کنن . همین جوری هم می توی جدا جدا بگیری . اما اگه از token استفاده کنی ، باید اول مقدار ورودی رو کامل تو یه رشته بریزی و بعدش شروع کنی به گرفتن مقدار token از رشته و هر موقع token برابر '/' شد بری سراغ متغیر بعدی . token هم به صورت هدر فایل وجود داره و هم می تونی تو یه حلقه تعریفش کنی . من روش دوم رو رفتم .
به این صورت که از اول رشته یه حلقه می ذاری که هر بار کارکتر iام رو تو متغیری از نوع char ( که همون token دستی خودت می شه ) ، میریزی و بعدش اون متغیر رو مورد ارزیابی قرار می دی و بعد از ارزیابی i++ انجام می دی تا کارکتر بعدی رو بگیری . شرط پایان حلقه هم رسیده به کارکتر '0\' هستش ( همون NULL به شکل کارکتری هستش .)