توضیح : به منظور ایجاد فاصله  بین عدد و ریشه چهارمش از یک رشته خالی به طول 20 کاراکتر استفاده شده است . می  توانستید به جای اینکه 20 بار space را فشار دهید از تابعی که به همین منظور آماده  شده ، استفاده کنید : تابع (SPC(a به تعداد مشخص شده ( a تا ) فضای خالی ایجاد می  کند . در این صورت خط سوم برنامه به این صورت در می آمد که صحیح تر و بهتر است  : 
  ( ( PRINT i ; SPC (20) ; SQR ( SQR( i 
 =============================================
 مثال 2 : برنامه ای بنویسید که  کلیه مقسوم علیه های یک عدد ورودی را محاسبه و چاپ کند .
 CLS
INPUT "Enter a number" , num
FOR i = 1 TO  num
 IF INT( num / i ) = num / i THEN PRINT i        
NEXT i
END
 توضیح : این بار این مسئله را  با استفاده از تابع ( )INT حل کردیم . اگر num بر i بخشپذیر باشد ، پس حاصل num/i  یک عدد صحیح است و جزءصحیح آن با خودش برابر است .
 ==============================================
 مثال 3 :  برنامه ای را بنویسید که جدول مقادیر مثلثاتی زوایای 1 تا 90 را نمایش دهد  .
 CLS
CONST pi = 3.1415
"PRINT "Degree" ; SPC(3) ;  "Sin" ; SPC(3) ; "Cos" ; SPC(3) ; "Tan" ; SPC(3) ; "Cot
PRINT
FOR i = 1 TO  90
 ;( PRINT i ; SPC(3       
 rad = i * pi / 180        
( PRINT   SIN(rad); SPC(3); COS(rad); SPC(3); TAN(rad); SPC(3); 1/Tan(rad        
NEXT  i
END
 =============================================
 مثال 4 : برنامه ای بنویسید که  یک رشته را دریافت کرده و حروف آن را معکوس کرده ، نمایش دهد .
 CLS
$INPUT "Enter a string : " , test
" " =  $reverse
 ( $FOR i = 1 TO LEN ( test
( temp$ = MID$ ( test$ , i , 1         
 $ reverse$ = temp$ + reverse        
NEXT i
$PRINT "Reverse of string  : " ; reverse
END
 =============================================
 مثال 5 : برنامه ای بنویسید که  یک رشته را از ورودی دریافت کرده و تمام فاصله های آن را (جاهای خالی رشته) به  ستاره تبدیل کند .
 $INPUT a
" " = $b
($FOR i = 1 TO LEN  (a
( temp$=MID$ ( a$ , i , 1        
 "*"=$IF temp$ = " " THEN temp         
$b$ = b$ + temp       
NEXT i
$PRINT b
END
 ==============================================
 مثال 6 :  برنامه ای بنویسید که یک رشته اصلی را دریافت کند و یک رشته که درون آن موجود است  را دریافت کرده و به رشته ای دیگر تغییر دهد . مثلا رشته "This is a test" را به  عنوان رشته اصلی دریافت کند . سپس به جای حروف "s" حرف "V" را چاپ کند . یعنی خروجی  باید به صورت "ThiV iV a tevt" باشد .
 $INPUT "Enter the mail string ", mainstr
$INPUT "What  string do you want to replace it ?",oldstr
$INPUT "What is new string  ?",newstr
INPUT "Enter start position :  "start
DO
($pos=INSTR(start,mainstr$,oldstr       
 IF pos<>0  THEN       
(Leftstr$=LEFT$(mainstr$,pos-1                 
($Rightstr$=RIGHT$(mainstr$,pos+LEN(oldstr                 
$mainstr$=Leftstr$+newstr$+Rightstr               
 ENDIF       
LOOP  WHILE pos<>0
 " :PRINT "New main string is
$PRINT mainstr
END
 ==============================================
 مثال 7 : برنامه ای بنویسید که  یک عدد را دریافت کند و تعداد رقم های آن را چاپ کند .
 INPUT "Type a number ranging from 1 to 7 digits ",num
( ( a =  LEN ( STR$ ( num
"PRINT "You typed a "; a ; "digit number
END
 ==============================================
 مثال 8 : برنامه ای بنویسید که  یک عدد را در مبنای 2 دریافت کرده و معادل آن را در مبنای ده نمایش دهد  .
 INPUT "Enter a binary number ",numbin
(numbin$ = MID$ (STR (  numbin ) , 1 
sum = 0
pow = 0
FOR i = LEN ( numbin$ ) TO 1 STEP  -1
( abit$ = MID$ ( numbin$ , i , 1        
 IF VAL ( abit$ ) > 1  THEN        
"!PRINT "Error in number                 
  sum =  0                 
  EXIT FOR                 
 ENDIF        
 sum =  sum + VAL ( abit$ ) * 2^pow        
 pow = pow + 1        
NEXT i
PRINT  "Decimal form is : " ; sum
END
 ============================================
 مثال 9 : برنامه ای بنویسید که  نام و نمره دانش آموزان را بگیرد و در آرایه ذخیره کند . سپس امکان جستجو را به این  ترتیب برای کاربر فراهم کند که با دریافت نام دانش آموز ، نمره وی را نمایش دهد .  برنامه را طوری بنویسید که case sensitive نباشد . ( نسبت به بزرگی و کوچکی حروف  حساس نباشد )
 INPUT "How many students are there ?" , n
(DIM  name$(n
(DIM grade(n
count = 1
DO WHILE  count <= n
 PRINT "Enter  name of student " ; count       
( INPUT name$( count       
 PRINT "Enter  grade of student " ; count       
( INPUT grade ( count       
 count =  count + 1       
LOOP
FOR i = 1 TO n : name$ ( i ) = UCASE ( name$ ( i ) )  : NEXT i
$INPUT "Enter name of student to see her/his grade " , a
FOR i =  1 TO n
( IF name$(i)=UCASE$(a$) THEN PRINT name$(i)" 's grade is : " ; grade  (i        
NEXT i
END
 ============================================
 مثال ?? : برنامه ای بنویسید که  دو رشته را دریافت کرده و تمام محل های وجود رشته دوم را در رشته اول بررسی کرده و  نشان دهد .
 CLS
$INPUT "Enter the main string " , main
$INPUT  "What string is you want to search it ? " , search
DO
 ($location = INSTR  (location+1 , main$ , search       
IF location = 0 THEN EXIT DO        
PRINT " Location : " ; location       
LOOP
END
 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 بقیه مقدار عددی می گیرند  .
                  ریشه دوم x را برمی  گرداند
قدر مطلق x را برمی  گرداند
جزء صحیح x را برمی  گرداند
آرک تانژانت x را برمی  گرداند
لگاریتم x را در پایه 10برمی  گرداند
 لگاریتم طبیعی x را  برمی گرداند
در صورت مثبت بودن x عدد 1 ، در صورت  منفی بودن عدد 1- ، و در صورت صفر بودن عدد صفر را بر می  گرداند
معادل عددی رشته $a را برمی  گرداند
  جدول ? : توابع پرکاربردی  که با متغیرهای رشته ای کار می کنند .
                   طول رشته $a را  برمی گرداند
حروف کوجک عبارت را به حروف بزرگ تبدیل می  کند
حروف بزرگ عبارت را به حروف کوچک تبدیل می  کند
a حرف از سمت چپ عبارت a$ را برمی  گرداند
a حرف از سمت راست عبارت a$ را برمی  گرداند
از کاراکتر aام رشته  a$ به تعداد  b کاراکتر برمی  گرداند
از کاراکتر aام رشته  a$ شروع کرده و به  جستجو برای رشته b$ می پردازد . اگر b$ درون a$ یافت شد ، موقعیت اولین حرف b$ و در غیر اینصورت  عدد صفر بازگردانده می شود .
معادل رشته ای x را برمی  گرداند
   در این یادداشت می خواهم به معرفی انواع داده ها بپردازم. در  Qbasic لزومی برای معرفی داده ها وجود ندارد ولی بهتر است در ابتدای برنامه آنها را  معرفی کنیم .
 انواع داده ها  :
 داده ها به طور کلی به دو نوع ثابت و متغیر تقسیم می شوند که هرکدام دارای  دو دسته عددی و رشته ای هستند . 
 *داده ثابت :
 داده ای که در طول برنامه مقدار آن تغییر نمی کند . برای معرفی این نوع داده  از دستور CONST استفاده می کنیم 
 مثال :
  CONST pi=3.14                                                           
 *داده متغیر:
 داده ای است که  می تواند بر حسب منطق برنامه و در جایگاه های مختلف مقادیر متفاوتی بپذیرد که  همانطور که گفتم دو نوع دارد : متغیر عددی و متغیر رشته ای  .
 *متغیر عددی :
 
 متغیر های عددی دارای ? نوع مختلف هستند  :
  
  اگر بخواهیم محاسبات برنامه با دقت بالایی انجام شود ، باید متغیرها را از  نوع مناسب (مثلا اعشاری با دقت مضاعف) در ابتدای برنامه به وسیله دستور  DIM تعریف کنیم .
 مثال : برای این که متغیر A از نوع اعشاری با دقت معمولی باشد ، در ابتدای برنامه  این دستور را می نویسیم :
 DIM A AS SINGLE 
 راه دوم این است که هرجا نیاز به استفاده از A بود ، آن را به صورت A! به کار می بریم  .
 *متغیرهای رشته ای
 همان طور که از  نام این متغیر مشخص است،برای نگهداری رشته ای از حروف به کار می رود و دو نوع دارد  :
 
                متغیر رشته ای با طول متغیر
متغیر رشته ای با طول ثابت
  
 فرض کنید می خواهیم متغیر رشته ای به نام name و متغیر رشته ای با طول 10  کاراکتر به نام family تعریف کنیم .  مانند متغیرهای عددی از دستور ِDIM استفاده می کنیم :
    DIM name AS STRING 
                                                                DIM family AS  STRING*10
 حتما متوجه شده اید که N تعداد حروف متغیر را بیان می کند و طبیعتا از  نوع % یعنی عدد صحیح معمولی است  .
 اگر بدون معرفی  متغیررشته ای را در برنامه استفاده کنیم ، Qbasic به طور خودکار آن را مساوی " " یعنی یک رشته خالی قرار می دهد و اگر متغیر  از نوع عددی باشد ، Qbasic به طور پیش فرض آن را مساوی صفر قرار می دهد.
  حال می خواهیم اولین برنامه خود را در QBasic  بنویسیم . برای این کار نیاز به معرفی چند دستور داریم : 
 ?- دستور PRINT برای چاپ عدد رشته و یا مقادیر  متغیرها به کار می رود . فقط فراموش نکنید اگر می خواهید پیغامی نمایش دهید رشته  مورد نظر را حتما داخل علامت کوتیشن (") قرار دهید برای مثال دستور زیر عبارت This  is my first program را چاپ می کند .
                                                   " PRINT "This is my  first pogram 
 برای ترکیب چند رشته یا متغیر باید بین  متغیرها / رشته ها  از ; یا , استفاده کنید . در ادامه تفاوت این دو را بیان خواهیم  کرد .
 ?- دستور INPUT برای دریافت مقادیر (عددی و  رشته ای) از کاربر به کار می رود . برای مثال دستور     ! INPUT a یک عدد اعشاری با  دقت مضاعف از کاربر دریافت می کند . وقتی دستور INPUT اجرا می شود به طور خودکار  علامت ؟ روی صفحه نمایش چاپ شده و برنامه منتظر ورود داده از طرف کاربر می ماند .  اما این دستور را می توان طور دیگری نیز به کار برد . مثلا فرض کنید می خواهیم به  کاربر پیغام دهیم :"یک عدد وارد کن" و سپس این عدد را در متغیر a قرار دهیم . برای  این کار باید ابتدا یک دستور PRINT برای چاپ رشته و سپس دستور INPUT را برای  دریافت عدد به کار ببریم . مانند زیر :
                                                                "PRINT  "Enter a number  
     INPUT a 
 اما می توان این کار را در یک خط انجام داد !  دستور INPUT اجازه چاپ پیغام را نیز به ما می دهد . به این نکته توجه داشته باشید  : بین پیغام و نام متغیر باید ; یا , قرار دهیم . اگر از ; استفاده کنیم بعد از چاپ  پیغام یک علامت سوال چاپ می شود و نشانگر بلافاصله بعد از علامت سوال قرار می گیرد  ولی در صورت استفاده از , علامت سوال خودکار چاپ نمی شود و نشانگر بعد از یک tab  فاصله روبه روی پیغام قرار می گیرد . به دستورات زیر که ترکیب دو دستور بالاست توجه  کنید و تفاوت های آنها را در خروجی مشاهده کنید (فرض کنید کاربر عدد ? را وارد می  کند )
 2        INPUT "Enter a number" ,  a          \\ khorooji=>        Enter a number
        INPUT "Enter a number" ; a           \\  khorooji=>       Enter a number?2
 حال دو دستور ساده دیگر را هم یاد بگیرید  :
 ?- REM : این دستور برای اضافه کردن توضیحات  به برنامه به کار می رود و اصولا زمانی که مترجم برنامه به این دستور می رسد  بلافاصله به خط بعدی می رود و عبارت جلوی REM را نادیده می گیرد . 
 ?- END : استفاده از این دستور نیز مانند REM  اختیاری است و نشان دهنده پایان برنامه است .
 با توجه به درس جلسه قبل و این جلسه با هم  برنامه ای می نویسیم که دو عدد از کاربر دریافت کرده و حاصل جمع آنها را نمایش دهد  . 
                                        REM   this program can add two numbers
                                ".PRINT "I  can add two numbers . please enter  them
                                                                 INPUT  "Enter first  number:",a
                                                             INPUT  "Enter second  number:",b
                                                                                                   c=a+b
                                                                                  PRINT  "Sum is  :";c
                                                                                                       END
 مثالی از خروجی برنامه :
                                            .  I can add two numbers . please enter  them
                                                                     Enter first number:         31
                                                                Enter  second number:         24 
                                                                                            Sum is : 55
 تمرین : برنامه ای بنویسید که ? عدد را دریافت  کند و الف) حاصل جمع آنها را چاپ کند . ب) میانگین آنها را چاپ کند .
 نکته : اگر برنامه بالا را بنویسید و اجرا  نمایید متوجه می شوید که اگر برای متغیرها علامت خاصی قرار ندهید QBasic آنها را به  عنوان عدد صحیح (integer) می شناسد و در نتیجه میانگین نیز مقدار صحیحی نمایش داده  می شود . برای دقیق تر شدن خروجی برنامه و اینکه میانگین عددی اعشاری باشد باید  متغیرهای مربوط به سه عدد دریافتی , حاصل جمع و میانگین از نوع اعشاری باشد . یعنی  باید متغیرها را مانند !a یا #a به کار ببرید تا خروجی برنامه دقیق و برابر مقدار  واقعی میانگین باشد .
 حل تمرین   :
  راه اول این بود که متغیر ها را به صورت !a  به کار ببریم ( مانند برنامه زیر ) و راه دوم این بود که با توجه به درس جلسه دوم  در ابتدای برنامه تمام متغیرها را از نوع اعشاری تعریف نماییم برای مثال عبارت DIM  a AS SINGLE را در ابتدای برنامه بنویسیم تا هرجا از a استفاده کردیم نوع آن اعشاری  باشد .در این روش نیازی نیست در هر بار استفاده از متغیر علامت نوع را در انتهای آن  بنویسیم.
                                                        ***REM ***program number  1
                                                            "PRINT "enter  three number
                                                                              !INPUT a! , b! ,  c
                                                                          !sum! = a! + b! +  c
                                                                  !PRINT  "Sum is : ";sum
                                                           PRINT "Average is :  ";sum!/3
                                                                                               END
 حال بررسی ساختارهای کنترلی که یکی از  پرکاربردترین دستورها هستند را شروع می کنم .
 1- ساختار  IF
این دستور برای انجام کاری در صورت درست بودن شرطی به کار می  رود . شکل کلی آن به صورت زیر است :
                                                                                  THEN شرط 1  IF
کارهایی که در صورت برقرار بودن شرط 1 باید انجام شود  .
                                                                          THEN شرط 2 ELSE IF
کارهایی که در صورت برقرار بودن شرط 2 باید انجام شود  .
                                                                                                     ...
                                                                                                ELSE
کارهایی  که در صورت برقرار نبودن هیچ یک از شرط های بالا باید انجام شود .
END IF
 مثال 1: فرض کنید  عددی از کاربر دریافت کرده و می خواهیم مثبت یا منفی بودن آن را  مشابه  تابع(sgn(xدر ریاضیات اعلام کنیم . ( در صورت مثبت بودن ، عدد 1 / منفی بودن ، عدد  1- / و اگر صفر وارد شد ، عدد ضفر چاپ می شود ) . دستور زیر این امکان را فراهم می  سازد : (فرض کنید عدد در n ذخیره شده است  )
                                                                                       IF n>0  THEN
                                                                                 "PRINT  "1
                                                                               ELSE IF n<0  THEN
                                                                                "PRINT  "-1
                                                                                                   Else
                                                                                  "PRINT  "0
                                                                                                END IF
 نکته  : اگر می خواهید فقط یک شرط را بررسی کنید (مثلا فقط در صورت مثبت  بودن n عدد 1 چاپ شود و در غیر این صورت هیچ کاری انجام نشود ) می توانید دستورIF  را در یک خط بدون نیاز به END IF بنویسید . مانند زیر  :
                                                                       "IF n>0 THEN PRINT  "1
 2-  DO...WHILE
این ساختار کارهایی را تا زمانی که شرطی برقرار باشد  انجام می دهد . شکل کلی آن به صورت زیر است  :
                                                                                  شرط DO WHILE 
                                                     کارهایی که  باید انجام  شوند 
                                                                                                 LOOP
عبارت LOOP نشان دهنده پایان حلقه است . این ساختار دارای انواع دیگری نیز  هست . مثلا در نوع معرفی شده کارها فقط زمانی انجام می شوند که شرط برقرار باشد و  اگر شرط برقرار نباشد برنامه به خط بعد از LOOP می رود . اما نوع دیگری از این  ساختار وجود دارد که ابتدا یک بار کار را انجام می دهد و سپس شرط را چک می کند .  شکل کلی آن به صورت زیر است  :
                                                                                                   DO
                                                    کارهایی که باید انجام  شوند  
                                                                             شرط LOOP WHILE 
می توان به جای عبارت WHILE از UNTIL استفاده کرد اما در این  صورت باید نقیض شرط را بنویسیم . 
 مثال ?: می خواهیم  تا زمانی که کلمه وارد شده از طرف کاربر مخالف رمز عبور (مثلا kamyar ) است ، رمز  دوباره دریافت شود . به روش های مختلف نوشتن این برنامه توجه کنید :
 1)                                $INPUT  pass 
            "DO WHILE pass$<>"kamyar
                     $INPUT pass
                                              LOOP
------------------------------------------
2)                                 $INPUT pass 
               "DO UNTIL  pass$="kamyar
                    $INPUT  pass
                                              LOOP
------------------------------------------
3)                                               DO 
                    $INPUT pass
          "LOOP WHILE  pass<>"kamyar
-------------------------------------------
4)                                               DO
                    $INPUT pass
           "LOOP UNTIL  pass$="kamyar
 همانطور که مشاهده می کنید هر 4 بخش یک کار را  انجام می دهند اما بخش های 3 و 4 از 1 و 2 بهترند زیرا متن برنامه آنها کوتاه تر  است . بسته به منطق برنامه باید تشخیص دهید کدام روش بهتر است .
 مثال ?: برنامه ای  بنویسید که مجموع اعداد از 1 تا 1000 را حساب کند  .
                                                                              counter =  1
                                                                                   sum = 0
                                                        DO WHILE  counter<=1000
                                                            sum=sum+counter
                                                           counter=counter+1
                                                                                      LOOP
                  PRINT "Sum of numbers between 1 & 1000 is :  ";sum
                                                                                        END
 مثال ?: برنامه ای  بنویسید که میانگین نمرات را تا زمانی که عدد 1- وارد نشده ، حساب کند  .
                                                                                counter=1               
                                                                                   sum=0
                                                                                          DO
                                                INPUT "Enter  grade",grade
                                                               sum=sum+grade
                                                            counter=counter+1
                                                           LOOP WHILE grade<>-1
                                                                    IF  sum<>-1 THEN
                                   PRINT "average  is";(sum+1)/counter
                                                                                       ELSE
                                            "!PRINT "there isn't any  grade
                                                                                    END  IF
                                                                                        END
 توضیح : در قسمت چاپ میانگین  مقدار میانگین را برابرsum+1)/counter قرار دادیم زیرا وقتی عدد 1- وارد می شود  ابتدا با sum جمع شده و سپس شرط چک می شود و از حلقه بیرون می آید پس برای محاسبه  میانگین اعدادی که قبل از 1- وارد شده اند باید 1- را از sum حذف کرد یعنی به sum  یک مقدار اضافه کنیم.
 3-FOR
این  ساختار شبیه ساختار WHILE است با این تفاوت که برای ایجاد حلقه هایی که دارای  شمارنده هستند به کار می رود . می توانید شمارنده حلقه را درون این دستور مقدار دهی  اولیه کنید . همچنین مقدار تغییر شمارنده (یکی یکی یا دوتا دوتا یا ... ) نیز با  دستور STEP قابل تنظیم است . شکل کلی این دستور به شکل زیر است :
مقدار تغییر  شمارنده STEP   مقدار نهایی TO  مقدار اولیه = شمارنده   FOR
                               کارهایی که باید در طول حلقه انجام  شود 
                                                                         متغیر شمارنده NEXT 
مثال ? : مثال ? را با این  دستور می نویسیم :
                                                            FOR i=1 TO 1000 STEP  1
                                                                      sum=sum+i
                                                                                      NEXT i
                  PRINT "Sum of numbers between 1 & 1000 is :  ";sum
                                                                                          END
 نکته : اگر مقدار تغییر شمارنده  برابر یک است ، می توانید STEP 1 را ننویسید .
 تمرین  :
1- برنامه ای بنویسید که مجموع  اعداد زوج سه رقمی را چاپ کند .
2- برنامه ای  بنویسید که ابتدا رمز عبور را از کاربر بخواهد . اگر رمزabc بود آنگاه ?? عدد را  بخواند و max آنها را چاپ کند . اگر رمز اشتباه بود ، پیغام مناسبی نمایش داده شده  و رمز عبور دوباره خواسته شود .
3- برنامه ای  بنویسید که رمز عبوری را از کاربر بخواهد . اگر رمز درست بود پیغام "your password  is correct" را چاپ کند . برنامه باید فقط ? بار از کاربر رمز را بپرسد . اگر کاربر  نتوانست رمز را در این 3 بار وارد کند پیغام "Sorry! you can't continue" چاپ شود  .
  حل تمرین   :
1- برنامه بسیار ساده و به صورت  زیر است  :
                                                                                sum=0
                                                   FOR i=100 TO 998  STEP 2 
                                                                  sum=sum+i
                                                                                 NEXT i
                                                           PRINT "Sum is :",sum
ـــــــــــــــــــــــــ  ـــــــــــــــــــــــــ  ـــــــــــــــــــــــــ  ـــــــــــــــــــــــــ  ــــــــــــــــــــ
 2-
                                                                                     DO
                                                $INPUT "Enter  pass";pass
                                                    IF  pass$<>"abc" THEN
"PRINT "Your password is not correct ! try  again
                                                                            END IF
                                                 "LOOP WHILE  pass$<>"abc
                                                  "PRINT  "Enter ten numbers
                                                                              INPUT  a
                                                                                max=a
                                                                      FOR i=1 TO  9  
                                                                        INPUT  a
                                                  IF a>max THEN  max=a
                                                                                NEXT  i
                                                                                    END
 *نکات : تا زمانی که کاربر رمز عبور  را درست وارد نکرده ، حلقه تکرار می شود و تنها زمانی که رمز به درستی وارد شود ،  برنامه به خط بعد از LOOP می رود و دستورات بعدی انجام می شود . برای تعیین max  دسته ای از اعداد ، ابتدا اولین عدد ورودی را در max قرار می دهیم سپس بقیه اعداد  را در یک حلقه از کاربر دریافت کرده ، بعد از دریافت هرکدام ، آنها با max مقایسه  می شوند تا اگر بیشتر از max بودند ، در آن قرار گیرند . دقت کنید چون یک عدد بیرون  حلقه دریافت کرده ایم ? عدد دیگر باقیمانده است (شرط حلقه ) برای به دست آوردن min  نیز از همین روش استفاده می کنیم .
ـــــــــــــــــــــــــ  ـــــــــــــــــــــــــ  ـــــــــــــــــــــــــ  ـــــــــــــــــــــــــ  ــــــــــــــــــــ
 3-
                                                              c=1
                                                               DO
              $INPUT"Enter  password",pass
                                                c=c+1 
            LOOP WHILE pass$<>"123" AND  c<=3
                                    IF pass$="123" THEN 
           "!PRINT "your password is  correct
                                                             ELSE 
          "PRINT "Sorry ! you can't  continue
                                                              END
نکات : در شرط حلقه از عملگر منطقی AND استفاده شده زیرا استفاده از AND سبب  می شود اگر یکی از شرطها هم غلط باشد ، کل عبارت نادرست شود . (عینا مانند استفاده  از "و" در منطق ریاضی ) یعنی در هریک از دو صورتی که "pass$="abc  (رمز درست وارد  شود) یا c (شمارنده) بزرگتر از 3 شود ، برنامه از حلقه خارج می شود و با توجه این  که بر اثر درست وارد شدن رمز از حلقه خارج شده ایم یا بر اثر تمام شدن تعداد حدس ها  ، پیغام مناسب چاپ می شود . 
 و اما درس جدید  :
 در درس امروز ابتدا به معرفی آرایه می پردازیم  . 
فرض کنید می خواهیم n عدد را به صورت صعودی مرتب کنیم . برای ذخیره سازی این  اعداد باید n متغیر به نام های a1,a2,a3,...,an تعریف کنیم . نوشتن برنامه ای که  بتواند این n عدد را مرتب کند مخصوصا زمانی که مقدار n بزرگ باشد ، بسیار مشکل و  تقریبا غیر ممکن است . در چنین مواردی از آرایه ها یا ماتریس ها استفاده می کنیم .  به کمک آرایه ها می توان تعداد مشخصی متغیر همنوع را فقط با یک نام و مشخص کردن  اندیس آنها به کار برد . برای مثال می توان ده عدد را در متغیری به نام N از نوع  آرایه ای به طول 10 ذخیره کرد :
         1        2          3         4       5       6         7      8       9        10
 مثلا N(1)=325  و N(9)=71
برای تعریف آرایه از دستور  DIM به شکل کلی زیر استفاده می شود :
                              [ نوع داده  AS ] (دامنه یا تعداد عناصر ) نام متغیر آرایه DIM 
( عبارت داخل [ ] اختیاری  است )
به مثال های زیر توجه کنید :
ایجاد آرایه ای به نام B و دارای 20 عنصر  :                               (DIM B(1 TO 20 یا (DIM B(20
ایجاد آرایه ای به  نام M از نوع عدد صحیح و دارای 50 عنصر :                             (DIM  M%(50
ایجاد آرایه ای به نام Grade از نوع اعشاری ساده دارای 35 عنصر : DIM  Grade(35) AS SINGLE
 مثال 1 : برنامه ای  بنویسید که ?? نمره یک دانش آموز را در آرایه ذخیره کرده و مجموع و میانگین نمرات  را چاپ کند .
                        DIM Grade(1 TO 14 ) AS  INTEGER
                                                              sum!=0
                                                  FOR i=1 TO  14
                   (%INPUT "Grade : "Grade(i
                      (%sum! = sum! +  Grade(i
                                                              NEXT  i
                                              average!=sum!/14
                                         !PRINT "sum =  ";sum
                              !PRINT "average =  ";average
 این برنامه را می توانستید با دریافت نمرات در حلقه یا  دریافت تک تک نمرات (?? بار) نیز بنویسید . اما فرض کنید کاربر بخواهد نمره سوم یا  ششم خود را مشاهده کند . در این صورت باید از آرایه ها استفاده کنید زیرا در روش  قبلی امکان دسترسی به تک تک اطلاعات وجود نداشت ولی حالا با افزودن قطعه کد زیر به  برنامه بالا می توان برنامه ای ساخت که نمره دلخواه کاربر را نمایش دهد  :
          INPUT "which grade do you want to  see?",a
                     (PRINT "grade ";a;" is = ";Grade(a
 آرایه های دوبعدی و چند بعدی  :
 در مواقعی نیاز به آرایه هایی داریم که هر عنصر آن دارای  دو بعد باشد . مثلا برای ذخیره مختصات چند نقطه نیاز به یک آرایه دو بعدی داریم تا  مختصات x  و y نقطه را ذخیره کنیم . تعریف آرایه های n بعدی به طور کلی به شکل زیر  است : (A1,A2,A3,...,An و B1,B2 و ... همگی عدد هستند )
 (DIM (A1 TO A2,B1 TO B2, ... , Z1 TO Z2       یا      (DIM (A1,A2,A3,...,An
 مثال ? : برنامه ای بنویسید که جدول ضرب اعداد از یک تا ده  را در یک آرایه دوبعدی ذخیره نماید . 
                                  (DIM  N(10,10
                               FOR I%=1 TO 10
                         FOR J%=1 TO 10
             %N(I%,J%)=I%*J
                                     %NEXT J
                                           %NEXT  I
 مثلا N(3,5)=15 .
 تمرین :
 برنامه ای بنویسید که ?? عدد را دریافت کند و آنها را به  ترتیب به صورت صعودی مرتب کند . برنامه را برای n عدد تعمیم دهید . ( راهنمایی :  دستور SWAP a,b مقدار دو متغیر را عوض می کند . یعنی اگر a=1,b=2 باشد بعد از اجرای  این دستور a=2,b=1 خواهد بود . از این دستور می توانید برای جابه جایی عناصر آرایه  به منظور مرتب سازی استفاده کنید . )