صفحه: 1    پایین
  چاپ صفحه  
نويسنده موضوع: کار با اعداد در پاسکال  (دفعات بازدید: 508 بار)
Siavash
مدیر ارشد
*
تعداد ارسال: 5414



فعالیت هفتگی
0%
سپاسگزاری
-اهدا شده: 3977
-دریافت شده: 1741




« : 27 فروردين 1388,ساعت 13:35:06 »
پاسخپاسخ

نقل:
ارسال شده توسط  فاطیما  27 فروردين  1388,ساعت  12:34:13

میشه یه راهنمایی در مورد این دو تا برنامه داخل پاسکال بکنی


دتابعی بنویسید که یک سری اعداد تصادفی(4 رقمی) را ایجاد کند و اگر اولین عدد فرد باشد 100 را و در غیر اینصورت 200 را چاپ کند.


تابعی بنویسید که عددی را در یک فهرست مرتب a جستجو نماید و تعداد و محل وقوع هر یک از مارد را بنویسد.

 

ممنون از لطفتون

« آخرين ويرايش: 27 فروردين 1388,ساعت 13:37:26 توسط Siavash » گزارش به مدیر انجمن   خارج شده است

چند روزی شدیدا درگیرم... کمتر سر میزنم.

آنجا که همه مثل هم فکر میکنند، هیچ کس خیلی فکر نمیکند!

تصور كن اگر قرار بود هر كس به اندازه ی دانش خود حرف بزند چه سكوتی بر دنیا حاكم میشد (ناپلئون)
Siavash
مدیر ارشد
*
تعداد ارسال: 5414



فعالیت هفتگی
0%
سپاسگزاری
-اهدا شده: 3977
-دریافت شده: 1741




« پاسخ #1 : 27 فروردين 1388,ساعت 14:00:11 »
پاسخپاسخ

تولید عدد رندم در پاسکال به صورت روبرو به راحتی انجام میشه:

کد:
1  
2  program Rand;
3  
4  var
5  i: Integer;
6  
7  begin
8  Randomize;
9  i := Random(10000);
10 end.
11 
12 

کد بالا یک عدد تصادفی بین 0 تا 10000 ایجاد میکنه، دستور بالا رو در یک حلقه قرار بده و به تعداد مورد نیاز عدد تصادفی تولید کن. بعد از هر عدد تصادفی که تولید شد باید چک کنی ببینی فرده یا زوج. پاسکال تابع مخصوص به این کار رو داره:

کد:
1       program OddDemo;
2       var
3         Foo: Integer;
4       begin
5  Foo:=123;
6         if not Odd (Foo) then
7           WriteLn ('It's Even - 200')
8         else
9           WriteLn ('It's Odd - 100')
10      end.
11 

کد بالا عدد 123 رو میگیره و اگه فرد باشه میگه 100 وگرنه میگه 200 (یه پیغام هم همراهش چاپ میکنه.)

با توجه به اینکه شما گفتی فقط عدد اول رو چک کنه، پس کافیه که یک بار تابع رندم رو صدا کنی و بعدش بلافاصله چک کنی فرد هست یا زوج؛ بعد از چک کردن عدد اول، یک حلقه قرار بدی و به تعداد دلخواه عدد تصادفی تولید کنی. بادت نره که باید بعد از تولید هر عدد تصادفی چک کنی ببینی از 999 بزرگتر باشه (گفته بودی عدد 4 رقمی).

در مورد برنامه دوم، دو تا تابع در پاسکال هست به نام Index و pos که اولین رخداد یک رشته در رشته ی دیگر رو برمی گردونن. با توجه به اینکه شخصا هیچی پاسکال بلد نیستم، تنها راهی که به ذهنم میرسه اینه که محل اولین وقوع رشته رو پیدا کنی و بعد تا اون محل از رشته ی اصلی رو قیچی کن و دوباره به دنبال اولین وقوع بگردی و الی آخر...

کد:
1  function Occurance(SubStr, S: string): integer;
2  begin
3    Result := 0;
4    while Pos(SubStr, S) > 0 do { Find first occurance of SubStr in S }
5    begin
6      Result := Result + 1;
7      Delete(S, 1, Pos(SubStr, S)+Length(SubStr)-1);
8       { Delete everyting upto and including previously found SubStr }
9    end;
10 end;
11 
* اگه Pos کار نکرد جاش Index بذار و دوباره تست کن.

اگه مشکلی بود به اینجا سری بزن: http://www.astahost.com/info.php/pascal-beginners-part-two_t15675.html
« آخرين ويرايش: 27 فروردين 1388,ساعت 14:01:52 توسط Siavash » گزارش به مدیر انجمن   خارج شده است
فاطیما
عضو تیم طراحی بازی
*
تعداد ارسال: 741



فعالیت هفتگی
0%
سپاسگزاری
-اهدا شده: 378
-دریافت شده: 750




« پاسخ #2 : 27 فروردين 1388,ساعت 14:48:20 »
پاسخپاسخ

ممنون از لطفتون.
نمیدونم چرا چشمام آلبالو گیلاس میچینه.پاسکال رو ندید
گزارش به مدیر انجمن   خارج شده است
Siavash
مدیر ارشد
*
تعداد ارسال: 5414



فعالیت هفتگی
0%
سپاسگزاری
-اهدا شده: 3977
-دریافت شده: 1741




« پاسخ #3 : 27 فروردين 1388,ساعت 15:18:57 »
پاسخپاسخ

امیدوارم مفید بوده باشه...

پیش میاد چشمک
گزارش به مدیر انجمن   خارج شده است
صفحه: 1    بالا
  چاپ صفحه  
 
پرش به :