PDA

نسخه کامل مشاهده نسخه کامل : اینم یه عالمه سورس برای بچه های هنرستان



پسراژدهاسوار
07-11-2013, 12:37
دوستان من از این سورس ها چیزای زیادی یاد گرفتم امیدوارم بدردتون بخوره






در این پست من ۵۰ تمرین از زبان کیو بیسیک را گذاشته و حل آن را نیز برایتان نوشته ام. سعی شده این تمرین ها شامل کلیه موارد برنامه نویسی زبان QBasic باشد. از تعریف متغیر، دستورات، حلقه ها، آرایه ها گرفته تا کار با گرافیک و صدا در این زبان.۱٫ برنامه ای بنویسید که تاریخ تولد شما را بپرسد و سن شما را محاسبه کند.

INPUT "Tarikh Tavalode khod ra vared konid:", yLET o = 1387 - yPRINT "Sene shoma="; o

2. برنامه ای بنویسید که تاریخ میلادی را از ما بگیرد و تاریخ شمسی را چاپ کند.


INPUT "Sale Milady?", mLET s = m - 621PRINT "Sale Shamsy="; s; " or "; s + 1


3. برنامه ای بنویسید که نمره ۴ درس یک دانش آموز را بپرسد و مجموع و میانگین آن را محاسبه و چاپ کند که نمره های ورودی بین ۰ تا ۲۰ باشد.(با پیغام مناسب)

flag:INPUT "Nomre ra vared konid:", nIF NOT (0 <= n AND n <= 20) THEN PRINT "Nomre baiad beine 0-20 bashad": GOTO flagLET m = m + nLET a = a + 1IF a < 4 THEN GOTO flagPRINT "Majmoe Nomarat = "; m, "Meiangin Nomarat = "; m / 4

4. برنامه ای بنویسید که شعاع یک دایره را از شما بپرسد و محیط و مساحت آن را چاپ کند.

INPUT "Shoa ra vared konid:", rLET pi = 4 * ATN(1)LET p = 2 * r * piLET s = r ^ 2 * piPRINT "Mohit="; p, "Masahat="; s


5. برنامه ای بنویسید که اندازه یک زاویه را برحسب درجه از ما بپرسد و آن را برحسب رادیان چاپ کند.


INPUT "Zaveie ra be darage vared konid:", dLET r = d * ((4 * ATN(1)) / 180)PRINT "Zaveie be radian="; r


6. برنامه ای بنویسید که میانگین هندسی سه عدد مثبت مفروض را حساب کند.
INPUT "3 adad mosbat vared konid:", a, b, cLET m = (a * b * c) ^ (1 / 3)PRINT "Meiangine hendesi="; m


7. برنامه ای بنویسید که اعداد بین ۳۰ تا ۴۰ را در نظر گرفته خود عدد،مربع و ریشه سوم هر عدد را در سه ستون چاپ کند.
flag:LET n = 30 + aPRINT n, n ^ 2, n ^ (1 / 3)LET a = a + 1IF a < 10 THEN GOTO flag


8. برنامه ای بنویسید که مضارب ۵ کوچکتر از ۲۰۰ را چاپ کند.
flag:LET n = 200 - (5 * (a + 1))PRINT nLET a = a + 1IF n > 5 THEN GOTO flag


9. برنامه ای بنویسید که نام شما را ۵ بار با رنگ های مختلف دقیقا ً در وسط مانیتور در ۵ سطر چاپ کند.
flag:s$ = "Misam"LET y = 10 + aLET c = aLOCATE y, 42 - INT((LEN(s$) + 1) / 2)COLOR (c)PRINT s$LET a = a + 1IF a < 6 THEN GOTO flag


10. برنامه ای بنویسید که دو عدد را از ورودی بگیرد و ماکزیمم را چاپ کند.{این قصه سر دراز دارد}
INPUT a, bIF a > b THEN PRINT a ELSE PRINT b


11. برنامه ای بنویسید که سه عدد را از ما بپرسد و مینیمم را چاپ کند.
INPUT a, b, cIF a >= b THEN min = b ELSE min = aIF min > c THEN min = c PRINT min



12. برنامه ای بنویسید که چهار عدد را از ما بپرسد و ماکزیمم و مینیمم آن ها را چاپ کند.
INPUT a, b, c, dIF a >= b THEN max = a: min = b ELSE max = b: min = aIF c >= d THEN min2 = c: min2 = d ELSE min2 = d: min2 = cIF max < max2 THEN max = max2 IF min > min2 THEN min = min2PRINT max, min


