Transcript (2>3) and

Slide 1

‫مدرسه استعدادهای درخشان شهید بهشتی‬

‫مدرس‪:‬‬

‫پاییز ‪93‬‬


Slide 2

‫نحوه نامگذاری متغیرها‪:‬‬
‫برای متغیرها باید یک نام صحیح‪ ،‬با‬
‫معنا و غیرتکراری انتخاب کرد‪.‬‬
‫‪ -1‬استفاده از حروف الفبا‪ ،‬اعداد و‬
‫کاراکتر زیرخط مجاز است‪.‬‬
‫‪ -2‬نام متغیر نمی تواند با عدد شروع‬
‫شود‪.‬‬
‫‪ -3‬نام متغیر نمی تواند از کلمات‬
‫رزروشده باشد‪.‬‬
‫‪ -4‬استفاده از عالمت فاصله و خط تیره‬
‫در نام متغیر مجاز نیست‪.‬‬


Slide 3

‫آپدیت متغیرها‪:‬‬

‫آپدیت متغیر یعنی تغییردادن مقدار قبلی متغیر ‪ .‬یعنی به مقدار قبلی متغیر مقداری اضافه‬
‫شود یا از مقدار قبلی مقداری کم شود‪.‬‬
‫مقدار‬
‫قبلی‬

‫مثال‪:‬‬
‫‪x=x+1‬‬
‫‪a=a‬‬‫‪2‬‬

‫مقدار‬
‫جدید‬


Slide 4

‫ متغیرهای مجاز و غیرمجاز را تعیین کنید؟‬:‫سوال‬
‫متغیر‬

‫متغیر‬

a

3a

test

Test-3

sum

Test_3

ave

a+b

max

tv 3

min

if

for

tabassom

Abcdefghijk

samad


Slide 5

‫شبه‬

‫کد‪ :‬بیان الگوریتم با استفاده از عالئم ریاض ی‬

‫عملگر‬

‫^‬
‫‪+‬‬
‫‬‫*‬
‫‪/‬‬
‫‪mod‬‬
‫\‬

‫عملگرهای مهم‬
‫ریاضی‪:‬‬
‫عملکرد‬

‫مثال‬

‫توان رسانی‬

‫‪3^2=9‬‬

‫جمع دو عدد‬

‫‪3+2=5‬‬

‫تفریق دو عدد‬

‫‪3-2=1‬‬

‫ضرب دو عدد‬

‫‪3*2=6‬‬

‫تقسیم اعشاری دو عدد‬

‫‪3/2=1.5‬‬

‫تعیین باقیمانده تقسیم‬

‫‪3 mod 2=1‬‬

‫تعیین خارج قسمت صحیح‬
‫تقسیم‬

‫‪3\2=1‬‬


Slide 6

‫عملگرهای مقایسه‪:‬‬
‫این عملگرهای برای ارزیابی نتیجه یک عبارت شرطی به کار می روند‪.‬‬
‫مثال‬

‫عملگر‬

‫عملکرد‬

‫<‬

‫کوچکتر‬

‫‪10<19‬‬

‫>‬

‫بزرگتر‬

‫‪23>13‬‬

‫=‬

‫مساوی‬

‫‪4=4‬‬

‫=<‬

‫کوچکترمساوی‬

‫‪12<=12‬‬

‫=>‬

‫بزرگترمساوی‬

‫‪16>=16‬‬

‫><‬

‫مخالف(نامساوی)‬

‫‪3<>4‬‬


Slide 7

‫عملگرهای منطقی‪:‬‬
‫این عملگرها برای ارزیابی نتیجه دو یا چند عبارت شرطی استفاده می شوند‪.‬‬
‫عملگر‬
‫‪and‬‬

‫عملکرد‬
‫و منطقی‬

‫مثال‬

‫نتیجه‬

