حل تمرين پست قبل

۱-

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)

در جلسه بعدی كاربرد اين توابع را در مثال های مختلف بررسی خواهم كرد .