PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش مقدماتی و مرحله به مرحله qbasic



TAHA
11-11-2009, 06:11 PM
من با سرچ qbasic download در گوگل به این سایت رسیدم:
http://www.download.com/Qbasic/3000-...-10577955.html (http://woozbiz.com/nb/p/index.php?q=aHR0cDovL3d3dy5kb3dubG9hZC5jb20vUWJhc2 ljLzMwMDAtMjA2OV80LTEwNTc3OTU1Lmh0bWw%3D)
و بسته ای حدود 200 تا 300 کیلو را دانلود کردم. بعد آن را آنزیپ کردم.
یک فایل exe (برنامه اصلی) داخلش بود. و یک فایل با پسوند hlp و یک فایل با پسوند ini .

برنامه اصلی را اجرا کردم. یک کادر آمد که با زدن esc بستم.

TAHA
11-11-2009, 06:12 PM
بعد آموزشهای اینجا را مرور کردم:
http://tedfelix.com/qbasic (http://woozbiz.com/nb/p/index.php?q=aHR0cDovL3RlZGZlbGl4LmNvbS9xYmFzaWM%3D )

از این صفحه راهنمای ادیتور را داریم:
نقل قول:


<Backspace> - Removes the character to the left of the cursor
<Delete> - Removes the character at the cursor
<Left Arrow> - Moves the cursor left
<Right Arrow> - Moves the cursor right
<Up Arrow> - Moves the cursor up
<Down Arrow> - Moves the cursor down
<Home> - Moves the cursor to the start of a line
<End> - Moves the cursor to the end of a line

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

PRINT "welcome"
و با زدن save as از منوی فایل و مسیر f:\welcome.bas ذخیره کردم.
از منوی run اگر start را بزنیم اگر خطایی در برنامه نباشد اجرا می شود.

بعدا از منوی فایل و گزینه open می توانیم فایل خود را باز کنیم. ولی وقتی فایل کنار برنامه اجرایی بود من توانستم این کار را بکنم.

به جای دستور PRINT می توانید از ((؟)) هم استفاده کنید خودش تبدیل می کند.

TAHA
11-11-2009, 06:13 PM
باز همان جاییم http://tedfelix.com/qbasic (http://woozbiz.com/nb/p/index.php?q=aHR0cDovL3RlZGZlbGl4LmNvbS9xYmFzaWM%3D )

برنامه زیر را ببینید:
کد:

CLS
PRINT "welcome"
PRINT "hi";
PRINT " saeed"
دستور اول صفحه را پاک می کند. بعد خط سوم سمی کلون گذاشتیم (( ; )). تا باعث شود چاپ بعدی در ادامه همین چاپ نمایش داده شود.

نتیجه اجرا:
کد:

welcome
hi saeed
شیفت f5 هم برای اجرا کاربرد دارد.

TAHA
11-11-2009, 06:14 PM
باز از همان سایت.
برنامه بعدی:
کد:

CLS
INPUT "Enter your name: ", Name$
PRINT "Hello, "; Name$; ". How are you today?"
اول از شما می پرسد اسم شما چیه و بعد پیامی چاپ می کند.

کاما قبل Name$ فراموش نشود.
===============================
برنامه بعدی:
کد:

CLS
INPUT "Enter your name: ", Name$
PRINT "Name$"
PRINT Name$
اول نام شما را می پرسد.
خط بعدی عبارت Name$ را به همان شکل چاپ می کند
ولی خط بعدی نام شما را چاپ می کند.

============================
شرط:
کد:

CLS
INPUT "Enter your name: ", Name$
IF Name$="Mike" THEN
PRINT "Go Away!"
ELSE
PRINT "Hello, "; Name$; ". How are you today?"
END IF
برنامه بالا نام شما را می پرسد. اگر مایک بودید خوش آمد گفته وگرنه پیام دیگری می دهد.

============================
کد:

CLS
INPUT "Enter a number: ", Number
IF Number < 100 THEN
PRINT "Your number was less than 100"
ELSE
PRINT "Your number was greater than or equal to 100"
END IF
باز هم شرط داریم.
نکته دیگر این برنامه طرز تعریف متغیر عددی است. قبلا ما متغیر رشته ای تعریف کردیم و با علامت $ همراه کردیم ولی حالا بدون آن است.