13. برنامه ای بنویسید که اعداد زوج بین ۱۰۰ تا ۲۰۰ را چاپ کند.
LET n = 100flag:LET a = a + 1LET n = 2 * aPRINT nIF n < 198 THEN GOTO flag


14. برنامه ای بنویسید که مجموع اعداد ۱ تا ۱۰۰ را محاسبه و چاپ کند.
flag:LET a = a + 1LET n = n + aIF a < 100 THEN GOTO flagPRINT n


15. برنامه ای بنویسید که مجموع اعداد فرد بین ۱ تا ۱۰۰ را محاسبه و چاپ کند.
flag:LET a = a + 1LET n = n + (2 * a) - 1IF a < 51 THEN GOTO flagPRINT n

16. برنامه ای بنویسید که عدد طبیعی N را بگیرد و مجموع اعداد فرد کوچکتر یا مساوی N را محاسبه و چاپ کند.


INPUT nflag:IF n MOD 2 = 1 THEN s = s + nLET n = n - 1IF n > 0 THEN GOTO flagPRINT s


17. برنامه ای بنویسید که عدد طبیعی N را از ما بپرسد و N! را چاپ کند.
INPUT nLET s = 1flag:LET s = s * nLET n = n - 1IF n > 1 THEN GOTO flagPRINT s


18. برنامه ای بنویسید که سه عدد را از شما بپرسد و آن ها را به صورت صعودی مرتب و چاپ کند.
INPUT a, b, cIF a < b THEN h = a: a = b: b = hIF a < c THEN h = a: a = c: c = hIF b < c THEN h = b: b = c: c = hPRINT a, b, c


19. برنامه ای بنویسید که یک عدد سه رقمی را از ما بپرسد و مجموع اعداد آن را محاسبه و چاپ کند.
INPUT nflag:LET s = s + (n MOD 10)LET n = INT(n / 10)IF n <> 0 THEN GOTO flagPRINT s



20. برنامه ای بنویسید که یک ساعت کامپیوتری ایجاد کند.
start! = TIMERflag:LOCATE 1, 1t = INT(TIMER - start!)s = t MOD 60m = (t \ 60) MOD 60h = (t \ 3600) MOD 24LOCATE 1, 1PRINT h; ":"; m; ":"; sPRINT " "GOTO flag


