تولید عدد رندم در پاسکال به صورت روبرو به راحتی انجام میشه:
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