TAHA
11-11-2009, 06:15 PM
ضرب اعداد:
کد:

CLS
INPUT "Enter the first number: ", A
INPUT "Enter the second number: ", B
PRINT "The answer is: "; A * B
============================
SELECT CASE
کد:

CLS
INPUT "Enter your name: ", Name$
SELECT CASE Name$
CASE "Ted"
PRINT "Greetings, oh powerful master"
CASE "Mike"
PRINT "Go away!"
CASE ELSE
PRINT "Hello, "; Name$; ". How are you?"
END SELECT
=============================
ساخت عدد راندوم:
کد:

CLS
PRINT RND
PRINT RND
دو عدد مختلف زیر 1 می سازد.
دقیق تر اگر بخواهیم بگیم: between 0 and 1 اعشاری.

کد زیر بهتره:
کد:

CLS
RANDOMIZE TIMER
PRINT RND
PRINT RND
چون برنامه قبلی با اجراهای متعدد اعداد تصادفی ثابت می داد.

بازی تاس از همان سایت:
کد:

CLS
RANDOMIZE TIMER
INPUT "Press ENTER to roll dice...", A$
PRINT
Die1 = INT(RND * 6 + 1)
Die2 = INT(RND * 6 + 1)
PRINT "Die 1: "; Die1
PRINT "Die 2: "; Die2

TAHA
11-11-2009, 06:16 PM
کد:

CLS
DO
INPUT "Enter the first number: ", A
INPUT "Enter the second number: ", B
PRINT "The answer is: "; A * B

INPUT "Would you like to do it again (y/n)? ", Answer$
LOOP WHILE Answer$="y"
loop while .
حلقه برنامه بالا تا کاربر y بدهد برقرار است.

============================
or
کد:

CLS
DO
INPUT "Enter the first number: ", A
INPUT "Enter the second number: ", B
PRINT "The answer is: "; A * B

INPUT "Would you like to do it again (y/n)? ", Answer$
LOOP WHILE Answer$="y" OR Answer$="Y"
دوشرط اگر یکی برقرار باشد با or برقرار است.

TAHA
11-11-2009, 06:17 PM
LEFT$

کد:

INPUT "Enter something:", A$
PRINT A$
PRINT LEFT$(A$,1)
PRINT LEFT$(A$,2)
PRINT LEFT$(A$,3)
به تعدادی که مشخص کنیم از چپ از رشته جدا شده و تحویل داده می شود.

RIGHT$ هم داریم.

=======================
COLOR
کد:

CLS
COLOR 2, 0
PRINT "That's ";
COLOR 3, 0
PRINT "more ";
COLOR 5, 0
PRINT "like it!"
رنگی چاپ میشه.

کد:
0 - Black
1 - Blue

2 - Green
3 - Cyan
4 - Red
5 - Magenta
6 - Yellow
7 - White
===================
Blinking
کد:

CLS
COLOR 28, 0
PRINT "*** WARNING ***"
COLOR 15, 0
PRINT "Programming can be too much fun!"
عبارت وارنینگ با پس زمینه کدر و رنگ قرمز نوشته شد.
ولی وقتی با کلیک راست روی آیکون برنامه و زدن پراپرتی و ((فول اسکرین)) کردن نما را نگاه کنیم متن قرمز چشمک زن می بینیم.

TAHA
11-11-2009, 06:18 PM
FOR...NEXT

کد:

CLS
FOR I = 1 TO 10
PRINT I
NEXT I
شمارش و چاپ اعداد را خواهیم داشت.

================

کد:

A Color Chart

Here's a color chart program using a FOR...NEXT loop.
CLS
FOR I = 1 TO 15
COLOR I, 0
PRINT I; "*** COLOR ***"
NEXT I
STEP

FOR...NEXT can also do "step counting". Try this:
CLS
FOR I = 2 TO 20 STEP 2
PRINT I
NEXT I

________________

TAHA
11-11-2009, 06:19 PM
Sound
کد:

CLS
INPUT "Press Enter to hear a beep", A$
BEEP
کد:

FOR I = 4000 TO 1000 STEP -5
SOUND I, .1
NEXT I
ملودی:
کد:

PLAY "e8 d8 c8 d8 e8 e8 e4"
کد:

