مشاهده نسخه کامل
: سوال : پيدا كردن اعدادي كه بين يك سري اعداد پشت سر هم نيستند
سلام
من يه سري عدد پشت سر هم دارم مثلا 1 تا 100 اما بين اين اعداد چند تا عدد نيستند مثلا 25 و 46 و 78 حالا چطور بفهمم كه اين اعداد در اين سري پشت سر هم قرار ندارن.
نكته : اعداد ورودي حتما پشت سر هم هستند
ممنون و منتظرم
Mahmood_N
08-09-2006, 19:06
اشتباه شد :blush:
سلام
بر چه اثاثي اين عدد ها توي اين سري قرار نمي گيرن؟
مرد مباح
08-09-2006, 21:04
يك كمي بيشتر توضيح بده
اين سري اصلا از كجا اومده و اگه فرمولي داره اونو بنويس.
ممنون
amin a.^2
08-09-2006, 21:23
لطفاً توضیح بده ککه چجوری هستند ای عددا
و چرا چند تا عدد میانشان نیستند
از کوچکترین عضو شروع کن و تا آخرین عضو رو بصورت پشت سر هم بشمار و هر بار یک واد اضافه کن !
بررسی کن هر کدوم در مجمعهاولی نبود رو یکی یکی یه یک لیست یا آرایه دیگه اضافه کن
خیلی راحته ...
با پایتون می نویسم برات :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خروجی :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
ببينين دوستان اطلاعات يه فرم (منظورم فرم برنامه نيست فرم مثلا كارنامه يه همچين چيزي)شامل شماره فرم و تاريخ صدور فرم و ... از طرف كاربر وارد ميشه . در اين ميان بعضي از شماره فرم ها بدليل باطل شدن وارد نميشه . اما مي دانيم كه اين شماره ها پشت سر هم هستند . ما ميخواهيم از اين فرم ها گزارش بگيريم . خوب در صفحه گزارش ميگيم كه تمام ركورد هاي بانك اطلاعاتي رو نشون بده . خوب تا اينجا مشكلي نداريم .
حالا من مي خواهم در آخر صفحه گزارش بنويسم تعداد ايكس عدد فرم باطل شده است (شماره اونها وارد بانك نشده )
با توجه به اينكه شماره فرم ها رو محدود به ماه مورد نظر مي كنيم ( از طرف كاربر انتخاب ميشه ) و از اونا گزارش ميگيريم چطور مشخص كنيم كه چه شماره هايي در اين محدوده زماني وارد نشده ؟
ممنون
سلام
يك فيلد بزار براي اينكه باطل شده يا نه!
اونهايي كه باطل ميشن حرف N بگیره! و اونهایی که باطن نشدن حرف Y بگیره!
بعد با یه حلقه به اندازه تعداد رکوردها از دستور nextfind بده! (قبلش حرف N رو فیلتر کن)
بعد توی این حلقه مشخص میشه که کدوم ها باطل شدن!
این روش رو خودم همین حالا ابدا کردم
و روش دیگه ای پیدا نکردم! ببین اگر بدرد خورد خبر بده!(می دونم که اگر کار کرد ضد حال می زنی و خبر نمیدی)
سلام
سولجر عزيز همون جور كه گفتم كاربر شماره فرم رو وارد ميكنه و من شماره ها رو ندارم حالا چطور فيلدي رو كه شما ميگين پر كنم
مثل اينكه كاربر شماره فرم رو وارد كنه و بعد بگه اين باطله (اينطوري كه نميشه )
bayazee عزيز دست شما هم درد نكنه با اين روش موافقم (چون به فكر خودم هم رسيد ) حالا منتظر راهنمايي ديگر دوستان هستم .(از قديم ميگن چند تا فكر بهتر از يك فكره )
ممنون
سلام
می تونید بگید که چطوری شماره ها وارد دیتابیس میشه!
در ضمن این روش رو امتحان کن!
s:=0;
for I := 1 to 100 do
if I+S <> adodataset1.fieldvalue['esme field'] then begin
ShowMessage(IntToStr(I);
Inc(S);
end;
باید خودت به میل خودت کاملش کنی
چون من از 1 تا 100 رو چک می کنه!
در مورد من اطلاعات بیشتری در مورد برنامه ات نداشتم که کمک بیشتری کنم!
هر جا مشکل داشتی بگو!
این کد هر عددی که وجود نداشت مشخص می کنه!
خوب اگر مشکل حل شد خبر بده
سولجر عزيز ميشه يه جورايي برنامه شما رو شبيه چيزي كه bayazee گفتن فرض كرد
ممنون و منتظر پيشنهاد ديگر دوستان هستم
سلام
خوب این تا حدودی کامل تر بود! یعنی باز هم بدرد نخورد؟
خوب وقتی که دیگه کامل فکر کردن بر روی انتخاب الگوریتم تموم شد
و می خواستید از پست10# استفاده کنید! سوالی داشتید ! در خدمتم!
مرد مباح
10-09-2006, 13:43
مقدار وردي كابر رو ----- كن و كل مقادير فيلد ابطال رو توي يك While چك كن.
مقاديري كه ميخواي رو True و باقي رو False كن.
بعد پرينت بگير.
اميدوارم منظورتو درست فهميده باشم و به دردت بخوره.
mahdi bg
11-09-2006, 19:34
سلام:
hp1361 جان
اينطوري كه من فهميدم:
اول گزارش رو بر اساس ماه يا سال يا هر چيز ديگري كه مي خواهي بگيري انجام بده بعد
اگر از ADOTable استفاده مي كني كد زيررو وارد كن
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
توضيح
1. كد رو ساده نوشتم كه قابل فهم باشه وگرنه راحتر و زيبا تر هم مي شه نوشت
2. s:string;
3. i:integer;
4. فرض بين اعداد يك فاصله باشد (1و2و5و... غير مجاز چون بين 2و5 دو عدد وارد نشده البته مي شه با يكم تغيير اين رو هم اضافه كرد كه چند عدد هم اگه وارد نشد كنترل كنه)
5. ابتدا از اول شروع ميكنه و هر شماره رو با قبلش چك مي كنه اگه اختلافشون يكي بود عدد رو به رشته s اضافه ميكنه
مثال:
1و2و3و5و6
اگه به 5 رسيده باشد آنگاه if (ADOTable1.FieldByName('YourFieldName').Value<>i+1) then مقدار True مي شه يعني 5<>3+1 پس عدد بين (IntToStr(ADOTable1.FieldByName('YourFieldName').V alue-1) رو به رشته s اضافه ميكنه }عدد 4{
اميدوارم كه كمكت كرده باشم
سلام
اول از هر چيز بگم كه بخاطر عدم همكاري دوستان در راهنمايي من براي بكار بردن جداول ADO از خيرش بكل گذشتم (دلگير هم هستم چون بيشتر بكارم ميامد )
من از جداول پارادكس استفاده مي كنم
الگوريتم مورد نظر هم با راهنمايي bayazee و mehdi bg عزيز انتخاب شد
ممنون
مرد مباح
12-09-2006, 09:43
سلام
اول از هر چيز بگم كه بخاطر عدم همكاري دوستان در راهنمايي من براي بكار بردن جداول ADO از خيرش بكل گذشتم (دلگير هم هستم چون بيشتر بكارم ميامد )
من از جداول پارادكس استفاده مي كنم
الگوريتم مورد نظر هم با راهنمايي bayazee و mehdi bg عزيز انتخاب شد
ممنون
سلام رفيق.
من كه درباره ADO تقريبا همه چيز رو گفتم.
توي تاپيك همه چيز درباره ديتابيسها.
لينكشم توي امضام هست.
موفق باشي.
اگه سوالي برات بود همون جا بپرس ممنون.
vBulletin , Copyright ©2000-2024, Jelsoft Enterprises Ltd.