—> تمرین های سخت تر:
۲۱
٫ برنامه ای بنویسید که یک عدد را از ما بپرسد و محاسبه کند این عدد اول است یا خیر.((Mod
INPUT nLET b = 2LET p = 1flag:IF n MOD b = 0 THEN p = 0 LET b = b + 1IF b < n THEN GOTO flagIF n = 2 THEN p = 1IF n <= 1 THEN p = 0IF p = 1 THEN PRINT "Prime" ELSE PRINT "Not Prime"


22. برنامه ای بنویسید که یک عدد را از ما بپرسد و محاسبه کند این عدد اول است یا خیر.((Int
INPUT nLET b = 2LET p = 1flag:IF (n / b) = INT(n / b) THEN p = 0LET b = b + 1IF b < n THEN GOTO flagIF n = 2 THEN p = 1IF n <= 1 THEN p = 0IF p = 1 THEN PRINT "Prime" ELSE PRINT "Not Prime"



23. برنامه ای بنویسید که اعداد اول بین ۱ تا ۱۰۰ را چاپ کند.
LET n = 1bflag:LET p = 1LET b = 2flag:IF n MOD b = 0 THEN p = 0 LET b = b + 1IF b < n THEN GOTO flagIF n = 2 THEN p = 1IF n <= 1 THEN p = 0IF p = 1 THEN PRINT nLET n = n + 1IF n < 100 THEN GOTO bflag


24. برنامه ای بنویسید که اعداد اول درون یک بازه را چاپ کند.
INPUT n, mbflag:LET p = 1LET b = 2flag:IF n MOD b = 0 THEN p = 0LET b = b + 1IF b < n THEN GOTO flagIF n = 2 THEN p = 1IF n <= 1 THEN p = 0IF p = 1 THEN PRINT nLET n = n + 1IF n < m THEN GOTO bflag


25. برنامه ای بنویسید که دو عدد را از شما بگیرد و بزرگترین مقسوم علیه مشترک بین آن ها را محاسبه و چاپ کند.
INPUT m, nflag:LET r = m MOD nIF r = 0 THEN PRINT n ELSE m = n: n = r: GOTO flag


26. برنامه ای بنویسید که دو عدد را از شما بگیرد و کوچکترین مضرب مشترک بین آن ها را محاسبه و چاپ کند.
INPUT m, nLET h = m * nflag:LET r = m MOD nIF r = 0 THEN PRINT h / n ELSE m = n: n = r: GOTO flag


27. برنامه ای بنویسید که عددی را از ما بپرسد و سپس محاسبه و چاپ کند که عدد تام است یا خیر.(عددی تام است،که مجموع مقسوم علیه های کوچکتر از خودش برابر با خود عدد باشد)
INPUT nLET b = 1LET s = 0flag:IF n MOD b = 0 THEN s = s + bLET b = b + 1IF b < n THEN GOTO flagIF s = n THEN PRINT "Tom" ELSE PRINT "Not Tom"



28. برنامه ای بنویسید که اعداد تام بین ۱ تا ۲۰۰ را چاپ کند.
LET n = 1bflag:LET b = 1LET s = 0flag:IF n MOD b = 0 THEN s = s + bLET b = b + 1IF b < n THEN GOTO flagIF s = n THEN PRINT nLET n = n + 1 IF n < 200 THEN GOTO bflag


29. برنامه ای بنویسید که اعداد تام درون یک بازه را چاپ کند.
INPUT n, mbflag:LET b = 1LET s = 0flag:IF n MOD b = 0 THEN s = s + bLET b = b + 1IF b < n THEN GOTO flagIF s = n THEN PRINT nLET n = n + 1IF n < m THEN GOTO bflag


30. برنامه ای بنویسید که دنباله فیبوناچی را تا ۱۰ عدد چاپ کند.(این دنباله از ۱و۱ شروع شده و عدد بعدی از مجموع دو عدد قبلی خود حاصل می شود:۱,۱,۲,۳,۵,۸,…
a = 0: b = 1: c = 1FOR i = 1 TO 10h = b: a = b: b = c: c = b + hPRINT a; ",";NEXT i


31. برنامه ای بنویسید که دنباله فیبوناچی را تا مقداری که از ما می گیرد،چاپ کند.
INPUT na = 0: b = 1: c = 1WHILE b <= nh = b: a = b: b = c: c = b + hPRINT a; ",";WEND


32. برنامه ای بنویسید که ضرایب a,b,c را از معدله درجه دوم ax^2+bx+c بگیرد و ریشه های حقیقی این معادله را در صورت وجود محاسبه و چاپ کند و در صورت عدم وجود پیغام “No Root” را چاپ کند.
INPUT "(ax^2+bx+c) a,b,c ra vared konid:", a, b, cLET d = b ^ 2 - 4 * a * cIF d >= 0 THEN PRINT (-b + SQR(d)) / (2 * a) ,: PRINT (-b - SQR(d)) / (2 * a) ELSE PRINT "No Root"


33. برنامه ای بنویسید که بدون استفاده از حلقه تکرار for-next جدول ضرب ۵*۵ را چاپ کند.
LET n = 1bflag:LET m = 1flag:PRINT n * m;LET m = m + 1IF m < 6 THEN GOTO flagPRINTLET n = n + 1IF n < 6 THEN GOTO bflag
—>استفاده از حلقه ها:


۳۴٫ برنامه ای بنویسید که با استفاده از حلقه تکرار for-next جدول ضرب ۵*۵ را چاپ کند.
FOR n = 1 TO 5FOR m = 1 TO 5PRINT n * m;NEXT mPRINTNEXT n


35. برنامه ای بنویسید که یک نام را از شما بگیرد و مقلوب آن را چاپ کند.
input n$for i=len(n$) to 1 step -1? mid$(n$,i,1);next i


36. برنامه ای بنویسید که یک عدد صحیح از شما بپرسد و با استفاده از توابع مجموع ارقام آن عدد را محاسبه و چاپ کند.
INPUT n!LET n$ = STR$(n!)FOR i = LEN(n$) TO 1 STEP -1s = s + VAL(MID$(n$, i, 1))NEXT iPRINT s


37. برنامه ای بنویسید که با استفاده از دستور while-wend شماره کد اسکی و کد معادل آن را در دو ستون چاپ کند.
LET n = 1WHILE n < 255PRINT n, CHR$(n)LET n = n + 1WEND
—>استفاده از آرایه ها:


۳۸٫ برنامه ای بنویسید که با استفاده از آرایه،ماتریس ۳*۳ را از شما بپرسد و سپس اصل ماتریس و ترانهاد آن را چاپ کند.
DIM a(3, 3)FOR i = 1 TO 3FOR j = 1 TO 3PRINT "a(" + STR$(i) + "," + STR$(j) + ")";INPUT a(i, j)NEXT jNEXT iPRINT "Matris"FOR i = 1 TO 3FOR j = 1 TO 3PRINT a(i, j);NEXT jPRINTNEXT iPRINT "Taranahade"FOR i = 1 TO 3FOR j = 1 TO 3PRINT a(j, i);NEXT jPRINTNEXT i


39. برنامه ای بنویسید که دو عدد ۳۰ رقمی را با هم جمع کند.(با استفاده از آرایه)
dim a(31)input a$for i=2 to 31let a(i)=val(mid$(a$,i-1,1))next i? "+"dim b(31)input b$for i=2 to 31let b(i)=val(mid$(b$,i-1,1))next idim c(31)for i=31 to 1 step -1let c(i)=(a(i)+b(i)+h) mod 10if (a(i)+b(i)+h)>9 then h=1 else h=0next i? "_____"for i=1 to 31c$=c$+str$(c(i))next i? c$
—>استفاده از گرافیک بیسیک:


۴۰٫ برنامه ای بنویسید که یک مستطیل بزرگ تو خالی با کد اسکی ۱۷۷ ایجاد کند.
FOR i = 1 TO 40PRINT CHR$(177);NEXT iPRINTFOR i = 1 TO 10PRINT CHR$(177);FOR j = 1 TO 38PRINT " ";NEXT jPRINTCHR$(177)NEXT iFOR i = 1 TO 40PRINT CHR$(177);NEXT i


41. برنامه ای بنویسید که یک مثلث قائم الزاویه را بر روی مانیتور ایجاد کند.
SCREEN 12LINE (100, 100)-(100, 300), 2 LINE (100, 300)-(400, 300), 2 LINE (400, 300)-(100, 100), 2


42. برنامه ای بنویسید پنج دایره متداخل متحدالمرکز را با پنج رنگ متفاوت در وسط مانیتور چاپ کند.
SCREEN 12FOR n = 1 TO 5CIRCLE (300, 200), 10 * n, nNEXT n


43. برنامه ای بنویسید که شکل زیر را در محیط گرافیکی بیسیک ترسیم کند.
SCREEN 12CIRCLE (300, 300), 100, 2 LINE (230, 230)-(370, 370), 2, B


44. برنامه ای بنویسید در محیط گرافیکی QBasic یک موج کامل سینوس را ترسیم کند.(طول موج و فرکانس را دلخواه انتخاب کنید)
SCREEN 12LINE (200, 200)-(400, 200), 2FOR x = 0 TO 20 STEP .01 '{comment} Godeat 100 noghtePSET (x * 10 + 200, 10 * SIN(x) + 200), 2 'Ferekans 10NEXT x
—>استفاده از صداهای بیسیک:

۴۵٫ برنامه ای بنویسید صدای آمبولانس را به مدت ۱ دقیقه از Pc-Speaker پخش کند.(فرکانس صدا انتخابی)
FOR i = 1 TO 3600SOUND (500), 9.1SOUND (1500), 9.1NEXT i

46. برنامه ای بنویسید که یک ساعت کامپیوتری ایجاد کند و سر هر ساعت بوق بزند.
start! = TIMERflag:LOCATE 1, 1t = INT(TIMER - start!)s = t MOD 60m = (t \ 60) MOD 60h = (t \ 3600) MOD 24IF t MOD 3600 = 0 THEN SOUND (1000),1 LOCATE 1, 1PRINT h; ":"; m; ":"; sPRINT " " GOTO flag

47. برنامه ای بنویسید نوت های موسیقی را هر کدام ۱ ثانیه پخش کند.
PLAY "a1 b1 c1 d1 g1 e1 f1"




میتونید تو word کپی کنید و اونجا راحتر بخونید