PLAY "c8 d8 e8 f8 g8 a8 b8 > c4"
The ">" greater than sign means "go up one octave".

کد:

PLAY "T180 <d8d8d8 T120 g2>d2"
PLAY "T180 c8<b8a8 T120 >g2d4"
PLAY "T180 c8<b8a8 T120 >g2d4"
PLAY "T180 c8<b8>c8 T120 <a2>"

TAHA
11-11-2009, 06:21 PM
LOCATE
کد:

CLS
LOCATE 5, 10
PRINT "Here"
LOCATE 20, 70
PRINT "There"
LOCATE allows you to print in a specific place on the screen.
--------------------
کد:

CLS
DO
Row = INT(RND * 23 + 1)
Column = INT(RND * 79 + 1)
LOCATE Row, Column
Color1 = INT(RND * 15 + 1)
COLOR Color1, 0
PRINT "Ted was here!";
LOOP
کد:

CLS
DO
LOCATE 1, 1
PRINT TIME$
SLEEP 1
LOOP
=====================
WIDTH
Use WIDTH 40 for big text. It changes the entire screen to wide text mode. Use WIDTH 80 to go back to normal size text.
کد:

SCREEN 0
WIDTH 40
CLS
PRINT "Wow! This is big!"
INPUT "Press <Enter> to go back", A$
WIDTH 80
PRINT "That's more like it."

TAHA
11-11-2009, 06:21 PM
CHR$
کد:

There are many special symbols and other characters you can display that aren't on the keyboard. Try this:
CLS
PRINT CHR$(1); CHR$(2)

That prints a couple of smiley faces. There are plenty of other characters too. This program will show you many, but not all of them:
CLS
FOR I = 32 to 255
PRINT I; CHR$(I); " ";
NEXT I

TAHA
11-11-2009, 06:23 PM
مروری بر مطالب این تاپیک:

دستور PRINT برای چاپ(از علامت سئوال هم میشه بجای آن استفاده کرد).

کد:

PRINT "welcome"
اگر سمی کلون بعد یک چاپ بگذاریم چاپ بعدی را در ادامه خواهیم داشت.

دستور CLS برای پاک کردن صفحه.

دستور INPUT برای ورودی گرفتن از کاربر:
در کدهای زیر طرز گرفتن رشته و عدد را می بینید.
کد:

INPUT "Enter your name: ", Name$
کد:

INPUT "Enter a number: ", Number
شرط:
کد:

CLS
INPUT "Enter your name: ", Name$
IF Name$="Mike" THEN
PRINT "Go Away!"
ELSE
PRINT "Hello, "; Name$; ". How are you today?"
END IF
کد:

CLS
INPUT "Enter a number: ", Number
IF Number < 100 THEN
PRINT "Your number was less than 100"
ELSE
PRINT "Your number was greater than or equal to 100"
END IF
SELECT CASE :
کد:

CLS
INPUT "Enter your name: ", Name$
SELECT CASE Name$
CASE "Ted"
PRINT "Greetings, oh powerful master"
CASE "Mike"
PRINT "Go away!"
CASE ELSE
PRINT "Hello, "; Name$; ". How are you?"
END SELECT
عدد راندوم:
کد:

CLS
RANDOMIZE TIMER
PRINT RND
PRINT RND
کد:

CLS
RANDOMIZE TIMER
INPUT "Press ENTER to roll dice...", A$
PRINT
Die1 = INT(RND * 6 + 1)
Die2 = INT(RND * 6 + 1)
PRINT "Die 1: "; Die1
PRINT "Die 2: "; Die2
حلقه WHILE - در حقیقت DO...LOOP WHILE :
کد:

CLS
DO
INPUT "Enter the first number: ", A
INPUT "Enter the second number: ", B
PRINT "The answer is: "; A * B

INPUT "Would you like to do it again (y/n)? ", Answer$
LOOP WHILE Answer$="y"
با Or :
کد:

LOOP WHILE Answer$="y" OR Answer$="Y"
لفت و رایت:
کد:

PRINT LEFT$(A$,3)
رنگ و چشمک زدن:
کد:

CLS
COLOR 2, 0
PRINT "That's ";
COLOR 3, 0
PRINT "more ";
COLOR 5, 0
PRINT "like it!"
کد:

