lecture 9.pdf

‫ﻣﺪرس ‪ :‬ﻧﻮري‬
‫آﺑﺎن ‪88‬‬
‫ﺗﻮاﺑﻊ و زﻳﺮﺑﺮﻧﺎﻣﻪﻫﺎي ﭘﺎﺳﻜﺎل‬
‫‪ y‬ﭘﻴﺶ از اﻳﻦ ﺑﺎ زﻳﺮﺑﺮﻧﺎﻣﻪﻫﺎي زﻳﺮ آﺷﻨﺎ ﺷﺪهاﻳﺪ‪.‬‬
‫‪y‬‬
‫‪y‬‬
‫‪y‬‬
‫‪y‬‬
‫‪Write‬‬
‫‪Writeln‬‬
‫‪Read‬‬
‫‪Readln‬‬
‫‪ y‬در ﭘﺎﺳﻜﺎل ﺗﻌﺪاد زﻳﺎدي ﺗﺎﺑﻊ و زﻳﺮﺑﺮﻧﺎﻣﻪ از ﭘﻴﺶ ﺗﻬﻴﻪ ﺷﺪه و در اﺧﺘﻴﺎر‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺲ ﻗﺮار دارد‪.‬‬
‫‪2‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺗﺎﺑﻊ و زﻳﺮﺑﺮﻧﺎﻣﻪ‬
‫‪ y‬ﺗﻔﺎوت ﺗﺎﺑﻊ و زﻳﺮﺑﺮﻧﺎﻣﻪ )روال‪ ،‬روﻳﻪ( در ﺑﺮﮔﺮداﻧﺪن ﻳﺎ ﻋﺪم ﺑﺮﮔﺮداﻧﺪن‬
‫ﻣﻘﺪار ﺗﻮﺳﻂ آن اﺳﺖ‪.‬‬
‫‪ y‬ﻳﻚ ﺗﺎﺑﻊ ﻫﻤﻴﺸﻪ ﻳﻚ ﻣﻘﺪار ﺑﺮﮔﺸﺘﻲ دارد‪.‬‬
‫‪ y‬ﻳﻚ زﻳﺮﺑﺮﻧﺎﻣﻪ ﺻﻔﺮ ﻳﺎ ﺑﻴﺸﺘﺮ ﭘﺎراﻣﺘﺮ ورودي دارد و ﺑﺮاﺳﺎس اﻳﻦ‬
‫ﭘﺎراﻣﺘﺮﻫﺎ ﻛﺎرﻫﺎﻳﻲ را اﻧﺠﺎم ﻣﻲدﻫﺪ‪.‬‬
‫‪ y‬ﻣﺜﻞ ﭼﺎپ ﭘﺎراﻣﺘﺮ در ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ‪.‬‬
‫‪ y‬ﻳﻚ ﺗﺎﺑﻊ ﺻﻔﺮ ﻳﺎ ﺑﻴﺸﺘﺮ ﭘﺎراﻣﺘﺮ ورودي دارد و ﺑﺮاﺳﺎس اﻳﻦ ﭘﺎراﻣﺘﺮﻫﺎ‬
‫ﻛﺎرﻫﺎﻳﻲ را اﻧﺠﺎم ﻣﻲدﻫﺪ و ﻣﻘﺪاري را ﺑﺮﻣﻲﮔﺮداﻧﺪ‪.‬‬
‫‪ y‬ﻣﺜﻞ ﻣﺤﺎﺳﺒﻪ ﺳﻴﻨﻮس زاوﻳﻪ‪.‬‬
‫‪3‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺗﻮاﺑﻊ رﻳﺎﺿﻲ‬
‫ﻧﻮع داده ﺧﺮوﺟﻲ‬
‫ﻫﻤﺎﻧﻨﺪ ﻧﻮع ورودي‬
‫‪Integer‬‬
‫‪Integer‬‬
‫‪Real‬‬
‫‪Real‬‬
‫‪4‬‬
‫ﻋﻤﻠﻜﺮد‬
‫ﻧﻮع ﭘﺎراﻣﺘﺮ‬
‫‪ Integer/real‬ﻗﺪر ﻃﻠﻖ‬
‫‪ real‬ﻧﺰدﻳﻜﺘﺮﻳﻦ ﻋﺪد ﺻﺤﻴﺢ ﺑﻪ ‪x‬‬
‫‪ real‬ﻣﺤﺎﺳﺒﻪ ﻗﺴﻤﺖ ﺻﺤﻴﺢ ‪x‬‬
‫‪ Real‬ﻋﺪد ﺣﻘﻴﻘﻲ ﻧﺸﺎندﻫﻨﺪه ﻗﺴﻤﺖ ﺻﺤﻴﺢ‬
‫ﻋﺪد‬
‫‪ Real‬ﻗﺴﻤﺖ اﻋﺸﺎري ﻋﺪد اﻋﺸﺎري‬
‫ﺗﺎﺑﻊ‬
‫)‪Abs(x‬‬
‫)‪Round(x‬‬
‫)‪Trunc(x‬‬
‫)‪Int(x‬‬
‫)‪Frac(x‬‬
‫‪Real‬‬
‫‪Integer/Real‬‬
‫)‪Exp(x‬‬
‫‪Real‬‬
‫‪Integer/Real‬‬
‫)‪Ln(x‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﻣﺤﺎﺳﺒﻪ ﺗﻮان‬
‫‪ y‬ﭼﻮن در ﭘﺎﺳﻜﺎل ﺗﺎﺑﻌﻲ ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﺗﻮان وﺟﻮد ﻧﺪارد ﻣﻲﺗﻮان از دﺳﺘﻮر‬
‫زﻳﺮ ﺑﺮاي اﻳﻦ ﻛﺎر اﺳﺘﻔﺎده ﻛﺮد )ﻧﺘﻴﺠﻪ ﻣﺤﺎﺳﺒﺎت اﻋﺸﺎري اﺳﺖ(‪.‬‬
‫‪ln a‬‬
‫‪ab = eb‬‬
‫;))‪Pow := Exp(b * Ln(a‬‬
‫‪5‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺗﻮاﺑﻊ رﻳﺎﺿﻲ‬
‫ﺗﺎﺑﻊ‬
‫ﻋﻤﻠﻜﺮد‬
‫ﻧﻮع ﭘﺎراﻣﺘﺮ‬
‫ﻧﻮع داده ﺧﺮوﺟﻲ‬
Odd(x)
Integer
Boolean
Arctan(x)
Integer/Real
Real
Cos(x)
Integer/Real
Real
Sin(x)
Integer/Real
Real
Sqr(x)
‫ ﻣﺠﺬور‬Integer/Real
Sqrt(x)
‫ ﺟﺬر‬Integer/Real
‫ﻧﻮري‬: ‫ﻣﺪرس‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻫﻤﺎﻧﻨﺪ ﻧﻮع ورودي‬
Real
6
‫ﺗﻮاﺑﻊ رﻳﺎﺿﻲ‬
‫ﻧﻮع داده ﺧﺮوﺟﻲ‬
‫‪Real‬‬
‫‪Real‬‬
‫‪Integer‬‬
‫‪7‬‬
‫ﻧﻮع ﭘﺎراﻣﺘﺮ‬
‫ﻋﻤﻠﻜﺮد‬
‫ﻋﺪد ﭘﻲ را ﺑﺮ ﻣﻲﮔﺮداﻧﺪ‬
‫‬‫ﻣﺤﺎﺳﺒﻪ ﻳﻚ ﻋﺪد ﺣﻘﻴﻘﻲ‬
‫‬‫ﺗﺼﺎدﻓﻲ ﺑﻴﻦ ‪ 0‬و ‪1‬‬
‫‪ Integer‬ﻣﺤﺎﺳﺒﻪ ﻳﻚ ﻋﺪد ﺻﺤﻴﺢ‬
‫ﺗﺼﺎدﻓﻲ ﺑﻴﻦ ‪ 0‬و ‪x‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﺗﺎﺑﻊ‬
‫‪Pi‬‬
‫‪Random‬‬
‫)‪Random(x‬‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺗﻮاﺑﻊ ﻣﺮﺑﻮط ﺑﻪ ﻛﺎراﻛﺘﺮﻫﺎ‬
‫ﻧﻮع داده ﺧﺮوﺟﻲ‬
‫‪Char‬‬
‫‪Integer‬‬
‫‪Char‬‬
‫‪8‬‬
‫ﻧﻮع ﭘﺎراﻣﺘﺮ‬
‫ﻋﻤﻠﻜﺮد‬
‫ﺗﺎﺑﻊ‬
‫‪ Integer‬ﻛﺎراﻛﺘﺮ ﺑﺎ ﻛﺪ اﺳﻜﻲ ‪ x‬را‬
‫)‪ (0..255‬ﺑﺮﻣﻲﮔﺮداﻧﺪ‬
‫)‪Chr(x‬‬
‫‪ Char‬ﻛﺪ اﺳﻜﻲ ﻛﺎراﻛﺘﺮ ‪ x‬را‬
‫ﺑﺮﻣﻲﮔﺮداﻧﺪ‬
‫)‪Ord(x‬‬
‫‪ Char‬در ﺻﻮرﺗﻲ ﻛﻪ ‪ x‬ﺣﺮف ﻛﻮﭼﻚ‬
‫ﺑﺎﺷﺪ )ﻣﺜﻞ ’‪ (‘a‬آن را ﺑﻪ ﺑﺰرگ‬
‫ﺗﺒﺪﻳﻞ ﻣﻲﻛﻨﺪ )’‪ ،(‘A‬در ﻏﻴﺮ‬
‫اﻳﻨﺼﻮرت ﺧﻮد ‪ x‬ﺑﺮﻣﻲﮔﺮدد‪.‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫)‪UpCase(x‬‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺑﺮﻧﺎﻣﻪ ﭼﺎپ ﺟﺪول اﺳﻜﻲ‬
var
i: integer;
begin
for i:=0 to 255 do
begin
write(i:6,':',Chr(i):3);
if i mod 64 = 63 then ReadLn;
end
end.
‫ﻧﻮري‬: ‫ﻣﺪرس‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
9
‫ﺗﻮاﺑﻊ اﻧﻮاع ﺗﺮﺗﻴﺒﻲ‬
‫ﻧﻮع داده ﺧﺮوﺟﻲ‬
‫‪Integer‬‬
‫‪ Ordinal‬ﺷﻤﺎره ﺗﺮﺗﻴﺐ ‪ x‬را ﺑﺮﻣﻲﮔﺮداﻧﺪ‬
‫‪ Ordinal‬ﻣﻘﺪار ﻗﺒﻞ از ‪ x‬را از آن ﻧﻮع‬
‫ﺑﺮﻣﻲﮔﺮداﻧﺪ‬
‫‪Ordinal‬‬
‫‪ Ordinal‬ﻣﻘﺪار ﺑﻌﺪ از ‪ x‬را از آن ﻧﻮع‬
‫ﺑﺮﻣﻲﮔﺮداﻧﺪ‬
‫‪ Ordinal Type‬ﺑﺰرﮔﺘﺮﻳﻦ ﻣﻘﺪار ﻧﻮع داده ﺷﺪه‬
‫را ﺑﺮﻣﻲﮔﺮداﻧﺪ‬
‫‪ Ordinal Type‬ﻛﻤﺘﺮﻳﻦ ﻣﻘﺪار ﻧﻮع داده ﺷﺪه را‬
‫ﺑﺮﻣﻲﮔﺮداﻧﺪ‬
‫‪Ordinal‬‬
‫‪Ordinal‬‬
‫‪Ordinal‬‬
‫‪10‬‬
‫ﻧﻮع ﭘﺎراﻣﺘﺮ‬
‫ﻋﻤﻠﻜﺮد‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﺗﺎﺑﻊ‬
‫)‪Ord(x‬‬
‫)‪Pred(x‬‬
‫)‪Succ(x‬‬
‫)‪High(type‬‬
‫)‪Low(type‬‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
Pred ‫ و‬Succ ،Ord ‫ﻣﺜﺎلﻫﺎي ﺗﻮاﺑﻊ‬
Parameter
Ord
Succ
Pred
15
15
16
14
0
0
1
-1
-30
-29
-31
MaxInt
Undef
MaxInt-1
-30
MaxInt
-MaxInt-1
‫ﻧﻮري‬: ‫ﻣﺪرس‬
-MaxInt-1
-MaxInt
Undef
False
0
True
True
1
Undef
Undef
False
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
11
‫ﻣﺜﺎلﻫﺎي ﺗﻮاﺑﻊ ‪ Succ ،Ord‬و ‪Pred‬‬
‫‪Pred‬‬
‫’‪‘B‬‬
‫’‪‘b‬‬
‫’‪‘/‬‬
‫’‪‘6‬‬
‫’‪‘x‬‬
‫‪Unprintable‬‬
‫‪12‬‬
‫‪Succ‬‬
‫‪Ord‬‬
‫’‪‘D‬‬
‫‪Parameter‬‬
‫‪67‬‬
‫’‪‘C‬‬
‫‪99‬‬
‫’‪‘c‬‬
‫’‪‘1‬‬
‫‪48‬‬
‫’‪‘0‬‬
‫’‪‘8‬‬
‫‪55‬‬
‫’‪‘7‬‬
‫’‪‘z‬‬
‫‪121‬‬
‫’‪‘y‬‬
‫!‬
‫‪32‬‬
‫‘ ‘‬
‫’‪‘d‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺗﻮاﺑﻊ ﻣﺮﺑﻮط ﺑﻪ رﺷﺘﻪﻫﺎ‬
‫ﻧﻮع داده ﺧﺮوﺟﻲ‬
‫‪String‬‬
‫‪String‬‬
‫ﻋﻤﻠﻜﺮد‬
‫ﻧﻮع ﭘﺎراﻣﺘﺮ‬
‫‪ String‬اﺗﺼﺎل رﺷﺘﻪﻫﺎ‬
‫‪ String,‬زﻳﺮرﺷﺘﻪ ﺑﺎ ﺷﺮوع از‬
‫‪ pos Integer,‬ﺑﻪ ﺗﻌﺪاد ‪num‬‬
‫ﺗﺎﺑﻊ‬
‫)‪Concat(st1, st2, …, stN‬‬
‫)‪Copy(st, pos, num‬‬
‫‪Integer‬‬
‫‪13‬‬
‫‪Integer‬‬
‫‪ String‬ﻃﻮل رﺷﺘﻪ‬
‫‪Integer‬‬
‫‪ String,‬ﻣﺤﻞ ﺷﺮوع ‪subst‬‬
‫‪ String‬را در ‪ st‬ﭘﻴﺪا ﻣﻲﻛﻨﺪ‬
‫)ﺟﺴﺘﺠﻮ(‪ ،‬ﻣﻘﺪار ‪0‬‬
‫در ﺻﻮرﺗﻲ ﻛﻪ‬
‫‪ subst‬در ‪ st‬ﻧﺒﺎﺷﺪ‪.‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫)‪Length(st‬‬
‫)‪Pos(subst, st‬‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺳﺎﻳﺮ ﺗﻮاﺑﻊ‬
‫ﻧﻮع داده ﺧﺮوﺟﻲ‬
‫‪Boolean‬‬
‫‪14‬‬
‫ﻧﻮع ﭘﺎراﻣﺘﺮ‬
‫‪-‬‬
‫ﻋﻤﻠﻜﺮد‬
‫رﺳﻴﺪن ﺑﺎﻓﺮ ورودي ﺑﻪ ﭘﺎﻳﺎن ﺧﻂ‬
‫را ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ‪.‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﺗﺎﺑﻊ‬
‫‪EOLN‬‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺑﺮﻧﺎﻣﻪ ﺗﺒﺪﻳﻞ ﺣﺮوف ﺑﺰرگ ﺑﻪ ﻛﻮﭼﻚ‬
var
Ch : Char;
begin
WriteLn(‘Please enter a line with capital letters.’);
while not EOLn do
begin
Read(Ch);
if (Ch >= ‘A’) and (Ch <= ‘Z’) then
Ch := Chr(Ord(Ch) + 32);
Write(Ch)
end;
WriteLn;
end.
‫ﻧﻮري‬: ‫ﻣﺪرس‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
15
‫زﻳﺮﺑﺮﻧﺎﻣﻪﻫﺎي ﻣﺮﺑﻮط ﺑﻪ رﺷﺘﻪﻫﺎ‬
‫ﻧﻮع ﭘﺎراﻣﺘﺮ‬
‫ﺗﺎﺑﻊ‬
‫ﻋﻤﻠﻜﺮد‬
‫‪ String, String,‬رﺷﺘﻪ ‪ obj‬را در ﻣﺤﻞ ‪ pos‬در رﺷﺘﻪ ‪Insert(obj, targ, pos) targ‬‬
‫‪ Integer‬ﻗﺮار ﻣﻲدﻫﺪ‪.‬‬
‫‪ Integer/Real,‬ﻋﺪد ‪ numval‬را ﺑﻪ رﺷﺘﻪ ﺗﺒﺪﻳﻞ و در ‪st‬‬
‫‪ String‬ﻗﺮار ﻣﻲدﻫﺪ‪.‬‬
‫)‪Str(numval, st‬‬
‫‪ String,‬رﺷﺘﻪ ‪ st‬را ﺑﻪ ﺻﻮرت ﻋﺪدي در ‪num‬‬
‫‪ Integer/Real,‬ﻗﺮار ﻣﻲدﻫﺪ و ﻣﻘﺪار ‪ code‬ﺻﻔﺮ ﺧﻮاﻫﺪ‬
‫‪ Integer‬ﺑﻮد‪ .‬در ﺻﻮرت ﻋﺪم ﻣﻮﻓﻘﻴﺖ )‪ st‬رﺷﺘﻪاي‬
‫ﺑﻪ ﺻﻮرت ﻋﺪد ﻧﺒﺎﺷﺪ(‪ code ،‬ﻣﺤﻞ اوﻟﻴﻦ‬
‫ﺧﻄﺎﺳﺖ‪.‬‬
‫)‪Val(st, num, code‬‬
‫‪16‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺳﺎﻳﺮ زﻳﺮﺑﺮﻧﺎﻣﻪﻫﺎ‬
‫ﻧﻮع ﭘﺎراﻣﺘﺮ‬
‫ﺗﺎﺑﻊ‬
‫ﻋﻤﻠﻜﺮد‬
‫‪-‬‬
‫اﺟﺮاي ﺑﻠﻮك در ﺣﺎل اﺟﺮا را ﺧﺎﺗﻤﻪ‬
‫ﻣﻲدﻫﺪ‪.‬‬
‫‪Exit‬‬
‫‪-‬‬
‫ﺑﺮﻧﺎﻣﻪ را ﺗﻤﺎم ﻣﻲﻛﻨﺪ‪.‬‬
‫‪Halt‬‬
‫‪-‬‬
‫‪17‬‬
‫‪Randomize‬‬
‫‪ x Ordinal‬را ﻳﻚ واﺣﺪ اﻓﺰاﻳﺶ ﻣﻲدﻫﺪ‪.‬‬
‫)‪Inc(x‬‬
‫‪ x Ordinal‬را ﻳﻚ واﺣﺪ ﻛﺎﻫﺶ ﻣﻲدﻫﺪ‪.‬‬
‫)‪Dec(x‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺗﻤﺮﻳﻦ‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪ ﻣﺤﺎﺳﺒﻪ ﻋﺪد ﭘﻲ ﺑﺎ اﺳﺘﻔﺎده از اﻋﺪاد ﺗﺼﺎدﻓﻲ‪.‬‬
‫‪18‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