X
تبلیغات
نماشا
رایتل

قرآن در کامپیوتر

دانلود نرم افزار های قرآنی یه صورت رایگان

چند برنامه ی ساده ی بیسیک

چند برنامه ی ساده ی بیسیک
مثال 1 : برنامه ای بنویسید که اعداد یک تا ده را چاپ کند سپس مقابل هریک ریشه چهارم آن را نمایش دهد .

CLS
FOR i = 1 TO 10
 ( ( PRINT i ; "                    " ; SQR ( SQR( i      
NEXT i
END

توضیح : به منظور ایجاد فاصله بین عدد و ریشه چهارمش از یک رشته خالی به طول 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
 

تاریخ ارسال: سه‌شنبه 16 مرداد‌ماه سال 1386 ساعت 06:54 ب.ظ | نویسنده: مهندس | چاپ مطلب 1 نظر