0 - Black
1 - Blue
2 - Green
3 - Cyan
4 - Red
5 - Magenta
6 - Yellow
7 - White
کد:

CLS
COLOR 28, 0
PRINT "*** WARNING ***"
COLOR 15, 0
PRINT "Programming can be too much fun!"
FOR...NEXT :
کد:

CLS
FOR I = 1 TO 10
PRINT I
NEXT I
Sound :
کد:

CLS
INPUT "Press Enter to hear a beep", A$
BEEP
کد:

FOR I = 4000 TO 1000 STEP -5
SOUND I, .1
NEXT I
کد:

PLAY "e8 d8 c8 d8 e8 e8 e4"
کد:

PLAY "c8 d8 e8 f8 g8 a8 b8 > c4"
کد:

PLAY "T180 <d8d8d8 T120 g2>d2"
PLAY "T180 c8<b8a8 T120 >g2d4"
PLAY "T180 c8<b8a8 T120 >g2d4"
PLAY "T180 c8<b8>c8 T120 <a2>"
LOCATE :
کد:

CLS
LOCATE 5, 10
PRINT "Here"
LOCATE 20, 70
PRINT "There"
WIDTH :
کد:

SCREEN 0
WIDTH 40
CLS
PRINT "Wow! This is big!"
INPUT "Press <Enter> to go back", A$
WIDTH 80
PRINT "That's more like it."
CHR$:
کد:

CLS
PRINT CHR$(1); CHR$(2)
کد:

CLS
FOR I = 32 to 255
PRINT I; CHR$(I); " ";
NEXT I

TAHA
11-11-2009, 06:23 PM
● آرايه :

مجموعه اي از متغيير هاي هم نوع است كه با يك نام در حافظه نگهداري مي شود . هرمتغير درون آرايه با يك انديس قابل دسترسي مي باشد كه اين انديس مكاني از آرايه را كه آن متغير اشغال كرده است مشخص مي نمايد . متغيرهاي مجزا از هم نيز عناصر آرايه ناميده مي شوند .
آرايه ها مي توانند داري يك يا چند بعد باشند. آرايه هاي يك بعدي براي نگهداري ليستي از مقادير مورد استفاده قرار مي گيرند. عناصر درون آرايه يك بعدي با دنباله اي از اعداد صحيح يا عبارت صحيح انديس گذاري مي شوند.
آرايه يك بعدي ID(0) , ID(1) , ID(2) , ID(3) , ID(4) اين آرايه يك جدول با يك سطر(ID) و پنج ستون(0 – 4)است
نكته : كليه عناصر يك آرايه بايد از يك نوع داده باشند . يك خانه آرايه نمي تواند از نوع عددي صحيح و خانه ديگر از نوع رشته اي باشند .
كاربرد آرايه ها :
فرض كنيد مي خواهيم ده عدد را به طور صعودي مرتب كنيم . براي ذخيره سازي اين اعداد بايد ده متغير به نام هاي num1 , … , num10 تعريف نمائيم .نوشتن برنامه اي كه بتواند اين ده متغير را مرتب كند مشكل است . درچنين مواردي ، زبان هاي برنامه نويسي راه حل ساده اي به نام آرايه در اختيار ما قرار مي دهند . به كمك آرايه ها مي توان ده عدد را در متغيري به نام num از نوع آرايه اي با يك سطر (num) و ده ستون (0 , … , 9) ذخيره كرد.




● دستور DIM
با استفاده از اين دستور مي توان يك آرايه تعريف كرد شكل كلي آن :
نوع داده AS (دامنه يا تعداد عناصر) نام متغير آرايه DIM
نام متغير آرايه : همان نام اشتراكي است كه توسط آن مي توانيد به عناصر آرايه دسترسي پيداكنيد .
دامنه يا تعداد عناصر : حداكثر خانه هاي لازم (حد اكثر يك آرايه) جهت ذخيره سازي مقادير را در آرايه تعيين مي كند. تعداد مي تواند بصورت عدد يا دامنه اي به شكل حد پائين به سمت حد بالا باشد.
نوع داه : نوع آرايه را مشخص مي كند و مي تواند INTEGER =% صحيح LONG =& , صحيح بلند SINGLE =! , اعشاري با دقت معمولي DOUBLE =# , اعشاري با دقت مضاعف STRING =$ , رشته اي باشد .
DIM B(20) آرايه B از نوع اعشاري معمولي با 21 عنصر ( از صفر تا 20 )
DIM N(5 To 45) آرايه N اعشاري معمولي با 41 عنصر
DIM A%(10) آرايه A از نوع عددي صحيح با 11 ( از صفر تا 10) عنصر
DIM C$(5) آرايه C از نوع رشته اي با 6 عنصر
DIM num(1 To 5) AS SINGLE آرايه num اعشاري معمولي داراي 5 عنصر
DIM N(10 , 10) آرايه دو بعدي با نام N اعشاري معمولي داراي 11 سطر ( صفر تا 10) و 11 ستون (از صفر تا 10) .

