ﻣﺪرس :ﻧﻮري آﺑﺎن 88 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﻴﻤﺎﻧﻪاي )(Modular yﻣﻲﺧﻮاﻫﻴﻢ ﺑﺮﻧﺎﻣﻪاي ﺑﺮاي رﺳﻢ ﺷﻜﻞ زﻳﺮ ﺑﻨﻮﻳﺴﻴﻢ. 2 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﺗﺠﺰﻳﻪ ﺷﻜﻞ yﺑﻬﺘﺮ اﺳﺖ ﺷﻜﻞ را ﺑﻪ ﺑﺨﺶﻫﺎي ﻛﻮﭼﻚﺗﺮ ﺗﻘﺴﻴﻢ ﻛﻨﻴﻢ و ﺷﻜﻞ ﻛﻠﻲ را از اﺗﺼﺎل ﺑﺨﺶﻫﺎي ﻛﻮﭼﻚﺗﺮ رﺳﻢ ﻛﻨﻴﻢ. 3 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﺑﺮﻧﺎﻣﻪ اﺻﻠﻲ yﺑﺮﻧﺎﻣﻪ اﺻﻠﻲ ﺑﻪ ﺻﻮرت زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد. begin ;DrawTriangle ;DrawParallelLines ;DrawBaseLine end. 4 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري رﺳﻢ ﻣﺜﻠﺚ yﻣﻲﺗﻮان رﺳﻢ ﻣﺜﻠﺚ را ﻧﻴﺰ ﺑﻪ اﺟﺰاي ﻛﻮﭼﻜﺘﺮ ﺗﻘﺴﻴﻢ ﻛﺮد. begin ;DrawIntersectingLines ;DrawBaseLine end. 5 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﻧﻮﺷﺘﻦ اﺟﺰاي ﺑﺮﻧﺎﻣﻪ yﺑﺨﺶ رﺳﻢ ﺧﻂ اﻓﻘﻲ ;)’WriteLn(‘-------- yﺑﺨﺶ رﺳﻢ دو ﺧﻂ ﻋﻤﻮدي ;)’| ;)’| ;)’| ;)’| 6 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ |‘(WriteLn |‘(WriteLn |‘(WriteLn |‘(WriteLn ﻣﺪرس: ﻧﻮري ﻧﻮﺷﺘﻦ اﺟﺰاي ﺑﺮﻧﺎﻣﻪ yﺑﺨﺶ رﺳﻢ دو ﺧﻂ ﻣﺘﻘﺎﻃﻊ ‘(WriteLn \/ ;)’ ;)’ \ WriteLn(‘ / WriteLn(‘ / ;)’ \ WriteLn(‘/ ;)’\ 7 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﺑﺮﻧﺎﻣﻪ ﻛﻠﻲ Program Drawing; procedure DrawBaseLine; {Draws a horizontal line} begin WriteLn(‘--------’); end; {DrawBaseline} procedure DrawParallelLines; {Draws two vertical lines} begin WriteLn(‘| |’); WriteLn(‘| |’); WriteLn(‘| |’); WriteLn(‘| |’); end; {DrawParallelLines} ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 8 (ﺑﺮﻧﺎﻣﻪ ﻛﻠﻲ )اداﻣﻪ procedure DrawIntersectingLines; begin WriteLn(‘ /\ ’); WriteLn(‘ / \ ’); WriteLn(‘ / \ ’); WriteLn(‘/ \’) end; {DrawIntersectingLines} procedure DrawTriangle; begin DrawIntersectingLines; DrawBaseLine end; {DrawParallelLines} begin DrawTriangle; DrawParallelLines; DrawBaseLine; end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 9 ﺗﻮﺳﻌﻪ ﺑﺮﻧﺎﻣﻪ yﻣﻲﺧﻮاﻫﻴﻢ اﻧﺪازه ﺷﻜﻞ را ﺗﻐﻴﻴﺮ دﻫﻴﻢ. 10 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري رﺳﻢ ﺧﻂ اﻓﻘﻲ procedure DrawBaseLine(Size : Integer); {Draws a horizontal line} var i : Integer; begin for i := 1 to size do Write(‘-’); WriteLn end; {DrawBaseline} ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 11 رﺳﻢ ﺧﻄﻮط ﻋﻤﻮدي procedure DrawParallelLines(Size : Integer); {Draws two vertical lines} var i, j : Integer; begin for i := 1 to size do begin Write(‘|’); for j := 2 to size-1 do Write(‘ ‘); WriteLn(‘|’) end end; {DrawBaseline} ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 12 رﺳﻢ ﺧﻄﻮط ﻣﺘﻘﺎﻃﻊ procedure DrawIntersectingLines(Size : Integer); var i, j : Integer; begin for i := 1 to size div 2 do begin for j := 1 to size div 2 – i do Write(‘ ‘); Write(‘/’); for j := size div 2 – i + 2 to size div 2 + i - 1 do Write(‘ ‘); WriteLn(‘\’) end end; {DrawIntersectingLines(Size } ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 13 رﺳﻢ ﻣﺜﻠﺚ و ﺷﻜﻞ ﻛﻠﻲ Procedure DrawTriangle(Size : Integer); begin DrawIntersectingLines(Size); DrawBaseLine(Size) end; Procedure DrawHouse(Size : Integer); begin DrawTriangle(Size); DrawParallelLines(Size); DrawBaseLine(Size) end; ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 14 ﺑﺪﻧﻪ اﺻﻠﻲ ﺑﺮﻧﺎﻣﻪ var i : Integer; begin DrawHouse(10); DrawHouse(20); DrawHouse(50); for i := 10 to 20 do DrawHouse(i); end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 15 ﺗﻌﺮﻳﻒ زﻳﺮﺑﺮﻧﺎﻣﻪSyntax procedure ProcedureName(Parameter1 : Type1; Parameter2 : Type2; Parameter3, Parameter4 : Type3); const constant definitions; type type definitions; var variable definitions; begin body of procedure end; ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 16 ﺑﺮﻧﺎﻣﻪاي ﺑﺎ دو زﻳﺮﺑﺮﻧﺎﻣﻪ procedure ProcA; begin WriteLn(‘A’) end; procedure ProcB; begin WriteLn(‘B’) end; begin ProcB; ProcA; ProcB end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 17 ﻓﺮاﺧﻮاﻧﻲ زﻳﺮﺑﺮﻧﺎﻣﻪ yدر ﻣﺜﺎل ﻗﺒﻠﻲ ،ﻓﺮاﺧﻮاﻧﻲ زﻳﺮﺑﺮﻧﺎﻣﻪ ﺑﺎ ذﻛﺮ ﻛﺮدن ﻧﺎم آن اﻧﺠﺎم ﻣﻲﺷﺪ. … begin ;ProcB ;ProcA ProcB end. 18 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﻓﺮاﺧﻮاﻧﻲ زﻳﺮﺑﺮﻧﺎﻣﻪ procedure SayHello; var Name: String; begin {SayHello} Write('Enter your name:'); ReadLn(Name); WriteLn('Hello ', Name); end; {SayHello} .... begin ... SayHello; ... ﻧﻮري: ﻣﺪرس Main Program ... SayHello ... Procedure SayHello Name ask for Name Ali SayHello to Name return to Main Program ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 19 اﺿﺎﻓﻪ ﻛﺮدن ﭘﺎراﻣﺘﺮ procedure SayHelloTo(Name:String); begin WriteLn('Hello', Name); end; .... begin ... Write('Enter student name:'); ReadLn(StdName); SayHelloTo(StdName); ... ﻧﻮري: ﻣﺪرس Main Program StudentName ... ask for Name SayHello ... Ali Ali Procedure SayHelloTo Name SayHello to Name return to Main Program ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ Ali 20 ﭘﺎراﻣﺘﺮﻫﺎ yﭘﺎراﻣﺘﺮﻫﺎي اﺻﻠﻲ ) :(Actualﭘﺎراﻣﺘﺮﻫﺎﻳﻲ ﻛﻪ واﻗﻌﺎً ﻫﻨﮕﺎم ﻓﺮاﺧﻮاﻧﻲ زﻳﺮﺑﺮﻧﺎﻣﻪ ،ﺑﻪ آن ارﺳﺎل ﻣﻲﺷﻮد. yدر ﻣﺜﺎل ﻗﺒﻞ StdNameﻳﻚ ﭘﺎراﻣﺘﺮ اﺻﻠﻲ اﺳﺖ. yﭘﺎراﻣﺘﺮﻫﺎي ﻗﺮاردادي ) :(Formalﭘﺎراﻣﺘﺮﻫﺎﻳﻲ ﻛﻪ ﺑﻪ ﻫﻨﮕﺎم ﺗﻌﺮﻳﻒ زﻳﺮﺑﺮﻧﺎﻣﻪ اﺳﺘﻔﺎده ﻣﻲﺷﻮﻧﺪ و ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﭘﺎراﻣﺘﺮﻫﺎي اﺻﻠﻲ ﻫﺴﺘﻨﺪ .ﻧﻮع ﭘﺎراﻣﺘﺮﻫﺎي ﻗﺮاردادي ﺑﺎﻳﺪ ﺗﻌﻴﻴﻦ ﺷﻮد. yدر ﻣﺜﺎل ﻗﺒﻞ Nameﭘﺎراﻣﺘﺮ ﻗﺮاردادي اﺳﺖ. 21 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﺗﻨﺎﻇﺮ ﺑﻴﻦ ﭘﺎراﻣﺘﺮﻫﺎ procedure SayHelloTo(Name, SurName: String; Age: Integer); begin WriteLn('Hello ', Name, ' ', SurName); WriteLn('You are ', Age:2, ‘ years old') end; .... begin ... Write('Enter student name: '); ReadLn(StdName); Write('Enter student surname: '); ReadLn(StdSurName); Write('Enter student age: '); ReadLn(StdAge); SayHelloTo(StdName, StdSurName, StdAge); ... ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 22 ﺗﻨﺎﻇﺮ ﺑﻴﻦ ﭘﺎراﻣﺘﺮﻫﺎ procedure ComputeSalary(Rate, Hours:Real); var Salary: Real; begin Salary := Rate * Hours; WriteLn('Your salary is $',Salary:4:2) end; .... begin ... Write('Enter employee hourly rate: '); ReadLn(EmpRate); Write('Enter hours worked: '); ReadLn(EmpHours); ComputeSalary(EmpRate, EmpHours); ... Main Program EmpRate 25 EmpHours 40 ComputeSalary Rate 25 Hours 40 Salary 1000 ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 23 ( و ﺳﺮاﺳﺮيlocal) ﻣﺘﻐﻴﺮﻫﺎي ﻣﺤﻠﻲ (global) var k : Integer; procedure ProcA; begin WriteLn(‘A’); WriteLn(‘K is ‘, k); k := 20; WriteLn(‘K is ‘, k) end; procedure ProcB; var k : Integer; begin WriteLn(‘B’); WriteLn(‘K is ‘, k); k := 40; WriteLn(‘now K is ‘, k) end; begin k := 5; ProcA; ProcB end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 24 ﺗﻐﻴﻴﺮ ﻣﺘﻐﻴﺮ ﺳﺮاﺳﺮي var k : Integer; procedure ProcA; begin WriteLn(‘A’); WriteLn(‘K is ‘, k); k := 4 end; begin k := 5; ProcA; WriteLn(‘k is ‘, k) end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 25 ﺗﻐﻴﻴﺮ ﭘﺎراﻣﺘﺮﻫﺎ var k : Integer; procedure ProcA(k : integer); begin WriteLn(‘A’); WriteLn(‘K is ‘, k); k := 4 end; begin k := 5; ProcA(k); WriteLn(‘k is ‘, k) end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 26 ﺗﻐﻴﻴﺮ ﭘﺎراﻣﺘﺮﻫﺎ yاﮔﺮ در ﺑﺮﻧﺎﻣﻪ ﻗﺒﻠﻲ ﭘﺎراﻣﺘﺮ kاز ﻧﻮع Realﺑﺎﺷﺪ ،ﭼﻪ اﺗﻔﺎﻗﻲ ﻣﻲاﻓﺘﺪ. yدر ﺧﺮوﺟﻲ ﭼﻪ اﺗﻔﺎﻗﻲ ﻣﻲاﻓﺘﺪ. 27 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﭘﺎراﻣﺘﺮﻫﺎي ﻏﻴﺮﻫﻢﻧﺎم var k, j : Integer; procedure ProcA(may, kay : integer); begin WriteLn(‘A’); WriteLn(‘kay is ‘, kay, ‘ may is ‘, may); kay := 4 end; begin k := 5; j := 3; ProcA(k, j); WriteLn(‘k is ‘, k) end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 28 var Salary : Real; i, Number : Integer; ﺑﺮﻧﺎﻣﻪ ﭼﺎپ ﺣﻘﻮق procedure Plot(celery : Real); var k, m : Integer; begin k := Round(celery / 1000); Write(‘$’, celery:1:0, ‘:’); for m := 1 to k do Write(‘$’); WriteLn begin end; WriteLn(‘What is the number of people to be processed?’); . ReadLn(number); . WriteLn(‘Please type your ‘, number , ‘ salaries’); . for i := 1 to number do begin ReadLn(Salary); Plot(Salary) end end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 29 var Salary : Real; i, Number : Integer; Symbol : Char; ﺗﻜﻤﻴﻞ ﺑﺮﻧﺎﻣﻪ $ رﺳﻢ ﻛﺎراﻛﺘﺮ دﻟﺨﻮاه ﺑﻪﺟﺎيy procedure Plot(celery : Real, Symbol : Char); var k, m : Integer; begin k := Round(celery / 1000); Write(Symbol, celery:1:0, ‘:’); for m := 1 to k do Write(Symbol); begin WriteLn WriteLn(‘What symbol will be used for plotting?’); end; ReadLn(Symbol); . WriteLn(‘What is the number of people to be processed?’); . ReadLn(number); . WriteLn(‘Please type your ‘, number , ‘ salaries’); for i := 1 to number do begin ReadLn(Salary); Plot(Salary, Symbol) end end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 30 ﺑﺮﮔﺮداﻧﺪن ﻣﻘﺪار ﺧﺮوﺟﻲ yزﻳﺮﺑﺮﻧﺎﻣﻪ ﺑﺮﺧﻼف ﺗﺎﺑﻊ ﻧﻤﻲﺗﻮاﻧﺪ ﻣﻘﺪار ﺧﺮوﺟﻲ داﺷﺘﻪ ﺑﺎﺷﺪ. yوﻟﻲ ﻣﻲﺗﻮان از ﭘﺎراﻣﺘﺮﻫﺎ ﺑﺮاي ﺑﺮﮔﺮداﻧﺪن ﻣﻘﺪار ﻳﺎ ﻣﻘﺎدﻳﺮي اﺳﺘﻔﺎده ﻛﺮد. yدر ﻣﺜﺎل ﻗﺒﻞ اﮔﺮ ﺑﺨﻮاﻫﻴﻢ ﻣﻘﺪار Salaryﺑﻪ ﺑﺮﻧﺎﻣﻪ اﺻﻠﻲ ﺑﺮﮔﺮداﻧﺪه ﺷﻮد ،ﺑﺎﻳﺪ ﭼﻪ ﻛﺎري اﻧﺠﺎم دﻫﻴﻢ؟ 31 40 40 Main Program ... 25 ask for Hours, Rate ComputeSalary add Salary to TotalSalary ... 25 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ Procedure ComputeSalary 40 25 1000 calculate the salary display the salary ﻣﺪرس: ﻧﻮري اﻧﻮاع ﭘﺎراﻣﺘﺮﻫﺎي ﻳﻚ زﻳﺮﺑﺮﻧﺎﻣﻪ yﭘﺎراﻣﺘﺮﻫﺎي ﻣﻘﺪاري ) :(Valueاﻳﻦ ﭘﺎراﻣﺘﺮﻫﺎ ﻓﻘﻂ ﻣﻘﺪار ارﺳﺎل ﺷﺪه ﺑﻪ زﻳﺮﺑﺮﻧﺎﻣﻪ را ﺑﻪ آن ﺗﺤﻮﻳﻞ ﻣﻲدﻫﻨﺪ. yﭘﺎراﻣﺘﺮﻫﺎي ﻣﺘﻐﻴﺮي ) :(Variableاﻳﻦ ﭘﺎراﻣﺘﺮﻫﺎ ﻋﻼوه ﺑﺮ ﺗﺤﻮﻳﻞ ﻣﻘﺪار ارﺳﺎل ﺷﺪه ،ﻣﻘﺪار ﻧﻬﺎﻳﻲ را ﺑﻪ ﺑﺮﻧﺎﻣﻪ اﺻﻠﻲ ﺑﺮﻣﻲﮔﺮداﻧﻨﺪ. 32 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﺑﺮﮔﺮداﻧﺪن ﻣﻘﺪار ﺧﺮوﺟﻲ procedure ComputeSalary(Rate, Hours:Real; var Salary:Real); begin Salary := Rate * Hours; WriteLn('Your salary is $', Salary:4:2,') end; .... begin ... Write('Enter employee hourly rate: '); ReadLn(EmpRate); Write('Enter hours worked: '); ReadLn(EmpHours); ComputeSalary(EmpRate, EmpHours, EmpSalary); TotSal := TotSal + EmpSalary; ... ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 33 ﺑﺮﮔﺮداﻧﺪن ﻣﻘﺪار ﺧﺮوﺟﻲ ﻣﻘﺎدﻳﺮ ﻣﻨﺘﻘﻞ ﻣﻲﺷﻮﻧﺪ، و ﻓﻀﺎي ﺟﺪﻳﺪي در ﺣﺎﻓﻈﻪ ﺑﺮاي ﭘﺎراﻣﺘﺮﻫﺎ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮد. ComputeSalary Hours 40 Rate 25 Salary EmpRate EmpHours 40 EmpSalary 1000 ﻣﻘﺎدﻳﺮ ﻣﻨﺘﻘﻞ ﻧﻤﻲﺷﻮد. ﺣﺎﻓﻈﻪ ﺟﺪﻳﺪي اﻳﺠﺎد ﻧﻤﻲﺷﻮد. Salaryﺑﻪ ﻣﺤﻞ EmpSalary در ﺣﺎﻓﻈﻪ اﺷﺎره ﻣﻲﻛﻨﺪ. 34 Main Program ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 25 TotSal 3000 ﻣﺪرس: ﻧﻮري program Sort3Numbers; var Num1, Num2, Num3 : Real; ﻣﺮﺗﺐ ﻛﺮدن ﺳﻪ ﻋﺪد {three variables being sorted} procedure Order (var X, Y {input/output} : Real); var Temp : Real; {copy of number originally in X} begin {Order} if X > Y then begin {Switch the values of X and Y} Temp := X; {Store old X in Temp.} X := Y; {Store old Y in X.} Y := Temp {Store old X in Y.} end {if} end; {Order} begin {Sort3Numbers} WriteLn ('Enter 3 numbers to be sorted separated by spaces> '); ReadLn (Num1, Num2, Num3); {Sort Order Order Order the numbers} (Num1, Num2); (Num1, Num3); (Num2, Num3); {Order the data in Num1 and Num2.} {Order the data in Num1 and Num3.} {Order the data in Num2 and Num3.} {Print the results.} WriteLn ('The three numbers in order are:'); WriteLn (Num1 :8:2, Num2 :8:2, Num3 :8:2) end. {Sort3Numbers} ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 35 ﺗﻤﺮﻳﻦ yزﻳﺮﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺟﻮابﻫﺎي ﻣﻌﺎدﻟﻪ درﺟﻪ دوي را ﻛﻪ ﺿﺮاﻳﺐ آن را ﺗﻮﺳﻂ ﭘﺎراﻣﺘﺮﻫﺎﻳﺶ درﻳﺎﻓﺖ ﻣﻲﻛﻨﺪ ،ﭼﺎپ ﻧﻤﺎﻳﺪ. yزﻳﺮﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻣﻘﺴﻮمﻋﻠﻴﻪﻫﺎي ﺗﻨﻬﺎ ﭘﺎراﻣﺘﺮش را ﭼﺎپ ﻛﻨﺪ. 36 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري
© Copyright 2025 Paperzz