‫)‪(2>3) and (5>2‬‬

‫‪false‬‬

‫)‪(2>3) or (5>2‬‬

‫‪true‬‬
‫‪true‬‬

‫‪or‬‬

‫یای منطقی‬

‫‪xor‬‬

‫یای‬
‫انحصاری‬

‫)‪(2>3) xor (5>2‬‬

‫‪Eqv‬‬

‫هم ارزی‬

‫)‪(2>3) eqv (5>2‬‬

‫‪false‬‬

‫‪not‬‬

‫نقیض‬

‫)‪Not(2<3‬‬

‫‪false‬‬


Slide 8

‫سوال‪ :‬عبارت ریاض ی مقابل را به زبان بیسیک بنویسید‪.‬‬
‫𝑿‪𝟏+‬‬
‫𝟏‬
‫𝟏‪𝑿+𝒀+‬‬
‫‪+ 𝑿𝟑 −‬‬
‫‪+‬‬
‫𝒀‪𝑿−‬‬
‫𝑿‪𝟏−‬‬
‫𝒀𝑿‬

‫=𝑲‬

‫جواب‬
‫‪:‬‬

‫)‪K=(1+X)/(X-Y)+X^3-1/(1-X)+(X+Y+1)/(X*Y‬‬


Slide 9

‫فلوچارت‪:‬‬

‫بیان الگوریتم با استفاده از‬
‫اشکال هندسی‬

‫مولفه های رسم‬
‫فلوچارت‪:‬‬


Slide 10

‫توالعمل شرطی‪:‬‬
‫اگر‬

‫عبارت شرطی‬

‫آنگاه‬

‫دستورالعمل‪1‬‬

‫در غیر اینصورت دستورالعمل‪2‬‬
‫عبارت شرطی‪:‬‬

‫به عبارتی گفته می شود که نتیجه آن‬
‫یکی از دو مقدار ‪ True‬یا ‪False‬‬
‫می باشد‪.‬‬


Slide 11

‫برنامه ای بنویسید که دو عدد از ورودی بخواند و‬
‫مقدار ماکزیمم را در خروجی چاپ کند‪.‬‬


Slide 12

:1 ‫نمونه‬
‫برنامه ای بنویسید که سه عدد از ورودی بگیرد‬
‫و معین کند آیا این اعداد می توانند اضالع یک‬
‫مثلث باشند یا نه؟‬
Cls
Input “enter a:” , a
Input “enter b:” , b
Input “enter c:” , c
If (a+b)>c and (a+c)>b and (b+c)>a then
Print “yes is”
Else
Print “No is’nt”
End if


Slide 13

‫نمونه‪: 2‬‬
‫برنامه ای بنویسید که حقوق یک کارمند را دریافت کند‬
‫و با توجه به شرایط زیر مقدار دریافتی کارمند را‬
‫محاسبه کرده و چاپ کند‪.‬‬
‫الف‪-‬میزان حقوق کمتر از ‪ 1000000‬تومان باشد معاف از‬
‫مالیات خواهد بود‪.‬‬
‫ب‪-‬اگر میزان حقوق بین ‪ 1000000‬تا ‪ 2000000‬تومان باشد‬
‫‪ 10‬درصد مازاد بر یک میلیون تومان مالیات کسر شود‪.‬‬
‫‪Cls‬‬
‫تومان‬
‫ج‪-‬اگر میزان حقوق کارمند بیش از دو میلیون‬
‫”‪“enter salary:‬‬
‫باشد مازاد بر دو میلیون تومان ‪S‬‬
‫‪Input‬کسر‬
‫مالیات‬
‫‪ ,20‬درصد‬
‫‪Tax=0‬‬
‫شود‪.‬‬
‫‪If S<=1000000 then Tax=0‬‬
‫)‪If S>1000000 and S<=2000000 then Tax=0.1*(S-1000000‬‬
‫)‪If S>2000000 then Tax=0.1*(S-1000000)+0.2*(S-2000000‬‬
‫‪D=S-Tax‬‬
‫‪Print “Dariaft Karmand is:” ; D‬‬


Slide 14

: Select case ‫دستور‬
if ‫در مواقعی که تعداد انتخاب ها بیش از سه مورد باشد می توان ازاین دستور به جای‬
.‫استفاده می شود‬
Select case Varname
Case value1:
Statement1
Case value2:
Statement2
.
.
.
Case valuen:
Statementn
Case else
Other statement
End select

select ‫شکل کلی دستور‬
case


Slide 15

.‫برنامه ای بنویسید یک عدد از ورودی بخواند و نام روز هفته را بنویسد‬
Cls
Input num
Select case num
Case 1:
Print “shanbeh”
Case 2:
Print “yek shanbeh”
Case 3:
Print “do shanbeh”
Case 4:
Print “se shanbeh”
Case 5:
Print “chehar shanbeh”
Case 6:
Print “jomeh”
Case else
Print “invalid number”
End select


Slide 16

‫تمرین‪ :‬برنامه ای بنویسید یک عدد دلخواه از ورودی بخواند و شرایط زیر را تعیین کند‪.‬‬
‫الف‪-‬آیا عدد یک رقمی است؟‬
‫ب‪-‬آیا عدد دو رقمی است؟‬
‫ج‪-‬آیا عدد سه رقمی است؟‬
‫‪Cls‬‬
‫د‪-‬آیا عدد بیش از سه رقم دارد؟‬
‫‪Input n‬‬
‫‪Select case n‬‬
‫‪Case 0 to 9:‬‬
‫”‪Print “One digit‬‬
‫‪Case 10 to 99:‬‬
‫”‪Print “Two digit‬‬
‫‪Case 100 to 999:‬‬
‫”‪Print “Three digit‬‬
‫‪Case else‬‬
‫”‪Print “>3 digit‬‬
‫‪End select‬‬


Slide 17

‫تابع ‪ : rnd‬تولید اعداد تصادفی بین ‪ 0‬و ‪1‬‬

‫‪0
‫‪-1‬تولید یک عدد تصادفی بین ‪0, a‬‬
‫‪=a*rnd‬متغیر‬

‫‪-2‬تولید یک عدد صحیح تصادفی‬

‫بین ‪: 0, a‬‬
‫)‪=int(a*rnd‬متغیر‬

‫‪-3‬تولید یک عدد تصادفی بین ‪( a, b‬با شرط ‪)a‫‪=(b-a+1)*rnd+a‬متغیر‬
‫‪-4‬تولید یک عدد صحیح تصادفی بین ‪: a, b‬‬
‫‪=int((b-a+1)*rnd)+a‬متغیر‬


Slide 18

‫نمونه‪ :1‬برنامه ای بنویسید که با هر بار اجرا یک عدد صحیح تصادفی بین ‪ 10‬و ‪ 100‬تولید کند‪.‬‬

‫‪Cls‬‬
‫‪Randomize timer‬‬
‫‪Print int(91*rnd)+10‬‬
‫نمونه‪ :2‬برنامه ای بنویسید که با هر بار اجرا یک عدد‬
‫صحیح تصادفی چهار رقمی تولید کند‪.‬‬

‫‪Cls‬‬
‫‪Randomize timer‬‬
‫‪Print int(9000*rnd)+1000‬‬


Slide 19

‫سوال‪ :‬برنامه ای بنویسید که با هر بار اجرا ‪ 10‬عدد صحیح تصادفی بین دو عدد دلخواه تولید کند‪.‬‬
‫‪Cls‬‬
‫‪Input a,b‬‬
‫‪Randomize timer‬‬

‫‪For i=1 to 10‬‬
‫‪Print int((b-a+1)*rnd)+a‬‬
‫‪Next i‬‬


Slide 20

‫دستورالعمل حلقه‪:‬‬
‫از این دستورالعمل برای تکرار مجموعه ای از دستورالعملها به دفعات معین یا نا معین‬
‫دستورالعملها به دفعات معین یا نا معین استفاده می شود‪.‬‬

‫دستورات حلقه معین‪:‬‬

‫‪For-next‬‬

‫دستورات حقله نامعین‪:‬‬

‫‪while-wend, do while-loop, do until-loop‬‬


Slide 21

‫شکل کلی دستور ‪For-next‬‬


Slide 22


Slide 23


Slide 24

‫تمرین‪:‬‬
‫‪ -1‬برنامه ای بنویسید که ‪ 10‬عدد از ورودی بخواند و تعداد اعداد فرد و منفی را شمرده و چاپ کند‪.‬‬
‫‪-2‬برنامه ای بنویسید که یک عدد از ورودی بخواند و معین کند عدد تام است یا نه؟‬

‫(هر عددی که با مجموع مقسوم علیه های کمتر از خودش برابر باشد عدد تام می گویند‪ .‬مثل عدد ‪ 6‬تام است)‬


Slide 25

‫سوال‪ :1‬برنامه ای بنویسید خروجی زیر را تولید کند‪.‬‬

‫‪Cls‬‬
‫‪For i=1 to 5‬‬
‫‪for j=1 to i‬‬
‫;‪Print j‬‬
‫‪next j‬‬
‫‪Print‬‬
‫‪Next i‬‬

‫حلقه‬
‫داخلی‬

‫حلقه‬
‫بیرونی‬

‫‪2‬‬
‫‪2 3‬‬
‫‪2 3 4‬‬
‫‪2 3 4 5‬‬
‫حلقه های تو‬
‫در تو‬

‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬


Slide 26

.‫ برنامه ای بنویسید خروجی زیر را تولید کند‬:2‫سوال‬
1
2
3
4
5

2
3 3
4 4 4
5 5 5 5

Cls
For i=1 to 5
for j=1 to i
Print i;
next j
Print
Next i


Slide 27

5
4
3
2
1

4 3 2 1
3 2 1
2 1
1

.‫ برنامه ای بنویسید خروجی زیر را تولید کند‬:3‫سوال‬
Cls
For i=5 to 1 step -1
for j=i to 1 step -1
Print j;
next j
Print
Next i


Slide 28

‫تمرین در منزل‬
‫‪-1‬برنامه بنویسید که چند عدد طبیعی از ورودی دریافت کند و ماکزیمم آن اعداد را محاسبه و چاپ کند‪.‬‬
‫‪-2‬برنامه ای بنویسید که یک عدد طبیعی از ورودی دریافت کند و مقلوب آن عدد را محاسبه و نمایش دهد‪.‬‬
‫‪-3‬برنامه بنویسید که یک عدد طبیعی از ورودی بگیرد و مجموع ارقام آن عدد را محاسبه و چاپ کند‪.‬‬

‫‪-4‬برنامه بنویسید که تعدادی عدد دلخواه از ورودی بخواند و معین کند چندتا مضرب ‪ 2‬و چندتا مضرب ‪ 3‬و‬
‫مضرب ‪ 5‬می باشند؟ دریافت برنامه تا زمانی ادامه یابد که کاربر عدد ‪ -1‬وارد کند‪.‬‬

‫چند تا‬


Slide 29

‫تمرین‪:‬‬
‫برنامه ای بنویسید که 𝑿 را بگیرد و حاصل عبارت زیر را تا ‪ 10‬جمله اول آن حساب کند‪.‬‬

‫‪𝑋2 𝑋3 𝑋4‬‬
‫‪𝑋−‬‬
‫‪+‬‬
‫‪−‬‬
‫⋯‪+‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬


Slide 30

‫حلقه نامعین‪:‬‬
‫حلقه نامعین‪ ،‬حلقه ای است که تعداد دفعات تکرار‬
‫از قبل معلوم نیست‪.‬‬

‫حلقه نامعین ‪:while- wend‬‬
‫دستور حلقه ‪:while‬‬

‫عبارت شرطی ‪While‬‬
‫‪….‬‬
‫‪….‬‬
‫‪….‬‬
‫‪….‬‬
‫‪Wend‬‬

‫توجه‪ :‬ابتدا عبارت شرطی مقابل ‪ while‬بررسی‬
‫می شود تا زمانیکه نتیجه شرط درست(‪ )True‬باشد‬
‫مجموعه دستورات حلقه تکرار خواهدشد‪.‬‬


Slide 31

‫فلوچارت دستور حلقه‬
‫‪while-wend‬‬


Slide 32

‫نمونه‪:1‬‬

‫برنامه بنویسید که تعدادی عدد از ورودی بگیرد و مجموع اعداد وارد شده را محاسبه کند‪.‬‬
‫شرط خاتمه برنامه وارد کردن عدد صفر است‪.‬‬
‫‪output‬‬

‫‪S=S+X‬‬

‫‪X‬‬

‫‪57‬‬

‫‪12‬‬

‫‪12‬‬

‫‪2‬‬

‫‪-10‬‬

‫‪32‬‬

‫‪30‬‬

‫‪57‬‬

‫‪25‬‬
‫‪0‬‬

‫‪Cls‬‬
‫‪Input “enter a number:”,X‬‬
‫‪Let S=0‬‬
‫‪While X<>0‬‬
‫‪S=S+X‬‬
‫‪Input “enter a number:”,X‬‬
‫‪Wend‬‬
‫‪Print “sum of numbers :”;S‬‬


Slide 33

‫نمونه‪:2‬‬

‫برنامه بنویسید که دو عدد از ورودی بخواند و کوچکترین مضرب مشترک آندو عدد را‬
‫محاسبه و چاپ کند‪.‬‬

‫‪Kmm‬‬

‫‪Bmm‬‬

‫‪90‬‬

‫‪6‬‬

‫‪m‬‬

‫‪r‬‬

‫‪b‬‬

‫‪a‬‬

‫‪540‬‬

‫‪12‬‬

‫‪18‬‬

‫‪30‬‬

‫‪6‬‬

‫‪12‬‬

‫‪18‬‬

‫‪0‬‬

‫‪6‬‬

‫‪12‬‬

‫امتحان برنامه‬

‫‪Cls‬‬
‫‪Input a,b‬‬
‫‪Let m=a*b‬‬
‫‪While b>0‬‬
‫‪r=a mod b‬‬
‫‪a=b‬‬
‫‪b=r‬‬
‫‪Wend‬‬
‫‪Bmm=a‬‬
‫‪Kmm=m/Bmm‬‬
‫‪Print “Kmm is:”; Kmm‬‬


Slide 34

‫نمونه‪:2‬‬
‫می خواهیم مبلغ ‪ 50‬ریال را با سکه های ‪ 2‬و ‪ 5‬و ‪ 10‬ریالی خرد کنیم‪ .‬برنامه ای بنویسید که‬
‫تعداد حالتهای ممکن را محاسبه و نمایش دهد‪.‬‬
‫‪Cls‬‬
‫‪S=0‬‬
‫‪For i=1 to 25‬‬
‫‪for j=1 to 10‬‬
‫‪for k=1 to 5‬‬
‫‪if i*2+j*5+k*10=50 then S=S+1‬‬
‫‪next k‬‬
‫‪next j‬‬
‫‪Next I‬‬
‫‪Print S‬‬
‫دستور‬

‫‪‬‬

‫حلقه‬


Slide 35

i

j

k

i*2+j*5+k*10=50

S

1

1

1

no

0

1

1

2

no

0

1

1

3

no

0

1

1

4

no

0

1

1

5

no

0

1

2

1

no

0

1

2

2

no

0

.

.

.

.

.

.

.

.

.

.

5

2

3

yes

1

5

4

2

yes

2

5

6

1

yes

3

10

2

2

yes

4

.

.

.

.

.

output


Slide 36

‫سوال‪:‬‬
‫برنامه ای بنویسید که تمام اعداد سه رقمی را که می توان با ارقام ‪ 1‬تا ‪5‬‬
‫نوشت‪ ،‬بنویسید‪.‬‬
‫‪Cls‬‬
‫‪For i=1 to 5‬‬
‫‪for j=1 to 5‬‬
‫‪for k=1 to 5‬‬
‫; ‪print i+j*10+k*100‬‬
‫‪next k‬‬
‫‪next j‬‬
‫‪Next i‬‬


Slide 37

‫دستور حلقه ‪ :do while-loop‬مشابه دستور ‪ while-wend‬است‪.‬‬
‫دستور حلقه ‪:do while‬‬

‫عبارت شرطی ‪Do While‬‬
‫‪….‬‬
‫‪….‬‬
‫‪….‬‬
‫‪….‬‬
‫‪loop‬‬

‫توجه‪ :‬ابتدا عبارت شرطی مقابل ‪ do while‬بررسی‬
‫می شود تا زمانیکه نتیجه شرط درست(‪ )True‬باشد‬
‫مجموعه دستورات حلقه تکرار خواهدشد‪.‬‬


Slide 38

‫نمونه ‪:1‬‬
‫برنامه ای بنویسید که دو عدد از ورودی بخواند و‬
‫کوچکترین مضرب مشترک آن دو عدد را محاسبه و چاپ‬
‫کند‪.‬‬
‫‪Cls‬‬
‫‪Input “enter a:”,a‬‬
‫‪Input “enter b:”,b‬‬
‫‪Let m=a*b‬‬
‫‪Do while b>0‬‬
‫‪r=a mod b‬‬
‫‪a=b‬‬
‫‪b=r‬‬
‫‪Loop‬‬
‫‪Kmm=m/a‬‬
‫‪Print “Kmm is:”;Kmm‬‬


Slide 39

‫نمون‪:3‬‬

‫برنامه ای بنویسید که یک عدد در مبنای ‪ 2‬از ورودی بخواند و مقدار آن را در مبنای ‪10‬‬
‫محاسبه و نمایش دهد‪.‬‬

‫‪Output‬‬

‫‪S‬‬

‫‪r*2^i‬‬

‫‪r‬‬

‫‪i‬‬

‫‪n‬‬

‫‪28‬‬

‫‪0‬‬

‫‪0‬‬

‫‪0‬‬

‫‪0‬‬

‫‪11100‬‬

‫‪0‬‬

‫‪0‬‬

‫‪0‬‬

‫‪1‬‬

‫‪1110‬‬

‫‪4‬‬

‫‪4‬‬

‫‪1‬‬

‫‪2‬‬

‫‪111‬‬

‫‪12‬‬

‫‪8‬‬

‫‪1‬‬

‫‪3‬‬

‫‪11‬‬

‫‪28‬‬

‫‪16‬‬

‫‪1‬‬

‫‪4‬‬

‫‪1‬‬

‫توقف‬
‫حلقه‬

‫امتحان برنامه‬

‫‪0‬‬

‫‪Cls‬‬
‫‪Input n‬‬
‫‪S=0‬‬
‫‪i=0‬‬
‫‪while n>0‬‬
‫‪r=n mod 2‬‬
‫‪S=S + r * 2 ^ i‬‬
‫‪i=i+1‬‬
‫‪n=n\10‬‬
‫‪Wend‬‬
‫‪Print S‬‬


Slide 40

‫نمونه‪:2‬‬
‫یک عدد از ورودی بخواند و مقلوب آن عدد را محاسبه کرده و چاپ کند‪.‬‬
‫‪Output‬‬
‫‪5432‬‬

‫‪S‬‬

‫‪n‬‬

‫‪r‬‬
‫‪5‬‬

‫‪5‬‬

‫‪2345‬‬

‫‪54‬‬

‫‪4‬‬

‫‪234‬‬

‫‪543‬‬

‫‪3‬‬

‫‪23‬‬

‫‪5432‬‬

‫‪2‬‬

‫‪2‬‬
‫‪0‬‬

‫امتحان برنامه‬

‫‪Cls‬‬
‫‪Input n‬‬
‫‪S=0‬‬
‫‪While n>0‬‬
‫‪r=n mod 10‬‬
‫‪S=S*10+r‬‬
‫‪n=n\10‬‬
‫‪Wend‬‬
‫‪Print S‬‬


Slide 41

‫سوال‪ :‬آیا می توان دستور‪ For-next‬را با دستور ‪ while-wend‬و یا دستور ‪ do while-loop‬پیاده‬
‫سازی کرد؟‬

‫نمونه‪:1‬‬
‫برنامه ای بنویسید ‪ 10‬عدد از ورودی بخواند و میانگین‬
‫اعداد وارد شده را محاسبه و چاپ کند‪.‬‬
‫با حلقه‬
‫‪while‬‬

‫‪Cls‬‬
‫‪i=1‬‬
‫‪S=0‬‬
‫‪While i<=10‬‬
‫‪Input X‬‬
‫‪S=S+X‬‬
‫‪i=i+1‬‬
‫‪Wend‬‬
‫‪Ave=S/10‬‬
‫‪Print Ave‬‬

‫با حلقه‬
‫‪For‬‬
‫‪Cls‬‬
‫‪S=0‬‬
‫‪For i=1 to 10‬‬
‫‪Input X‬‬
‫‪S=S+X‬‬
‫‪Next i‬‬
‫‪Ave=S/10‬‬
‫‪Print Ave‬‬


Slide 42

‫تمرین ویژه‪:‬‬

‫برنامه ای بنویسید یک عدد در مبنای ‪ 16‬از ورودی بخواند و آن را به مبنای ‪ 10‬تبدیل کرده و‬
‫نمایش دهد‪.‬‬
‫مثال‪:‬‬
‫‪(𝐴83)16 = 2691‬‬