# Native Code > برنامه نویسی در Delphi > مباحث عمومی دلفی و پاسکال >  بدست آوردن نام حیوان سال

## nsco_nsco

سلام .
من می خوام بدونم چطور میشه نام حیوان سال را به دست آورد البته به سادگی .
از زمانهای قدیم در ایران برای هر سال شمسی خود نام یک حیوان گذاشته می شده است که تا حالا نیز متداول می باشد این نام ها که 12 عدد می باشند به صورت چرخشی بر روی سال ها گذاشته می شوند ترتیب آنها به شکل زیر است :
1 . موش
2 . گاو
3 . پلنگ
4.خرگوش
5 اژده ها
6 مار
7 اسب
8 بز
9میمون
10مرغ
11 سگ
12 خوک ( البته در فرمول عدد صفر می باشد)
خوب بگذارید چند مثال بزنم مثلا فرض کنید سال 1387 چه سالی هست ما به صورت تناوب توضیح می دهیم خوب به ادامه دقت کنید:
 1387 سال موش              جواب به دست آمده از فرمول عدد 1
1388 سال گاو                 جواب به دست آمده از فرمول عدد 2
1389 سال پلنگ               جواب به دست آمده از فرمول عدد 3
1390 خرگوش                 جواب به دست آمده از فرمول عدد 4
1391 اژده ها                   جواب به دست آمده از فرمول عدد 5
و همین طور ادامه ...           
خوب برای به دست امدن اینکه نام هر سال چیست از فرمول زیر استفاده می کنیم:
اول سالی که می خواهیم را مثلا 1390 منهای عدد 6 می کنیم پس جواب می شود 1384 خوب حالا عدد 1384 را تقسیم بر 12 می کنیم لطفا تقسیم را دستی انجام دهید بدون ماشین حساب  البته لازم است بدانید که تقسیم را باید تا جایی ادامه دهید که به ممیز نرسد و بعد باقیمانده به دست امده که در اینجا 4 می باشد نشان دهنده سال است و می توان طبق جدول بالا نام حیوان که خرگوش می باشد را بدست بیاوریم .
مشکل :
حالا مشکل اینجاست که ما نمی دانیم چطوری عدد باقیمانده را به دست بیاوریم اما به راحتی در صورتی که بتوانیم به دست بیاوریم می توانیم مثل پایین ان را نمایش دهیم با استفاده از دستورات زیر :
 case متغییر  of
1: Label7.Caption := 'موش';
2: Label7.Caption := 'گاو';
3: Label7.Caption := 'پلنگ';
4: Label7.Caption := 'خرگوش';
5: Label7.Caption := 'اژده ها';
6: Label7.Caption := 'مار';
7: Label7.Caption := 'اسب';
8: Label7.Caption := 'بز';
9: Label7.Caption := 'میمون';
10: Label7.Caption := 'خروس';
11: Label7.Caption := 'سگ';
0: Label7.Caption := 'خوک';
end;
خوب به بالا نگاه کنید اگر بتوانیم با فرمول عدد را به متغییر ارتباط دهیم می توانیم به سادگی آن را نمایش دهیم.

حال باید جوری جواب را به دست بیاوریم یا فرمول را عوض کنیم تا بتوانیم با دستورات آن را به دست آوریم.

 :تشویق:

----------


## mohsen24000

var animal:word;
year:integer;
begin
animal:=(year-6) mod 12;
case animal of
...
end;

----------


## nsco_nsco

سلام آقای mohsen24000

از شما بابت جواب سریعتون متشکرم 
دستتون درد نکنه تست کردم درست جواب داد ممنون می شم در مورد این تکه برنامه که نوشتید توضیح دهید با تشکر فراوان . :خجالت:  :تشویق:

----------


## Felony

اون کد عدد سال رو از 6 کم میکنه و حاصل رو بر 12 تقسیم میکنه و باقی ماندش رو برمیگردونه .

----------

