variables typeau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · variables...

18
119 نواع ات ا متغيرVARIABLES TYPE 7.1 قدمة الم سبق وأ( مثلرمجة باسكالة في لغة البلقياسينواع ا على ا أطلعنا نInteger, Real, Boolean, char… etc لغة البرمجة امجرجم عند تنفيذ بر المتل كامل من قبلد بشكنواع تحدذه اصفات ه، موا) باسكال .قدم أنواعفصل سن في هذا ال ام تعريفبرمج، سيت المصفاتها من قبلد موا أكثر، تحد ع مناسبة أنواكل للبرنامج.بة اءة وكتا اة ويسهل قرمشكلى توضيح الما يساعد عل برنامج م7.2 نواع اTYPES ( كلمة نوعستخدم تType أنواع جديدلتصريح عن ل) ةمج ، الصيغةلبرنا في امهان الممكن استخدا مستخدام النوع هي لعامة ا: Type Typename = new type; نكتبه يحتاجمج الذيلبرنافرض أن اذه الصيغة ن لتوضيح ه إ مكونهن القيموعة مجمم( وفة لى مصف من20 قيم ة ا ارلبرنامج مرستخدم في اوفة سين المصفط م، وهذا النم) , ن أو التع فيمكن ا صريح علي: نمط جديد كما ي نType MyArray = array [ 1 .. 20 ] of byte ; لسابعفصل ا ال

Upload: others

Post on 23-Feb-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

119

VARIABLES TYPEمتغيرات األنواع

المقدمة 7.1

,Integer, Real, Booleanن أطلعنا على األنواع القياسية في لغة البرمجة باسكال مثل )سبق وأchar… etc مواصفات هذه األنواع تحدد بشكل كامل من قبل المترجم عند تنفيذ برامج لغة البرمجة ،)

باسكال . لكل أنواع مناسبةأكثر، تحدد مواصفاتها من قبل المبرمج، سيتم تعريف اً في هذا الفصل سنقدم أنواع

برنامج مما يساعد على توضيح المشكلة ويسهل قراءة وكتابة البرنامج. TYPESاألنواع 7.2

من الممكن استخدامها في البرنامج ، الصيغة ة( للتصريح عن أنواع جديدTypeتستخدم كلمة نوع ) :العامة الستخدام النوع هي

Type Typename = new type;

لى مصفوفة )مجموعة من القيم مكونه إلتوضيح هذه الصيغة نفرض أن البرنامج الذي نكتبه يحتاج صريح فيمكن اإلعالن أو الت , (، وهذا النمط من المصفوفة سيستخدم في البرنامج مراراً ةقيم 20من

ن نمط جديد كما يلي:عType MyArray = array [ 1 .. 20 ] of byte ;

الفصل السابع

Page 2: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

120

ل من كتابة تعريف المصفوفة أعاله في ك ( بدالً myarrayاآلن يمكن أن نعلن عن متغيرات من نوع ) لى مثل هذه المصفوفة. إمرة نحتاج

Var X:myarray ; . (Typeألنواع والذي يسمى )اإلعالن عن األنواع الجديدة سيكون في قسم اإلعالن عن ا

:أصناف لألنواع ةبشكل عام هناك ثالث

SCALARS TYPEاألنواع العددية 7.2.1 لنوع،ااألنواع العددية هي ببساطه قائمة من القيم، والتي من الممكن أن تفرض للمتغير قيمه من ذلك

النوع من هذا اً ل قائمة باألعداد الصحيحة وعندما نعرف متغير ( يمثintegerفمثال إن النوع القياسي )من فإننا من الممكن أن نسند للمتغير أي قيمة من قيم األعداد الصحيحة )فعندما نقول أن المتغير

