بفرمایید اینم از برنامش لینک EXE:
http://s5.picofile.com/file/8113832992/project.exe.html
اینم خود کد البته توضیح میدم:
a = Dialog.Input("Input", "First Number", ""
;
b = Dialog.Input("Input", "Second Number", ""
;
این دو خط که ورودی میگیرن
u={}
m={}
f=0
2 تا آرایه و 1 متغیر مقداردهی میکنیم
for i=1,String.Length(a) do
u[i]=String.Mid(a,i,1)
if (String.Find(b,String.Mid(a,i,1),1,false)==-1) then
f=1
end
end
این حلقه از 1 تا طول عدد اول تکرار میشه اول میاد 1 کاراکتر از محل i از عدد اول جدا میکنه و در خونه i ارایه u میذاره بعد میاد ببینه که این کاراکتر ها توی عدد دوم پیدا میشه یا نه دستور String.Find اگر کاراکتر وجود نداشته باشه -1 رو بر میگردونه پس با این حساب اگر f برابر 0 باشه یعنی همه ی کاراکتر ها یا همون اعداد تو عدد دوم وجود دارن اگرم 1 باشه که یعنی ندارن
if (f==0) then
for i=1,String.Length(a) do
b=String.Replace(b, u[i], "", false);
end
میایم کاراکتر های عدد اول رو که در آرایه u ذخیره کرده بودیم جایگزین میکنیم با جای خالی در عدد دوم
Dialog.Message("out",b);
این دستور هم خروجی میده
else
حالا از این قسمت به بعد اگه همه ی کاراکتر ها وجود نداشته باشنه
for i=1,String.Length(b) do
m[i]=String.Mid(b,i,1)
end
میایم کاراکتر ها یا همون اعداد عدد دوم رو داخل آرایه m میریزیم
b=String.ToNumber(b)
zoj=0
fard=0
عدد دوم رو تبدیل به عدد کردم
زوج و فرد هم مقدار دهی میکنیم
if (Math.Mod(b,2)==0) then
این جا دو حالت داریم یا عدد دوم فرده یا زوج
اگر زوج باشه برای زوج ها باید حلقمون از 2 شروع شه تا اندازه خود عدد با استپ 2
برای فرد ها باید از 1 شروع شه تا طول عدد منهای 1 تا بزرگترین عدد فردبدست بیاد
حالا اگه عدد دوم فرد باشه دقیقا برعکس میشه یعنی برای زوج ها منهای یک و برای فرد ها خود طول عدد دوم
for i=2,String.Length(b),2 do
if (Math.Mod(m[i],2)==0) then
zoj=zoj+m[i]
end
end
for i=1,String.Length(b)-1,2 do
if (Math.Mod(m[i],2)==1) then
fard=fard+m[i]
end
end
else
for i=2,String.Length(b)-1,2 do
if (Math.Mod(m[i],2)==0) then
zoj=zoj+m[i]
end
end
for i=1,String.Length(b),2 do
if (Math.Mod(m[i],2)==1) then
fard=fard+m[i]
end
end
end
Dialog.Message("out","fard="..fard.."\r\n".."zoj="..zoj);
اینم که خروجیه
end