المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Math Calcul IRG 2008


nasreddine
01-02-2011, 01:52 PM
procedure TForm1.Edit1Change(Sender: TObject);
var x: real;
begin
if edit1.Text <> '' then
begin
if strtofloat(edit1.Text)<=15000 then
edit2.Text := '0.00';

if (strtofloat(edit1.Text)>=15000) and (strtofloat(edit1.Text)<=22500) then
begin
x := ((trunc(strtofloat(edit1.text))-15000) div 10) *2;
edit2.Text := formatfloat('# ##0.00',x);

end;
if (strtofloat(edit1.Text)>=22500) and (strtofloat(edit1.Text)<=28750) then
x := (((trunc(strtofloat(edit1.text))-22500) div 10)* 1.2) + 1500;
edit2.Text := formatfloat('# ##0.00',x);

if (strtofloat(edit1.Text)>=28750) and (strtofloat(edit1.Text)<=30000) then
x := ((trunc(strtofloat(edit1.text))-28750) div 10)*2+2250;
edit2.Text := formatfloat('# ##0.00',x);

if (strtofloat(edit1.Text)>=30000) then
x := ((trunc(strtofloat(edit1.text))-30000) div 10)*3+2500;
edit2.Text := formatfloat('# ##0.00',x);
end;
end;

kachwahed
01-02-2011, 06:46 PM
السلام عليكم
IRG بالفرنسي Impôt sur le Revenu Global بالإنجليزي Total Income Tax (http://en.wikipedia.org/wiki/Income_tax)
بالعربي الضريبة على الدخل الإجمالي (أو ضريبة الدخل (http://ar.wikipedia.org/wiki/%D8%B6%D8%B1%D9%8A%D8%A8%D8%A9_%D8%A7%D9%84%D8%AF% D8%AE%D9%84))
لماذا اخترت حسابها بهذه الطريقة؟
بصيغة أخرى: أين هي المتغيرات وأي هي الثوابت؟

nasreddine
02-02-2011, 07:37 AM
وعليكم السلام ورحمة الله وبركاته
اما بعد هذه الطريقة هي نفسها فهمي لطبيعة الجدول وكيفية تغيره، اي بالملاحظة. بعد كل 10 وحدات تتغير قيمة الضريبة على على الدخل بشكل منتظم في مجالات محددة.
أما فيما يخص المتغيرات والثوابت فإن البرنامج، يستعمل دوال :
dIV باقي القسمة الصحيح من متغير طبيعي.
TRUNC القيمة الصحيحة من متغير حقيقي.
اما STRTOFLOAT . FORMATFLOAT لتحويل صيغة المتغير من حيث الشكل و المحتوى /عدد- صيغة حرفية-
المتغير الوحيد هو قيمة EDIT1.TEXT
لمنع المستعمل من ادخال قيم غير عددية بهذا المتغير نقوم بالآتي:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
Case Key Of
'0': Exit;
'1': Exit;
'2': Exit;
'3': Exit;
'4': Exit;
'5': Exit;
'6': Exit;
'7': Exit;
'8': Exit;
'9': Exit;
'.': Exit;
#8 : Exit;
End;
Key := #0; {Throw the key away}
end;

kachwahed
02-02-2011, 05:02 PM
بارك الله فيك على التوضيحات
موضوع ذو صلة:
هل يمكن اجبار علي ادخال رقم في خانة edit (http://www.delphi4arab.com/forum/showthread.php?t=3412)
أليس من الأفضل أن تكون الشرائح في جدول منفصل؟
وعزل الكود في تابع منفصل؟

sami2008
03-02-2011, 06:14 PM
شيْ جميل والأجدر أن تكون على طريقة Fonction حتى يتمكن المبرمج من إستعمالها عند حساب الضريبة لاسيما في برنامج تسيير المرتبات
شكرا على المساهمة .

alili mostafa
05-02-2011, 11:56 AM
حساب IRG 2010 بواسطة دالة

Function TForm1.IRGCalcule(M:single):Single;
var IRG:single;
begin
IRG:=0;
If M>30000 then IRG:=2500+(M-30000)*0.3 else
begin
if M>28750 then IRG:=2250+(M-28750)*0.2;
if (M>22500)and(M<=28750) then IRG:=1500+(M-22500)*0.12;
if (M>15000)and(M<=22500)then IRG:=(M-15000)*0.2;
end;
IRGCalcule:=IRG;
end;