Professional Documents
Culture Documents
و ا ب رة م ا ت .آ أن درا ا ب
23درا آ ./0 1ه +,ا*ﻡ ت دا(' ا ب ،وآ 1ﻡ 53و آ 1ا 134دة
ﻡ . 50ﺡ 7 3 8ا Bit 6اﺡ;ة ا** :ﻡ ت و @;?3م ا:ر> م ا=< 0
0و Bit '=3 1ﻡ ،و ;د ال Bitsا@;?3ﻡ '=3ا7ﻡ CD Character Bﺡ ب
ﻡ @E Fل ا .Byte size 6و D C 3ن ذاآ7ة ا ب رة ﻡ ﻡ
،Bitsﺡ .3 8وﺽ Hآ' ﻡ ﻡ CD Bitsذاآ7ة ا ب CDوﺡ;ات آ 7ة @F
Byteو K FDاا Jآ' ;د ﻡ ا 3ت Hﻡ K Hو @ Fآ* Wordوآ'
وﺡ;ة ﻡ ه +,اﺡ;ات ) 6أو ا*( ن 0 5ان وه رة ر> .و * N*O
ﻡ> Hا CD 6ا,اآ7ة ).(location
ات : Arrays
ه Cرة ﻡ ﻡ 530و ﻡ 7ﻡ ا 7 0ا 0 F0 . @ 3ﻡ 530أي 5
;د ﻡ;ود ﻡ ا. 7 0و ﻡ 7أي أن 7 0ه ﻡ 7ا:ول ... 8 = D C = Dوه,ا ،
وﻡ @ 3أي أن ﺝ7 0 Hه ﻡ ]1ا0ع Typeﻡ=_ .Char
4ا Hﻡ? ]1 CD 1*3ا`.D1
Type
;Name=Array[index type] of component type
ﺡ 8أن:
• Nameا Identifier C17 .ﺝ;; ,5ا ا0ع ﻡ ا` D1ت.
• Index typeع ا 7Rfا;* ، Fو أن ن ﻡ;ى Integer dأو ﻡ;ى ﺡ7ف
Characterأو ﻡ;ى ﻡ BooleanCO0أو ﻡ ﺝ.<B
• Component typeع ا ت :أن ن أي ع ﺡ Cأو dأو ...ا.g
.d`ع ا0 ﻡ ا100 ﻡ ﻡD1` وه رة ﻡA 7Y3_ن اU ا. •
Const
Num=100;
Var
A:array[1..num] of integer;
Const
Num=100;
Type
Indextype=1..num;
Var
A:array[indextype] of integer;
Num 6 =?;م ا3@ ي, اIndextype ع0?;ام ا;ى ﻡ ا3 D1`_ن ﻡU ا. •
. 5 *;ات ا7Y3 رة ;د ا D1` ا.ف ﺡ7 أنN ﻡ
. تD1` اK _ ت ﻡU *=أﻡ
Const
Min=0;
Max=10;
Type
Week=array[min..max]of Real;
Degree=array[1..100] of integer;
: ت/ﺡ%"
أن4 5 F*; ا7Rf و ا،Cع ا0 ﻡ اD1` أن ن ا.1
.Cع ا0ن ﻡ ا
: ' ا= لF* 7Y3ع و ا0_ن اU اQ دﻡ.2
Var
a:array[1..10] of real;
. ﺇﻥ ﺤﺠﻡ ﺍﻝﻤﺼﻔﻭﻓﺔ ﻓﻰ ﻝﻐﺔ ﺒﺎﺴﻜﺎل ﻻ ﻴﺘﻐﻴﺭ ﺃﺜﻨﺎﺀ ﺘﻨﻔﻴﺫ ﺍﻝﺒﺭﻨﺎﻤﺞ.3
.for *?;ام ﺝ3j دى و ا7Y3 آD1`اءة آ' ا7> 4 .4
Var
Degree:array[1..10] of integer;
I:integer;
Begin
For I:=1 to 10 do
Read(degree[I]);
For I:=1 to 10 do
Writeln(degree[I]);
End.
رة3 آ jD ع0] ا1 ﻡD1`ًا =' ﻡ7Y3 ﻡA,B • إذا آ ن آ' ﻡ
: 3 د ا0Uا
A:=B;
B D1` اFD ' ا7`0 اF إA D1` ا7 0 ﻡ7`0 ' د آ0 إF0 و
53 Eو، 50 _نU ا7E CD ; ﺡ د ا: ت اD1`* 5 l ﻡFوه
:_
ً =ﻡ
Type
Matrix=arrary[1..5,1..10]of integer;
Var
A:matrix;
C 3 ة أ;ة و7l ف و1 @( ﻡ ﻡD1` ﻡ. أA ; أن1 +__ن أUا
ات7Y3 اF@ و، ه7 0 ' وأن آ، 5x10 ه @ وي7 0 ن ;دjD
:F 4 =' اFوه،*;ا
A[1,1]……a[1,10],A[2..1]..A[5 ,1]…A[5,10]
For I:=1 to 5 do
For j:= 1 to 10 do
Read(a[I,j]);
.ا, وهC = D ول: ا` اE .3 اءة أي7 ا7O 5 l ﻡ7O .3 53 Eو
:ــل."
uses crt؛
type
My_Array=array[1..3,1..4] of integer؛
var
A,B,C:My_Array؛
i,j:integer؛
begin
clrscr؛
{reading the first Array}
for i:=1 to 3 do
for j:=1 to 4 do
begin
write('Enter A[',i,',',j,'] : ');
readln(A[i,j]);
end؛
{reading the second Array}
for i:=1 to 3 do
for j:=1 to 4 do
begin
write('Enter B[',i,',',j,'] : ');
readln(B[i,j])؛
end؛
{calculating the Third Array}
for i:=1 to 3 do
for j:=1 to 4 do
begin
C[i,j]:=A[i,j]+B[i,j]؛
end؛
{Printing The Third Array}
for i:=1 to 3 do
begin
for j:=1 to 4 do
write(C[i,j]:10)؛
writeln؛
end؛
readln
end.
Records ات
1*3? ﺙ_ﺙ ﺡل ﻡF* ىStudent ع0_ن ' ﻡ اU ا.3 C 3ا= ل ا
Const
Max=5;
Type
Str= array[1..max] of char;
Student= record
Name :str;
Class:integer;
Year:integer;
End;
Var
Stud:Student;
With stud do
begin
name:=’ahmed’;
birth.day:=22;
birth.mon:=1;
birth.year:=1975;
place:=’sudan’;
end;
Var
Stud1,stud2:student;
Stud1:=stud2;
uses crt;
Type
Student = record
No:integer;
Name: string;
end;
var
Stud: Student;
begin
clrscr;
write('Enter Student No: ');
readln(Stud.No);
write('Enter Student Name: ');
readln(Stud.Name);
with Stud do
begin
write('Student : ',No,' ',Name);
end;
Readln
end.
ل."
; واﺡJ E ﻡ4
ً ; _بE 5 ' ت3@ +_ أQ ﻡ7 اﺝ' ا
uses crt;
Type
Student = record
No:integer;
Name: string;
end;
var
Stud: array[1..5] of Student;
i:integer;
begin
clrscr;
for i:= 1 to 5 do
begin
Readln
end.
ا ت
آ وإ ﺡ * ت7 ﻡ7 0 'R CD ا ت./0 .3 8ﺡ. ء ا ت0 ق7E Cه
.7 0 ا+, ه
.Q ﻡ7 اCD ت7`3ء اB ﺝCD 0 _نU ا.3 Data type C ع ا0ا
CD ت7`3ء اB ﺝCD 75/ ل أن3 واﺡQﻡ7 ذه اCD xD ; ا ت ﺝ0 0
4 ورQ ﻡ7 ا
Stacks ات
:Define Stack(ی ا
ا ت ﻡD ف و إﺽ, ﺡ5D .3 ،O( 7O p1 > < ﻡ ا تCا; ه
.Top اC@ ;ف واﺡ7E
وأن، Bottommost ا عCD A1 7`0ل أن ا0D S=(a1,..,an) ; ا0;
C 3' اlا.; > اCD an و ل أن1<I<n 8 ﺡAi 7`0 ﻡ اF* أAi-1 7`0ا
.;م ا51 ﻡdﺽ
An
ﻡ 7ا; jDإذا أﺽ 01ا A,B,C,D,E,F7 0إ Cا; ]10ه,ا اjD،J 73ن
ا 7`0ا,ي ن jﻡ 0ﺡ D,ه ا F 7`0أي أن ( .3 7`0 7إد( CDا; ه
. 4و ,5ا ا@ C* N*O Jه,ا ا0ع ﻡ أ Rل ا ت ا7دة أ(LIFO) . ا,ي ,ف أو ً
ا( `3رًا ل Last IN First Outو =' CDﺡ اUﺽ jD Dن ا 7`0ا;; ` CD dا.
_ ا73Dض أن ; 0ا; Aو ا @( H@ C3أر> م و أرد أن 7ي * ﻡ= ً
أﺽ 35 .* Dو 23و 40و jD 20ن ا:ﺽ Dن CDا +واﺡ; وه أ* Fا;
20
40 40
23 23 23
35 35 35 35
و :ﺝ7اء * ا@ Jﻡ ا; J@ ،ا J 73 C@ J 73 7 0د(5
4ﺙ 40 .ﺙ 23 .ﺙ. 35 .
ا; أي J .3ا 20 .>7أو ً
710ض اbن أن ; 0ﻡ; ( ،و>j 0ﺝ7اء * ﺡ,ف C* '` 0 jD
Underflowو rD J jD C 3ا; ا Oا* ) ' > Empty(sإﺝ7اء *
ا,ف .و =' إذا آ ن ; 0ﻡ; ﻡ z*3و >j 0ﺝ7اء * إﺽ '` 0 jD Push D
*.OverFlow F
Const
Maxstack=100;
Type
Stack=record
Item:array[1..maxstack] of integer;
Top:0..maxstack;
End;
Var
S:stack;
ن: Maxstack و0 Integer ع0 أن ن ﻡ اJ top ن اjD dوآ ه واﺽ
ﺙ_ﺙF* ى3 ; أن اF0 ا,5D Top=3 6 _ إذا آ ً =D،; > اH> ;د ﻡ53>
ن اjD ،; ﻡ اPop ف,;ﻡ ;ث * ﺡ0 وitem[1],item[2],item[3] 7 0
item[4] و،4 Fداد اB ن ا فjD push D * إﺽ6 أﻡ إذا ﺡ;ﺙ،2 F إ7Y3 TOP
.D إﺽ6 ي, ا;; ا7`0 > ا,( ف
ل4;34 اHO3@ ;> و،7`0 أC* ى3 4 ? ﻡ > ' أن ا; ا0* ;
;;ا<)ﻡ34 ا53 ﺡCD ;و' ا،71`* ﻡ@ وtop ;ﻡ ن ا0 W ذC*
HO3@ z*3;ﻡ ن ا; ﻡ0D '= و.71`* ﻡ@ ويTop ' ا0 jD ،( (
.maxstack 6 =* ﻡ@ وtop ;ﻡ ن ا0 W ذC* ل4;34ا
Function empty(s:stack):boolean;
Begin
If s.top=0 then
Empty:=true
Else
Empty:=false;
End;
If empty(s) then
Writeln(‘the stack is empty’)
Else
Writeln(‘the stack is not empty’);
:Full اا
z*3 ا; ﻡ6 إذا آtrue اHﺝ73D 4 أمz*3 ا; ﻡ6 ر ﻡ إذا آ3(4 Cوه
.W ذ7{ 6 إذا آfalse وا
Funciton full(s:stack):Boolean;
Begin
If s.top=maxstack then
Full:=true
Else
Full:=fal se;
End;
If full(s) then
Writeln(‘the stack is full’)
Else
Writeln(‘the stack is not empty’);
J3 C@<7 اQ ﻡ7 اCD ا;ا+, داة ه0 و
X:=empty(s);
C 3 _ آ
ً ا; آ ﻡQ ﻡ7 d ` *و
Const
Maxstack=100;
Type
Stack=record
Item:array[1..maxstack] of integer;
Top:0..maxstack;
begin
end.
Cb_آ
ً آ ﻡQ ﻡ7 اd `و
uses crt;
Const
Maxstack=100;
Type
Stack=record
Item:array[1..maxstack] of char;
Top:0..maxstack;
End;
Var
S:stack;
ch: char;
Function empty(s:stack):boolean;
Begin
If s.top=0 then
Empty:=true
Else
Empty:=false;
End;
Function full(s:stack):Boolean;
Begin
If s.top=maxstack then
Full:=true
Else
Full:=false;
End;
Function Pop(var s:stack):char;
Begin
If empty(s) then
begin
clrscr;
read(ch);
while ch<>chr(13) do
begin
push(S,ch);
read(ch);
end;
Readln
end.
)ف ن `رة ' Sإ 7 0 5ا; tempإذن ;4ﻡ وﺝد ﻡ; ﻡ3>f
ﻡ آ ه ﻡ أد (+
! ا اTemp إ اS ﺹ ا#! $% ً%&
while not empty(S) do
begin
No:=pop(s);
push(Temp,No);
end;
uses crt;
Const
Maxstack=100;
Type
Stack=record
Item:array[1..maxstack] of integer;
Top:0..maxstack;
End;
Var
S,S1,Temp:stack;
i,No: integer;
Function empty(s:stack):boolean;
Begin
If s.top=0 then
Empty:=true
Else
Empty:=false;
End;
Function full(s:stack):Boolean;
Begin
If s.top=maxstack then
Full:=true
Else
Full:=false;
End;
Function Pop(var s:stack):integer;
Begin
If empty(s) then
Writeln('stack underflow')
Else
Begin
Pop:=s.item[s.top];
s.top:=s.top-1;
End;
End;
Procedure push(var s:stack; x:integer);
Begin
If full(s) then
Writeln('stack overflow')
Else
begin
clrscr;
for i:=1 to 10 do
begin
write('Enter Number into stack : ');
readln(no);
push(S,No);
end;
while not empty(S) do
begin
No:=pop(s);
push(Temp,No);
end;
Readln
end.
Balanced:=True;
read(ch);
while(Balanced) and (ch<>chr(13)) do
begin
if ch='(' then push(S,ch)
else if ch=')' then
begin
if empty(s) then Balanced:=False
else ch:=pop(s);
end;
read(ch);
end;
if not empty(s) then Balanced:=False;
if Balanced then writeln('Balanced Exepresion')
else writeln('Non Balanced Exepresion');
begin
clrscr;
Balanced:=True;
read(ch);
while(Balanced) and (ch<>chr(13)) do
begin
if ch='(' then push(S,ch)
else if ch=')' then
begin
if empty(s) then Balanced:=False
else ch:=pop(s);
end;
read(ch);
end;
if not empty(s) then Balanced:=False;
if Balanced then writeln('Balanced Exepresion')
Readln
end.
$ اA]H ﺡ4 ت ا5 ا3%5 ﻡH 3 ]م اﺱ ب ه اGEHو
،ً`زه أو% إ37/# ت5 أي ا2 ! G 5 4ﺏ ا5 اH ﺏ او ت ن
3 ا*ن2/ ﺡ إن ﺱA ` ! ت ا]ح وا/H Hب واbآ (ل \ن ! ت ا
.A ` ا$/ بb < ! ا# # هc` (A+B*C) /5 ا/! ا2 وcا
س3 ً ب أوb ! ا$ % #%\ Postfix إf+! أ/5 ا$ %وإذا أرد
Ab% & A+(BC*) ً أوg`# 2%ﺵرة إ أi 2ب أﻡﻡbﻡ ا+! Ab% & A+(B*C)
B% أjZN% ا ﺡf< هG#! وA(BC*)+ ب ا!ة او تb ! اG5 ﺏA `! ا
او ت3! واPostfix 7 ًا ﺏg [ه0/ أﺹ/5 اس ن اk ^ داع# هN
ABC*+
/] ! ت ذات او ا5 أن ا3 هPostfix إInfix ﻡ$ ةGة ا ﺡG!وا
أنc` ا اس$*اGﺏ ﺏ5 إ أن اB/#% أنc` # وه،$ ت ذات او ا5 ا$/
ت *رج ا اس5 ﺏ2]ﺏ% أن$/
ً أو
Infix Postfix
A+B AB+
A+B-C AB+C-
A+B/C ABC/+
A*(B+C) ABC+*
(A+B) / (C-D) AB+CD-/
A/B*C-D+E/F*(G+H) AB/C*D-EF/GH+*+
A-B/(C+D) ABCD+/-
front
front
Rear
Rear
2 1
front front
C B A B A
Rear Rear
4
3
front front
C C B
Rear Rear
5
6
front
Rear
7
DataStrcture 23 ب ا/أ
'l اCD و، ة7(fأس و ا7 > اD @ وى3 C ( 0; ; 1 اCD
O0 اF إ7Rf Rear > و ز دةRear ة7(f ﻡ ن اCD A 7`0 اD إﺽ6 2
F إ7( 7`0 D إﺽ6 4 'l اCD و، 3D إﺽ6 7`0 7( O0 ﻡC* C3ا? ا
7`0 ﻡ ن اC* ي, اC ? ا ن اF إ7Rf 3> ا;; و ز دةRear ﻡ نCD `ا
ف, و آ ن ﺡ،` ﻡ اD, ﺡ. ;> 7`0 ك0 ; أن ه5 'l اCD و، 3D إﺽ6 ي,ا
ةO( Front 7Rfك ا7 و،A 7`0ف ا, ﺡ. W,، ﻡ ا;ﻡ.3 ` ﻡ ا7 0ا
ﻡ7( 7`0 ف, ﺡ. 6 اCD و، ا;ﻡCD b 7`0 اd ` W, ﻡ م و: اCإ
; أن7 اCD W, و آ، ا;ﻡCD C d `3 ى7(ة أO( Front 7Rfا` و ;م ا
ﻡ ن واﺡ; وCD Rear H ﻡd ` ى7(ة أO( Front 7Rf و ;م اD, ﺡ. 7( ُا7`0
.;; ﻡ ﺝC ( ` اd `
First In ` رًا3(( اFIFO) دة7 ل ا ت اR' ﻡ أlا ا, هF@ J @ا ا,5و
.First Out
Const;
MaxQueue = 5;
Type
Queue=Record
item : array[1..MaxQueue]of integer;
Front,Rear:1..MaxQueue;
End;
. OverFlow _ء ا` و ﺡ;وث3 اﻡCD J @3 ﻡ7 0 ﻡ;ودة اD1` أن ا7آ, و
function Empty(q:Queue):Boolean;
begin
if q.Front =q.Rear then Empty:=True
else Empty:=False;
end;
: Full اا
7( C* ي, اH> اF إ7l Rear ة7(f ا7Rfً إذا آ ن ﻡz*3ن ا` ﻡ
. 1 + D1` أي ﺡ; ا، D1` ا3 أن7`0
function Full(q:Queue):Boolean;
begin
if q.Rear=MaxQueue+1 then Full:=True
else Full:=False;
end;
-:M& ا+($
D إﺽ.3 W ; ذ.ً ﺙz*3 آ; ﻡ أن ا` ] ﻡ3 ا4
ً أوJ 7`0 D ; إﺽ0
7Rf اW ز دة > ذ.3 وRear ة7(f ا7Rf إ ﻡ7Rf ي, اH> اCD 7`0 اWذ
C ( ﻡ نF إ7Rf ;;ار واﺡ
-:C 3 آ5*= و
.5 O أر> م و5 ' 3@ ي, اQ ﻡ7 ا ا, هN O ` اQ ﻡ7 ر3(4 و
uses crt;
Const
MaxQueue = 5;
Type
Queue=Record
item : array[1..MaxQueue]of integer;
Front,Rear:1..MaxQueue;
End;
function Empty(q:Queue):Boolean;
begin
if q.Front =q.Rear then Empty:=True
else Empty:=False;
end;
function Full(q:Queue):Boolean;
begin
if q.Rear=MaxQueue+1 then Full:=True
else Full:=False;
end;
var
q:Queue;
No,i:integer;
begin
clrscr;
q.rear:=1;
q.front=1
writeln('Enter 5 Numbers');
for i:=1 to 5 do
begin
write('Enter No ',i,' : ');
readln(No);
Insert(q,No);
end;
front
Rear
` ا5 Fة إ7(f ا7Rf إذا و' ﻡF3 ﺡ7 0 اD إﺽHO3@3 D ﺽUو دا ا
C 3;' ا3اء ا7ﺝj Wوذ
-:C 3' اl d `3 ً2ف أ, ; ﻡ ;' دا ا4 ' و
-:C* _ آ
ً آ ﻡQ ﻡ7 اr 3و آ
uses crt;
const
MaxQueue = 5;
Type
function Empty(q:Queue):boolean;
begin
if q.Front =q.Rear then Empty:=True
else Empty:=False;
end;
function Full(q:Queue):boolean;
begin
if (q.Rear+1) mod (MaxQueue+1)= q.front then Full:=True
else Full:=False;
end;
var
q:Queue;
No,i:integer;
for i:= 1 to 6 do
begin
writeln(Remove(q));
end;
writeln('Enter 10 Numbers');
for i:=1 to 5 do
begin
write('Enter No ',i,' : ');
readln(No);
Insert(q,No);
end;
Insert(q,11);
for i:= 1 to 6 do
begin
writeln(Remove(q));
end;
readln
end.
Pointers ات#$ا
ة ذو ع ت7اآ, اCD 7( 7Y3ان ﻡ0 ا ي7Y3 ;ّد ﻡpointer 7ّRfع ﻡ
. > F إ7l ة7 R ﻡ7 { 7O و7 Rf ا7 Y3ن ﻡj D ا, .( ﻡ ;د7 { ﻡ ;د )أو ع
type
PointerToInt = ^Integer;
،ع0] ا1 ﻡ7( 7Y3 ان ا? ص0 اr`? أنW0 ،ا7Rfا ﻡ7Y3 ﻡ6Dّ7 ﺡ
@: '?;ام ا ﻡ3
uses crt;
var
p:^integer;
x:integer;
begin
clrscr;
x:=20;
p:=@x;
write(p^);
readln
end.
إ7l ة7اآ, اCD H> ﻡF إ7l 6 أP 7 3 اO اjD ، P 7ّRf اW; ;ﻡ ن0
ا,5. ا,ة ه7اآ, اH> ﻡCD *1 ت ا3 اF إ7l 6 أP^ 7 3 اO و ا،7Rfا
P 7Y3 إ ا7Rf > ﻡC0 أيX N O P^ نjD N @ ا3 اCD J @ا
7Y3ان ا0 ' ى7( أو رة أx 7Y3 اF إ7Rf p 7Rf أن اC0 P=@X اد
ة ا ب7 ذاآCD x
ة7اآ, اCD ﻡ@ ﺡ ﺝ;;ةF إ7l أن7Rf* ،ة ﻡﺝد7 ذاآH> ﻡF رة إRU ﻡ ا4;
+, هCD New. <ا7ﺝU اOة( ا7اآ, اx ﻡ ﻡO0 ﻡCD) ّ `رة ﺡ5``? .3
، هB 6> C3ة ا7اآ, ﻡ اr*?3 أن2 أW* ،7Rf* W3 ء ﺡ ﺝ53 ; ا0 و، ا
Dispose . 1; ء ا3
uses crt;
var
p:^integer;
begin
HO3@ ;ه، ءC R 4 nil > r` ? W 0 ،> ( ﻡ أ7Rfإذا آ ن ا
7 R 3ن ا: ،' دة3@ ا, و ه. > F إ7l إذا ﻡ ه ﺡD7 7Rf ر (* ّ ا3(ا
.(access violation) ﻡ ا;(ل7 آ53 اJّ @ رغD 7Rf E ?ا
رةx F إ7 Rf p ذا آ نj D 5 ا7 Rf ﻡ4; ات7 Y3 اF ً ا ل إ2 أ
7 Y3 ا, ( d ﺽ3* وp^:=x 7O p إ7 Rf > ﻡC هx > d ` p:=@x
ا= لC D 12 ` 3 7 Rf ا4; 5> 7{ . ﺙ25 و15 3 ;ءا, اn وm
C 3ا
uses crt;
var
p:^integer;
m,n:integer;
begin
clrscr;
m:=15;
n:=20;
p:=@m;
p^:=12;
p:=@n;
p^:=12;
write('m =',m,' and
n=',n);
readln
end.
1 ' اF رة إR C 3 ا= ل ا,( 0 أ اع ا ت وD 7Rf ﻡH2 و أن
Type
Pemployee = ^Temployee;
Temployee = record
Name : string[10];
Position : char;
Nodepointer=^node;
Node=record
Name:string;
Age:integer;
End;
Var
P,q,r:nodePointer;
:3*?;ام ا3 اjD P,Q 7Rf 5 ر إl ا; اCD Name ' ا73
P^.name:=’ali’;
Q^.name:=’ahemd’;
)أي ا;ةQ^ لName '( وﺡP7Rf 5 ر إl)أي ا;ة اP^ لname ' ﺡ73
:C 3' اl ا0; d ` (Q 7Rf 5 ر إlا
Ali
P
*@*@ اF* ول:ى ﺡ* ا3 ي, وا،Node ع0 ا@' ﻡ اF إ7l P ' أنlا
:3*?;ام ا3 اjD 3 @ ا; اCD Age ' ا73 ’ وAhemd‘ String
P^.age:=24;
Q^.age:=19;
اا!& ا%
ﺍﻝﻘﻭﺍﺌﻡ ﺍﻝﻤﺘﺼﻠﺔ ﻫﻲ ﺴﻠﺴﻠﺔ ﻤﻥ ﺍﻝﻌﻘﺩ ﺒﺤﻴﺙ ﻜل ﻋﻘﺩﺓ ﺘﺭﺘﺒﻁ ﺒﻌﻘﺩﺓ ﻻﺤﻘﺔ ﻝﻬﺎ ،ﻤﺎﻋﺩﺍ ﺍﻝﻌﻘﺩﺓ ﺍﻷﺨﻴﺭﺓ
ﺍﻝﺘﻲ ﺘﺭﺘﺒﻁ ﺒﺎﻝﻘﻴﻤﺔ ﺼﻔﺭ ) (Nilﻭﺍﻝﺘﻲ ﺘﺸﻴﺭ ﺇﻝﻲ ﻨﻬﺎﻴﺔ ﺍﻝﻘﺎﺌﻤﺔ .ﻫﻨﺎ ﻨﺤﺘﺎﺝ ﺇﻝﻲ ﺘﻭﻀﻴﺢ ﺒﻌﺽ
ﺍﻝﻤﺼﻁﻠﺤﺎﺕ ﺍﻝﺘﻲ ﺘﺴﺘﺨﺩﻡ ﻓﻲ ﺍﻝﻘﻭﺍﺌﻡ ﺍﻝﻤﺘﺼﻠﺔ ﻭﻫﻲ:
ﺍﻝﻌﻘﺩﺓ Node
ﻭﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ ﺴﺠل ﺃﻭ ﻜﺎﺌﻥ ﻓﻲ ﺍﻝﻘﺎﺌﻤﺔ ﻴﻤﺜل ﻭﺤﺩﺍﺕ ﻤﺨﺘﻠﻔﺔ ﻤﻥ ﺍﻝﺫﺍﻜﺭﺓ ﺍﻝﻤﻌﻨﻭﻨﺔ ﻭﻴﺤﺘﻭﻱ ﻋﻠﻰ
ﺤﻘﻭل/ﺤﻘل ﻝﻠﺒﻴﺎﻨﺎﺕ ﻭﺤﻘل ﺁﺨﺭ ﻴﺤﻤل ﻋﻨﻭﺍﻨﹰﺎ ﻴﺅﺸﺭ ﻝﻠﻌﻘﺩﺓ ﺍﻝﺘﺎﻝﻴﺔ ﻓﻲ ﺍﻝﻘﺎﺌﻤﺔ ،ﻭﻝﻴﺴﺕ ﺒﺎﻝﻀﺭﻭﺭﺓ ﺃﻥ
ﺘﻜﻭﻥ ﺍﻝﻌﻘﺩ ﻤﺘﻼﺼﻘﺔ ﻓﻴﺯﻴﺎﺌﻴﹰﺎ ﻓﻲ ﺍﻝﺫﺍﻜﺭﺓ ﻭﺍﻝﺸﻜل ﺍﻵﺘﻲ ﻴﻭﻀﺢ ﺫﻝﻙ:
ﺤﻘل ﺒﻴﺎﻥ
ﻫﻭ ﺍﻝﺤﻘل ﺍﻝﺫﻱ ﻴﺤﻤل ﺍﻝﻌﻨﺼﺭ ﺍﻝﺤﻘﻴﻘﻲ ﻓﻲ ﺍﻝﻘﺎﺌﻤﺔ ﻭﺒﻴﺎﻨﺎﺕ ﻫﺫﺍ ﺍﻝﻌﻨﺼﺭ ﻗﺩ ﺘﻜﻭﻥ ﻏﻴﺭ ﻤﺘﺠﺎﻨﺴﺔ ﻤﺜل
ﻼ.
ﻼ ﻜﺎﻤ ﹰ
:ﺭﻗﻡ ﻤﻭﻅﻑ ،ﺍﺴﻡ ﻁﺎﻝﺏ ﺃﻭ ﺴﺠ ﹰ
ﺤﻘل ﺭﺒﻁ
Pointer ﺍﻝﻤﺅﺸﺭ
info
head
$ * +ر*,
ﻫﻲ ﻗﺎﺌﻤﺔ ﺘﺸﻴﺭ ﻜل ﻋﻘﺩﺓ ﻓﻴﻬﺎ ﺇﻝﻲ ﺍﻝﻌﻘﺩﺓ ﺍﻝﺘﻲ ﺘﻠﻴﻬﺎ ﻭﺒﺎﻝﺘﺎﻝﻲ ﺘﻜﻭﻥ ﺍﻝﻌﻨﺎﺼﺭ ﻤﺭﺘﺒﻁﺔ ﻤﻊ ﺒﻌﻀﻬﺎ
ﺍﻝﺒﻌﺽ ﻋﻠﻰ ﺸﻜل ﺴﻼﺴل ﻭﻴﻭﺠﺩ ﻤﺅﺸﺭ ﻷﻭل ﻋﻘﺩﺓ ﻓﻲ ﺍﻝﻘﺎﺌﻤﺔ ﻭﺍﻝﻌﻘﺩﺓ ﺍﻷﺨﻴﺭﺓ ﺘﺅﺸﺭ ﺇﻝﻲ )ﻻ
ﺸﻲﺀ( .
ﻤﺜﺎل :ﺇﺫﺍ ﻜﺎﻥ ﻝﺩﻯ ﺸﺭﻜﺔ ﺍﻝﺨﻁﻭﻁ ﺍﻝﺠﻭﻴﺔ ﺍﻝﺴﻭﺩﺍﻨﻴﺔ ﺨﻁ ﺭﺤﻼﺕ ﻴﺒﺩﺃ ﻤﻥ ﻤﺩﻴﻨﺔ Kharﻭﻴﻨﺘﻬﻲ
ﺒﻤﺩﻴﻨﺔ Jubaﻻﺘﺠﺎﻩ ﻭﺍﺤﺩ ﺒﺩﻭﻥ ﻋﻭﺩﺓ ﻤﺭﻭﺭﹰﺍ ﺒﺎﻝﻤﺩﻴﻨﺔ Aﻭﺍﻝﻤﺩﻴﻨﺔ . F
ﻭﻴﻤﻜﻥ ﺘﻤﺜﻴل ﺫﻝﻙ ﻓﻲ ﺸﻜل ﻗﺎﺌﻤﺔ ﻤﺘﺼﻠﺔ ﺃﺤﺎﺩﻴﺔ ﺍﻻﺘﺠﺎﻩ ﻜﻤﺎ ﻫﻭ ﻤﺒﻴﻥ ﺃﺩﻨﺎﻩ:
ﻫﻨﺎﻝﻙ ﻋﺩﺩ ﻤﻥ ﺍﻝﺩﻭﺍل ﻴﻤﻜﻥ ﺃﻥ ﺘﺘﻌﺎﻤل ﻤﻊ ﺍﻝﻘﻭﺍﺌﻡ ﺍﻝﻤﺘﺼﻠﺔ ﻜﻌﻤﻠﻴﺎﺕ ،ﻨﺫﻜﺭ ﻤﻥ ﻫﺫﻩ ﺍﻝﺩﻭﺍل
ﺍﻷﺘﻲ:
type
List_Type=integer;
List_Pointer=^ListNode;
ListNode=record
Data:List_Type;
Link:List_Pointer;
end;
var
Head:List_Pointer;
< دا(' ا7 0 ' ع ت اList_Type @ ع ت7 .3 8ﺡ
'; ه إﻡWض ﻡ ذ7Y واInteger `;اد ا: ع ا+ 0 وﺽ0 وه، *`3ا
< اءات ا7 ﻡ ;' آ' دوال وإﺝ4 ً ; ;;' واﺡ3 *`3 ا < اCD ع ا ت
'= ي, ا@' ا0D7 . ﺙ، ListNode < ' اF إ7Rf ًا7Rf ﻡ0D7 . ﺙ.*`3ا
. ﺙ، ي ' > ا;ة, اData 7`0 اF* ي3 `* وه3آ' ;ة ﻡ ; ا < ا
0D7 ات7Y3 ا.@> CD و. ا;ة اC* C3 ا;ة اF إ7l ي, اLink 7Rf ا0D7
ا;ةF ر إRj *`3ان ;ا ا < ا0 وهHead < رأس اF إ7l ًا7Rfﻡ
.< Fو:ا
7 0 ' ;د ﻡ ا3@ *`3 > < ﻡCD 7 0 د( لU ً 7 ً ﻡ7 .`0 C* Dو
0 .>7د( ل اj 7 0 إد( ل اC530`* و3 < ا5*(;و
type
List_Type=integer;
List_Pointer=^ListNode;
ListNode=record
Data:List_Type;
Link:List_Pointer;
end;
var
Head:List_Pointer;
No:integer;
procedure Fillrest(Last:List_Pointer);
writeln('Enter No');
read(no);
end;
Last^.link:=nil;
end;
begin
writeln('Enter No');
read(no);
if no<>0 then
begin
head^.data:=No;
fillrest(head);
end
else head:=nil;
end.
Head:=Head^.Link 3ة ا71l ات7Rf?;ام ا3 ; ا7 '03 ا.3و
procedure printlist(head:listpointer);
begin
while head<> nil do
begin
writeln(Head^.data);
head:=head^.link;
end;
end;
+_اءات اﺽ أ7ﺝU ر ا;وال وا3(4 ' آ ﻡQ ﻡ7 C* Dو
Type
Listpointer=^listnode;
Listnode=record
Data:integer;
Link:listpointer;
End;
Var
ch,x:integer;
procedure printlist(head:listpointer);
begin
writeln(Head^.data);
head:=head^.link;
end;
end;
var
firstNo:integer;
procedure fillrest(last:listpointer);
var
nextNo:integer;
begin
read(nextNo);
begin
new(last^.link);
last:=last^.link;
last^.data:=nextNo;
read(nextNo);
end;
last^.link:=nil;
read(firstNo);
if firstNo=0 then
head:=nil
else
new(head);
head^.data:=firstNo;
fillrest(head);
end;
end;
function search(head:listpointer;target:integer):listpointer;
var
found:boolean;
begin
found:=true
if found then
search:=head {success}
else
search:=nil; {failure}
end;
Begin
repeat
writeln('1-Create list');
writeln('2-Print list');
writeln('3-Search list');
writeln('4- Exit');
read(ch);
writeln;
case ch of
1:begin
creatlist(head);
writeln;
end;
2:begin
writeln;
end;
3:begin
readln(x);
if search(head,x)=nil then
else
writeln('found');
writeln;
end;
end;
until ch=4;
end.
F;3@ -1ا;ا 5@1دا(' ا;ا ا Oﻡ ﻡ_ت ﻡ? CD 1*3آ' ﻡ7ة .3ا ;34ء.
CD -2ا;0اء ا,ا ;* Cوال إذا .3 .وﺽ7R Hط ا C;3@3@D >3ا;ا 5@1إ Fﻡ 5 4
function will call itself forever
;0 -3اآ 3ل ( 7ا ;3ء *;ا م ا73ﺝj .رﺝ ع آ' ا .ا ;0 63 C3ا ;34ء
ا,ا Cو ;أ ( ;0 63 > 7ا ;34ء ﺡ F3أول >.
ا;?3م ا;0اء ا,ا ;* Cوال CDﺡ' آ= 7ﻡ ا@ <' ا 7ﺽ =7ة وذ 5 Wأ @J
7 7Eﻡً * 3ﻡ' ﻡ Hﺝ Hوﺽ7ب ا_@*@3ت و . 5 7
ﻡ= ل )(1
اآ 7 J3ﻡً Uد ﻡ72وب أي ;د ;?3 N dام ا;0اء ا,ا C
;function f(n:integer):integer
begin
;)else f:=n*f(n-1
;end
_ أي 0 jD n=4
وإذا ﺡ و H 3 0ﻡ@ ر ا;ا أ_73D +اض أن ا ا 5 *7آ 4 6ﻡ= ً
F* '`0ا;0اءات اﺽ أ_ +ﻡ Hا* .ن ا;0اءات CD xD >3ﺡ ل >
ا7lط n<=1وا;0اءات هC
)F(4)= 4 * f(3
)F(3)=3* f(2
)F(2)=2*f(1
F(1)=1
F(2)=2*1
F(3)=3*2*1
F(4)=4*3*2*1
3 ﻡ (_ل ا_> اW وذFibonacci number Cl D ﻡً @ ب7 J3اآ
F(0) = 0
F(1) = 1 f(2)=0+1=2
; اW د > ذj م. ﺙCl D *@* ' ا; ﻡ3@ دا.
var
a:integer;
function f(n:integer):integer;
begin
if (n=1) or (n=2) then f:=n
else
f:=f(n-1)+f(n-2);
end;
begin
read(a);
write(f(a));
readln
end.
' *;ا ا;د7 F (N) <] ﻡ (_ل رة7 اQ ﻡ7 اCD ; ء ا;ا3; ا0 p_ﺡ
6 ذا آjD 1 أو2 ا ا;د @ وى,ط ه' ه7l ر ا3( ا.3 W ; ذ. ﺙn 7Y3 اCD * 3@ وN
5 jD .50 ﻡ7 اآ6 <] أﻡ إذا آ7 اQ ﻡ7 اF ا إ+, ن ا;ا ف ; هD .0 ﺝUا
:C 3 ا7 3ى ﻡ (_ل ا7(ة أ7 ا;ا ﻡC;3@ ف
ى7(:* ا3?ة ﻡ' ﻡ7 آ' ﻡFDة و7 ﻡ ﻡ7= أآ. ;> *;اC ا,; ء ا34 ا0ه
أﻡ إذا اﺡ3ى ا F* '5دورة d ` jِDﻡ? ًOOو] +7Rوا 'lر> (2) .أن
ا '5اﺡ3ي * Cا;ورة ) ,5 ( A B D E Cا jDن ا7R '= 4 '5ة وإ @F
ﻡ? ًOOأو ً.
4ه آ' ا R:ر CDأ 5ﻡ;1ة ' xDال 7 3 5أ '2Dﻡ ﺝ Hه آ'
ا ت ا7(:ى ﻡ ﺡ 8اBا ا C3د ﻡ ا;?3اﻡ ,10 7 ;0D 5ا* ت ا?
8وا,ف و اUﺽ Dﺝ;ًا ﻡ ر ﻡ Hه آ' ا ت ا7(:ى.
ﺘﻌﺭﻴﻔﺎﺕ
ا6ﺏ-ء Children
ه Cا; ا;0 C3ر ﻡ 7Rة ﻡ ا;ة ا* و 5 x 7ا Oﻡ7Rfات اN*O x7
* Cا;ة ا* ا .ا:ب Parentوا; إ;0 Cر ﻡ 50أ 0ء Childrenو CDا'l
ر> F@ (1) .ا;ة Bوا;ة Cأ 0ء ا,ر Aو @ Cا;ة Fوا;ة Gأ 0ء *;ة D
ا C@ C3ا:ب Parentوإذا آ ن ;د ا 0:ء اﺙ F@ 0ا 4ﻡ ﺝ 5ا 4ا:
Right Childوا 4ﻡ ﺝ 5ا@ ر 4ا Left Child 7@:و CDا 'lر>C@ (1) .
ا;ة Gا 4ا Right Child :وا;ة 4 Fا;* Left Child 7@:ة . D
ا(( Edge
ه رة ﻡ 7Rfا x7ا,ي ; x7ﻡ=' ﻡ 7Rfا x7ا,ي x7ا,ر
وا.4
.
)ﺃ(
ﺍﻝﻌﻤﻕ (depth)=3
)ﺏ(
ﺍﻝﻌﻤﻕ (depth)=4
ا7lة ا= < 0ه Cا7lة ا3 C3ى آ' ;ة F* ( two children ) F* 5Dا:آ=7
Jأن ن ' ;ة CDا7lة ا=; < 0د 0أو 1أو 2ﻡ ا6ﺏ-ء
وا ?Tر> (6) .ﺽ dذW
آ أن ن ا7R 4ة و C 3أن ن ه 7R W 0ﻡ 3*`10
5* N*O 52ا7lة ا@7ى وا7lة ا F0وه ; ذا 5ه آ' 7Rﺙ< 0
و C 3ن ا 73ﻡ73رًا Recursiveوه +,ﻡBة ﻡ * '5@ 5ا 7ﻡ.
B3ه' ا7lة ا= < 0ﺝد ﻡ7Rfي ر C* xا:آ= CD 7أي ;ة أو 7( F0أ
;ة أن 3ي * Fﻡ 7واﺡ; أو أﺙ 0أو 3 4ي * Fﻡ 7وه CD Cه +,ا
@ Fور> آ ذآ 7ذ.ً W
>; ن ا 4ا 7@:أو ا :أو آ* 5رة 7Rة .3D 7Dز رة ا7lة
4و .3 5Dز رة ا 4ا 7@:وه,ا و 7ى CDه,ا ا*:ب 7ارًا ا 71ا@ 7ى أو َ
@3ﺝ Jا;?3ام ا ;3ء ا;0اء ا,ا ;* Cا Recursive Functionوf3دي ا;ا
ﺙ_ث ﻡ 5م:
-1ا 7 '03ا7lة ا 71ا@ 7ى *;ة ا;(*.
-2ز رة ا;ة ا;(*.
-3ا 7 '03ا7lة ا 71ا;* F0ة ا;(*.
".ل )(5
ﻡ 3ا ,10 ;0 Oأ*ب ا '03ا F* COا 5آ' ا 7lا 3
)ﺃ (
_ﺡ pأن *,ر 1ا أ@ 7وا أ وه رة 7Rة ; 7Dأ 7lة
ا 71ﻡ ا Jا 7@:و ; 5Dأن ا; 5 2ا أ@ 4 7وا أ 5و* ف .3
ا Bرة ا7lة CDا Jا 7@:ﺡ@ Jا '@*@3اC 3
وﻡ ﺙ .م Bرة ا,ر 1و;ه م Bرة ا7lة ا 71ﻡ ا Jا :و5D
; أن ا; 5 3ا أ@ 6 7وا أ 7و* ف .3ا Bرة ا7lة ﺡ@ Jا'@*@3
اC 3
6->3->7
4->2->5->1->6->3->7
)ﺏ(
ﺍﻝﻨﺘﻴﺠﺔ ﻫﻲ
4->2->8->5->9->1->6->3->7
ﺍﻝﻨﺘﻴﺠﺔ ﻫﻲ
8->4->9->2->5->1->6->3->7
)ﺩ(
ﺍﻝﻨﺘﻴﺠﺔ ﻫﻲ
1->2->3->4->5->6->7->8->9
>; ن ا 4ا 7@:أو ا :أو آ* 5رة 7Rة .3D 7Dز رة ا7lة
4و .3 5Dز رة ا 4ا 7@:وه,ا و 7ى CDه,ا ا*:ب ا 71ﻡ ا Jا 7@:أو َ
7ار @3ﺝ Jا;?3ام ا ;3ء ا;0اء ا,ا ;* Cا Recursive Functionوf3دى
ا;ا ﺙ_ث ﻡ 5م:
-1ا 7 '03ا7lة ا 71ﻡ ا Jا;* 7@:ة ا;(*.
-2ا 7 '03ا7lة ا 71ﻡ ا Jا;* :ة ا;(*.
-3ز رة ا;ة ا;(*.
ﻤﺎ ﻨﺘﻴﺠﺔ ﺍﻝﻁﺒﺎﻋﺔ ﻋﻨﺩ ﺘﻨﻔﻴﺫ ﺃﺴﻠﻭﺏ ﺍﻝﺘﻨﻘل ﺍﻝﻭﺴﻁﻲ ﻭﺍﻝﺒﻌﺩﻱ ﻭﺍﻝﻘﺒﻠﻲ ﻋﻠﻲ ﺍﻻﺸﺠﺎﺭ ﺍﻝﺜﻨﺎﺌﻴﺔ ﺍﻝﺘﺎﻝﻴﺔ
)ﺃ (
)ﺏ(
ﻡ= ل )(7
إذا 0 Eأ*ب ا '03ا7R F* COة ﺙ Q30 < 0ا J 73اC 3
1->2->3->4->5->6->7->8->9
وإذا 0 Eأ*ب ا '03ا * F* Cذات ا7lة Q30ا J 73اC 3
6->4->2->1->3->5->8->7->9
أر .ا7lة.
ا'
CD ; -1أ*ب ا '03ا * Cأن ا,ر ه أول ;ة .3ز ر و 7 3 C 3ا;ة 6هC
ﺝ,ر ا7lة ا=.< 0
CD ; -2أ*ب ا '03ا COأن ا,ر)وه ا;ة '`1 (6ا Jا7l* 7@:ة
وا Jا :و* jDن ا; '= 1,2,3,4,5ا Jا7l* 7@:ة '= 0ا;
7,8,9ا Jا7l* :ة.
7 3 -3أول ;ة ﻡ ا; ا 3 C3ﻡ 50ا Jا7l* 7@:ة وه Cا; }{1,2,3,4,5
CDأ*ب ا '03ا * Cه Cا 4ا,* 7@:ر 6وه Cا;ة 4وأن أول ;ة ﻡ ا; اC3
3ﻡ 50ا Jا7l* :ة وه Cا; } CD {7,8,9أ*ب ا '03ا * Cه Cا4
ا,* :ر 6وه Cا;ة . 8
وﺡ F3اbن ;; .ا,ر وا 4ا :وا 7@:آ ﺽ ا 'lا:C 3
7 3 -4ا 4ا,* 7@:ر ه ﺝ,ر ا7lة CDا Jا 7@:و* jDن ا;ة 4ه Cﺝ,ر
ا7lة CDا Jا 7@:و ; CDأ*ب ا '03ا COأن ا,ر)وه ا;ة '`1 ( 4
ا Jا7l* 7@:ة وا Jا :و* jDن ا; '= 1,2,3ا Jا7@:
*7lة '= 0ا;ة 5ا Jا7l* :ة ا.71
7 3 - 6ا 4ا,* :ر ه ﺝ,ر ا7lة CDا Jا :و* jDن ا;ة 8ه Cﺝ,ر
ا7lة CDا Jا :و ; CDأ*ب ا '03ا COأن ا,ر )وه ا;ة '`1 ( 8
ا Jا7l* 7@:ة وا Jا :و* jDن ا; '= 7ا Jا7l* 7@:ة
'= 0ا;ة 9ا Jا7l* :ة ا.71
Data ﻡ ﺙ_ﺙ ﺡل أﺡ;ه+ن ;ور3 ي, اcomponent '@ة ﻡ ا7lن ا3
*;ة7Rf وه ﻡright وLeft 7(b ا7`0ة وا7l اد وﺽ7 ا7`0 اDو
لlا وا;ة ا
type
BinarySearchTree = ^Component;
Component = record
Data: integer;
end;
0ة ا7l ا71 ض7Y nil اH2 ة و7lر ا, ' ﺝ3@
ة9$ ?($
اH < و ﺽ0=ة ا7l ﻡ ع ا7Y3 ﻡ7 .3 ;ا و5اد وﺽ7' *;ا ا ا7
{ رD ; Fان إ7l ي ا وا@ ر7Rf ﺝ' ﻡH ﺡ' ا ت ا? ص ﻡCD
nil F إ7Rf . وإذاtrue ا;ا اHﺝ7 nil F إ7Rf ة إذا آ ن7lر ا, ر ﺝ3( ا.3
{ رD 7{ ة7l أن اW ذC0
4-.)ة اTا&دﺥل ا
7`0 إر ل ا.3 ، < 0= ة ا7lر ا,ة وﺝ7l اCD (اد إد7 ا7`0اء ا7ﺝUا ا, ' ه3@
أ>' ﻡ > ا ت6 ذا آjD ة7lر ا, ﻡ ر ا ا;;ة ﺝ.3 . دا ' ا;ة ﺙFإ
:ع ا71 ً ;اؤه ذا.3 7 أآ6 وإذا آ7@:ع ا71 ً ;اء ا;ا ;اءًا ذا.3 ر,
begin
if EmptyBinarySearchTree (B) then
B := MakeSingletonBinarySearchTree (Elm)
else if Elm < B^.Data then
InsertIntoBinarySearchTree (Elm, B^.Left)
else
InsertIntoBinarySearchTree (Elm, B^.Right)
end;
4-.)ة اTا` ا
8 ح ا31 ً Oﻡ ءB ; ﺝ. ذاjD ر, اCD 8 ا.3 8 ﺡD ﺽ5 l ﻡ7O .3
;اءًا8 دي دا ا0 0ذا آ ن أ>' ﻡjD 7`0 اH ﻡ+7 3? key 0 8 اد ا7 ا7`0أو ا
' ا;ة7 +; ;ﻡ0 و.ء اB 5 د0 7 ء ا@ ر *;ة ا وإن آ ن أآB ً ذا
ﺝj آ3 C3ا
'` F3 ﺡ7 0 آ' اE ا@ ر و5 *;ا ﺝC ا,;اء ا0 *`3 ا < ا7 0 E .3
7O] ا10 ا5 ﺝ7 0 دي0 . ﺙnil { رD ;ةFإ
begin
PrintBinarySearchTreeData (B^.Left);
writeln (B^.Data);
PrintBinarySearchTreeData (B^.Right)
end
end;
begin
end.
J*`ص ا7 اF* *ي * ا, اC ا.4 ه اC`0 ** اC< B1 ا.4ا
W ذF رة إR C@<7 اQ ﻡ7 اCD ?;ﻡ3@ ي, ا7Y3 ا. ه اCO0 ا.4وا
*ا
+(ق ا%Eإ
C3ات ا7Y3' ا30 F3اء ا* ت * ﺡ7 إ{_ق ا* ; إﺝ.3 وري أن72ﻡ ا
CD 6 RAM رةW ذ.3 و. J*`ص ا7 اF إQ ﻡ7 ا,10 ء0أﺙ
Close(f);
M ل."
var
F:text;
begin
assign(f,'d:\1.txt');
rewrite(f);
writeln(f,'This is my first File');
writeln(f,'Done with pascal program');
writeln('...file created');
readln
end.
d3D J +_ ا* أ,10 3 OMy computer F ا;(ل إ. ﺙdirve D
6 3; ﻡ آ3 ا د و7O 31 (1) F@ C` * ﻡW 0; أن ه3و
var
F:text;
st:string;
begin
assign(f,'d:\1.txt');
reset(f);
while not eof(f) do
begin
readln(f,st);
writeln(st);
end;
close(f);
readln
end.
var
F:text;
begin
assign(f,'d:\1.txt');
append(f);
writeln(f,'this is a pascal program');
writeln(f,'success of append operation');
close(f);
writeln('...file altered');
readln
end.
ﻡ= ل
C`0 ا* اCD 100 F إ1 ر> م ﻡ: اH O Q ﻡ7 J3 اآnumbers F* اﺝد
drive E
ar
F:text;
i:integer;
begin
assign(f,'E:\Numbers.txt');
rewrite(f);
for i:= 1 to 100 do
writeln(f,i);
close(f);
writeln('...created');
readln
end.
ل."
N @ ت ا* ا3 ﻡ2 Q ﻡ7 . numbers ول: ا* اF( إ1)
var
F1,F2:text;
i,sum,Avg:integer;
begin
assign(f1,'d:\1.txt');
assign(f2,'E:\Numbers.txt');
append(f1);
reset(f2);
while not eof(f2) do
begin
readln(f2,i);
writeln(f1,i);
end;
close(f1);
close(f2);
writeln('Flile content Added');
readln
end.
. ﺙ4
ً ا* أوCD 5 (اد إد7 ا@_ت اB5 0* J 0 ت ا1* اH ﻡ' ﻡ3*
C`0`ص دا(' ا* ا0 اH وﺽ7E ]10 * دا(' ا5وﺽ
C`0 ا* ا7E ]10 CO0 ا.4 ** C< B1 ا.4 اx ر.3
assign(F,'d:\Student');
rewrite(F);
reset(F);
close(F);
Append(F);
Type
Student=Record
ID: integer;
Name: string;
end;
F:file of Student;
F@ * ﻡCD ن ا@_تB? . _ت ﺙCD 5/1_ب وE 5 أ ت7 Q ﻡ7 C* Dو
R l اF* 5 Oأ ت ا* و7 W و; ذ. student
uses crt;
Type
Student=Record
ID: integer;
Name: string;
end;
var
St:student;
F:file of Student;
i: integer;
begin
clrscr;
assign(F,'d:\Student');
rewrite(F);
for i:=1 to 5 do
begin
writeln('Enter student No');
read(st.ID);
writeln('Enter Student Name');
read(st.name);
write(F,st);
end;
close(F);
reset(F);
while not eof(F) do
begin
read(F,st);
writeln(st.ID,' ',st.name);
end;
close(F);
readln;
end.