ﻣﺪرس :ﻧﻮري
آذر 88
ﻣﺴﺎﻟﻪ
yﻣﻲﺧﻮاﻫﻴﻢ ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﻢ ﻛﻪ ﻧﻤﺮه ﺗﻌﺪادي از داﻧﺸﺠﻮﻳﺎن را درﻳﺎﻓﺖ
ﻛﺮده و ﻧﻤﺮاﺗﻲ را ﻛﻪ از ﻣﻴﺎﻧﮕﻴﻦ ﺑﻴﺸﺘﺮﻧﺪ ﭼﺎپ ﻛﻨﺪ.
yﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ ﺑﺎ ﺑﺮﻧﺎﻣﻪاي ﻛﻪ ﺣﺪاﻛﺜﺮ و ﺣﺪاﻗﻞ ﻧﻤﺮات را اﻋﻼم ﻣﻲﻛﻨﺪ.
2
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﭼﺎپ ﻧﻤﺮات ﺑﻴﺸﺘﺮ از ﻣﻴﺎﻧﮕﻴﻦ
ﻧﻤﺮات را درﻳﺎﻓﺖ ﮐﻦ
ﻣﻴﺎﻧﮕﻴﻦ را ﺣﺴﺎب ﮐﻦ
ﻧﻤﺮات ﺑﺎﻻﺗﺮ از ﻣﻴﺎﻧﮕﻴﻦ را
ﭼﺎپ ﮐﻦ
3
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﭼﺎپ ﻧﻤﺮات ﺑﻴﺸﺘﺮ از ﻣﻴﺎﻧﮕﻴﻦ
y
y
y
y
4
ﻧﻤﺮات ﻳﻚ ﺑﺎر ﺑﺎﻳﺪ ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﻣﻴﺎﻧﮕﻴﻦ اﺳﺘﻔﺎده ﺷﻮﻧﺪ و ﺑﺎر دﻳﮕﺮ ﺑﺮاي
ﺗﻌﻴﻴﻦ ﻧﻤﺮات ﺑﺎﻻﺗﺮ از ﻣﻴﺎﻧﮕﻴﻦ
اﮔﺮ ﺗﻌﺪاد ﻧﻤﺮات ﻣﺸﺨﺺ و ﻣﺤﺪود ﺑﺎﺷﺪ )ﻣﺜﻼً 5ﻧﻤﺮه( ﻣﻲﺗﻮان 5ﻣﺘﻐﻴﺮ
ﺗﻌﺮﻳﻒ ﻛﺮد.
اﺳﺘﻔﺎده از آراﻳﻪ
آراﻳﻪ ﻣﺠﻤﻮﻋﻪاي از ﻣﺘﻐﻴﺮﻫﺎي ﺑﺎ ﻧﺎم و ﻧﻮع ﻳﻜﺴﺎن اﺳﺖ ﻛﻪ ﺑﺎ اﻧﺪﻳﺲ از
ﻳﻜﺪﻳﮕﺮ ﻣﺘﻤﺎﻳﺰ ﻣﻲﺷﻮﻧﺪ.
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﺗﻌﺮﻳﻒ آراﻳﻪ
var
Grades : array [1..100] of Integer;
type
GradeArray = array[1..100] of Integer;
var
Grades : GradeArray;
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
5
ﺗﻌﺮﻳﻒ آراﻳﻪSyntax
var
array_name : array [min_index..max_index] of type;
type
array_type : array [min_index..max_index] of type;
var
array_name : array_type;
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
6
آراﻳﻪ
y
y
y
y
ﻣﺘﻐﻴﺮﻫﺎي ﻫﻢ ﻧﺎم و ﻫﻢ ﻧﻮع
ﻣﻲ ﺗﻮان ﺑﻪ ﺗﻚ ﺗﻚ اﻋﻀﺎ دﺳﺘﺮﺳﻲ ﭘﻴﺪا ﻛﺮد و ﻫﻤﺎﻧﻨﺪ ﻣﺘﻐﻴﺮﻫﺎي ﺳﺎده
ﻣﻮرد ﭘﺮدازش ﻗﺮار داد.
ﺑﺮاي دﺳﺘﺮﺳﻲ ﺑﻪ ﻫﺮ ﻳﻚ از اﻋﻀﺎي آراﻳﻪ ،از ﻳﻚ اﻧﺪﻳﺲ اﺳﺘﻔﺎده
ﻣﻲﺷﻮد.
اﻧﺪﻳﺲ ﺑﺎﻳﺪ از ﻧﻮع داده ﻫﺎي ﻗﺎﺑﻞ ﺷﻤﺎرش ﺑﺎﺷﺪ.
Boolean ،Char ،Integer yو ﮔﻮﻧﻪﻫﺎي ﺷﻤﺎرﺷﻲ
yﻧﻮع اﻋﻀﺎي آراﻳﻪ ﻣﻲﺗﻮاﻧﺪ ﻫﺮ ﻧﻮع از ﻗﺒﻞ ﺗﻌﺮﻳﻒ ﺷﺪهاي ﺑﺎﺷﺪ.
String ،Boolean ،Char ،Real ،Integer yو ...
7
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﻣﺜﺎل ﺗﻌﺮﻳﻒ آراﻳﻪ
var
a
b
x
y
z
ﻧﻮري: ﻣﺪرس
:
:
:
:
:
Array
Array
Array
Array
Array
[ 1 .. 100 ] of Integer ;
[ -10 .. 20 ] of Real;
[ 0 .. 10 ] of Boolean;
[’a’ .. ’z’ ] of Real;
[Char] of Real;
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
8
ﻣﺜﺎل ﺗﻌﺮﻳﻒ آراﻳﻪ
const
NumEmp = 20;
type
EmpRange = 1 .. NumEmp;
EmpArray = array[EmpRange] of Boolean;
Day = (Monday, Tuesday, Wednesday, Thursday, Friday,
Saturday, Sunday);
DayArray = array[Day] of Real;
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
9
دﺳﺘﺮﺳﻲ ﺑﻪ اﻋﻀﺎي آراﻳﻪ
]array_name [index
]a[100
]b[-9
]’x[’x
]DArr[Monday
اﻧﺪﻳﺲ ﺑﺎﻳﺪ ﺑﺎ ﻧﻮﻋﻲ ﻛﻪ در ﻗﺴﻤﺖ ﺗﻌﻴﻴﻦ
ﻧﻮع آراﻳﻪ ﺑﺮاي اﻧﺪﻳﺲ ﺗﻌﻴﻴﻦ ﺷﺪه ﺳﺎزﮔﺎر
ﺑﺎﺷﺪ و در ﻣﺤﺪوده ﺻﺪق ﻛﻨﺪ.
10
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
دﺳﺘﺮﺳﻲ ﺗﺮﺗﻴﺒﻲ
yدﺳﺘﺮﺳﻲ ﺗﺮﺗﻴﺒﻲ ﺑﻪ ﻣﻌﻨﺎي دﺳﺘﺮﺳﻲ اﻋﻀﺎي آراﻳﻪ از اﺑﺘﺪا ﺗﺎ اﻧﺘﻬﺎي آن
اﺳﺖ.
yﻣﺜﻼً ﺑﺮاي ﭘﺮﻛﺮدن آراﻳﻪاي ﺑﺎ ﻧﺎم AprilTempﺑﺎﻳﺪ ﺑﺮاي ﻫﺮ روز
ﻣﻘﺪاري را ﻣﺸﺨﺺ ﻛﻨﻴﻢ.
yدر ﺣﺎﻟﺖ ﻛﻠﻲ اﻳﻦ ﻛﺎر ﺑﺎ اﺳﺘﻔﺎده از ﻳﻚ ﺣﻠﻘﻪ forﻗﺎﺑﻞ اﻧﺠﺎم اﺳﺖ.
22
25
26
]A[28] A[29] A[30
11
23
18
19
21
24
22
]A[6
]A[5
]A[4
]A[3
]A[2
]A[1
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
دﺳﺘﺮﺳﻲ ﺗﺮﺗﻴﺒﻲ
program TemperatureHigh;
type
AprilTemp = array [1..30] of
Real;
var
A : AprilTemp;
I : Integer;
begin
ﭘﺮ ﻛﺮدن آراﻳﻪ
for I:= 1 to 30 do
begin
Write('Enter Temperature for
day ', I, ' : ');
ReadLn(A[I]);
end;
WriteLn('All temperature values
have been read');
ﻧﻮري: ﻣﺪرس
WriteLn('Now computing the
average...');
دﺳﺘﺮﺳﻲ
Tot := 0;
ﺗﺮﺗﻴﺒﻲ
for I:= 1 to 30 do
Tot := Tot + A[I];
AverTemp := Tot / 30;
WriteLn('The average temperature
for the month april is ',
AverTemp:4:2);
end.
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
12
آراﻳﻪ و ﺗﺎﺑﻊ-زﻳﺮﺑﺮﻧﺎﻣﻪ
yآراﻳﻪ ﻫﺎ را ﻣﻲﺗﻮان ﺑﻪ ﻋﻨﻮان ﭘﺎراﻣﺘﺮ ﺗﺎﺑﻊ ﻳﺎ زﻳﺮﺑﺮﻧﺎﻣﻪ اﺳﺘﻔﺎده ﻛﺮد.
yﻣﻲﺗﻮان ﻋﻨﺎﺻﺮ آراﻳﻪ را ﺑﻪ ﺻﻮرت ﻣﺠﺰا ارﺳﺎل ﻛﺮد.
yﻣﻲﺗﻮان ﻛﻞ آراﻳﻪ را ﺑﻪ ﻋﻨﻮان ﻳﻚ ﭘﺎراﻣﺘﺮ ارﺳﺎل ﻛﺮد.
13
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﻋﻨﺎﺻﺮ آراﻳﻪ ﺑﻪ ﺻﻮرت ﭘﺎراﻣﺘﺮ
program TemperatureHigh2;
type
AprilTemp = array [1..30] of Real;
var
A : AprilTemp;
I : Integer;
Tot, AverTemp : Real;
procedure GetTemp(J: Integer; var T
: Real);
begin
Write('Enter Temperature for day
', J, ' : ');
ReadLn(T);
end;
begin
for I:= 1 to 30 do
ﻧﻮري: ﻣﺪرس
GetTemp(I, A[I]);
WriteLn('All temperature values
have been read');
WriteLn('Now computing the
average...');
Tot := 0;
for I:= 1 to 30 do
Tot := Tot + A[I];
AverTemp := Tot / 30;
WriteLn('The average temperature
for the month april is ',
AverTemp:4:2);
end.
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
14
ﻛﻞ آراﻳﻪ ﺑﻪ ﺻﻮرت ﭘﺎراﻣﺘﺮ
program TemperatureHigh3;
type
AprilTemp = array [1..30] of Real;
var
A : AprilTemp;
I : Integer;
Tot, AverTemp : Real;
procedure GetTemp(J: Integer;
var T : Real);
begin
Write('Enter Temperature for
day ', J, ' : ');
ReadLn(T);
end;
function FindAver(Temps :
AprilTemp): Real;
begin
ﻧﻮري: ﻣﺪرس
Tot := 0;
for I:= 1 to 30 do
Tot := Tot + A[I];
FindAver := Tot / I;
end;
begin
for I:= 1 to 30 do
GetTemp(I, A[I]);
WriteLn('All temperature values
have been read');
WriteLn('Now computing the
average...');
AverTemp := FindAver(A);
WriteLn('The average temperature
for the month april is ',
AverTemp:4:2);
end.
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
15
آراﻳﻪ ﺑﻪ ﺻﻮرت ﭘﺎراﻣﺘﺮ
yزﻣﺎﻧﻲ ﻛﻪ ﻛﻞ آراﻳﻪ ﺑﻪ ﺻﻮرت ﭘﺎراﻣﺘﺮ ارﺳﺎل ﻣﻲﺷﻮد ،ﺑﺎﻳﺪ آراﻳﻪ را در
ﻗﺴﻤﺖ typeﺗﻌﺮﻳﻒ ﻛﺮده ﺑﺎﺷﻴﺪ.
var
;x : array[1..200] of real
;)procedure Practice (var A : array[1..200] of real
...
type
;)Practice(x
;List200 = array[1..200] of real
var
;x : List200
اﻳﻦ ﺷﻜﻞ ﺗﻌﺮﻳﻒ ﭘﺎراﻣﺘﺮ
ﻏﻠﻂ اﺳﺖ
;)procedure Practice (var A : List200
…
;)Practive(x
16
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﭼﻨﺪ ﻣﺜﺎل
const
size = 10;
last = 99;
type
sub = 'a'..'z';
color = (green, yellow, red, orange, blue );
var
chararray : ARRAY [1..size] of char;
{an array of 10 characters. First element is chararray[1], last element is chararry[10] }
intarray : ARRAY [sub] of integer;
{an array of 26 integers. First element is intarray['a'] last element is intarray['z'] }
realarray : ARRAY [5..last] of real;
{an array of 95 real numbers. First element is realarray[5] last element is realarray[99] }
artstick : ARRAY [-3..2] of color;
{an array of 6 colors. First element is artstick[-3] last element is artstick[2] }
huearray : ARRAY [color] of char;
{an array of 6 characters. First element is huearray[green] last element is huearray[blue] }
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
17
ﺑﺮﻧﺎﻣﻪ ﻣﺴﺎوي ﺑﻮدن دو آراﻳﻪ
var
n : Integer;
x, y : array [ 1 .. 40 ] of Char;
IsEqual : Boolean;
begin
IsEqual := true;
for n := 1 to 40 do
if x[n] <> y[n] then
begin
IsEqual := false;
break;
end;
if IsEqual then Writeln ('Equal')
else Writeln ('Not Equal');
end.
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
18
ﺑﺮﻧﺎﻣﻪ ﭼﺎپ ﻧﻤﺮات ﺑﺎﻻﺗﺮ از ﻣﻴﺎﻧﮕﻴﻦ
var
Grades : array [1..10] of Integer;
Index, Sum : Integer;
Mean : Real;
begin
Sum := 0;
for Index := 1 to 10 do
begin
ReadLn(Grades[Index]);
Sum := Sum + Grades[Index];
end;
Mean := Sum / 10;
for Index := 1 to 10 do
if Grades[Index] > Mean then
WriteLn(Index, ':', Grades[Index])
end.
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
19
ﺑﺎزه آراﻳﻪﻫﺎ
ﺧﻄﺎي
const
constant out of range
;MAX_GRADES = 100
var
;Grades : array [1..MAX_GRADES] of Integer
begin
…
;Grades[102] := 0
I : = 103
;Grades[i] := 0
ﻓﻘﻂ در ﺻﻮرﺗﻲ ﮐﻪ از دﺳﺘﻮر زﻳﺮ اﺳﺘﻔﺎدﻩ ﺷﻮد
}{$R+
20
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﺑﺎزه آراﻳﻪﻫﺎ
Program TestArrayRange;
var
A : array [1..4] of real;
x : real;
i : Integer;
begin
for i := 1 to 4 do
A[i] := i;
x := 123.456;
for i:= 1 to 5 do
begin
Write(i:2, ':');
WriteLn(A[i]:10:4)
end
end.
ﻧﻮري: ﻣﺪرس
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
21
ﻣﻘﺪاردﻫﻲ آراﻳﻪﻫﺎ
yاز دﺳﺘﻮر Readو ReadLnﻧﻤﻲﺗﻮان ﺑﺮاي ﻣﻘﺪار دﻫﻲ آراﻳﻪ اﺳﺘﻔﺎده
ﻛﺮد.
yاز Writeو WriteLnﻫﻢ ﻧﻤﻲﺗﻮان ﺑﺮاي ﭼﺎپ آراﻳﻪ اﺳﺘﻔﺎده ﻛﺮد.
yاﻣﺎ ﻣﻲﺗﻮان از دﺳﺘﻮر اﻧﺘﺴﺎب ﺑﺮاي ﻣﻘﺪار دﻫﻲ اﺳﺘﻔﺎده ﻛﺮد.
;)ReadLn(A
;)WriteLn(A
;B := A
22
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
ﺗﻤﺮﻳﻦ
yﺗﺎﺑﻌﻲ ﺑﺮاي ﺗﻌﻴﻴﻦ ﻣﺮﺗﺐ ﺑﻮدن ﻳﻚ آراﻳﻪ ﺑﻨﻮﻳﺴﻴﺪ )ﭘﺎراﻣﺘﺮﻫﺎ :آراﻳﻪ و
اﻧﺪازه آن(
yﺗﺎﺑﻌﻲ ﺑﺮاي ﺗﻌﻴﻴﻦ ﻣﻴﻨﻴﻤﻢ ﻋﻨﺎﺻﺮ ﻳﻚ آراﻳﻪ ﺑﻨﻮﻳﺴﻴﺪ.
yﺗﺎﺑﻊ ﺿﺮب دو ﻣﺎﺗﺮﻳﺲ را ﺑﻨﻮﻳﺴﻴﺪ.
yزﻳﺮﺑﺮﻧﺎﻣﻪاي ﻛﻪ ﻟﻴﺴﺖ ﻋﻨﺎﺻﺮ را ﺑﻪ ﺻﻮرت ﻣﻌﻜﻮس ﻣﻲﻧﻮﻳﺴﺪ.
23
ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
ﻣﺪرس: ﻧﻮري
© Copyright 2026 Paperzz