دستور OPTION BASE براي تعريف كوچكترين انديس آرايه براي شروع به شكل OPTION BASE m
M عدد شروع كه مي تواند صفر يا 1 باشد .
کد:

CLS
OPTION BASE 1
DIM x(4)
DIM name$(3)
X(1) = 10 : x(2) = 20 : x(3) = -70 : x(4) = 12.35
Name$(1) = " Ali" : name$(2) = " Hamid " : name$(3) = " Davood "
در مثال بالا ابتدا آرايه هاي X و name$ تعريف شده سپس عناصر آنها مقدار دهي شده اند مثلا دستور X(2) = 20 باعث مي شود عدد 20 در خانه دوم آرايه X ذخيره گردد.

TAHA
11-11-2009, 06:24 PM
آموزش ( Qbasic - کیو بیسیک )
================================
مخفف كلمات ( Beginner'S All – Purpose Symbolic Instruction Code به معني كد حاوي دستورات نمادين همه منظوره مخصوص نوآموزان ) ميباشد . اين زبان دركالج Dartmouth بين سالهاي 1963 و 1964 توسط پروقسور John Kemeny و Thomas Kurts به عنوان يك زبان آموزشي ايجادگشت .علت اصلي ايجاد اين زبان را مي توان در پيچيدگي هاي زبان هاي متداول از قبيل Fortran و Assembly وغيره جستجو كرد .
QBASIC مفسر بيسيكي است كه به همراه سيستم عامل MS-DOS نگارش 5 و بالاتر ارائه گرديد. شركت مايكروسافت توليد كننده QBASIC ، با تكميل اين محصول ، نگارش هاي ديگري از بيسيك را روانه بازار كرده است كه نمونه ديگري از آنها Quick Basic مي باشد .
Quick Basic : نرم افزاري است كه فايل هاي بيسيك را به فايل هاي قابل اجرا در محيط سيستم عامل تبديل مي كند .
دستورات QBASIC :
CLS : اين دستور زماني بكار مي رود كه نياز باشد صفحه نمايش پاك گردد . معمولا در ابتداي هر برنامه نوشته مي شود .

LET : براي انجام كارهاي جايگزيني و محاسباتي

MOD : باقیمانده تقسیم بصورت 10 mod 2 جواب صفر است
\ ( Back Slash ) علامت کسر وارونه : تقسیم جزء صحیح بصورت 10 \ 3 که جواب 3 می شود
GOTO n:برو به خط n در اول خطی که قرار است دستور از آنجا اجرا شود عدد دلخواه n را مینویسیم
سالک: در این تاپیک یک سری برنامه ریاضی هم هست که نقل نشد.

=========================
● دستور DATA , READ , RESTORE
گاهی اوقات بهتراست به جای گرفتن یکی،یکی داده ها از طریق صفحه کلید ؛ آنها را در دستوری معرفی کنیم.
حتما کار خسته کننده وارد کردن یکی،یکی اعداد در بعضی از برنامه ها کلافه تان کرده بخصوص هنگامی که گرفتن اعداد زیاد باشد . برای این منظور و همچنین پنهان کردن مطالبی از دید کاربر ؛ می توان داده ها را در دستور DATA قرار داده سپس به کمک دستور READ آنها را یکی،یکی در موارد مورد لزوم فرا خواند.(دستور RESTORE برای برگشت به اولین داده است ویابهتر بگیم این دستور ؛دستور READ را مجبور می کند که داده ها را از اول شروع به خواندن کند.)
مثال : چاپ مجموع 5 عدد ورودی
روش حل متداول
کد:

CLS
SUM = 0
FOR I=1 TO 5
INPUT a
SUM = SUM + a
NEXT I
PRINT SUM
END
حل به کمک دستور DATA , READ
کد:

CLS
SUM = 0
DATA 210 , 20 , 70 , 50 , 150
FOR I=1 TO 5
READ a
SUM = SUM + a
NEXT I
PRINT SUM
END
=====================
● دستور WHILE - WEND
کد:

CLS
I = 2
WHILE I < 20
PRINT I ;
I = I + 2
WEND
END
===================
دستور SWAP

براي جابجائي مقدار دو متغير با هم دستور SWAP رابه شكل متغير 2 . متغير 1 SWAP استفاده مي كنيم .
حال اگر در مثال بالا در شرط به جاي علامت بزرگتر (> ) در عمل مقايسه از علامت (<) استفاده شود ، مرتب سازي نزولي خواهد بود .
برنامه اي بنويسيد كه 5 نام را از ورودي دريافت كرده درون يك آرايه ذخيره كند . آن گاه با دريافت يك نام از ورودي مشخص كند كه نام ورودي در آرايه موجود است يا خير ؟
کد:

CLS
DIM name$(5)
For I = 1 To 5
INPUT name$(I)
NEXT I
FOR I = 1 To 4
SORTED$ = “ Yes “
FOR J = 1 To 5 – I
IF name$(J) > name$(j – 1)) THEN
SWAP name$(J) , name$(J +1)
SORTED$ = “ No “
END IF
NEXT J
IF SORTED$ = “ Yes “ THEN
I = 4
END IF
NEXT I
FOR I = 1 To 5
Low = 1
High = 5
WHILE ( Low < = High )
MIDDLE = INT(( Low + High ) / 2)
IF ( KEY$ > name$ ( MIDDLE )) THEN
Low = MIDDLE – 1
ELSEIF (KEY$ < name$ ( MIDDLE )) THEN
High = MIDDLE – 1
ELSE
PRINT MIDDLE
END
END IF
WEND
PRINT “ Not Found “
END
________________

