1. حسین :)
  2. برنامه‌نویسی و طراحی وب
  3. دوشنبه, 28 بهمن 1392
سلام دوستان
من تا فردا که 29 بهمن می باشد باید جواب این سوال رو بدم خواهش می کنم کمکم کنید.
حتما جبران می کنم.
سوال:
فلوچارتی رسم کنید که هر مرتبه دو عدد را از ورودی دریافت کند.اگر کلیه ارقام عدد اول در عدد دوم موجود بود،آن ارقام را از عدد دوم حذف کن و در انتها عدد دوم تغییر یافته را چاپ نماید.در غیر این صورت مجموع ارقام فرد در جایگاه فرد و مجموع ارقام زوج در جایگاه زوج عدد دوم را به صورت جداگانه چاپ نماید.شماره گذاری جایگاه ارقام از سمت چپ شروع می شود و پایان اعداد با اعلام ورودی منفی مشخص می شود.
مثال
ممنون
اللهم عجل لولیک الفرج
بهترین پاسخ
مسعود ذاکری بهترین پاسخ Pending Moderation
کارشناس
0
رای
پس‌گیری
بفرمایید اینم از برنامش لینک 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
مسعود ذاکری بهترین پاسخ Pending Moderation
کارشناس
0
رای
پس‌گیری
سوالش سخت نیست الان کار دارم هر وقت حلش کردم کد یا الگوریتمو میذارم شما خودت فلوچارتشو رسم کن
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
پس امروز خواهشا دمت گرم.
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
حالا این تکلیف به کنار می تونی مرجعی رو برام معرفی کنی تا با خواندن آن بتونم هر سوالی رو حل کنم؟
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
خیلی ممنون آقا مسعود شرمندم کردی.
اینرو هم گیر آوردم ببین درسته
اللهم عجل لولیک الفرج
مسعود ذاکری بهترین پاسخ Pending Moderation
کارشناس
0
رای
پس‌گیری
یه مقدار کلی نوشتی ولی خوبه فقط شما به جای رشته از راه ریاضیش رفتی ;)
  • صفحه :
  • 1


هنوز پاسخی به این پست ارسال نشده است.
البته از آنجایی که هنوز در سایت لاگین نکرده‌اید، اجازه‌ی پاسخ دادن به این پست را ندارید.