
البرمجة بلغة باسكال
ةٌجمرب مٌهافم
ًحتوي هذا الملف سلسلة محاضرات تم اعطاؤها فٌ
ب على الحاسوبٌردتلل دسلأا لساب دٌهشلا زكرم
أمجد طه
10
/
10
/
0141

: ة الى البرنامجٌمزراوخلا نم لاقتنلاا
0
-
القراءة
ر عن القراءة عند كتابةٌبعتلا
: ةٌمزراوخ
اقرأ
A
: لغة باسكالًف
Read (A);
Readln (A);
0
-
الكتابة
اكتب: تاٌمزراوخلا
A
,
"
the value is
:
"
4
-
: االسناد
اتٌمزراوخلا
A:=B3 +C
: لغة باسكالًف
A:= B * B * B + C
1
-
ةٌطرشلا تامٌلعتلا
أ
-
الشرط
اتٌمزراوخلا
( اذا
A<0
) نفذ
>
ماتٌلعت ةعومجم
<
: لغة باسكالًف
If (A<0)then
Begin
..........
End

ب
-
ارٌتخلاا
اتٌمزراوخلا
اذا
(
A<0
) نفذ
>
ماتٌلعت ةعومجم
<
و
اال
>
ماتٌلعت ةعومجم
<
لغة باسكال
If (A<0)then
Begin
………
End
Else
Begin
..........
End
5
-
التكرار

اتٌمزراوخلا
مات طالما شرط محققٌلعتلا نم ةعومجم راركت
( طالما
i
ساويٌ وأ رغصأ
n
) كرر
>
ماتٌلعت ةعومجم
<
: لغة باسكال
While (i<= n) do
Begin
.............
End
راتٌغتملا عاونا
: لغة باسكالًف ةٌباسحلا تاٌلمعلا
1
-
ة األربعةٌباسحلا تاٌلمعلا
+ الجمع
الطرح
-
* الضرب
القسمة
/
أمثلة

C : = a + b;
S: = a – b;
E: = a * b;
D: = a/b;

Yes
no
ةٌادب
أدخل درجة
الطالب
x
If x>=90and
x<=100
If x>=80and
x<90
If x>=60and
x<70
If x>=70and
x<80
If x>60
أظهر
A
أظهر
B
أظهر
D
أظهر
C
أظهر
Fail
ةٌاهن