TAHA
11-11-2009, 06:25 PM
کد:

' A program to draw boxes all over the screen
' This is a comment, QBASIC will ignore it
SCREEN 12
CLS
' Draw 50 boxes
FOR I = 1 TO 50
' Pick the location of the box
X1 = INT(RND * 640)
Y1 = INT(RND * 480)
X2 = INT(RND * 640)
Y2 = INT(RND * 480)
' Pick the color for the box
Color1 = INT(RND * 16)
' Draw the box
LINE (X1, Y1) - (X2, Y2), Color1, BF
NEXT I
در کد بالا با قرار دادن کوتیشن کامنت نوشته ایم. کامنت نوشته هایی برای راهنمایی خود و دیگران است و اجرا نمی شود. کامنت خیلی مهم است.

TAHA
11-11-2009, 06:25 PM
کد:

CONST Pi = 3.141593
INPUT "Enter the radius of a circle: ", Radius
PRINT "The circumference is:"; 2 * Pi * Radius
PRINT "The area is:"; Pi * Radius * Radius
مقدار ثابت یا کنستانت همان متغیر است ولی قابل تغییر نیست. استفاده از کنستانت ها مفید است.

TAHA
11-11-2009, 06:26 PM
بيسيک چيست ؟

************************************************** ***************************

با توجه به گستردگی روزافزون علم کامپیوتر در تمام ابعاد زندگی انسان و نیاز به یادگیری این علم نوین و از آنجایی که زبان QBASIC ( نسخه جدید تر BASIC) زبانی ساده و در عین حال قدرتمند برای آموزش مفاهیم برنامه نویسی است ، در این وبلاگ اقدام به آموزش قدم به قدم این زبان کرده ام . امید است مورد استفاده دوستان عزیز قرار گیرد .

************************************************** ***************************

در این یادداشت ، می توانید با تاریخچه و خانواده BASIC آشنا شوید . در یادداشت های بعدی اصول برنامه نویسی QBASIC را شروع خواهم کرد .



