إعداد المهندس خلد ياسين المؤشرات 0106م بلغة تربو بإسكال جامعة دمشق- الهندسة الملوماتية
يمثل المتحول *مم متحول غلية المؤشر ع1/201801 18561 و الذي عنوانه مخزن في المؤشر م» . و بحارة أدق يمكن الفول
و كما لاحظنا فإن متحول غلبة المؤشز لا يملك اسم مستفلاً و لكن بُشار إليه بواسطة اسم مه
الإشارة إلى هذا المتحول بالإشارة غير المباشرة 26666066 )6
للمتحولات و التي كم بتحديد اسم المتحول مباشر:
إن عبارة الإلحلق السااقة تقوم دما بلي.
.١ تحديد كمية الذاكرة المخصصة للمتحول 808
؟. إلحاق هذه الإمة بلمتحول 5628
على عكس الإشارة المباشرة 28666068 01666
إلحاق قيم بمتحول غاية المؤشر 112118016 187826 10 كنا 1855180108
برينا البرنانج التالى كيغية الحا قيم بمتحول غابة المؤشر
إعداد المهندس خلد ياسين الشيخ المؤشرات 0105م بلغة تربو بإسكال - جامعة دمشق- الهندسة الملوماتية
العدد 8 لذلك نلاحظ أن الكومة قد نفست بمشار 16 بان
و كمانلاحظ من خلال البرنامج السابق أن حلفة 20ع80, سوف تنكرر كثر من مرة و لكن حجم الكومة أن بنغص عدم
تخصيص أي حجرات من الذاكرة داخل جسم حلفة 0684ع, و إذما تلحق القيم بالحجرة التي جرى تخصيصها خارج حلقة
التمييز بين المرشر ى غاية المشر خعويه) فمد بعثمتمم ماعط 06660500
ينغي علينا أولاً و قبل التحامل مع المؤشرات معرفة طريقة تخزين المعلومات باستخدامها إذ باحق بمتحول المؤشر عنوان أي
لا بمكننا إلحاق قبمة بالمتحول م ضمن البرنامج السابق و بالنالي العبارة القالية غبر صحيحية:
و لذلك الأمر بالنسدة لمتحول غلية المؤشر و الذي دائماً بوي على قيمة تقمى لنوع معطيات ما فلا يمكننا تخصيص ذاكرة
له باستخدام الإجراء »0 أي العبارة التالية أيضاً غير صحيحة:
زممسعلا
و ذلك لأن الإجراء بيعم يأخذ متحولاً وسيطياً عبارة عن مؤشر في حين أن 07م متحول من النوع عدد حقفي إذا عندما
تعرف نوع معطيات مؤشر و تصرح عن متحول ينتمي إليه فإن هذا المتحول يدعى بمتحول المؤشر و يحتوي هذا المؤشر
دائم على عنوان موضع في الذاكرة و يحدد حجمه نوع المعطيات الأساسي للمؤشر بسمى هذا الموضع غلية المؤشر
18666 0101م (أي المكان الذي يشير إليه المؤشر) و غلية المؤشر كما ذكرنا عبارة عن تتابع حجرات من الذاكرة توضع
فيها العجمة امراد تخزيتها فإنا أردتا تخزين عنوان غلية المؤشر عندئد يتم إلحاقها بمتحول المؤشر مباشرة أما إنا أردتا تخزين
قيمة للمؤشر عند تُلحق يتحول غلة المؤشر أي بمتحول المؤشر متبوعاً الرمز *
ويمكنَ اختصار الكلام السابق بما يلي:
المؤشرات 00104665 هى عبارة عن متحولات تحوى عناوين فى الذاكرة كقيم تكون مخزنة ضمنها ٍ
عنوانا لمتحول بحتوي على قيمة ممينة حيت أن المتحول ينل بشكل مياشر على فيمة معينة و يدل المؤشر بشكل غير مباشر
على قيمة و تسمى عملية الدلالة من خلال المؤشر بالعملية غير المباشرة :1001866
مثل بعية المتحولات يجب التصريح عن المؤشرات قبل استخدامها ويتم ذلك بلغة باسكل من خلال علامة الإدراج * 64م:9.
إلحاق المؤزشرات 2551800716045 +0101
يمكتنا إلحاق محتويات متحول مؤشر إلى منحول مؤشر آخر إذا كان كلا المتحولين يتتمي إلى نوع معطيات واحد و بعبارة
أدق يمكن أن يشير المؤشران إلى قيم من نفس النوع 0
يرينا البرنامج التالى كيفية إلحلق محتويات متحول مؤشر بمتحول مؤشر آخر
الجمهورية العربية السورية - دمشق- مضمية الشام المهندس خلد ياسين الشيخ
إعداد المهندس خلد ياسين الشيخ المشرات 0105م بلغة تربو بإسكال - جامعة دمشق- الهندسة الملوماتية
عندما الحا قيمة متحول المؤشر مم بمتحول المؤشر 02م أصتنج لدينا مؤشران بشيران إلى موضع واحد في الذاكرة. حيت
تحرف هذه العملية بلتسمية المضاحفة أو البديلة 21185608 و هي تسبب بعض المشكل أحيانً أن لم نكن حربصين بلضر
الكافى فإذا دمي موضع ما في الذا: أسماء فلن البرنامج سوف يستطيع تغيير الغيمة المخزنة في هذا الموضع بعدة
طرق و هذا القنوع سيشكل صعوية في تتبع خطوات البرنامج مما يؤدي إلى صعوية في اكتشاف الأخطاء.
تقذ البرنابج الثالى و أدخل قيماً كبيرة و من ثم أدخل قيماً صغير بين 0 و 1
إعداد المهندس خلد ياسين الشيخ المؤشرات 0105م بلغة تربو بإسكال - جامعة دمشق- الهندسة الملوماتية
يحول البرنامج السلق القيم الكبيرة إلى قيم صغيرة و العكس بلعكس .فعنما بدخل المستخدم قيمة ما فإن الدرنامج سوف
بخزنها فى المتحول *0م الذي يستخدم فط عند استدعاء الإجراء 816891 و ضمن امتدعايين للجراء 10/014600 . وبعد
أن ألحق البرنامج قيمة بالمتحول مم من خائل امتدعاء الإجراء وعم ألحق قيمة بلمتحول 2مم أي جعل المؤشر الثاني بشير
إلى نفس موضع الذاكرة الذي يشير إليه المؤشر الأول أو بمسنى جعل كا المتحولين 00 و 02م بحتوي على نن العنوان.
أما استدعاء الإجراء 822056080 فهو بتعامل مع 2مم حيبت بعمل على تغيير قيمة المتحول 1080630 و الذي بكافئ نمام
المتحول *02) . و لكن يما 2م, و ع بشيران إلى نعن الموضع من الناكرة فإن تغيير غلية المؤشر 2م هي
غاية المؤشر ص, و ذلك لأن *م, و 20م هما اسمان لمتحول واحد.
الوسيط الوحيد في الإجراء 18056000 سق بالمميز عن وكن الإجراء صلبًلا يغير قيمة المتحول 02/ و إنما يغير قيمة
المتحول 2*8مم لذلك فإن حذف المميز عونا من أمام الوسبط 4م406 لا يؤثر على تنفيذ البرنامج احذف الممبز 82لا وان
البرنامج نلية.
من أجل فهم أكبر للمؤشرات لنشرض أن عتاوين حجر الذاكرة هي أعداد من النوع الصحبح عند سوف نخزن في متحول
المؤشر قيمة تتلف من بايتين :الأول منها يحوي على عنوان مظع 8001208 المخزن فيه غلية المؤشر و الثاني يمثل
إزاحة 085988 غلية المؤشر عن بداية المع . فإذا كان لدبنا العنوان 5000 مخزن ضمن المتحول 2مم وأيضااضمن
المتحول م, و استدعبنا الإجراء 2680560000 ومزرنا المتحول 2مم بغيمته فإن القيمة المحتواة في 002 سوف تنسخ و
تمزر إلى الإجراء و سوف يفسر الإجراء هذه العيمة (أعني 5000 ) على أنها عنوان في الذاكرة و سيفهم المتحول 4:27م18
المؤشرات 010628م بلغة تربو باسكال جامعة دمشق- الهندسة المعلوماتية
مقطا عااطنامع6 طدعم مفلا ٠ من 3١
الإجراء أم العجمة المخزنة فى المتحول 2م, فا يمكن الوصول إليها على الرغم من ارتباط هذه الغيمة بغاية المؤشر. لذلك إذا
مررذا مؤشراً بغيمته عندتد يمكننا تغيير غلية المؤشر و لكن لا تستطيع تغيير قيمة المؤشر نفسه: يمكتنا تخيل ذلك بالذاكرة
غلة المؤشر |5000
إلحاق العناوين بالمؤشرات 55/ع0104م 10 200/655 185518010
لع دين أن عملية تهيئة المؤشرات تتم بانتدعاء الإجراء »080 أو بواسلة إلحلق متحول مؤشر إلى متحول مؤشر آخر من
نفس النوع . و لكن لغة تربو باتكل سمحت بالحاق عنوان متحول معين إلى متحول مؤشر و لو كان هذا المتحول قد عرف
على أنه متحول ساكن 3816
116 200:6 655 008124085 © معامل العنوان .١
تزودنا لغة تربو باسكال بالمعامل © و التابع 2003855 من أجل التحامل مع العناوين. حيت بغوم معامل العنوان
0021310 800855 بتوليد موقع منخوله الوسيطى و هذا المتحول الوسبطي يمكن أن يكون متحولاً أو وسبطأً أو حنى
إذ يأخذ المعادل © متحولاً وسيطبً واحداً يملك مو في الذاكرة و يعيد موقع هذا المتحول الوسيطى. و هذا المعامل أحادي
التلع 008م ومتعصاع 008م 108
يأخد التاع 8008 مميز متحول أو اسم إجراء أو تابع أو تشكلك عرد موص وو حدصي هولحاي
متواضة مع كل المؤشرات و يمكن إلحاقها بلي متحول مؤش
البرنامج التالى بظهر لناكيغبة استخدام المعامل © و التابع 8 00م للحصول على عناوين في الذاكرة.
إعداد المهندس خلد ياسين الشيخ
خرج المرناج هو
يقوم المحامل © و التلبع 8002 ينس العمل لذلك لا فر
استخدام الإجراء 6800080 لتخصيص مساحات تخزين
بالإضافة إلى الإجراء »عم يوجد في لغة تربو باسكال
8861060 و هو يأخذ متحولين وسيطين هما
.١ متحول مؤشر
ات 0104م بلغة تربو بإسكال
جامعة دمشق- الهندسة الملوماتية
10:5 2 ور - * 1:10:52 دوم - 1و )هعاط
ىق فى امتخدام أحدهما مكان الآخر
ن ديناميكية
إجراء آخر أتخصيص مساحات تخزين ديناميكية هذا الإجراء هو
متحول من النوع موب يمثل عدد البايئات الواجب تخصيسها من الناكزة دينميكيً
فعلى مديل المثال تخصص العبارة الثالية سقة بايئات من الذاكرة و تلحق هذه البايئت ١|
بلمتحول أور1م
بخصص مدير الكومة 6ع00308 م8ع1) تملئية بليتات كما ذكرت لأنها أقل وحدة تخصيص يسمج مدير الكومة أبرنامج
باستخدامها . لذلك بقع على عاق المبرمج مسؤولب
أخطاء المؤشرات ؟ا(5)
في محضلات كبيرة قد لا تحل أبدً لذلك سوف تتناول في العترات ال
إعادة استخدام المؤشر 6010468 2 5108نا36:
يحت إذ أعدنا تخصيص مؤشر م تخصيص مساحة له'
بعض هذه المشاكل الني تواجهنا أثناء استخدام
من خلال التخصيص الدينميكى تذاكرة الكومة م89 و لكن مانا
شر نفسه في كل مرة
بلمعد حت صلق عور
بطم
بسم ةميد عط
المهندس خلد ياسين الشيخ
إعداد المهندس خلد ياسين الشيخ المؤشرات 0104م بلغة تربو باسكال
هلوط
بلامناه ,تو لعطعع
عفرن /10بلثةلمسعه' - لتعجة عه ه0161
تعتففة
معخرط 52160فع 6ل كل م062 16
يستدعي البرنامج السابق الإجراء (/0عج عدة مرات و في كل مرة بخصص الإجراء مساحة لتخزين عدد حقبقي و بجعل
المؤشر :4م08 يؤشر إلى هذا المتحول (مع ملاحظة أن المتحول :4م08 بوافق المنحول العام مم ) وبجد انتهاء هذه
الاستدعاءات المتكررة يفحص البرنامج الحجم المتبقي من ذاكرة الكومة.
نلاحظ من خلئل البرنامج السابق أن البرنامج قد أنقص ذاكرة الكومة بمشار 160 باينا في حبت لدينا متحولاً وأحداً هو 0
أما المتحولات التسمة عشر التي أنشاها فد فدت؟ ففي كل استدعاء للإجراء /ع0 جرى تغيير محويت 1م06 بكتاية
عنوان جديد فيه و بذلك بد الحتوان الضيم و تف معه مخرة لبرنامج على الوصول إلى القيم المخزنة فى ذلك النوان(توجد
طريقة لتجاوز هذه الحقة و هى إنشاء أنواع معلبات مركية و قوبة تدعى بللوائج ئونا ).
الجمهورية العربية السورية - دمشق- مضمية الشام المهندس خلد ياسين الشيخ
إعداد المهندس خلد ياسين الشيخ المؤشرات 1046م بلغة تربو باسكال
إعادة مساحة من الذاكرة إلى الكومة م08 16 10 5407286 16001010
إعادة إرجاع مساحة بعض حجرات من الذاكرة مخصصة لمتحول ما إلى ذاكرة الكومة و هذه العملية تحرف بإنهاء التخصيص
0000م للذاكرة و إنهاء التخصيص هذا يعيد مساحات الذاكرة المخصصة و بجعلها قابلة للاستخدام من جديد و للقبام
بذلك نستخدم الإجراء 0190058 الذي يمكننا من إعادة حجرات من الذاكرة خصصت بواسطة الإجراء وعم . بأخذ هنا
الإجراء متحولاً وميطيا واحداً عبارة عن مؤشر و يعد المساحة المخصصة لمتحول غابة المؤشر
لنغرض أن لدبنا الاستدعاءات الخمسة الثلية للإجراء وعم
بالخام )عل
ز(كتم )عل
غاية المؤشر 0157م 7
غلية المؤشر 1137م
غلية المؤشر 1027م
غلية المؤشر 1017م وه
يت يشير المؤشر مسيق التعريف 0م188 إلى قمة الكومة دائماً لذلك
للذاكرة لبشير إلى قمة الكومة.
يمة هذا المؤشر بعد كل عملية تخصيص
ممثل فى الشكل التالى:
غاية المؤشر 0157م 0
غلية المؤشر 1047م
علي المؤشر 1027م حا
غلية المؤشر 1017م نوي
الجمهورية العربية السورية - دمشق- مضمية الشام المهندس خلد ياسين الشيخ
إعداد المهندس خلد ياسين الشيخ
المؤشرات 0106م بلغة تربو بإسكال
و من أجل امتدعاء آخر للإجراء 1005ل مع المؤشر 0764م عند ستصبح الكومة كما بلي:
مقع طوزيا
المساحة بغاية مشر آخر
يستخم البرنامج التالى الإجراء 4150058 لإنهاء تخصيص المؤشرات
عله المؤشر 0027م
غية المؤثر عام
نلاحظ من خائل الشكلين السابين أن عملية إنهاء التخصيص ذلك قد تركت فجوة فارغة 1018| ضمن المساحة المستخدمة من
الكومة و عند تخصيص مؤشر جديد يجري فحص هده المساحة من حيت كونها نكمي لتخزين غاية المؤشر الجديد. فإنا كانت
فإنا أعنا متلا تخصيص المؤشر 13م مرة أخرى وف بتوضع فى ذاكرة الكومة على الشكل التلى إن لم تشغل هذه
َ دنا
غاية المؤشر 0157م 8
عي المؤشر 1137م
غلية المؤشر 01:27 8"
المهندس خلد ياسين الشيخ