no
yes
ةٌادب
While x< >0
b= x mod 2
2
x = x div
أظهر
b
أدخل عدد
x
)حٌحص ددع(
ةٌاهن

)ًح الى عدد ثنائٌحص ددع لٌوحتل جمانرب( قباسلا ططخملل قٌبطت
program dectobinary;
var x,b:integer;
begin
writeln('enter decimal number');
readln(x);
while(x<>0) do
begin
b:= x mod 2;
x:= x div 2;
writeln(b);
end
end.

نٌددعل ربكلأا كرتشملا مساقلا باسحل جمانرب
program findgcd;
var a,b :integer;
gcd:integer;
begin
writeln('enter two numbers');
readln(a,b);
while (a<>b)do
begin
if(a>b) then
begin
a:=a-b;
end
else
b:=b-a;
end;
gcd:=a;
writeln('grand common divider =',gcd);
end.

لمجموعة من األعدادًباسحلا طسوتملا و رغصلأا و ربكلأا ددعلا باسحل جمانرب
program minmax;
var n,i : integer;
x,xmax,xmin,xmean:real;
begin
readln(n);
readln(x);
xmin:=x;xmax:=x;Xmean:=x;
i:=1;
while(i<n) do
begin
readln(x);
if(x<xmin) then
xmin:=x;
if(x>xmax)then
xmax:=x;
xmean:=xmean+x;
i:=i+1;
end;
writeln('Max=',xmax);
writeln('Min=',xmin);
writeln('Mean=',xmean/n);
end.


ةٌناثلا ةجردلا نم تلاداعملا لحل جمانرب
program equation;
var a,b,c :real;
d,rd,rx,ry,x,x1,x2:real;
begin
writeln('equation of type ax2+bx+c Enter values for a b c');
readln(a,b,c);
if(a=0) then
begin
writeln('equation is not second degree');
if(b<>0)then
writeln('solution=',-c/b)
else
writeln('Equation is triaval or not correct');
end
else
begin
d:=b*b-4*a*c;
if(d=0)then
begin
x:=-b/(2*a);
writeln('identical roots');
end
else
if(d>0) then

begin
rd:=sqrt(d);
x1:=(-b-rd)/(2*a);
x2:=(-b+rd)/(2*a);
writeln('two real roots');
writeln('x1=',x1,'x2=',x2);
end
else
begin
rd:=sqrt(abs(d));
rx:=-b/(2*a);
ry:=rd/(2*a);
writeln('complex roots:');
writeln('x1=',rx,'+i',ry);
writeln('x2=',rx,'-i',ry);
end;
end;
end.

: للبرنامج السابقًقفدتلا ططخملا
و إال
ةٌادب
مة أمثالٌق أرقا
x
a, b, c
D= b * b- 4 * a * c
اذا كان
D = 0
X=-b/(2*a)
اذا كان
D > 0
Rd =sqrt(d)
X1=-b-rd/(2*a)
X1=-b+rd/(2*a)
Rd =sqrt(d)
Rx=-b/(2*a)
Ry
=
rd/(2*a)
ةٌاهن

قوم بطباعة األعداد منٌ لاكساب ةغلب جمانرب بتكا
0
الى
01
: لهذه األعدادًباسحلا طسوتملا و عومجملا ةعابط مث
begin
end
While
i<=10
Write i
Sum=sum+i
Average=sum/10
a
Write
sum,average
I=i+1
a
I=1
Sum=0

: لهذه األعدادًباسحلا طسوتملا و عومجملا داجٌا حٌتافملا ةحول نم دادعلأا نم ةعومجم ةءارقب موقٌ لاكساب ةغلب جمانرب بتكا
begin
end
Read n
While
i<=10
Read x
Sum=sum+x
Average=sum/n
Write
sum,average
I=i+1
a
I=5
Sum=0

برنامج لحساب
n!
begin
Read x
While
x<>0
Fact= x * (x-1)
N=n-1
Write fact
end

ة منٌجوزلا دادعلأا ءادج و عومجم باسحب موقٌ لاكساب ةغلب جمانرب بتكا
0
حتى
01
:
begin
end
While
i<=60
Write i
Sum=sum+i
M=m*i
a
Write sum,m,I
I=i+2
a
I=2
Sum=0 , m=1

Repeat ……until
begin
Read a,b op
If
op=’+’
C=a+b
If op=’-’
If op=’*’
If op=’/’
C=a-b
C=a*b
C=a div b
Write c
Read x
Until x = 0
end

حٌتافملا ةحول نم لخدملا حٌحصلا ددعلا ناك اذا ددحٌ لاكساب ةغلب جمانرب بتكا
ام فرديًجوز
Repeat
No yes
No
yes
begin
end
Read n
If n mod
2 = 0
Write ‘even’
Write ‘odd’
Until
n=0

: المصفوفات
ة و التكرارٌطرشلا تامٌلعتلا عم ةقباسلا سوردلا ًف انلماعت
رات او استعادتهاٌغتملا نٌزختب مكحتلا نكمملا نم نكٌ مل و
. الذاكرةًف اهعضوت نكاما ةفرعم وا
لٌلد للاخ نم رصنع يأ ىلا لوصولا نكمٌ طمنلا سفن نم رصانع عٌمجت نم ةفلؤم تاٌطعم ةٌنب ًه : ةفوفصملا موهفم
أو عن
وان لهذا العنصر
a[i]
A[1] a[2] a[3] a[4]
I=1 i=2 i=3 i= 4
تم جحز اربع
الذاكرة للمصفوفة السابقةًف عقاوم
رات الى تلك المواقعٌغتملا ةءارق و ةباتك نكمٌ ثٌح
مةٌلعت مادختساب انمق ضرف ىلع
read(a[i]);
تسمح للمستخدمًتلا
بإدخال
حٌتافملا ةحول نم تاناٌبلا
ًة على التتالٌلاتلا ماقرلأا انلخدأ و
22
32
42
52
ًفسوف تخزن بالشكل التال
A[1] a[2] a[3] a[4]
22
32
42
52
I=1 i=2 i=3 i= 4
ًو اذا قمنا بطباعة (اظهار على الشاشة) ما هو موجود ف
الذاكرة
مةٌلعت مادختساب
write();
:ًفمثال
Write(a[2]);
جة ستكونٌتنلا
42
ف عن المصفوفةٌرعتلا متٌ
a:array[1..4]of integer;
ًة للمصفوفة هٌئادتبلاا ةمٌقلا نا ثٌح
1
ةٌئاهنلا و
4
كلمة
of
راتٌغتملا عاونا عٌمج نع حٌرصتلا نكمٌ دحاو عون نم تاناٌبلل عٌمجت ةفوفصملا نا امب و ةٌرورض
a:array[1..4]of string;
a:array[1..4]of char;
a:array[1..4]of boolean;
a:array[1..4]of real;

ة (اي شعاع واحدٌداحا ةفوفصم مدختسٌ طٌسب جمانرب
)
و قراءة عناصر هذا الشعاع من المستخدم
program array2;
var i:integer;
a:array[1..4]of integer;
begin
for i:=1 to 4 do
readln(a[i]);
for i:=1 to 4 do
writeln('a[',i,']=',a[i]);
end.

باستخدام
goto
2
3
Goto 3
begin
Read n
S=0
I=1
Sum=sum+i
I= I + 1
If i>n
Write (Sum)
begin
Goto 2

مثلٌ رطس ىلع ددع لك يددع لخد لكش ىلع عارتقلاا جئاتن لصت تاباختنلا نٌحشرم عبرا انٌدل
رقم المرشح المنتخب
. نٌحشرملا نم لك تاوصا باسحب انل حمسٌ جمانرب ةباتك دٌرن رفصلا نكٌل و زٌمم ددعب لخدلا ًهنن
للمشكلةًقفدتلا ططخملا
ةٌادب
المصفوفة
c[e]
E = 1 , n=4
Read e
رٌغتملا أرقا
e
= 0
c[e]
While e< >0
اذا كان
e>=1
و
4
e<=
= c[e]+1
c[e]
Read e
اقرأ
ال
رٌغتم
e
كرر من اجل
e=1
مةٌق رهظا
e ,c[e]
ةٌاهن

: البرنامج
program election;
var i:integer;
c:array[1..4]of integer;
begin
for i:=1 to 4 do
c[i]:=0;
readln(i);
while(i<>0) do
begin
if (1<=i) and (i<=4) then
c[i]:=c[i]+1;
readln(i);
end;
for i:=1 to 4 do
writeln('C',i,'=',c[i]);
end.

مثلث باسكال
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
4
4
0
1 4 6 4 1
ةٌئانث ةفوفصم
5
*
5
p[I,j]
[1,5]
[1,4]
[1,3]
[1,2]
[1,1]
[2,5]
[2,4]
[2,3]
[2,2]
[2,1]
[3,5]
[3,4]
[3,3]
[3,2]
[3,1]
[4,5]
[4,4]
[4,3]
[4,2]
[4,1]
[5,5]
[5,4]
[5,3]
[5,2]
[5,1]
مة المصفوفةٌق لعجن ىلولأا ةوطخلا
1
A[I,j] := 0;
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1
ةٌناثلا ةوطخلا
0
=
A[i,1]
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
الخطوة
4
for i:= 0
to 5
do
for j:= 0
to 5
do
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0

1
1
1
1
0
1
1
1
1
0
الخطوة
1
a[I,j]:= a[i-1,j] + a[ i-1, j-1];
1
1
1
1
0
1
1
1
1
0
1
1
1
2
0
1
1
3
3
0
0
1
0
4
0
