آموزش برنامه نویسی به زبان میپل!! - جلسه ی هشتم
رشته یا string (بخش پنجم)
انتقال 3 علامت آخر به اول رشته:
کد:
with(StringTools):
Rotate( "12345678", 3 );
جواب:
تمامی جایگشت های دوری عبارت 123:
کد:
with(StringTools):
[seq]( Rotate( "123", i ), i = 1..3 );
جواب:
کد:
["312", "231", "123"]
اتصال چند رشته به یکدیگر همراه با علامت - بین آنها:
کد:
with(StringTools):
Join( [ "ab", "bc", "cde" ], "-" );
جواب:
اتصال چند رشته به یکدیگر:
کد:
with(StringTools):
Join( [ "ab", "bc", "cde" ], "" );
جواب:
اتصال کاراکترها به یکدیگر با دستور دیگر:
کد:
i:=5:
i || 7;
p || "in";
a || (2*i);
a || i || b;
جواب:
مثال دیگر:
کد:
x || (a, b, 4, 67);
x || (1..2) || (1..3);
جواب:
کد:
xa, xb, x4, x67
x11, x12, x13, x21, x22, x23
تکه تکه کردن یک رشته به وسیله ی حذف علامت 6:
کد:
with(StringTools):
Split( "55658261m", "6" );
جواب:
موفق باشید.
21 تیر 1391
ویرایش دوم: 2 مرداد 1391
آموزش برنامه نویسی به زبان میپل!! - جلسه ی نهم
رشته یا string ( بخش ششم)
تکه تکه کردن رشته به رشته هایی به طول 3:
کد:
with(StringTools):
LengthSplit("abcdefgh",3);
جواب:
تبدیل ده رقم اعشاری عدد پی به یک رشته و تقسیم کردن این رشته به رشته هایی به طول 5 و نامگذاری تمام نتایج با نام l:
کد:
with(StringTools):
l:=LengthSplit(convert(evalf(Pi,10),string), 5 );
جواب:
کد:
l := "3.141", "59265", "4"
فراخوانی اولین قسمت از قسمت های l (در دستور بالا، l معرفی شد):
جواب:
وارونه کردن یک رشته:
کد:
with(StringTools):
Reverse("123cat");
جواب:
مرتب کردن رشته ی abc4 با ترتیب دومین، چهارمین، سومین و اولین کاراکتر:
کد:
with(StringTools):
Permute( "abc4",[2,4,3,1]);
جواب:
تعویض علامت دوم و پنجم:
کد:
with(StringTools):
Exchange( "abcdef", 2, 5 );
جواب:
تکرار رشته به تعداد 5 بار:
کد:
with(StringTools):
Repeat( "abc", 5 );
جواب:
موفق باشید.
24 تیر 1391
آموزش برنامه نویسی به زبان میپل!! - جلسه ی دهم
رشته یا string ( بخش هفتم)
تمام رشته های 3 حرفی که از رشته ی 1ba4 ساخته می شوند:
کد:
with(StringTools):
Generate( 3,"1ba4" )
جواب:
کد:
["111", "114", "11a", "11b", "141", "144", "14a", "14b", "1a1", "1a4", "1aa", "1ab", "1b1", "1b4", "1ba", "1bb", "411", "414", "41a", "41b", "441", "444", "44a", "44b", "4a1", "4a4", "4aa", "4ab", "4b1", "4b4", "4ba", "4bb", "a11", "a14", "a1a", "a1b", "a41", "a44", "a4a", "a4b", "aa1", "aa4", "aaa", "aab", "ab1", "ab4", "aba", "abb", "b11", "b14", "b1a", "b1b", "b41", "b44", "b4a", "b4b", "ba1", "ba4", "baa", "bab", "bb1", "bb4", "bba", "bbb"]
تمام اعداد حداکثر 3 رقمی که از ارقام عدد 1023 ساخته می شوند:
کد:
with(StringTools):
Generate( 3,"1023" ):
map(parse,%);
جواب:
کد:
[0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23, 30, 31, 32, 33, 100, 101, 102, 103, 110, 111, 112, 113, 120, 121, 122, 123, 130, 131, 132, 133, 200, 201, 202, 203, 210, 211, 212, 213, 220, 221, 222, 223, 230, 231, 232, 233, 300, 301, 302, 303, 310, 311, 312, 313, 320, 321, 322, 323, 330, 331, 332, 333]
در عبارت ab123123d به جای اولین 123، عبارت UV را قرار بده:
کد:
with(StringTools):
Substitute( "ab123123d", "123", "UV" );
جواب:
در عبارت ab123123d به جای همه ی 123 ها، عبارت UV را قرار بده:
کد:
with(StringTools):
SubstituteAll( "ab123123d", "123", "UV");
جواب:
چاپ تاریخ میلادی امروز، همراه با ساعت:
کد:
with(StringTools):
FormatTime( "%c" );
جواب:
کد:
"Sun Jul 15 18:02:25 2012"
اطلاعات کامل تری از تقویم امروز و ساعت کنونی:
کد:
with(StringTools):
ParseTime( "%c", % );
جواب:
کد:
Record(calendar = "Gregorian",second = 25,minute = 2,hour = 18,monthDay = 15,month = 7,year = 2012,weekDay = 1,weekDayName = "Sunday",yearDay = 197,`dst?` = false)
موفق باشید.
25 تیر 1391
آموزش برنامه نویسی به زبان میپل!! - جلسه ی یازدهم
عملوند op ( بخش اول)
یکی از قوی ترین دستورات میپل برای «درآوردن دل و قلوه» و مطلع شدن از جزئیات عبارات، عملوند (operand) ی است به نام op:
معرفی چند جمله ای سه متغیره ی p به میپل:
کد:
p:=x^2-3*x+2*y-x*y*z;
جواب:
جدا کردن تمام جملات p:
جواب:
دومین جمله ی p و جمله ی آخر p:
جواب:
عملی که جملات p را به یکدیگر اتصال می دهد:
جواب:
همه ی جملات ( همان آجرهای ساختمانی!!) عبارت xyz:
جواب:
جمله ی اول عبارت xyz:
جواب:
عملی که جملات xyz را به یکدیگر اتصال می دهد:
جواب:
همه ی جملات عبارت x^2
جواب:
جمله ی اول عبارت x^2 و جمله ی دوم x^2:
جواب:
عملی که جملات x^2 را به یکدیگر اتصال می دهد:
جواب:
همه ی جملات عبارت «1بر y» یا « یک y ام»:
جواب:
عملی که جملات « یک y ام» را به یکدیگر اتصال می دهد:
جواب:
همه ی جملات عبارت x/y
جواب:
عملی که جملات x/y را به یکدیگر اتصال می دهد:
جواب:
موفق باشید.
27 تیر 1391
آموزش برنامه نویسی به زبان میپل!! - جلسه ی دوازدهم
عملوند op ( بخش دوم)
جدا کردن جملات اول تا چهارم چند جمله ای x^3-5xy-z^3+4+rt:
کد:
op(1..4,x^3-5*x*y-z^3+4+r*t);
جواب:
حذف پرانتزهای عبارت (r):
جواب:
دومین عنصر عبارت (rx)
جواب:
حذف آکلادها از دو طرف مجموعه ی r و t و s:
جواب:
دومین عنصر مجموعه ی r و t و s:
جواب:
اضافه کردن 1- به مجموعه ی 1و 2 و 3 و ایجاد مجموعه ی جدید:
جواب:
معرفی چند جمله ای poly:
کد:
poly:=x^2*d*f^2+3*x*y^2-5*x;
جواب:
کد:
poly := x^2df^2+3xy^2-5x
سومین عنصر از دومین جمله ی poly
جواب:
دومین عضو از سومین عنصر از اولین جمله ی poly:
کد:
op(2,op(3, op(1, poly)));
جواب:
معرفی دنباله (لیست) a:
جواب:
حذف کروشه ها:
جواب:
دومین عنصر a و عنصر ماقبل آخر a:
جواب:
سومین عنصر a:
جواب:
اضافه کردن 5- به لیست a و ایجاد لیست جدید:
جواب:
معرفی دنباله (لیست) b:
جواب:
اتصال دو لیست a و b و ایجاد لیست جدیدی به نام L:
جواب:
کد:
L := [1, 2, 3, 4, 5, d, 2, v, 6]
چاپ عنصر چهارم تا عنصر ماقبل آخر L:
جواب:
در L به جای عنصر هفتم عبارت list را قرار بده:
جواب:
کد:
[1, 2, 3, 4, 5, d, list, v, 6]
در L به جای عنصر هفتم عبارت 1-، به جای عنصر هشتم عبارت f و به جای عنصر اول، لیست a را قرار بده:
کد:
subsop(7=-1,8=f,1=a,L);
جواب:
کد:
[[1, 2, 3, 4, 5], 2, 3, 4, 5, d, -1, f, 6]
موفق باشید.
28 تیر 1391
2 پيوست (پيوستها)
آموزش برنامه نویسی به زبان میپل!! - جلسه ی سیزدهم
عملوند op ( بخش سوم)
معرفی لیست l:
جواب:
کد:
l := [1, 1, 2, 3, 4, 5]
تعداد عناصر l:
جواب:
تعداد جملات a+b+x^2
جواب:
تعداد عناصر x^2 و تعداد عناصر x/y :
جواب:
بسط عبارت x+y)^4)
جواب:
کد:
x^4+4x^3y+6x^2y^2+4xy^3+y^4
تعداد جملات عبارت قبل:
جواب:
تعداد همه ی رشته هایی به طول 10 که با استفاده از کاراکترهای رشته ی abc ساخته می شوند:
کد:
nops( Generate( 10, "abc" ) );
جواب:
برنامه ی 1: محاسبه ی بزرگترین عدد اول شمارنده ی عدد 49000:
کد:
ifactor( 49000 );
op( nops(%), % );
op( 1, % );
op( 1, % );
جواب:
توضیح برنامه ی 1:
خط 1: عدد 49000 را تجزیه کن.
خط 2: آخرین بخش عبارت قبل را جدا کن.
خظ 3: اولین بخش عبارت قبل را جدا کن.
خط 4: اولین بخش عبارت قبل را جدا کن.
برنامه ی 2: محاسبه ی کوچکترین عدد اول شمارنده ی عدد 49000:
کد:
ifactor( 49000 );
op( 1, % );
op( 1, % );
op( 1, % );
جواب:
توضیح برنامه ی 2:
خط 1: عدد 49000 را تجزیه کن.
خط 2: اولین بخش عبارت قبل را جدا کن.
خظ 3: اولین بخش عبارت قبل را جدا کن.
خط 4: اولین بخش عبارت قبل را جدا کن.
موفق باشید.
30 تیر 1391
3 پيوست (پيوستها)
آموزش برنامه نویسی به زبان میپل!! - جلسه ی چهاردهم
دنباله ها
دنباله ی اعداد صحیح متوالی 2- تا 3:
جواب:
اندیس گذاری متوالی:
جواب:
تکرار x سه بار:
جواب:
ابتدا تعریف تابع f و سپس ایجاد دنباله ای از توان های x که توان ها مقادیر f روی 1 تا 4 است:
کد:
f:=x->x^2+x+1;
x^f(i)$i=1..4;
جواب:
رسم تصویری زیبا با استفاده از دنباله ها:
کد:
with(plots):
polarplot( {c*cos(6*t) $ c = 1..12}, t = 0..2*Pi, scaling = constrained);
جواب:
توضیح:
در دستور بالا، توابع (c*cos(6*t در مختصات قطبی با مقیاس مقید رسم شده اند که c عدد صحیحی است که از 1 تا 12 تغییر می کند، و پارامتر t از 0 تا 2pi (در واقع 12 تصویر با رنگ های مختلف در یک دستگاه)
موفق باشید.
31 تیر 1391 - اول ماه مبارک رمضان 1433
آموزش برنامه نویسی به زبان میپل!! - جلسه ی پانزدهم
تصمیم گیری با if و elif
در بسیاری از برنامه ها، مجبور به تصمیم گیری هستیم که فلان دستور اجرا بشود یا نه؛ به عبارت دقیق تر!! اگر فلان اتفاق افتاد یا فلان عبارت منطقاً درست بود، چه دستوری اجرا شود. به مثال های ساده ی زیر توجه کنید:
برنامه ی 3:
اگر 2 کمتر یا مساوی 3 بود، آنگاه عبارت "*" چاپ شود. (دقت کنید که آخر برنامه با fi یا end if تمام می شود. این نکته، ساده اما بسیار مهم است.)
کد:
if 2<=3 then print("*"); fi;
جواب:
برنامه ی 4:
اگر 2 بزرگتر از 3 بود، آنگاه عبارت "*" چاپ شود.
کد:
if 2>3 then print("*");end if;
جوابی دریافت نخواهید کرد (چرا؟)
برنامه ی 5:
متغیر a را 2 و متغیر b را 3 تعریف کن. اگر a مثبت و حاصل ضرب ab از 4 کوچکتر بود، a و در غیر این صورت (else) متغیر b را تحویل بده. (در غیر این صورت، یعنی اگر a مثبت نبود یا حاصل ضرب ab از 4 کوچکتر نبود).
کد:
a:=2:
b:=3:
if a>0 and a*b<4 then a
else b;
fi;
جواب:
توضیح دهید که چرا برنامه ی 5، عدد 3 را به عنوان جواب، به ما تحویل داد.
برنامه ی 6:
متغیر a را 2 و متغیر b را 3 تعریف کن. اگر a بزرگ تر از 5 یا حاصل ضرب ab از 7 کوچک تر بود، a و در غیر این صورت (else) متغیر b را تحویل بده. (در غیر این صورت، یعنی اگر a بزرگ تر از 5 نبود و حاصل ضرب ab از 7 کوچکتر نبود).
کد:
a:=2:
b:=3:
if a>5 or a*b<7 then a
else b
fi;
جواب:
توضیح دهید که چرا برنامه ی 6، عدد 2 را به عنوان جواب، به ما تحویل داد.
برنامه ی 7:
متغیر a را (sin(1.8 و متغیر b را (ln(1.8 تعریف کن. اگر a بزرگ تر از b بود، عبارت "a is larger" و در غیر این صورت، عبارت "a is not larger" را چاپ کن.
کد:
a := sin(1.8): b := ln(1.8):
if a > b then print( "a is larger" );
else print( "a is not larger" );
end if;
جواب:
برنامه ی 8:
به کار بردن if در یک تابع:
تعریف تابعی با نام f و متغیر صحیح n: اگر باقیمانده ی تقسیم عدد صحیح n بر 2 صفر بود (n زوج بود)، آنگاه عبارت even را چاپ کن و در غیر این صورت چاپ کن: odd.
کد:
f:=n->if irem(n,2)=0 then print(even)
else print(odd)
fi:
دستور زیر را تایپ کنید و Enter را بزنید:
جواب:
دستور زیر را تایپ کنید و Enter را بزنید:
جواب:
موفق باشید.
7 مرداد 1391
ویرابش دوم: 12 مرداد 1391