ﻣﺪرس :ﻧﻮري
آﺑﺎن 88
ﺳﺎﺧﺘﺎرﻫﺎي ﻛﻨﺘﺮﻟﻲ
ﺳﺎﺧﺘﺎر ﺷﺮﻃﻲ
house
House or
Stick Figure?
stick figure
Draw a
triangle
Draw a
triangle
Draw a
circle
Draw
parallel
lines
Draw
a triangle
Draw
a baseline
ﻧﻮري: ﻣﺪرس
ﺳﺎﺧﺘﺎر ﺗﺮﺗﻴﺒﻲ
Draw
intersecting
Draw
parallel
lines
Draw
a baseline
lines
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
2
ﺳﺎﺧﺘﺎرﻫﺎي ﺗﻜﺮار
yﺳﻪ ﻧﻮع ﺳﺎﺧﺘﺎر ﺗﻜﺮار
for y
while y
repeat until y
3
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻧﻮري: ﻣﺪرس
while دﺳﺘﻮرSyntax
While boolean-expression do
Statement
While boolean-expression do
begin
Statement;
Statement
end;
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
4
Set
CountEmp
to 0
CountEmp < 4
false
while دﺳﺘﻮر
ﻣﺘﻐﻴﺮ ﻛﻨﺘﺮل ﺣﻠﻘﻪ
true
Read rate
and hours
Compute
pay
Output pay
Exit loop
ﻧﻮري: ﻣﺪرس
Increase
CountEmp
by 1
ﺷﺮط ﺗﻜﺮار ﺣﻠﻘﻪ
CountEmp := 0;
while CountEmp < 4 do
begin
Write('Hours: ');
ReadLn(Hours);
Write('Rate: ');
ReadLn(Rate);
Pay := Hours * Rate;
WriteLn('Weekly pay is', Pay);
CountEmp := CountEmp + 1
end; {while}
WriteLn('Pay for ', CountEmp,
Employees calculated');
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﺑﺪﻧﻪ ﺣﻠﻘﻪ
5
ﻧﻜﺎت دﺳﺘﻮر while
y
y
y
y
ﻗﺒﻞ از اﺟﺮاي ﺑﺪﻧﻪ ﺣﻠﻘﻪ ﺷﺮط ﺗﻜﺮار ﺣﻠﻘﻪ ﺑﺮرﺳﻲ ﻣﻲﺷﻮد.
در ﺻﻮرت ﺑﺮﻗﺮاري ﺷﺮط ،ﺑﺪﻧﻪ اﺟﺮا ﻣﻲﺷﻮد.
ﺗﺎ زﻣﺎﻧﻲ ﻛﻪ ﺷﺮط ﺑﺮﻗﺮار ﺑﺎﺷﺪ ،اﺟﺮاي ﺑﺪﻧﻪ ﺣﻠﻘﻪ ﺗﻜﺮار ﻣﻲﺷﻮد.
در ﺻﻮرﺗﻲ ﻛﻪ ﻫﻤﻮاره ﺷﺮط ﺑﺪﻧﻪ درﺳﺖ ﺑﺎﺷﺪ ،ﺣﻠﻘﻪ ﺑﻲﻧﻬﺎﻳﺖ ﺧﻮاﻫﻴﻢ
داﺷﺖ.
while true do
;Statement
while 1 = 1 do
Statement
6
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﻣﺘﻐﻴﺮﻛﻨﺘﺮل ﺣﻠﻘﻪ
yﻣﻘﺪار اﻳﻦ ﻣﺘﻐﻴﺮ اﻣﻜﺎن ﺗﻜﺮار ﺣﻠﻘﻪ را ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ.
yاﻳﻦ ﻣﺘﻐﻴﺮ ﺑﺎﻳﺪ
yﻣﻘﺪار دﻫﻲ اوﻟﻴﻪ ﺷﻮد.
y
در ﻣﺜﺎل ﻗﺒﻞ ﻣﻘﺪار اوﻟﻴﻪ 0اﺳﺖ.
yﻣﻘﺎﻳﺴﻪ ﺷﻮد.
y
در ﻣﺜﺎل ﻗﺒﻞ ﭘﻴﺶ از ﻫﺮ ﺑﺎر اﺟﺮاي ﺑﺪﻧﻪ ﻛﻤﺘﺮ از 4ﺑﻮدن ﺑﺮرﺳﻲ ﻣﻲﺷﻮد.
yﻣﻘﺪار آن ﺗﻐﻴﻴﺮ ﻳﺎﺑﺪ.
y
7
در ﻫﺮ ﺑﺎر اﺟﺮاي ﺑﺪﻧﻪ ﺣﻠﻘﻪ ﻣﻘﺪار آن 1واﺣﺪ اﻓﺰاﻳﺶ ﻣﻲﻳﺎﺑﺪ.
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﻧﻜﺎت دﺳﺘﻮر while
yدر ﺻﻮرت ﺑﺮوز ﻳﻜﻲ از ﺧﻄﺎﻫﺎي زﻳﺮ ﺣﻠﻘﻪ ﺑﻲﻧﻬﺎﻳﺖ ﺧﻮاﻫﻴﺪ داﺷﺖ:
;
yﺑﻌﺪ از ﻛﻠﻤﻪ doﻗﺮار ﺑﮕﻴﺮد.
yﻋﺪم وﺟﻮد دﺳﺘﻮري ﺑﺮاي ﺗﻐﻴﻴﺮ ﻣﻘﺪار ﻣﺘﻐﻴﺮ ﻛﻨﺘﺮل ﺣﻠﻘﻪ در ﺑﺪﻧﻪ ﺣﻠﻘﻪ.
8
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
اﻧﻮاع ﺣﻠﻘﻪ
yﺣﻠﻘﻪﻫﺎي ﺷﻤﺎرﺷﻲ
yﺗﻌﺪاد ﺗﻜﺮار ﺗﻮﺳﻂ ﻳﻚ ﻣﺘﻐﻴﺮ ﺷﻤﺎرﻧﺪه ﻣﺸﺨﺺ ﻣﻲﺷﻮد .ﻣﺎﻧﻨﺪ ﺣﻠﻘﻪ .for
yﺣﻠﻘﻪﻫﺎي ﻛﻨﺘﺮل ﺷﺪه ﺑﺎ ﺷﺮط
yﻣﻘﺪار ﻣﺤﺎﻓﻆ :ورود ﻳﻚ ﻣﻘﺪار از ﻗﺒﻞ ﻣﻌﻠﻮم ،ﻣﺜﻞ ﻋﺪد -1ﭘﺎﻳﺎن ﺣﻠﻘﻪ را
ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ.
yﻣﻘﺪار ﺑﻮﻟﻲ :ﻳﻚ ﻣﺘﻐﻴﺮ ﺑﻮﻟﻲ ،ﺗﻜﺮار ﻳﺎ ﻋﺪم ﺗﻜﺮار ﺣﻠﻘﻪ را ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ.
9
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﺣﻠﻘﻪ ﺷﻤﺎرﺷﻲ
CountStar := 0;
While CountStar < N do
begin
Write(‘*’);
CountStar := CountStar + 1
end
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
10
ﺣﻠﻘﻪﻫﺎي ﺷﻤﺎرﺷﻲ
ﻣﺤﺎﺳﺒﻪ ﻣﻴﺎﻧﮕﻴﻦ ﻣﺠﻤﻮﻋﻪاي از اﻋﺪادy
....
Write('Enter number of students');
ReadLn(NumofStd);
TotalResult := 0;
StdCount := 0;
while StdCount < NumofStd do
begin
Write('Enter result for Student',StdCount);
ReadLn(Result);
TotalResult := TotalResult + Result;
StdCount := StdCount + 1;
end;
WriteLn('The average is ', TotalResult/StdCount);
...
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
11
ﺣﻠﻘﻪﻫﺎي ﻛﻨﺘﺮل ﺷﺪه ﺑﺎ ﺷﺮط
ReadLn (InitialBal);
Balance := InitialBal;
while Balance >= 0.0 do
begin
Write ('Enter next creditor >');
ReadLn (Creditor);
Write ('Enter amount owed >$');
ReadLn (Bill);
if Balance >= Bill then
WriteLn ('Issue check for $', Bill :3:2,
' to ', Creditor)
else
WriteLn ('No check issued -- ',
'final balance is ', Balance :3:2);
WriteLn;
{skip a line}
Balance := Balance - Bill
{update balance}
end; {while}
يWriteLn
ﻧﻮر: ﻣﺪرس
ﺷﺮﻳﻒto
ﺻﻨﻌﺘﻲpay
– داﻧﺸﮕﺎﻩany
ﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل
ﺑﺮﻧﺎﻣﻪbills');
('Insufficient funds
more
12
ﻣﺘﻐﻴﺮ ﻛﻨﺘﺮل ﺣﻠﻘﻪ
yدر اﻳﻦ ﻧﻮع ﺣﻠﻘﻪﻫﺎ ﻧﻴﺰ ﺳﻪ ﻣﺮﺣﻠﻪ ﻣﻘﺪاردﻫﻲ اوﻟﻴﻪ ،ﻣﻘﺎﻳﺴﻪ و ﺗﻐﻴﻴﺮ در
ﻣﻮرد ﻣﺘﻐﻴﺮ ﻛﻨﺘﺮل ﺣﻠﻘﻪ وﺟﻮد دارد.
yدر ﻣﺜﺎل ﻗﺒﻠﻲ Balance ،ﺑﻪ ﻣﻘﺪار InititialBalﻣﻘﺪاردﻫﻲ اوﻟﻴﻪ ﺷﺪه
اﺳﺖ.
yﻣﻌﺘﺒﺮ ﺑﻮدن ﻣﻘﺪار ) Balanceﻧﺎﻣﻨﻔﻲ( در اﺑﺘﺪاي ﺣﻠﻘﻪ ﺑﺮرﺳﻲ ﻣﻲﺷﻮد.
yﻣﻘﺪار Balanceﺑﻌﺪ از ﻫﺮ ﺑﺎر اﺟﺮاي ﺣﻠﻘﻪ ﺑﻪروز ﻣﻲﺷﻮد.
13
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﺣﻠﻘﻪﻫﺎي ﻛﻨﺘﺮل ﺷﺪه ﺑﺎ ﻣﻘﺪار ﻣﺤﺎﻓﻆ
yﮔﺎﻫﻲ اوﻗﺎت ﺗﻌﺪاد وروديﻫﺎي ﻛﺎرﺑﺮ ﻣﺸﺨﺺ ﻧﻴﺴﺖ.
yﺗﻌﺪاد زﻳﺎدي ﻧﻤﺮه
y
y
y
y
14
ﺑﺎﻳﺪ روﺷﻲ را ﺑﺮاي اﺗﻤﺎم ﺗﻜﺮار ﺣﻠﻘﻪ ﺗﻮﺳﻂ ﻛﺎرﺑﺮ ﻓﺮاﻫﻢ آورﻳﻢ.
ﻣﻘﺎدﻳﺮ ﻣﺤﺎﻓﻆ در ﭼﻨﻴﻦ ﻣﺴﺎﻳﻠﻲ اﺳﺘﻔﺎده ﻣﻲﺷﻮﻧﺪ.
زﻣﺎﻧﻲ ﻛﻪ ﻛﺎرﺑﺮ ﻣﻘﺪار ﻣﺤﺎﻓﻆ را وارد ﻛﺮد ،ﺣﻠﻘﻪ ﭘﺎﻳﺎن ﻣﻲﻳﺎﺑﺪ.
ﻣﻘﺪار ﻣﺤﺎﻓﻆ ﺑﺎﻳﺪ درﺳﺖ اﻧﺘﺨﺎب ﺷﻮد ،و ﺟﺰو ﻣﺠﻤﻮﻋﻪ وروديﻫﺎي ﻣﺠﺎز
ﻧﺒﺎﺷﺪ ،ﻣﺜﻞ ﻧﻤﺮه ﻣﻨﻔﻲ.
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﺣﻠﻘﻪﻫﺎي ﻛﻨﺘﺮل ﺷﺪه ﺑﺎ ﻣﻘﺪار ﻣﺤﺎﻓﻆ
read the ID of the first student
while ID is not equal to ‐999 do
begin
read first exam result;
read second exam result;
calculate grade;
read ID of the next student
end
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
15
ﺣﻠﻘﻪﻫﺎي ﻛﻨﺘﺮل ﺷﺪه ﺑﺎ ﻣﺘﻐﻴﺮ ﺑﻮﻟﻲ
yﻳﻚ ﻣﺘﻐﻴﺮ ﺑﻮﻟﻲ ﺑﺎ ﻧﺎم Flagﺗﻌﺮﻳﻒ ﻣﻲﺷﻮد ﻛﻪ ﻣﻘﺪار آن ﺑﺮوز ﻳﻚ واﻗﻌﻪ
را ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ.
yدر اﺑﺘﺪا اﻳﻦ ﻣﺘﻐﻴﺮ ﻣﻘﺪار Falseدارد.
yدر اداﻣﻪ ،در ﺻﻮرت وﻗﻮع ﻳﻚ ﺷﺮط ﺧﺎص ،اﻳﻦ ﻣﺘﻐﻴﺮ ﻣﻘﺪار True
ﻣﻲﮔﻴﺮد.
yﺣﻠﻘﻪ ﺗﺎ زﻣﺎﻧﻲ ﻛﻪ ﻣﻘﺪار اﻳﻦ ﻣﺘﻐﻴﺮ ﺗﻐﻴﻴﺮ ﻧﻜﻨﺪ ،ﺗﻜﺮار ﻣﻲﺷﻮد.
16
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﺣﻠﻘﻪﻫﺎي ﻛﻨﺘﺮل ﺷﺪه ﺑﺎ ﻣﺘﻐﻴﺮ ﺑﻮﻟﻲ
DigitRead := False;
while not DigitRead do
begin
Write('Enter another data character : ');
ReadLn(NextChar);
DigitRead := ('0' <= NextChar) and (NextChar <= '9')
end; {while}
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
17
N ﺑﺮﻧﺎﻣﻪ ﺗﺴﺖ اول ﺑﻮدن ﻋﺪد
IsPrime := True;
Divisor := 2;
while (IsPrime) and (Divisor <= sqrt(N)) do
begin
IsPrime := N mod Divisor <> 0;
Divisor := Divisor + 1
end;
if IsPrime then
WriteLn(N, ‘ is a prime number’)
else
WriteLn(N, ‘ is not a prime number’)
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
18
repeat دﺳﺘﻮر
repeat Statement
until boolean‐expression
repeat Statement;
Statement
until boolean‐expression
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
19
دﺳﺘﻮر repeat
yاﻳﻦ دﺳﺘﻮر ﻣﺎﻧﻨﺪ دو دﺳﺘﻮر forو whileﺑﺮاي اﻳﺠﺎد ﺗﻜﺮار اﺳﺘﻔﺎده
ﻣﻲﺷﻮد.
yﺑﺮﺧﻼف دﺳﺘﻮر whileزﻣﺎﻧﻲ دﺳﺘﻮر repeatﭘﺎﻳﺎن ﻣﻲﻳﺎﺑﺪ ﻛﻪ ﺷﺮط
ﺣﻠﻘﻪ ﺑﺮﻗﺮار ﺷﻮد.
yﭼﻮن ﺷﺮط در اﻧﺘﻬﺎي ﺑﺪﻧﻪ ﺣﻠﻘﻪ ذﻛﺮ ﻣﻲﺷﻮد ،ﺣﻠﻘﻪ ﺣﺪاﻗﻞ ﻳﻚﺑﺎر اﺟﺮا
ﻣﻲﺷﻮد )ﺑﺮﺧﻼف forو .(while
20
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
repeat وwhile ﻣﻘﺎﻳﺴﻪ
CountEmp := 0;
repeat
Write('Hours: '); ReadLn(Hours);
Write('Rate: '); ReadLn(Rate);
Pay := Hours * Rate;
WriteLn('Weekly pay is', Pay);
CountEmp := CountEmp + 1
until CountEmp>=4;
WriteLn(CountEmp,' Employees calculated');
CountEmp := 0;
while CountEmp < 4 do
begin
Write('Hours: '); ReadLn(Hours);
Write('Rate: '); ReadLn(Rate);
Pay := Hours * Rate;
WriteLn('Weekly pay is', Pay);
CountEmp := CountEmp + 1
end; {while}
WriteLn(CountEmp,' Employees calculated');
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
21
ﻣﻘﺎﻳﺴﻪ whileو repeat
yﻳﻚ ﺣﻠﻘﻪ repeatرا ﻣﻲﺗﻮان ﺑﻪ راﺣﺘﻲ ﺑﻪ ﻳﻚ ﺣﻠﻘﻪ whileﺗﺒﺪﻳﻞ ﻛﺮد.
yﻫﻤﻪ ﺣﻠﻘﻪﻫﺎي whileرا ﻧﻤﻲﺗﻮان ﺑﻪ ﺣﻠﻘﻪ repeatﺗﺒﺪﻳﻞ ﻛﺮد
)دﺳﺘﻮرات اﺿﺎﻓﻲ ﻣﻮرد ﻧﻴﺎز اﺳﺖ(.
yﭼﻮن در ﺣﻠﻘﻪ whileاﻣﻜﺎن ﭘﺮش از ﻛﻞ ﺣﻠﻘﻪ وﺟﻮد دارد )ﻋﺪم اﺟﺮاي
ﺑﺪﻧﻪ ﺣﻠﻘﻪ( ،ﻧﺴﺒﺖ ﺑﻪ repeatﺗﺮﺟﻴﺢ دارد
yدر ﺑﺮﺧﻲ ﻣﻮارد اﺟﺮاي ﺣﺪاﻗﻞ ﻳﻚﺑﺎر ﺑﺪﻧﻪ ﺣﻠﻘﻪ ﻣﻮرد ﻧﻴﺎز اﺳﺖ ﻛﻪ
ﻣﻲﺗﻮان از repeatاﺳﺘﻔﺎده ﻛﺮد.
22
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﭘﺮﺳﺶ از ﻛﺎرﺑﺮ ﺑﺮاي اداﻣﻪ ﻛﺎر
Repeat
Writeln(‘Your program is running!’);
Readln (c)
Until c = ‘N’ ;
Writeln(‘Your program is finished!’);
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
23
ﺳﺮي ﻓﻴﺒﻮﻧﺎﺗﭽﻲ
yﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻋﺪدي را از ﻛﺎرﺑﺮ درﻳﺎﻓﺖ ﻛﻨﺪ و دﻧﺒﺎﻟﻪ اﻋﺪاد
ﻓﻴﺒﻮﻧﺎﺗﭽﻲ ﻛﻮﭼﻜﺘﺮ از ﻋﺪد وارد ﺷﺪه را ﭼﺎپ ﻧﻤﺎﻳﺪ.
24
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﺳﺮي ﻓﻴﺒﻮﻧﺎﺗﭽﻲ
var
A, B, C, N : Integer;
begin
Readln(N);
A := 0;
B := 1;
Repeat
WriteLn(B);
C := B;
B := A + B;
A := C
until B > N
end.
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
25
دﺳﺘﻮرات ﻛﻨﺘﺮل ﺟﺮﻳﺎن ﺣﻠﻘﻪ
: Break yاﺟﺮاي ﺣﻠﻘﻪ را ﻣﺘﻮﻗﻒ ﻣﻲ ﻛﻨﺪ و ﻛﻨﺘﺮل ﺑﺮﻧﺎﻣﻪ ﺑﻪ دﺳﺘﻮر ﺑﻌﺪ از
ﺣﻠﻘﻪ ﻣﻲ رود.
: Continue yاﺟﺮاي ﺑﺪﻧﻪ ﺣﻠﻘﻪ را ﻣﺘﻮﻗﻒ ﻣﻲﻛﻨﺪ و ﻣﺮﺣﻠﻪ ﺑﻌﺪي اﺟﺮاي
ﺣﻠﻘﻪ را آﻏﺎز ﻣﻲﻛﻨﺪ.
26
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﺣﻠﻘﻪﻫﺎي ﺗﻮ در ﺗﻮ
. ﺣﻠﻘﻪﻫﺎ ﻣﻲﺗﻮاﻧﻨﺪ ﺑﻪ ﺻﻮرت ﺗﻮ در ﺗﻮ اﺳﺘﻔﺎده ﺷﻮﻧﺪy
for I:=1 to 4 do
begin
repeat
Write('enter a character: ');
ReadLn(Ch1);
DigitRead := ('0' <= Ch1) and (Ch1 <= '9')
until DigitRead; {repeat}
WriteLn('The digit number ' I, ' is ', Ch1)
end;
WriteLn(I, 'digits read!');
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
27
ﻣﻘﺎﻳﺴﻪ اﻋﺪاد اﻋﺸﺎري
0.0000000000E+00
;A := 111111.1111111112
;B := 111111.1111111111
;)WriteLn(A – B
1.0000000000E-10
28
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
;A := 0.0000000002
;B := 0.0000000001
;)WriteLn(A – B
ﻣﺪرس: ﻧﻮري
ﻣﻘﺎﻳﺴﻪ اﻋﺪاد اﻋﺸﺎري
yﺑﺮاي ﻣﻘﺎﻳﺴﻪ ﺗﺴﺎوي ﻳﺎ ﻋﺪم ﺗﺴﺎوي دو ﻋﺪد اﻋﺸﺎري از ﻋﻤﻠﮕﺮ = ﻳﺎ ><
اﺳﺘﻔﺎده ﻧﻜﻨﻴﺪ.
yاﮔﺮ ﻣﻲﺗﻮاﻧﻴﺪ از > ﻳﺎ < اﺳﺘﻔﺎده ﻛﻨﻴﺪ ،در ﻏﻴﺮ اﻳﻨﺼﻮرت از ﻳﻚ ﻣﻘﺪار
Deltaاﺳﺘﻔﺎده ﻛﻨﻴﺪ.
Average > 12 – 0.001
yﻣﺜﻼً ﻋﺪم ﻣﺸﺮوﻃﻲ داﻧﺸﺠﻮ:
29
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﻣﺘﻐﻴﺮ ﻛﻨﺘﺮل ﺣﻠﻘﻪ اﻋﺸﺎري
A := 1.0;
while A <> 0.0 do
begin
WriteLn(A:8:5);
A := A – (1/3);
ReadLn
end
A := 2.0;
while A <> 0.0 do
begin
WriteLn(A:8:5);
A := A – (1/3);
ReadLn
end
while A > 0.0001 do
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
30
ﺗﻤﺮﻳﻦ
yﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻳﻚ ﻋﺪد ﺻﺤﻴﺢ را درﻳﺎﻓﺖ ﻛﺮده و ﺗﻌﺪاد ارﻗﺎم آن
را ﭼﺎپ ﻧﻤﺎﻳﺪ.
31
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
© Copyright 2026 Paperzz