بیسیک را می توان متداولترین زبان برنامه نویسی کامپیوتر در چند دهه اخیر به حساب آورد . عموما این زبان اولین زبانی است که کارآموزان ، دانش آموزان و دانشجویان با آن آشنا می شوند و برنامه نویسان با ذوق ، زبان فوق را به علت سهولت استفاده و قابلیت های مناسب آن دوست دارند . کلمه BASIC مخفف عبارت Beginner’s All-purpose Symbolic Instruction Code به معنای "کد حاوی دستورات نمادین همه منظوره مخصوص نوآموزان" می باشد . نسخه ی اصلی آن در کالج دارتموث (Dartmouth) در سال 1964 برای نوآموزان به عنوان یک زبان آموزشی ایجاد گشت . علت اصلی ایجاد این زبان را می توان در پیچیدگی های زبان های متداول از قبیل Fortran ، Assembly و غیره جستجو کرد.



برنامه نویسی ساخت یافته :

همزمان با آمدن زبان هایی که دارای ساختارهای کنترلی کاربردی (مانند C و پاسکال) بودند و امکان طراحی زیباتر ، دقیق تر و مناسبتر برنامه ها را به برنامه نویسان دادند نیاز به نسخه اول BASIC کم شده و نسخه های جدیدی از آن مانند QBASIC برای رفع کمبودهای نسخه اول به بازار عرضه شد که ضمن حفظ سادگی بیسیک ، قابلیت برنامه نویسی ساخت یافته را نیز به آن افزودند . برنامه نویسی ساخت یافته روشی از برنامه نویسی است که در آن برنامه را به قطعات کوچکتر تقسیم بندی می کنند و هر قطعه کار مشخصی را انجام می دهد . همچنین در این روش اجرای برنامه و کنترل ترتیب اجرای دستورالعمل ها با استفاده از کلمات و سمبل های جدید آسان تر شده است . اصلی ترین مزیت برنامه نویسی ساخت یافته را می توان در سادگی امکان توسعه و نکهداری برنامه ها دانست . برنامه هایی که با زبانهای غیر ساخت یافته نوشته می شدند ، به سادگی قابل تغییر نبودند و گاهی فراتر رفتن میزان تغییرات از حد مشخصی ، نیاز به بازنویسی کامل برنامه را ایجاب می کرد . در نتیجه برنامه نویسی ساخت یافته ، راه حل این مشکل بود .



مفسر و مترجم :

پس از آن که برنامه ای در محیط زبان برنامه نویسی نوشته شد ، باید توسط کامپیوتر اجرا شود . در دنیای زبان های برنامه نویسی دو روش مختلف برای اجرای برنامه ها وجود دارد :

روش اول : مفسر (Interpreter) که برنامه ها را در زمان اجرا خط به خط به کدهای ماشین (صفر و یک) تبدیل می کند .

روش دوم : مترجم (Compiler) که کل برنامه را یکجا به کدهای ماشین تبدیل می کنند . مترجم ها معمولا فایل هایی با پسوند EXE یا COM ایجاد می کنند که این فایل ها قابلیت اجرا در محیط سیستم عامل را دارند و نیازی به خود زبان برنامه نویسی در هنگام اجرا ندارند ، در حالی که برای اجرای برنامه ای که با زبان های دارای مفسر نوشته شده است ، نیاز به وجود فایل های زبان برنامه نویسی نیز می باشد .

بیسیک نیز جزو زبان های تفسیری محسوب می شود . زبان های تفسیری علی رغم سادگی در پیاده سازی زبان چند اشکال مهم دارند :

کندی اجرای برنامه ها در مقایسه با زبان های مترجم دار

نیاز به تفسیر هر دستور حتی اگر در یک حلقه آن دستور را هزاران بار داشته باشیم .



QBASIC علاوه بر آنکه مفسر است ، با بهینه سازی هایی که در آن صورت گرفته ، کل برنامه را یکجا تفسیر می کند . یعنی دارای کامپایلر نیز می باشد و این امر تا حد زیادی کارایی آن را بالا برده است .



QBASIC مفسر بیسیکی است که به همراه MS-DOS نسخه 5 و بالاتر ارائه می گردد . شرکت مایکروسافت تولید کننده QBASIC با تکمیل این محصول ، نسخه های دیگری از بیسیک را روانه بازار کرده است که عبارتند از :

Quick BASIC و BASIC PDS و VISUAL BASIC .

