دستور شرط
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل -ﺟﻠﺴﻪ ﭘﻨﺠﻢ
ﻣﺪرس :ﻧﻮري
داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
آﺑﺎن
1 / 24
آبان 88
88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
گرامر دستور ifبا دستورات ساده
دستور شرط ساده
if Condition then
;
if Condition then
StatementT
StatementT
else
StatementF
2 / 24
آبان 88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
دستور شرط ترکیبی
با دستورات ترکیبیif گرامر دستور
if Condition then
begin
StatementT ;
StatementT ;
StatementT
if Condition then
begin
StatementT ;
StatementT ;
StatementT
end
نوری:)دانشگاه صنعتی شریف( مدرس
end
;
else
begin
StatementF ;
StatementF ;
StatementF
end
برنامهنویسی پاسکال
88 آبان
3 / 24
دستور شرط
مرتب کردن دو عدد به صورت غیر نزولی
دستور شرط ترکیبی
if X > Y then
}begin {switch X and Y
;Temp := X
;X := Y
Y := Temp
}end {if
4 / 24
آبان 88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
دستور شرط ترکیبی
شکلدهی اعداد حقیقی
•
•
5 / 24
ﻗﺒﻞ و ﺑﻌﺪ از ﻛﻠﻤﺎت ﻛﻠﻴﺪي else ،thenو ; ،beginﻗﺮار
ﻧﻤﻲﮔﻴﺮد
ﻣﻤﻜﻦ اﺳﺖ ﺑﻌﺪ از endي ﻛﻪ ifرا ﺧﺘﻢ ﻣﻲﻛﻨﺪ ; ﻗﺮار ﺑﮕﻴﺮد.
آبان 88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
دستور شرط ترکیبی
برنامه شمارش روزهای گذشته از سال
program DayCounter;
var
Day, Month, D : Integer;
begin
Write(’Please enter day [1-31]:’);
ReadLn(Day);
Write(’Please enter month [1-12]:’);
ReadLn(Month);
D := Day;
if Month <= 7 then
D := D + (Month - 1)*31
else if Month <= 12 then
D := D + 6*31 + (Month - 7)*30
else {Month > 12}
WriteLn(’You must enter a month not greater than 12’);
if Month <= 12 then
WriteLn(’This is the ’, D, ’th day of the year’)
end.
نوری:)دانشگاه صنعتی شریف( مدرس
برنامهنویسی پاسکال
88 آبان
6 / 24
دستور شرط
دستور شرط ترکیبی
برنامه تبدیل واحدهای اینچ و سانتیمتر
program LengthConvertor;
const
I2C = 2.54;
var
Length : Real;
Scale, Space : Char;
begin
WriteLn(’Please enter length in Cm or Inch.’);
Write(’(eg. 32 cm or 24.5 in)’);
ReadLn(Length, Space, Scale);
if (Scale <> ’c’) and (Scale <> ’C’)
and (Scale <> ’i’) and (Scale <> ’I’) then
WriteLn(’Sorry, invalid scale’)
else
begin
Write(’This corresponds to: ’);
if (Scale = ’i’) or (Scale = ’I’) then
WriteLn(Scale * I2C :3:1, ’cm’)
else
WriteLn(Scale / I2C:3:1, ’in’)
end
نوری:)دانشگاه صنعتی شریف( مدرس
برنامهنویسی پاسکال
end.
88 آبان
7 / 24
دستور شرط
دستور شرط ترکیبی
برنامه محاسبه حقوق
•
•
•
8 / 24
ﺷﺮﻛﺘﻲ ﺣﻘﻮق ﻛﺎرﻣﻨﺪاﻧﺶ را ﺑﺮاﺳﺎس ﺳﺎﻋﺖ ﻛﺎر آﻧﻬﺎ ﺑﻪ اﺿﺎﻓﻪ
ﻧﺼﻒ ﺳﺎﻋﺖﻫﺎي اﺿﺎﻓﻪ ﺑﺮ 40ﺳﺎﻋﺖ در ﻫﻔﺘﻪ ﭘﺮداﺧﺖ ﻣﻲﻛﻨﺪ.
ﻛﺎرﻣﻨﺪاﻧﻲ ﻛﻪ ﺣﻘﻮق آﻧﻬﺎ ﺑﻴﺸﺘﺮ از 100ﻫﺰار ﺗﻮﻣﺎن ﺑﺎﺷﺪ ،ﺑﺎﻳﺪ
20ﻫﺰار ﺗﻮﻣﺎن ﺑﻪ اﺗﺤﺎدﻳﻪ ﭘﺮداﺧﺖ ﻛﻨﻨﺪ.
ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺣﻘﻮق ﺑﺪون ﭘﺮداﺧﺘﻲ ﺑﻪ ﺻﻨﺪوق و ﺑﺎ
ﭘﺮداﺧﺖ ﺑﻪ ﺻﻨﺪوق را ﺣﺴﺎب ﻛﻨﺪ.
آبان 88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
دستور شرط ترکیبی
رابطههای محاسبه حقوق
• gross pay = hours worked × hourly rate
• gross pay =
40 × hourly rate + 1.5 × overtime hours × hourly rate
• net pay = gross pay − union dues
نوری:)دانشگاه صنعتی شریف( مدرس
برنامهنویسی پاسکال
88 آبان
9 / 24
دستور شرط
دستور شرط ترکیبی
شرط الزم برای محاسبه حقوق
if Hours <= MAX_NO_OVERTIME then
Gross := Hours * Rate
{no overtime pay}
else
Gross := MAX_NO_OVERTIME * Rate +
{overtime}
BONUS_RATE * (Hours - MAX_NO_OVERTIME) * Rate
نوری:)دانشگاه صنعتی شریف( مدرس
برنامهنویسی پاسکال
88
آبان
10 / 24
دستور شرط
دستور شرط ترکیبی
برنامه محاسبه حقوق
program Payroll;
const
MAX_NO_OVERTIME = 40;
BONUS_RATE = 1.5;
MAX_NO_DUES = 100.0;
DUES = 20.0;
var
Hours, Rate,
Gross, Net : Real;
begin
Write(’Hours worked> ’);
ReadLn(Hours);
Write(’Hourly rate> ’);
ReadLn(Rate);
نوری:)دانشگاه صنعتی شریف( مدرس
برنامهنویسی پاسکال
88
آبان
11 / 24
دستور شرط
دستور شرط ترکیبی
ادامه
if Hours <= MAX_NO_OVERTIME then
Gross := Hours * Rate
else
Gross := MAX_NO_OVERTIME * Rate +
BONUS_RATE * (Hours - MAX_NO_OVERTIME) *
Rate;
if Gross < MAX_NO_DUES then
Net := Gross
else
Net := Gross - DUES;
WriteLn(’Gross pay is $’, Gross:4:2);
WriteLn(’Net pay is $’, Net:4:2)
end.
نوری:)دانشگاه صنعتی شریف( مدرس
برنامهنویسی پاسکال
88
آبان
12 / 24
دستور شرط
دستور شرط ترکیبی
خروجی برنامه
Hourly worked> 40
Hrouly rate> 5.0
Gross pay is $200.00
Net pay is $180.00
13 / 24
آبان
88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
دستور شرط ترکیبی
مزایای استفاده از ثابت
•
ﺗﻐﻴﻴﺮ ﺳﺎدهﺗﺮ اﻧﺠﺎم ﻣﻲﺷﻮد(MAX_NO_OVERTIME) .
•
دﺳﺘﻮر ifﻧﻮﺷﺘﻪ ﺷﺪه ﺧﻮاﻧﺎﺗﺮ اﺳﺖ.
14 / 24
آبان
88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
شرط تو در تو
ifهای تو در تو
•
ﺑﺮاي اﻳﺠﺎد ﺗﺼﻤﻴﻢ ﺑﺎ ﭼﻨﺪﻳﻦ ﺣﺎﻟﺖ اﻧﺘﺨﺎب
if X > 0 then
NumPos := NumPos + 1
else
if X < 0 then
NumNeg := NumNeg + 1
else
}{X = 0
NumZero := NumZero + 1
15 / 24
آبان
88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
شرط تو در تو
ifهای تو در تو
•
اﻳﻦ ﻣﺠﻤﻮﻋﻪ دﺳﺘﻮر ﺑﻪ ﺻﻮرت ﻋﺎدي ﺑﻪ ﺷﻜﻞ زﻳﺮ ﻧﻮﺷﺘﻪ ﻣﻲﺷﻮد.
if X > 0 then
;NumPos := NumPos + 1
if X < 0 then
;NumNeg := NumNeg + 1
if X = 0 then
NumZero := NumZero + 1
16 / 24
آبان
88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
شرط تو در تو
مزایای استفاده از ifتو در تو
•
•
17 / 24
ifﺗﻮ در ﺗﻮ ﺧﻮاﻧﺎ ﺗﺮ اﺳﺖ و راﺣﺖﺗﺮ ﻣﻲﺗﻮان ﻓﻬﻤﻴﺪ ﻛﻪ ﺑﺎ ﻳﻚ
دﻟﺨﻮاه ﻓﻘﻂ ﻳﻜﻲ از ﺧﻄﻮط اﺟﺮا ﻣﻲﺷﻮد.
X
از ﻟﺤﺎظ ﻛﺎراﻳﻲ ﺑﺮﻧﺎﻣﻪ if ،ﺗﻮ در ﺗﻮ ﺳﺮﻳﻌﺘﺮ اﺳﺖ ،ﭼﻮن وﻗﺘﻲ
ﻣﺜﺒﺖ ﺑﺎﺷﺪ ،ﻓﻘﻂ ﺷﺮط اول ﺑﺮرﺳﻲ ﻣﻲﺷﻮد و اﮔﺮ Xﻣﻨﻔﻲ ﺑﺎﺷﺪ،
ﻓﻘﻂ دو ﺷﺮط اول.
X
آبان
88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
شرط تو در تو
تو در توif ابهام در
if X > 0 then
if Y > X then
WriteLn(’Y > X > 0’)
else
WriteLn(’(X > 0) and (Y <= X)’)
if X > 0 then
begin
if Y > X then
WriteLn(’Y > X > 0’)
end
else
WriteLn(’X <= 0’)
نوری:)دانشگاه صنعتی شریف( مدرس
برنامهنویسی پاسکال
88
آبان
18 / 24
دستور شرط
شرط چند انتخابی
شکل چند انتخابی ifتو در تو
ﻫﻴﭻ ﻛﺪام از ﺷﺮاﻳﻂ ﺑﺮﻗﺮار ﻧﺒﻮد ،ﺟﻤﻠﻪ
19 / 24
آبان
88
if Condition1 then
Statement1
else if Condition2 then
Statement2
else if Condition3 then
Statement3
.
.
.
else if Conditionn then
Statementn
else
ﻏﻴﺮ ﺿﺮوري
ﺑﻌﺪ از elseاﺟﺮا ; Statemente
ﻣﻲﺷﻮد.
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
شرط چند انتخابی
شکل چند انتخابی ifتو در تو
if X > 0 then
NumPos := NumPos + 1
else if X < 0 then
NumNeg := NumNeg + 1
else
NumZero := NumZero + 1
20 / 24
آبان
88
برنامهنویسی پاسکال
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
شرط چند انتخابی
برنامه نمره دادن حرفی بر اساس نمره امتحان
A
B
• 80 - 89
C
• 70 - 79
D
• 60 - 69
F
21 / 24
آبان
88
برنامهنویسی پاسکال
ﺑﻴﺸﺘﺮ
• 90 -
زﻳﺮ
• 60
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
شرط چند انتخابی
برنامه نمره دادن حرفی بر اساس نمره امتحان
if Score >= 90 then
Write(’A’)
else if Score >= 80 then
Write(’B’)
else if Score >= 70 then
Write(’C’)
else if Score >= 60 then
Write(’D’)
else
Write(’F’);
WriteLn(’is the exam grade - score is ’, Score)
نوری:)دانشگاه صنعتی شریف( مدرس
برنامهنویسی پاسکال
88
آبان
22 / 24
دستور شرط
شرط چند انتخابی
برنامه محاسبه مالیات
درﺻﺪ اﺿﺎﻓﻪ ﻣﺎﻟﻴﺎت ﭘﺎﻳﻪ ﻣﺎﻟﻴﺎت
15%
16%
18%
20%
25%
23 / 24
آبان
88
0
255
465
825
1425
برنامهنویسی پاسکال
ﻣﺤﺪوده ﺣﻘﻮق
0 - 1499.99
1500 - 2999.99
3000 - 4999.99
5000 - 7999.99
8000 - 15000
)دانشگاه صنعتی شریف( مدرس :نوری
دستور شرط
شرط چند انتخابی
برنامه محاسبه مالیات
if Salary < 0.0 then
WriteLn(’Error. Negative salary $’, Salary:10:2)
else if Salary < 1500.0 then
Tax := 0.15 * Salary
else if Salary < 3000.0 then
Tax := (Salary - 1500.0) * 0.16 + 225
else if Salary < 5000.0 then
Tax := (Salary - 3000.0) * 0.18 + 465
else if Salary < 8000.0 then
Tax := (Salary - 5000.0) * 0.20 + 825
else if Salary < 15000.0 then
Tax := (Salary - 8000.0) * 0.25 + 1425
else
WriteLn(’Error. too large salary $’, Salary:10:2)
نوری:)دانشگاه صنعتی شریف( مدرس
برنامهنویسی پاسکال
88
آبان
24 / 24
© Copyright 2026 Paperzz