حل تمرين پست قبل
۱-
REM This program can show the name of colors
CLS
%INPUT "Enter a number from 1 to 6 " , a
%SELECT CASE a
CASE 1
" PRINT " Black
CASE 2
" PRINT " Red
CASE 3
" PRINT " Green
CASE 4
" PRINT " Blue
CASE 5
" PRINT " Orange
CASE 6
" PRINT " Brown
CASE ELSE
" PRINT " Invalid number
END SELECT
END
فكر می كنم برنامه آنقدر ساده باشد كه نيازی به توضيح ندارد .
۲-
CLS
%INPUT "Enter a number ( >=0 )",num
count = 1
fact = 1
IF num% >= 0 THEN
% DO WHILE count <= num
fact = fact * count
count = count +1
LOOP
PRINT num% ; "! =" ; fact
ELSE
" PRINT " Invaid number
END IF
END
توضيح : برنامه دارای متغيری به نام count است كه حكم شمارنده ای را دارد كه از مقدار ۱ شروع می شود و تا زمانی كه به عدد ورودی كاربر برسد ، هربار در عدد قبلی خود ضرب شده و در متغيری به نام fact قرار می گيرد . سپس يك واحد به آن اضافه شده و دوباره در عدد قبلی ضرب می شود . به اين ترتيب حاصلضرب اعداد از ۱ تا n ) n عدد ورودی كاربر است ) محاسبه شده كه همان فاكتوريل است . به دستور PRINT قبل از ELSE دقت كنيد . اين دستور از سه قسمت تشكيل شده است . دو قسمت عددی و يك قسمت رشته ای به اين ترتيب كه ابتدا عدد ورودی كاربر نمايش داده می شود . سپس علامت فاكتوريل (!) روبه روی عدد قرار می گيرد .آنگاه با چاپ علامت مساوی (=) فاكتوريل عدد در مقابل مساوی چاپ می شود . برای مثال اگر عدد ورودی كاربر ۰ باشد ، از آنجا كه 0>1 يك عبارت نادرست است ، حلقه DO WHILE اجرا نمی شود و دستور بعدی كه همان دستور PRINT است اجرا شده و با توجه به اينكه مقدار fact تغييری نكرده است ، خروجی به فرم زير خواهد بود :
1 = ! 0
۳-
REM This program can calculate (1+2+3+..+n)^2
INPUT "Enter the last number (n) " , n
sum = 0
FOR i = 1 TO n
sum = sum + i
NEXT i
PRINT "Answer is : ";sum^2
END
درس اين جلسه : توابع و دستورات خاص
برای راحت تر شدن كار برنامه نويسان هر زبان برنامه نويسی دارای توابعی است كه می توان از آنها در جهت ساده تر نوشتن برنامه استفاده كرد . در ادامه با كاربرد اين توابع بيشتر آشنا خواهيم شد . فعلا فقط به معرفی آنها می پردازم .
جدول ۱ : توابع پركاربردی كه مقادير عددی برمی گردانند و به جز تابع VAL بقيه مقدار عددی می گيرند .
مثال
عملكرد تابع
نام تابع
SQR (9) = 3
ريشه دوم x را برمي گرداند
SQR (x)
ABS (-12.3) = 12.3
قدر مطلق x را برمي گرداند
ABS (x)
X = -4.5
INT (X) = -5
جزء صحيح x را برمي گرداند
INT (x)
SIN ( 0 ) = 0
سينوس x را برمي گرداند
SIN (x)
COS ( 0 ) = 1
كسينوس x را برمي گرداند
COS (x)
TAN ( 0 ) = 0
تانژانت x را برمي گرداند
TAN (x)
ATN ( 1.57) = 0
آرك تانژانت x را برمي گرداند
ATN (x)
LOG (1) = 0
لگاريتم x را در پايه 10برمي گرداند
LOG (x)
EXP (1) = 2.718282
لگاريتم طبيعي x را برمي گرداند
EXP (x)
SGN (-87) = -1
در صورت مثبت بودن x عدد 1 ، در صورت منفي بودن عدد 1- ، و در صورت صفر بودن عدد صفر را بر مي گرداند
SGN (x)
VAL ("123") =123
معادل عددي رشته $a را برمي گرداند
($VAL(a
جدول ۲ : توابع پركاربردی كه با متغيرهای رشته ای كار می كنند .
مثال
عملكرد تابع
نام تابع
B$ = "ab cd"
LEN (B$) = 5
طول رشته $a را برمي گرداند
LEN (a$)
"UCASE$("aBc")="ABC
حروف كوجك عبارت را به حروف بزرگ تبديل مي كند
UCASE$ (a$)
"LCASE$("aBc")="abc
حروف بزرگ عبارت را به حروف كوچك تبديل مي كند
LCASE$ (a$)
A$ = "Qbasic Program"
LEFT$(A$,5) = "Qbasic"
a حرف از سمت چپ عبارت a$ را برمي گرداند
LEFT$(a$,a)
A$ = "Qbasic Program"
RIGHT$(A$,8) = "Program"
a حرف از سمت راست عبارت a$ را برمي گرداند
RIGHT$(a$,a)
A$ = "Qbasic Program"
MID$(A$,8,3)="Pro"
از كاراكتر aام رشته a$ به تعداد b كاراكتر برمي گرداند
MID$(a$,a,b)
"A$ = "Ali Reza Vahid
"B$ = "Vahid
INSTR(1,a$,b$) = 10
از كاراكتر aام رشته a$ شروع كرده و به جستجو براي رشته b$ مي پردازد . اگر b$ درون a$ يافت شد ، موقعيت اولين حرف b$ و در غير اينصورت عدد صفر بازگردانده مي شود .
INSTR(a,a$,b$)
X = 123
STR$(x) = "123"
معادل رشته اي x را برمي گرداند
STR$(x)
در جلسه بعدی كاربرد اين توابع را در مثال های مختلف بررسی خواهم كرد .
Bookmarks