مشاهده نسخه کامل
: یه راهنمایی کوچیک
سلام
اگر کسی در مورد این مسئله می تونه راهنماییم کنه ممنون میشم.
با c++برنامه ای بنویسید که ورودی با طول کمتر از 100را از فایل متنی input.txtبخواند و از روشmarge sort برای مرتب سازی آن استفاده کرده و نتیجه را در فایل متنی output.txtذخیره کند
مصطفی مختاری
20-10-2007, 06:46
نقل قول:
اینجا جواب میگیری:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سحر عزيز بعد از اينكه اين تاپيك معرفي شده را مرور كردي
خودت يه ايده بده تا دوستان در رفع خطا و مشكلات كمكت كنند.
مثلاً به نظر من ميتوني برنامه اصلي رو خودت بنويسي
در مورد ارتباط برقرار كردن
وذخيره در فايل كساني هستند كه كمكتون كنند.
سلام دوستان.آقای مختاری ممنون از راهنماییتون.
من این قطعه برنامه رو برای قسمت meregبرنامه نوشتم اما چه طوری باید با دو فایل دیگه
لینک کنم رو نمی دونم
Void merge(low,mid,high)
{
//alocal array needed for the merging
Elementtype l [low..high];
h=low;
i=low;
j=mide+1
while((h<=mide)&&(j<=high))
{
If(s[h]<=s[j]){
L[i]=s[h];
h++;
}
else{
l[i]=s[j];
j++;
}
}//end of while
If(h>mide)
For(k=j; k<=high; k++)
{
L[i]=s[k]:
i++;
}
Else
For(k=h; k<=mide; k++)
{
L[i]=s[k];
I++;
}
For(k=low; k<=high; k++)
S[k]=l[k];
}//end of fanction
مصطفی مختاری
21-10-2007, 07:38
من كد شما رو بررسي كردم:
فكر مي كنم تا حالا اون رو اجرا نكرديد. لذا محيط borland c++ 5.02 رو به شما پيشنهاد ميدم.(و شايد vc++ 6 ).
چون زبان سي پلاس پلاس ،Case Sensitive (حساس به كوجك و بزرگي حروف) است شما نميتونيد
If رو بجاي if به كار ببريد.
در ورودي مسئله شما تعدادي عدد (n تا) داريد كه تو آرايه مثلاً array1 ذخيره شده اند.
تابعي كه شما فرستاده ايد خود تابع Merg است و نه برنامه Merge sort . از اين تابع بايد كمك بگيريد و با فراخواني هايي كه انجام مي ديد عمل مرتب كردن رو روي آرايه تان(همون array1 ) انجام دهيد.
يك برنامه كامل درست كنيد كه قابل اجرا باشد.
به عنوان راهنمايي در باز و بسته كردن و فرستادن يا گرفتن كاراكترها از فايل هم كد زير رو به عنوان نمونه ببينيد.
نحوه گرفتن كاراكتر ها از فايل:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بعد از اينكه خود برنامه اصلي رو نوشتي
باز هم كمكت مي كنم.
سلام. بله درسته c++حروف کوچک و بزرگ را تفاوت قائل میشه اما من اونجا رعایت کردم اما این قطعه برنامه ای که فرستادم پیش نویسی بود که در برنامه wordنوشته بودم و حروف اول بعضی خطوط بزرگ شده بود .
من این قطعه برنامه را بدون لینک کردن به فایلهای ورودی و خروجی کامل نوشتم اجرا شد اما نمی دونم باه کمک چه توابعی می تونم ارتباط با دو فایل دیگه رو برقرار کنم.
مصطفی مختاری
21-10-2007, 23:49
مثل كدي كه نوشتم در قسمت :
cin >> filename
اسم و آدرس فايل وروديت رو بنويس
مصطفی مختاری
22-10-2007, 07:06
يك سري توضيحات هم نوشتم كه با آن مي تواني مراحل را متوجه شوي
از help خود برنامه هم مي تواني كمك بگيري.
توضيحات:
متغيري از نوع كاراكتري براي گرفتن كاراكترها از فايل تعريف مي نماييم
در صورتي كه مي خواهيد عدد از فايل بگيريد ميتوانيد آن را عددي تعريف كنيد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با دستور روبرو برنامه را براي ارتباط برقرار كردن با فايل آماده مي كنيم.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تعاريف مربوط به گرفتن آدرس فايل(مثلاًh:\input.txt )و flush براي فرستادن كاراكتر هايي
كه احتمالاً قبلاً در خروجي بافر شده اند در زير آمده است.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید دستور باز كردن فايل دو ورودي دارد يكي آدرس فايل است و
ديگري (ios::in يا ios:out ) كه مشخص مي كند فايل را براي ورود اطلاعات
از آن به برنامه (ios::in) يا براي فرستادن اطلاعات از برنامه به آن(ios::out) مي خواهيد باز كنيد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در صورتي كه فايل باز نشود (مثلاً آدرس اشتباه نوشته باشيد) مقدار بازگشتي از
file.fail() ، true خواهد بود و مي توان با آن كاربر را از باز نشدن فايل مطلع كرد مانند زير:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دستور زير باعث مي شود كه در موقع خواندن كاراكترها از فايل، فضاهاي سفيد هم
در نظر گرفته شوند.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اين قسمت از كد تمام محتويات فايل را در خروجي استاندارد چاپ مي كند.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید پس از اينكه كار شما با فايل به پايان رسيد، جريان اطلاعات ايجاد شده
را ببنديد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
براي فرستادن اطلاعات به فايل خروجي هم كافيست تغييرات زير را انجام دهيد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام. خیلی ممنون از راهنمایی ارزشمندتون من برنامه کامل می کنم.کاملشو براتون می فرستم تا نظرتونو بدین
مصطفی مختاری
23-10-2007, 21:27
دوتا لينك جالب هم در اين مورد بود :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام . ممنون از راهنمایی هاتون اومدم کد کاملو بفرستم که دیدم این لینکارو گذاشتین اما نوشتن این کد با راهنمایی و تلاش خیلی برام جذاب تر بود تا این که از اول می رفتم دنبال لینکش .
بازم ممنون
مصطفی مختاری
27-10-2007, 12:56
قابلي نداشت
چون مطمئن بودم دفعه بعدي كه اين تاپيك رو باز مي كنيد دو حالت بيشتر نداره:
يا ادامه كار رو گير كرديد كه اين كدها به شما كمك مي كنه
و يا كار برنامه تمام شده كه در اين صورت هم مي تونيد روش برنامه نويسي خودتان را با
كد هايي كه آماده شده مقايسه كنيد و تجربه تان بيشتر بشه.
در هر حال موفق باشيد.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.