TAHA
11-11-2009, 06:26 PM
لسه دوم

در اين يادداشت مي خواهم به معرفي انواع داده ها بپردازم. در Qbasic لزومي براي معرفي داده ها وجود ندارد ولي بهتر است در ابتداي برنامه آنها را معرفي كنيم .

انواع داده ها :

داده ها به طور كلي به دو نوع ثابت و متغير تقسيم مي شوند كه هركدام داراي دو دسته عددي و رشته اي هستند .

*داده ثابت :

داده اي كه در طول برنامه مقدار آن تغيير نمي كند . براي معرفي اين نوع داده از دستور CONST استفاده مي كنيم

مثال :

CONST pi=3.14

*داده متغير:

داده اي است كه مي تواند بر حسب منطق برنامه و در جايگاه هاي مختلف مقادير متفاوتي بپذيرد كه همانطور كه گفتم دو نوع دارد : متغير عددي و متغير رشته اي .

*متغير عددي :


متغير های عددی دارای ۴ نوع مختلف هستند :



نام
مخفف
حافظه اشغال كننده


علامت
نوع

عدد صحيح معمولی


INT
2 BYTE
%
INTEGER

عدد صحيح بلند


LNG
4 BYTE
&
LONG

عدد اعشاري با دقت معمولی


SNG
4 BYTE
!
SINGLE

عدد اعشاري با دقت مضاعف


DBL
8 BYTE
#
DOUBLE


اگر بخواهيم محاسبات برنامه با دقت بالايي انجام شود ، بايد متغيرها را از نوع مناسب (مثلا اعشاري با دقت مضاعف) در ابتداي برنامه به وسيله دستور DIM تعريف كنيم .

مثال : براي اين كه متغير A از نوع اعشاري با دقت معمولي باشد ، در ابتداي برنامه اين دستور را مي نويسيم :

DIM A AS SINGLE

راه دوم اين است که هرجا نياز به استفاده از A بود ، آن را به صورت A! به كار مي بريم .

*متغيرهاي رشته اي

همان طور كه از نام اين متغير مشخص است،براي نگهداري رشته اي از حروف به كار مي رود و دو نوع دارد :


نام


مخفف
علامت
نوع

متغير رشته اي با طول متغير


STR
$
STRING

متغير رشته اي با طول ثابت


STR
$
STRING*N%




فرض كنيد مي خواهيم متغير رشته اي به نام name و متغير رشته اي با طول 10 كاراكتر به نام family تعريف كنيم . مانند متغيرهاي عددي از دستور ِDIM استفاده مي كنيم :

DIM name AS STRING

DIM family AS STRING*10

حتما متوجه شده ايد كه N تعداد حروف متغير را بيان مي كند و طبيعتا از نوع % يعني عدد صحيح معمولي است .

اگر بدون معرفي متغير رشته اي را در برنامه استفاده كنيم ، Qbasic به طور خودكار آن را مساوي " " يعني يك رشته خالي قرار مي دهد و اگر متغير از نوع عددي باشد ، Qbasic به طور پيش فرض آن را مساوي صفر قرار مي دهد.

lonak_2006
12-23-2010, 12:44 AM
سلام . من می خواستم بفرمایید چگونه می توانم در qbasic7 یک دایره بکشم ؟
لطفا اگر مطالبی درباره آموزش Qbasic دارید ارائه نمایید چون این آدرس که گذاشته اید من نتوانستم دانلود کنم
با تشکر فراوان

Borna66
04-19-2011, 11:58 PM
سلام . من می خواستم بفرمایید چگونه می توانم در qbasic7 یک دایره بکشم ؟
لطفا اگر مطالبی درباره آموزش Qbasic دارید ارائه نمایید چون این آدرس که گذاشته اید من نتوانستم دانلود کنم
با تشکر فراوان

با سلام
دوست گرامی مشکل دانلود کتاب آموزش در ادرس زیر رفع شد و الان می تونید ازش استقاده کنید
کتاب آموزشي زبان برنامه نویسی مقدماتی qbasic (http://pnu-club.com/pnu.thread17779.html)

در مورد سوال دونمتون هم بطور کامل در ادرس زیر توضیح داده شده است

گرافیک با qbasic (http://pnu-club.com/pnu.thread20310.html)



موفق باشید

روزگار خوش