:النوع الفالني فهذا يعني أن هذا المتغير سيأخذ قيمة محدده بذلك النوع( فمثال Type Units = ( inches , feet , miles ) ; الحظ أن هذا النوع حدد بثالث وحدات لذلك فإن المتغير الذي سيعرف من هذا النوع سوف لن يكون

ة محددال ةبمقدوره أن يحمل قيمة غير تلك المحددة بالتعريف )ممكن أن يأخذ أي قيمة من القيم الثالث فقط(.

ضمن األنواع القياسية المحددة بلغة البرمجة أصالً اآلن بعد اإلعالن عن نوع جديد غير موجود ، وكما نعمل unitsباسكال، فإننا من الممكن أن نعلن عن متغير في حقل اإلعالن عن المتغيرات

ذا ى، فإضمن هذا البرنامج فقط وليس البرامج األخر مع المتغيرات القياسية، وسيكون هذا النوع فعاالً د . هذا النوع في برنامج آخر فيجب أن نعلن عنه ضمن البرنامج الجديما كانت هناك حاجة الستخدام

ة:// مالحظما أ، اإلجراءاتهي محلية لتلك اإلجراءاتالذي يظهر في جسم األنواعقسم اإلعالن عن

فهي عامة البرنامج الرئيسيتلك التي تظهر في

Page 3: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

121

Var X: units;

مثله عن األنواع العددية: أ

Type Day = (Monday, Tuesday, Wednesday, Thursday, Friday Saturday, Sunday) ; Operator = ( plus, minus, multiply, divide ) ; Trigfunction = ( sine, cosine, tangent, secant, cosecant ) ;

هنا سنعرض متغيرات من تلك األنواع Var Holiday, workday : day ; Addingop, multop : operator ;

مالحظة:// ( من الممكن أن يدمجان معا النوعواإلعالن عن المتغير من ذلك النوع)اإلعالن عن التعريفان واحد كما يلي : بتعريف

Var

Scale : ( inches , feet , miles ) ;

. اتلمتغيرا تعريفو اعألنوا تعريف بين يفصلأن يفضل ت لحالامعظم لكن في و

Page 4: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

122

المدونة في اإلعالن عن النوع العددي ثابتة لذلك النوع، لذلك من الممكن أن نكتب إن القيم

Holiday: = Friday ; scale: = miles;

يات التي من الممكن استخدامها مع المتغيرات العددية هي العمليةةةةةةةةةةةةةةةةات العالئقيةةةةلن العمإ (relational operators( وطبعا ستكون نتيجة هذا التعبير من النوع )Boolean أي ) صح

فمثال أو خطأ.

مالحظة:// لى متغير من نوع آخر مثالا إ( سناد قيمة من نوع معين )استخدام المساواةإل يجوز

Holiday := miles ; \

مالحظة:// لى نوعين إن قيم األنواع عادة تكون محددة بين قوسين، ول يجوز أن تكون هناك قيمة تعود إلحظ

ف األنواع التالية غير مقبول في ذات البرنامج، يجب أن تحدد لنوع واحد، فمثال تعري

Type Fruit = ( apple, orange, lemon, pineapple, tomato ); Vegetable = ( potato, carrot, tomato, onion ) ;

يظهر في التعريفين tomatoوالسبب الن العنصر \

مالحظة:// ية قراءة وطباعة القيم العددية مباشرة لسوء الحظ فإن لغة البرمجة باسكال ل توفر إمكان

)المتغيرات من هذا النوع(

Holiday := Friday; Write ( holiday)

سيصدر رسالة خطأ المترجمألن مخرجات(، وربما ال تحصل على أي Fridayسوف ال يطبع ).

Page 5: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

123

Monday < Friday Multiply > divide

:( هو بحد ذاته نوع عددي، فهو معرف ضمنيا كنوع قياسي كما يليBooleanإن النوع )Type Boolean = ( false , true );

وهي عبارة صحيحة . False < trueذا قلنا إ وطبعاً ( الدوالsucc,pred ( هي معرفة لألنواع العددية )أي يمكن استخدامها مع األنواع

العددية(، والقيمة المعادة هي من نفس نوع المعامالت المستخدمة، مثالً Succ( Monday ) = Tuesday

(، وآخر عنصر في القائمة ليس predمة ليس له )مع مالحظة أن أول عنصر في القائ (.succله )

( الدالةordلها معامالت عددية وتعيد قيمة عدد صحيح، والذي هو العدد الترتيبي للقي ) مةرتيبي يليه له عدد ت يالعددية في تعريف القائمة حيث أن أول قيمة لها العدد الترتيبي صفر والذ

:من األنواع أعالهقيمته واحد وهكذا .. مثال ... و Ord( plus ) = 0 Ord( tuesdy ) = 1 Ord( cosecant ) = 4

أأيضا من الممكن استخدام( مر التكرارforبالهيكلية ): For scale: = inches to miles do Do something ;

:( مثالwhileهنا ال يمكن استخدام )Scale: = inches ; While ( scale<= miles ) do Begin

Page 6: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

124

Do something ; Scale: = succ( scale ) ; End;

. (succ (miles))سيفشل هذا البرنامج عند حساب

SUBRANGEت الجزئية جاالالم 7.2.2لدنيا احدود هذا النوع يعرف بإسناد ثابتين للمتغير في حقل اإلعالن عن النوع، وهذان الثابتان يمثالن ال

الجزئي، ويجب أن يختلفان ويكونا من نفس النوع مثال: لمجاللعليا لوالحدود ا Type Index = 1 ..35 ;

ن ، والمدى يكو ة( واإلثنان من نوع األعداد الصحيح35( والحد األعلى هو )1هنا الحد األدنى هو ) قيمة من القيم المحددة بالمدىأي (سيأخذ index(، عليه فإن المتغير الذي يعرف من نوع )1-35)

وليس له قيمة خارج هذا المدى.

التعريفان )اإلعالن عن النوع واإلعالن عن المتغير من ذلك النوع( من الممكن أن يدمجان

Type Index = 1 ..35 ; Letter = 'a' .. 'z' ; Digit = '0' .. '9' ; Var Count: index ; Firstchar ,lastchar: letter ;

مالحظة:// ال تستخدم األعداد الحقيقة من هذا النوع )أي ال يمكن أن نستخدم األعداد الحقيقية في المجاالت

الجزئية(

Page 7: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

125

:هذان التعريفان من الممكن دمجهما بتعريف واحد كما يليVar Counter: 1 .. 35 ; Firstchar ,lastchar: 'a' .. 'z' ;

الت يفضل المحافظة على تعريفين منفصلين.الكن في معظم الح

SETSالمجموعات 7.2.3

ي أ( فأن t( مجموعة من األشياء من النوع )Sالمجموعة هي تجميع ألشياء من نفس النوع، فإذا كانت)في اً ( أو ال يكون عنصر Sفي المجموعة ) اً ما أن يكون عنصر إ( tمكون أو أي شيء من النوع )

(. Sالمجموعة )ن مألي نوع عددي )إن نوع القيم في المجموعة هي مجاميع جموعة وفقاً من الممكن أن نعرف نوع الم

:النوع العددي( مثال

مالحظة:// ( المعامالتoperators التي من الممكن أن تستخدم مع متغير لنوع معين ، ممكن )

ضا أن تستخدم مع المجال الجزئي لهذا النوع. مثال ... إذا كان :أيVar Index : 1 .. 10 ; Number : 1 .. 100 ; Result : integer ;

صحيحة : عبارةهي العبارةفإن هذه Result + number div index

متغيرات المجال الجزئي ممكن أيضا استخدامها على كال جانبي المساواة. مثال index : = number ; result : = index

Page 8: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

126

Type Ingredients = ( apple, orange, bananas, strawberries, nuts, icecream, cream, pastry, sugar, ice ) ;

:المجموعة يكون فتعري Type Desert = set of ingredients;

( فيعلن عنها في حقل اإلعالن عن المتغيرات: desertأما المتغيرات من نوع )Var Feast , x: desert ;

ي ( والتingredients( هي مجموعة جزئية من النوع )desertالقيم الثابتة أو المتغيرة من النوع ) (. desertتعتبر النوع األساس للنوع )

بين عنصر وآخر، فاصلةل المجموعة بقائمة من العناصر المعرفة ضمن المجموعة، تفصل تمث :وجميع هذه العناصر محددة بقوسين مربعين . مثال

[ icecream , cream ] , [ apple , bananas , icecream ] , [ orange ]

صفات المجموعات وي المجموعة على أي عنصر عندها تسمى مجموعة خالية، ويرمز من الممكن أن ال تحت

.[]للمجموعة الخالية بالرمز

مالحظة:// إذا كانت عناصر مجموعة معينة متعاقبة فيمكن تحديد العنصر األول واألخير فقط كمجال جزئي

. مثال [ apple , orange , bananas , strawberries ]

من الممكن أن نكتب :[ apple .. strawberries ]

Page 9: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

127

( اتحادunion اثنان من المجاميع ينتج عنهما مجموعة واحدة تحتوي عناصر ) :(. مثال+المجموعتين . عامل االتحاد هو )

[apple] + [bananas, sugar] = [apple, bananas, sugar] ( تقاطعintersection اثنان من المجاميع ينتج عنه مجموعة واحدة تحتوي فقط )

العناصر المشتركة بين المجموعتين )أي العناصر الموجودة في المجموعة األولى وبذات الوقت موجودة في المجموعة الثانية(. عامل التقاطع هو )*( مثال

[ Orange, icecream, cream ] * [ icecream, nuts ] = [ icecream ] ينتج عنه مجموعة واحدة فقط تحتوي على كل العناصر موعاتن من المجتيالفرق بين اثن

التي في المجموعة األولى ولكنها ليست عناصر في المجموعة الثانية. عامل الفرق هو :(مثال-)

[apple, strawberries, bananas ]– [strawberries, cream] = [apple,

bananas] ( الرمزIN ،هي من الكلمات المحجوزة تستخدم هنا الختيار انتماء عنصر لمجموعة )

نتيجة ذلك هو عبارة منطقية )صح أو خطأ(، مثال العبارة التالية عبارة صحية وطبعاً Apple in [ apple , or Apple in [ apple , orange , icecream ]

بينما العبارة التالية هي عبارة خاطئة Apple in [ orange , bananas , icecream , cream]

تستخدم العوامل العالئقية للمقارنة بين المجاميع، والمبينة بالجدول أمثله على ذلك: [ Orange , cream ] = [ cream , orange ] [ icecream ] ≠[ ice , cream ] [strawberries ]<= [ strawberries , cream ] [ apple .. ice ] > = [ icecream .. cream ]

Page 10: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

128

.. ثالمعبارة المساواة ربما من الممكن استخدامها مع متغيرات المجاميع وتعابير المجموعة X: = [ apple , cream , sugar ] ; Feast: = x + [ icecream ] ;

اضياتمقارنة العمليات العالئقية المستخدمة في لغة البرمجة باسكال مع ما يقابلها في الري :جدول الرمز في لغة البرمجة باسكال الرمزالمستخدم في الرياضيات المعنى

[………] {……} (set)المجموعة + U (unionاالتحاد ) * (containsالتقاطع ) (containsتحتوي )

محتواة بالمجموعة (contained by)

)مجموعة جزئية من(

(inclussionتعود الى ) مجموعة خالية

(empty set) []

أمثلة محلولة 7.3 ( ثم أوجد ما يلي255..0عداد )أ وين مجموعتين ذات كلت اً كتب برنامجا: اطبع المجموعتين .1 جد اتحاد المجموعتين .2

مالحظة:// ( فإن فتحة هذه العالمة دائما تشير الى المجموعة األكبر أو تخدام العالمة )عند اس

Page 11: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

129

واطبع النتيجةجد تقاطع المجموعتين .3 ة األولى والثانية واطبع النتيجةجد متممة المجموع .4 جة وجودة في المجموعة الثانية واطبع النتيجد العناصر الموجودة في المجموعة األولى وغير م .5

Program CH7_Program1;

Type Number=set of 0..255;

Var U, t1, t2, t3, t4, t5, t6, t7: number;

Procedure readset (var s1: number);

Var I, x: integer;

Begin

S1:= [];

For i: =1 to 10 do ;

Begin

Writeln ('Enter number 0..255');

Readln(x);

S1:=s1+[x];

End ;

End

Procedure writeset (s1: number);

Var I: integer;

Page 12: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

130

Begin

Write ('{');

For i: = 0 to 255 do

If (I) IN (s1) then

write (i: 4); W

End ; Begin

Readset (t1);

Readset (t2);

Writeset (t1);

Writeset (t2);

T3:=t1+t2;

{union}

Writeset (t3);

T4:=t1*t2;

{intersection}

Writeset (t4);

U:=[0..255];

T5:=u-t1;

Writeset(t5);

T6:=u-t2;

Writeset (t6);

T7:=t1-t2;

writeset (t7);

End .

Page 13: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

131

`

Begin

Write ('{');

For i: = 0 to 255 do

If (I) IN (s1) then

write (i: 4); W

End ; Begin

Readset (t1);

Readset (t2);

Writeset (t1);

Writeset (t2);

T3:=t1+t2;

{union}

Writeset (t3);

T4:=t1*t2;

{intersection}

Writeset (t4);

U:=[0..255];

T5:=u-t1;

Writeset(t5);

T6:=u-t2;

Writeset (t6);

T7:=t1-t2;

writeset (t7);

End .

Page 14: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

132

عربي( ←المصطلحات العلمية )إنكليزي Account حساب

Algorithm خوارزمية

ALU وحدة الحساب و المنطق

Applications تطبيقات

Array مصفوفة

Boolean Operators معامالت منطقية

Byte بايت

Call by reference ء بالمرجعاستدعا

Call by value استدعاء بالقيمة

CASE Structure بنية الشرط االنتقائي

Comment تعليق

Compiler مترجم

Conditional Looping تكرار مشروط

Constant ثوابت

Control Statement جملة تحكم

Computer Memory ذاكرة الحاسوب

Computer Processors معالجات الحاسوب

Computer Software البرامج الحاسوبية

CPU وحدة المعالجة المركزية

CU وحدة التحكم

Data بيانات

Data Boolean-type بيانات منطقية

Page 15: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

133

Data Char-type بيانات حرفية

Data Transfer Rate معدل نقل البيانات

Div قسم صحيح

END نهاية

Field حقل

Function دالة

Global Variable متحول عام

GOTO Statement جملة االنتقال

Identifiers أسماء تعريفية

IF Structure بنية إذا

IF Then Structure إذا فإن

IF-Then-Else Structure بنية إذا....فإن.....وإال

index دليل

inner loop حلقة داخلية

integer صحيح

Lists قوائم Logical errors أخطاء منطقية

Looping تكرار

Machine Language لغة اآللة

Main Memory رئيسية ذاكرة

MOD باقي القسمة

Microprocessor معالج صغري

Multimedia الوسائط المتعددة

Page 16: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

134

Multiprocessing تقنية المعالجات المتعددة

Nested if structure بنية إذا المتداخلة

Network Servers مخدمات الشبكة

One-Dimension Array مصفوفة ذات بعد واحد

Operands معامالت

Operators عوامل

Output إخراج

Parameters معامالت

Pointer مؤشر

Procedures إجراءات

Processing معالجة

Program برنامج

Record سجل

Repeat until Structure جملة تكرار مشروطة

semicolon فاصلة منقوطة

sets مجموعات

Source program برنامج مصدر

String سلسلة حرفية

Variable متغيرات

While-Do Structure بنية تكرار شرطية

Page 17: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

135

المراجع العلمية

إضافات مدرس المقرر

المراجع العربية: -أ . د. زهير دحروج د. غيداء ربداوي 1999الطبعة الثانية عام –دمشق منشورات جامعة 1)البرمجة)1-

ترجمة 1997الطبعة األولى سوريا -حلب -منشورات دار شعاع -)الدليل الكامل( 7تيربو باسكال -2 وإعداد المهندس ياسر نهاد العقاد

يى نجاريحد. 2000عام –منشورات جامعة حلب – (1الخوارزميات وبنى المعطيات ) -3

د. محمد دباس الحميد 2004منشورات جامعة حلب عام –( 1) البرمجة -4

المراجع األجنبية: -ب1. Pascal for Beginner

2. Schneider , G. M.(1982) "An Introduction to Programming and Problem solving

with pascal"

Page 18: VARIABLES TYPEau.edu.sy/.../hospitalmgm/1-2/127_computer-skills.pdf · 2018-03-01 · VARIABLES TYPE عاونلأا تاريغتم ةمدقما 7.1 Integer, Real, Boolean, ( لݰم

136