المتغيرات الحقيقية باسكال دعونا نتعلم المزيد عن أنواع بيانات لغة باسكال: Integer، Real، Char، String، Boolean

27.09.2019

تتضمن الأنواع الترتيبية (انظر الشكل 4.1) الأنواع الصحيحة والمنطقية والحرفية والمعدادة والنطاقية. تنطبق الدالة ORD(X) على أي منها، حيث تقوم بإرجاع الرقم الترتيبي لقيمة التعبير X. بالنسبة للأنواع الصحيحة، تقوم الدالة ORD(X) بإرجاع قيمة X نفسها، أي. ORD(X) = X لـ X التي تنتمي إلى أي نوع من أنواع الصدفة. يؤدي تطبيق ORD(X) على الأنواع المنطقية والحروف والتعداد إلى إنتاج عدد صحيح موجب في النطاق من 0 إلى 1 (منطقي)، ومن 0 إلى 155 (حرف)، ومن 0 إلى 65535 (تعداد). يحتفظ نوع النطاق بجميع خصائص النوع الترتيبي الأساسي، وبالتالي فإن نتيجة تطبيق الدالة ORD(X) عليه تعتمد على خصائص هذا النوع.

يمكنك أيضًا تطبيق الوظائف على الأنواع الترتيبية:

PRED (X) - تُرجع القيمة السابقة للنوع الترتيبي (القيمة التي تتوافق مع الرقم الترتيبي ORD(X) - 1)، أي.

ORD(PRED(X)) = ORD(X) - 1;

SUCC (X) - تُرجع القيمة الترتيبية التالية التي تطابق الرقم الترتيبي ORD(X) +1، أي.

ORD(SUCC(X)) = ORD(X) + 1.

على سبيل المثال، إذا قام البرنامج بتعريف متغير

ثم سترجع الدالة PRED(C) القيمة "4"، وسترجع الدالة SUCC(C) القيمة "6".

إذا تخيلنا أي نوع ترتيبي كمجموعة مرتبة من القيم، تتزايد من اليسار إلى اليمين وتحتل مقطعًا معينًا على محور الرقم، فلن يتم تعريف الدالة PRED(X) لليسار، وSUCC(X) لليمين نهاية هذا الجزء.

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

الجدول 4.1

عند استخدام الإجراءات والوظائف ذات المعلمات الصحيحة، يجب أن تسترشد بـ "تداخل" الأنواع، أي. أينما يمكن استخدام WORD، يمكن استخدام BYTE (ولكن ليس العكس)، وLONGINT "يتضمن" عددًا صحيحًا، والذي بدوره يتضمن SHORTINT.

وترد قائمة الإجراءات والوظائف المطبقة على أنواع الأعداد الصحيحة في الجدول 4.2. حروف ب، ق، ث، ط، ليتم تحديد التعبيرات من النوع BYTE وSHORTINT وWORD وINTEGER وLONGINT، على التوالي، x هو تعبير عن أي من هذه الأنواع؛ حروف vb، vs، vw، vi، vl، vxتشير إلى متغيرات الأنواع المقابلة. تتم الإشارة إلى المعلمة الاختيارية بين قوسين مربعين.

الجدول 4.2

الإجراءات والوظائف القياسية المطبقة على الأنواع بأكملها
جاذبية نوع النتيجة فعل
القيمة المطلقة (خ) س إرجاع الوحدة x
مركز حقوق الإنسان (ب) شار إرجاع حرف حسب الكود الخاص به
ديسمبر (vx[، i]) - يقلل قيمة vx بمقدار i، وفي غياب i - بمقدار 1
المؤتمر الوطني العراقي (VX [، أنا]) - تزيد قيمة vx بمقدار i، وفي غياب i - بمقدار 1
مرحبا انا) بايت إرجاع البايت العالي للوسيطة
مرحبا (ث) نفس نفس
لو (ط) " إرجاع البايت المنخفض للوسيطة
قليل) " نفس
غريب (ل) منطقية إرجاع True إذا كانت الوسيطة رقمًا فرديًا
عشوائي (ث) نفس المعلمة إرجاع رقم عشوائي زائف موزع بشكل موحد في النطاق 0...(w-l)
سنجر (خ) X إرجاع مربع الوسيطة
مبادلة (ط) عدد صحيح مبادلة بايت في كلمة واحدة
مبادلة (ث) كلمة

عند العمل مع الأعداد الصحيحة، فإن نوع النتيجة سوف يتوافق مع نوع المعاملات، وإذا كانت المعاملات من أنواع صحيحة مختلفة، فإن نوع المعامل الذي لديه أقصى قوة (أقصى نطاق للقيم). لا يتم التحكم في التجاوز المحتمل للنتيجة بأي شكل من الأشكال، مما قد يؤدي إلى سوء الفهم، على سبيل المثال:

أ:= 32767; (أقصى قيمة عددية ممكنة)

س:= أ + 2؛ (تجاوز الحد أثناء تقييم هذا التعبير !}

y:= LongInt(a)+2; (لا يوجد تجاوز بعد إرسال المتغير إلى نوع أكثر قوة)

رايت لين (س:10:0، ص:10:0)

نتيجة لتشغيل البرنامج نحصل عليه

نوع منطقي. يمكن أن تكون القيم المنطقية إحدى الثوابت المعلنة مسبقًا FALSE أو TRUE. تنطبق عليهم القواعد:

خطأ شنيع< True;

succ(False)= صحيح;

بريد (صحيح) = خطأ.

نظرًا لأن النوع المنطقي هو نوع ترتيبي، فيمكن استخدامه في عامل نوع قابل للعد، على سبيل المثال:

لـ 1:= من الخطأ إلى الصحيح ....

نوع الحرف.قيمة نوع الحرف هي مجموعة كافة أحرف الكمبيوتر. يتم تعيين عدد صحيح لكل حرف في النطاق 0...255. يعمل هذا الرقم كرمز للتمثيل الداخلي للرمز؛ ويتم إرجاعه بواسطة الدالة ORD.

يتم استخدام رمز ASCII للتشفير ( الكود القياسي الأمريكي لتبادل المعلومات- الكود الأمريكي القياسي لتبادل المعلومات). هذا رمز 7 بت، أي. يمكنه تشفير 128 حرفًا فقط في النطاق من 0 إلى 127. وفي الوقت نفسه، في البايت 8 بت المخصص لتخزين حرف في Turbo Pascal، يمكنك تشفير ضعف عدد الأحرف في النطاق من 0 إلى 255. النصف الأول من أحرف الكمبيوتر الشخصي مع الرموز 0...127 يتوافق مع معيار ASCII (الجدول 4.3). النصف الثاني من الأحرف ذات الرموز 128...255 لا يقتصر على الإطار الصارم للمعيار ويمكن تغييره على أنواع مختلفة من أجهزة الكمبيوتر (يوضح الملحق 2 بعض خيارات التشفير الشائعة لهذه الأحرف).

الجدول 4.3

ترميز الأحرف وفقًا لمعيار ASCII
شفرة رمز شفرة رمز شفرة رمز شفرة رمز
NUL ب.ل. ® "
منطقة ! أ أ
اس تي اكس " في ب
إيتكس # مع مع
محكمة تكافؤ الفرص $ د د
إن كيو % ه ه
بسأل & F F
بيل " ز ز
ب.س. ( ح ح
NT ) أنا أنا
LF * ج ي
VT + ك ك
FF , ل أنا
سجل تجاري - م م
لذا . ن ن
إس.آي. / عن
ديل ص ص
DC1 س س
DC2 ر ص
DC3 س س
DC4 ت ر
ن.ك. ش ش
مزامنة الخامس الخامس
إي تي بي ث ث
يستطيع X X
م. ش ش
الفرعية : ض ض
خروج / [ {
خ.س < \ ل
جي إس. = ] }
ر.س. > ^ ~
نحن ? - ن

تشير الأحرف ذات الرموز 0...31 إلى رموز الخدمة. إذا تم استخدام هذه الرموز في نص أحرف البرنامج، فسيتم اعتبارها مسافة بيضاء. عند استخدامها في عمليات الإدخال/الإخراج، يمكن أن يكون لها المعنى المستقل التالي:

رمز شفرة معنى
بيل يتصل؛ يكون عرض هذا الرمز مصحوبًا بإشارة صوتية
NT الجدولة الأفقية؛ عند عرضه على الشاشة، يحرك المؤشر إلى موضع يكون من مضاعفات 8 زائد 1 (9، 17، 25، إلخ.)
LF ترجمة الخط؛ عند عرضه على الشاشة، سيتم إخراج جميع الأحرف اللاحقة بدءًا من نفس الموضع، ولكن في السطر التالي
VT علامة تبويب عمودية؛ وعند عرضه على الشاشة يتم استبداله بحرف خاص
FF تشغيل الصفحة؛ عند الإخراج إلى الطابعة، فإنه يشكل صفحة؛ وعند الإخراج إلى الشاشة، يتم استبداله بحرف خاص
سجل تجاري إرجاع؛ يتم إدخاله عن طريق الضغط على مفتاح Enter (عند الإدخال باستخدام READ أو READLN، فهذا يعني أمر "Enter" ولا يتم وضعه في المخزن المؤقت للإدخال؛ وعند الإخراج، يعني أمر "متابعة الإخراج من بداية السطر الحالي")
الفرعية نهاية الملف؛ يتم الدخول من لوحة المفاتيح بالضغط على Ctrl-Z؛ عند الإخراج يتم استبداله بعلامة خاصة
التعاون بين بلدان الجنوب نهاية العمل؛ يتم إدخاله من لوحة المفاتيح بالضغط على مفتاح ESC؛ عند الإخراج يتم استبداله بعلامة خاصة

تنطبق العمليات العلائقية، بالإضافة إلى الوظائف المضمنة، على نوع CHAR: СНR(В) - وظيفة من نوع CHAR؛ تحويل تعبير B من النوع BYTE إلى حرف وإرجاعه بقيمته؛

UPCASE(CH) - وظيفة نوع CHAR؛ يتم إرجاع الحرف الكبير إذا كان CH حرفًا لاتينيًا صغيرًا، وإلا يتم إرجاع الحرف CH نفسه، على سبيل المثال:

cl:= UpCase("s") ;

c2:= UpCase ("Ф") ;

WriteLn(cl،" "،c2)

نظرًا لأن وظيفة UPCASE لا تعالج السيريلية، فإن نتيجة تشغيل هذا

سيتم عرض البرامج على الشاشة

نوع التعداد. يتم تحديد النوع المُعدّد من خلال تعداد القيم التي يمكنه تلقيها. تتم تسمية كل قيمة بواسطة معرف ما، وتقع في قائمة محاطة بأقواس، على سبيل المثال:

الألوان =(الأحمر، الأبيض، الأزرق)؛

استخدام الأنواع المذكورة يجعل البرامج أكثر وضوحًا. على سبيل المثال، إذا كان البرنامج يستخدم البيانات المرتبطة بأشهر السنة، فإن الجزء التالي من البرنامج:

TypeMonth=(يناير، فبراير، مارس، أبريل، مايو، يونيو، يوليو، أغسطس، سبتمبر، أكتوبر، نوفمبر، ديسمبر)؛

الشهر: TypeMonth؛

إذا كان الشهر = أغسطس ثم WriteLn("سيكون من الجميل الذهاب إلى البحر!");

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

TypeMonth=(jan,feb,mar,may,jun,jul,aug,sep,oct,nov,dec);

الشهر: TypeMonth؛

إذا كان الشهر = أغسطس ثم WriteLn("سيكون من الجيد الذهاب إلى البحر!");

يتم تحديد المراسلات بين قيم النوع المعدود والأرقام الترتيبية لهذه القيم من خلال ترتيب التعداد: القيمة الأولى في القائمة تتلقى الرقم الترتيبي 0، والثانية - 1، وما إلى ذلك. الحد الأقصى للسعة للنوع المُعدَّد هو 65536 قيمة، لذلك في الواقع يحدد النوع المُعدَّد مجموعة فرعية معينة من نوع WORD بأكمله ويمكن اعتباره إعلانًا مضغوطًا لمجموعة من الثوابت الصحيحة ذات القيم 0، 1، إلخ.

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

الألوان = (أسود، أحمر، أبيض)؛

الترتيبي = (واحد، اثنان، ثلاثة)؛

الأيام = (الإثنين، الثلاثاء، الأربعاء)؛

من حيث السلطة والتمثيل الداخلي، فإن الأنواع الثلاثة متساوية:

أورد (أسود) = 0، ...، أورد (أبيض) = 2،

أورد(واحد)=0, ...أورد(ثلاثة)=2,

أورد(الاثنين)=0, ...أورد(الأربعاء)=2.

ومع ذلك، إذا تم تعريف المتغيرات

العقيد: الألوان؛ الأسطوانات: ترتيبي؛

ثم يسمح للمشغلين

الأسطوانات:= succ(two);

يوم:= بريد(الثلاثاء);

ولكن غير مقبول

كما ذكرنا من قبل، هناك مراسلات فردية بين قيم النوع المذكور ومجموعة الأعداد الصحيحة المحددة بواسطة الدالة ORD(X). يسمح Turbo Pascal أيضًا بالتحويل العكسي: يمكن تحويل أي تعبير من النوع WORD إلى قيمة من نوع التعداد، طالما أن قيمة التعبير الصحيح لا تتجاوز power1™ لنوع التعداد. يتم تحقيق هذا التحويل باستخدام دالة معلنة تلقائيًا باسم النوع المذكور (انظر القسم 4.4). على سبيل المثال، بالنسبة لإعلان النوع الذي تمت مناقشته أعلاه، فإن المهام التالية متكافئة:

العقيد:= الألوان(0);

بالطبع التكليف

سيكون غير مقبول.

يمكن الإعلان عن المتغيرات من أي نوع تم تعداده دون الإعلان عن هذا النوع أولاً، على سبيل المثال:

العقيد: (أسود، أبيض، أخضر)؛

نطاق النوع. نوع النطاق هو مجموعة فرعية من نوعه الأساسي، والذي يمكن أن يكون أي نوع ترتيبي باستثناء نوع النطاق. يتم تعريف نوع النطاق من خلال حدود قيمه ضمن النوع الأساسي:

<мин.знач.>..<макс.знач.>

هنا<мин.знач. >- الحد الأدنى لقيمة نطاق النوع؛

<макс.знач.>- قيمته القصوى.

على سبيل المثال:

رقم = "0".."9";

ليس من الضروري وصف نوع النطاق في قسم TYPE، ولكن يمكن تحديده مباشرة عند الإعلان عن متغير، على سبيل المثال:

Ihr: "أ".."Z"؛.

عند تحديد نوع النطاق، يجب عليك اتباع القواعد التالية:

  • يتم التعامل مع حرفين ".." كحرف واحد، لذا لا يُسمح بالمسافات بينهما؛
  • يجب ألا تتجاوز الحدود اليسرى للنطاق حدوده اليمنى. يرث نوع النطاق جميع خصائص النوع الأساسي الخاص به، ولكن مع قيود قوته المنخفضة. على وجه الخصوص، إذا تم تعريف متغير

أيام = (mo,tu,we,th,fr,sa,su);

نهاية الأسبوع = sa .. su;

ثم سيقوم ORD(W) بإرجاع القيمة 5 بينما سيؤدي PRED(W) إلى حدوث خطأ.

تتضمن مكتبة Turbo Pascal القياسية وظيفتين تدعمان العمل مع أنواع النطاقات:

HIGH(X) - يُرجع القيمة القصوى لنوع النطاق الذي ينتمي إليه المتغير X؛

LOW(X) - يُرجع الحد الأدنى لقيمة نوع النطاق.

سيقوم البرنامج القصير التالي بطباعة السطر

WriteLn(منخفض(ك)،".."،عالي(ك))

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

يتكون رقم النقطة العائمة من مجموعة من الأرقام الفردية، والتي يتم تقسيمها تقليديًا إلى علامة، وأُس، وجزء عشري. الأس والأجزاء العشرية عبارة عن أعداد صحيحة تعطي، مع العلامة، التمثيل التالي لرقم النقطة العائمة:

رياضيا يتم كتابته على النحو التالي:

(-1) s × M × B E، حيث s هي العلامة، B هو الجذر، E هو الأس، وM هو الجزء العشري.

تحدد القاعدة نظام الأرقام. لقد ثبت رياضيًا أن أرقام الفاصلة العائمة ذات الأساس B=2 (التمثيل الثنائي) هي الأكثر مقاومة لأخطاء التقريب، وبالتالي يتم مصادفة القواعد 2 فقط، والأقل شيوعًا، 10 لمزيد من العرض، سنفترض دائمًا B= 2، وستبدو صيغة الرقم ذو النقطة العائمة كما يلي:

(-1) ق × م × 2 ه

ما هو العشري والنظام؟ الجزء العشريهو عدد صحيح ذو طول ثابت يمثل البتات الأكثر أهمية في الرقم الحقيقي. لنفترض أن الجزء العشري الخاص بنا يتكون من ثلاث بتات (|M|=3). خذ على سبيل المثال الرقم "5"، والذي سيكون في النظام الثنائي يساوي 101 2. البتة الأكثر أهمية تقابل 2 2 = 4، والبت الأوسط (الذي يساوي الصفر) هو 2 1 =2، والبت الأقل أهمية هو 2 0 =1. طلب– هذه هي درجة الأساس (اثنين) للرقم الأعلى. في حالتنا E = 2. ومن الملائم كتابة مثل هذه الأرقام بالشكل القياسي "العلمي"، على سبيل المثال "1.01e+2". من الواضح على الفور أن العشري يتكون من ثلاث علامات، والترتيب هو اثنان.

لنفترض أننا نريد الحصول على رقم كسري باستخدام نفس الأجزاء الثلاثة من الجزء العشري. يمكننا القيام بذلك إذا أخذنا، على سبيل المثال، E=1. إذن سيكون العدد لدينا متساويًا

1.01e+1 = 1×2 1 +0×2 0 +1×2 -1 =2+0.5=2.5

من الواضح أنه بهذه الطريقة يمكن تمثيل نفس العدد بطرق مختلفة. دعونا نفكر في مثال بطول الجزء العشري |M|=4. ويمكن تمثيل الرقم "2" على النحو التالي:

2 = 10 (ثنائي) = 1.000e+1 = 0.100e+2 = 0.010e+3.

لذلك، بالفعل في الآلات الأولى، تم تمثيل الأرقام في ما يسمى شكل طبيعي، عندما كان يُفترض دائمًا أن الجزء الأول من الجزء العشري يساوي واحدًا.

يؤدي هذا إلى حفظ بت واحد (نظرًا لأن البت الضمني لا يحتاج إلى تخزينه في الذاكرة) ويضمن تمثيل الرقم بشكل فريد. في مثالنا، "2" له تمثيل واحد ("1.000e+1")، ويتم تخزين الجزء العشري في الذاكرة كـ "000"، لأن الوحدة الرائدة ضمنية. لكن تظهر مشكلة جديدة في التمثيل الطبيعي للأرقام، وهو أنه من المستحيل تمثيل الصفر بهذا الشكل.

  • تحليل البيانات باستخدام أوامر تحديد المعلمة والبحث عن الحلول
  • تحليل وتفسير بيانات البحوث النفسية التجريبية.
  • تحليل البيانات المصدر. المعايير الفنية لطرق المدينة.
  • تحليل البيانات التي تم الحصول عليها. اتخاذ القرار بشأن مدى كفاية أو عدم كفاية خصائص إمدادات المياه لاحتياجات نظام الري.
  • معدات خط الاتصال: معدات نقل البيانات، المعدات الطرفية، المعدات الوسيطة.

  • يتناول الدرس أنواع البيانات القياسية الرئيسية في لغة باسكال، ومفهوم المتغير والثابت؛ يشرح كيفية التعامل مع العمليات الحسابية

    باسكال هي لغة برمجة مكتوبة.وهذا يعني أن المتغيرات التي تخزن البيانات هي من نوع بيانات محدد. أولئك. يجب أن يشير البرنامج مباشرة إلى البيانات التي يمكن تخزينها في متغير معين: بيانات نصية، بيانات رقمية، إذا كانت رقمية، ثم عدد صحيح أو كسري، وما إلى ذلك. يعد هذا ضروريًا في المقام الأول حتى "يعرف" الكمبيوتر العمليات التي يمكن إجراؤها باستخدام هذه المتغيرات وكيفية تنفيذها بشكل صحيح.

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

    دعونا نلقي نظرة على أنواع البيانات الأكثر شيوعا في باسكال.

    أنواع البيانات الصحيحة في باسكال

    يكتب يتراوح الذاكرة المطلوبة (بايت)
    بايت 0..255 1
    Shortint -128..127 1
    عدد صحيح -32768.. 32767 2
    كلمة 0..65535 2
    longint -2147483648..2147483647 4

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

    أمثلة لكيفية وصف (إعلان) المتغيرات في باسكال:

    البرنامج a1؛ فار س،ص:عدد صحيح؛ (نوع عدد صحيح) myname:string; (نوع السلسلة) begin x:=1; ص:=س+16; اسمي:="بيتر"; writeln("الاسم: "،myname, "، العمر: "، y) النهاية.

    نتيجة:
    الاسم: بيتر، العمر: 17 سنة

    التعليقات في باسكال

    لاحظ كيف يتم استخدام التعليقات في باسكال. في التعليقات على سبيل المثال، على سبيل المثال. يتم وضع نص الخدمة "غير المرئي" للمترجم بين قوسين متعرجين. عادة، يتم تقديم التعليقات من قبل المبرمجين لشرح أجزاء من التعليمات البرمجية.

    المهمة 3.ويبلغ عدد سكان موسكو = 9.000.000 نسمة. يبلغ عدد سكان نيو فاسيوكي = 1000 نسمة. اكتب برنامجا يحدد الفرق في عدد السكان بين مدينتين. استخدم المتغيرات

    أنواع البيانات الحقيقية في باسكال

    الأعداد الحقيقية في لغة باسكال وفي البرمجة بشكل عام هي اسم الأعداد الكسرية.

    يكتب يتراوح الذاكرة المطلوبة (بايت)
    حقيقي 2.9*10E-39 .. 1.7*10E38 6
    أعزب 1.5*10 إي-45 .. 3.4*10إي38 4
    مزدوج 5*10E-324 .. 1.7*10E308 8
    ممتد 1.9*10E-4951 .. 1.1*10E4932 10

    النوع الحقيقي في لغة باسكال هو النوع الحقيقي الأكثر استخدامًا.

    تم تقديم ما سبق أنواع البيانات البسيطة في باسكال، والتي تشمل:

    • ترتيبي
    • جميع
    • دعابة الدماغ
    • شخصية
    • قابل للقائمة
    • فاصلة
    • حقيقي

    لعرض قيم المتغيرات من النوع الحقيقي، عادة ما يتم استخدام الإخراج المنسق:

  • يستخدم التنسيق إما رقمًا واحدًا، مما يشير إلى عدد المواضع المخصصة لهذا الرقم بالشكل الأسي؛
  • ع:=1234.6789; رايتلن(ص:6:2); (1234.68)

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

    الثوابت في باسكال

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

    يتم الإعلان عن الثابت في لغة باسكال قبل الإعلان عن المتغيرات (قبل كلمة الخدمة var) ويبدو كما يلي:

    مثال على وصف ثابت في باسكال:

    1 2 3 4 5 6 ثابت س= 17 ; فار myname: سلسلة؛ ابدأ اسمي: = "بيتر"؛ writeln ("الاسم: "، myname، "، العمر: "، x) النهاية .

    ثابت س = 17؛ فار myname:string; ابدأ اسمي:="بيتر"; writeln("الاسم: "،اسمي،"،العمر: "،x) النهاية.

    إخراج "جميل" للأعداد الصحيحة والأعداد الحقيقية

    من أجل التأكد من أنه بعد عرض قيم المتغيرات هناك مسافات بادئة، بحيث لا "تندمج" القيم مع بعضها البعض، فمن المعتاد الإشارة من خلال النقطتين إلى عدد الأحرف التي يجب توفيرها لعرض قيمة:


    العمليات الحسابية بالباسكال

    ترتيب العمليات

    1. تقييم التعبيرات بين قوسين؛
    2. الضرب، القسمة، div، mod من اليسار إلى اليمين؛
    3. الجمع والطرح من اليسار إلى اليمين.

    الإجراءات والوظائف الحسابية القياسية باسكال

    من المفيد هنا أن نتناول بمزيد من التفصيل بعض العمليات الحسابية.

    • إن عملية inc في باسكال، والتي تُلفظ بالزيادة، هي إجراء باسكال قياسي يعني الزيادة بمقدار واحد.
    • مثال على عملية inc:

      س:=1; المؤتمر الوطني العراقي (خ)؛ (يزيد x بمقدار 1، أي x=2) writeln(x)

      الاستخدام الأكثر تعقيدًا لإجراء inc:
      Inc(x,n) حيث x هو نوع ترتيبي، وn هو نوع عدد صحيح؛ الإجراء Inc الزيادات x بواسطة n.

    • يعمل الإجراء Dec في باسكال بشكل مشابه: Dec(x) - يقلل x بمقدار 1 (إنقاص) أو Dec(x,n) - يقلل x بمقدار n.
    • يمثل عامل القيمة المطلقة معامل الرقم. يعمل مثل هذا:
    • أ: =- 9؛ ب:=أبس(أ); (ب=9)

      أ:=-9؛ ب:=أبس(أ); (ب=9)

    • غالبًا ما يتم استخدام عامل div في لغة Pascal، نظرًا لأن عددًا من المهام تتضمن تشغيل القسم بأكمله.
    • لا غنى أيضًا عن باقي القسمة أو عامل التعديل في Pascal لحل عدد من المشكلات.
    • من الجدير بالذكر أن دالة باسكال الفردية القياسية، والتي تحدد ما إذا كان العدد الصحيح فرديًا أم لا. أي أنها ترجع صحيحًا بالنسبة للأرقام الفردية، وخطأ بالنسبة للأرقام الزوجية.
    • مثال على استخدام الدالة الفردية:

      فار س:عدد صحيح؛ تبدأ س:=3; writeln(sqr(x)); (الجواب 9) انتهى.

    • عملية الأس في باسكالمفقود على هذا النحو. ولكن من أجل رفع رقم إلى قوة، يمكنك استخدام الدالة EXP.
    • الصيغة هي: exp(ln(a)*n)، حيث a عبارة عن رقم، وn هي الدرجة (a>0).

      ومع ذلك، في مترجم Pascal abc، تكون الأسية أبسط بكثير:

      فار س:عدد صحيح؛ تبدأ س:=9; writeln(sqrt(x)); (الجواب 3) انتهى.

    المهمة 4.أبعاد علبة الثقاب معروفة: الارتفاع - 12.41 سم، العرض - 8 سم، السمك - 5 سم احسب مساحة قاعدة الصندوق وحجمه
    (S=العرض*السُمك، V=المساحة*الارتفاع)

    المهمة 5.تضم حديقة الحيوان ثلاثة أفيال وعددًا لا بأس به من الأرانب، ويتغير عدد الأرانب بشكل متكرر. من المفترض أن يأكل الفيل مائة جزرة يوميًا، والأرنب - اثنتين. كل صباح، يقوم حارس الحديقة بإخبار الكمبيوتر بعدد الأرانب. ردًا على ذلك، يجب على الكمبيوتر أن يخبر الموظف بالعدد الإجمالي للجزر التي يجب إطعامها للأرانب والفيلة اليوم.

    المهمة 6.ومن المعروف أن ستكاليف كيلو من الحلويات أروبل تحديد كم يكلف ذكيلوغرام من هذه الحلويات، وأيضاً بكم كيلوغراماً من الحلويات يمكن شراؤها كروبل يتم إدخال كافة القيم من قبل المستخدم.

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

    يوجد أدناه جدولان بأنواع الأعداد الصحيحة. أولا سوف نكتب أنواع الأعداد الصحيحة الموقعة:


    يكتببايتمدى من القيم
    Shortint1 -128 ... 127
    com.miniint2 -32768 ... 32767
    عدد صحيح، طويل4 -2147483648 ... 2147483647
    int648 -9223372036854775808 ... 9223372036854775807

    وهذا أنواع الأعداد الصحيحة غير الموقعة:


    يكتببايتمدى من القيم
    بايت1 0 ... 255
    كلمة2 0 ... 65535
    الكلمة الطويلة، الكاردينال4 0 ... 4294967295
    uint648 0 ... 18446744073709551615

    كما ترون، يحتوي العمود الأول على اسم النوع، والثاني - عدد البايتات التي تشغلها أرقام من هذا النوع في الذاكرة، والثالث - نطاق القيم المحتملة، على التوالي. هناك نوعان من الأرقام الموقعة - عدد صحيح وطول (حرفيا "عدد صحيح" و"عدد صحيح طويل")، وهما مترادفان. أي أنه يمكنك استخدام اسم أو آخر في قسم الوصف.

    وبالمثل، في الجدول الثاني (الأعداد الصحيحة غير السالبة في باسكال)، يوجد أيضًا نوعان من الأعداد الصحيحة المرادفة ذات 4 بايت - longword وcardinal، لذا استخدم أحدهما أو الآخر.

    يمكنك أيضًا ملاحظة أنه إذا قمنا بنقل أرقام الجدول الأول بشكل مشروط إلى الجانب الأيمن بالنسبة إلى الصفر (حرك الفاصل الزمني إلى اليمين بحيث يكون الحد الأدنى للرقم 0)، فسنحصل على فترات من الأعداد الصحيحة في الجدول الثاني في الصفوف المقابلة. لذا، إذا أضفنا 128 إلى الحدود اليمنى واليسرى في نوع اختصار 1 بايت، فسنحصل على نوع البايت (0..255)؛ إذا أضفنا 32768 إلى الحدود في نوع 2 بايت من النوع الصغير، فسنحصل على الكلمة المقابلة من النوع غير الموقعة ذات 2 بايت (0..65535)، وما إلى ذلك.

    كل هذا يحدث لأنه في أنواع الأعداد الصحيحة غير الموقعة، يمكن تقسيم الأرقام بالضبط إلى قسمين: نصف الأرقام إلى الجزء السالب، ونصفها إلى الجزء الموجب. لماذا إذن بالأرقام الموقعة يكون الحد الأيسر بالقيمة المطلقة 1 أكبر من الحد الأيمن؟ - أنت تسأل. على سبيل المثال، في نوع Shortint، الحد الأدنى هو -128، بينما الحد الأقصى هو 127 فقط (modulo 1 أقل). وذلك لأن الجانب الأيمن يتضمن أيضًا 0، ويجب عليك معرفة ذلك وتذكره.

    فلماذا يجب تقسيم الأعداد الصحيحة في باسكال إلى أنواع كثيرة؟ لماذا لا نتعامل، على سبيل المثال، مع أكبر أنواع الأعداد الصحيحة في PascalABC.Net وFree Pascal – int64 – وهو ما يقرب من 9 ونصف كوينتيليون (!) مع كل من علامة الطرح والعلامة الجمع؟ نعم، لسبب عادي بسيط (؟) - توفير الذاكرة. إذا كنت بحاجة إلى إضافة رقمين موجبين صغيرين من بايت واحد (0..255)، ووصفت هذه الأرقام بأنها int64 (8 بايت)، فإن هذا سيستغرق ذاكرة أكبر بـ 8 مرات. وإذا كان البرنامج كبيرا، وهناك الكثير من المتغيرات، فإن توفير الذاكرة يرتفع بشكل حاد للغاية. علاوة على ذلك، لا فائدة من استخدام أنواع الأعداد الصحيحة ذات الإشارة إذا كانت المشكلة تتعلق بكميات مثل الطول والكتلة والمسافة والوقت وما إلى ذلك.

    في قسم كتاب المسائل الإبراهيمية بالموقع (القسم الفرعي للأعداد الصحيحة)، لاحظ استخدام أنواع الأعداد الصحيحة المختلفة في لغة باسكال.

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

    يتم تخزين البيانات في ذاكرة الكمبيوتر. يصل البرنامج إليها باستخدام أسماء المتغيرات المرتبطة بمواقع الذاكرة حيث يتم تخزين البيانات.

    يتم وصف المتغيرات قبل رمز البرنامج الرئيسي. يشار هنا إلى أسماء المتغيرات ونوع البيانات المخزنة فيها.

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

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

    اكتب المتغيرات عدد صحيحيمكن ربطه فقط بقيم الأعداد الصحيحة التي تقع عادة في النطاق -32768 إلى 32767. لدى باسكال أنواع أعداد صحيحة أخرى (بايت، لونجينت).

    اكتب المتغيرات حقيقيتخزين الأعداد الحقيقية (الكسرية).

    عامل منطقيةالنوع (المنطقي) (المنطقي) يمكن أن يأخذ قيمتين فقط - حقيقي(1، صحيح) أو خطأ شنيع(0، خطأ).

    نوع الحرف (شار)يمكن أن تأخذ القيم من تسلسل محدد من الأحرف.

    نوع الفاصل الزمنييحددها المستخدم ويتم تشكيلها فقط من الأنواع الترتيبية. يمثل مجموعة فرعية من القيم في نطاق معين.

    يمكنك إنشاء نوع البيانات الخاص بك ببساطة عن طريق سرد القيم التي يمكن أن يأخذها متغير من هذا النوع. هذا هو ما يسمى نوع البيانات المعدودة.

    كل ما سبق هو أنواع بيانات بسيطة. ولكن هناك أيضًا أنواعًا معقدة ومنظمة تعتمد على أنواع بسيطة.

    مجموعة مصفوفةهي بنية تشغل مساحة واحدة في الذاكرة وتتكون من عدد ثابت من المكونات من نفس النوع.

    سلاسلهو تسلسل من الشخصيات. علاوة على ذلك، لا يمكن أن يزيد عدد هذه الأحرف عن 255 حرفًا. هذا القيد هو سمة مميزة لباسكال.

    سِجِلّهو هيكل يتكون من عدد ثابت من المكونات تسمى الحقول. يمكن أن تكون البيانات الموجودة في الحقول المختلفة للسجل من أنواع مختلفة.

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

    ملفاتبالنسبة لباسكال، فهي عبارة عن تسلسلات من نفس نوع البيانات المخزنة على أجهزة الذاكرة الخارجية (على سبيل المثال، القرص الصلب).

    مفهوم نوع البيانات مثل المؤشرالمرتبطة بالتخزين الديناميكي للبيانات في ذاكرة الكمبيوتر. في كثير من الأحيان، يكون استخدام أنواع البيانات الديناميكية أكثر كفاءة في البرمجة من استخدام أنواع البيانات الثابتة.

    بلغة باسكالوتتميز المتغيرات بها يكتب. النوع هو خاصية لمتغير يمكن من خلالها أن يأخذ المتغير العديد من القيم المسموح بها لهذا النوع ويشارك في العديد من العمليات المسموح بها على ذلك النوع.

    يحدد النوع مجموعة القيم الصالحة التي يمكن أن يأخذها متغير من نوع معين. كما أنه يحدد مجموعة العمليات المسموح بها على متغير من نوع معين ويحدد تمثيل البيانات في ذاكرة الوصول العشوائي للكمبيوتر.

    على سبيل المثال:

    ن:عدد صحيح؛

    باسكال هي لغة ثابتة، مما يعني أنه يتم تحديد نوع المتغير عند الإعلان عنه ولا يمكن تغييره. تحتوي لغة باسكال على نظام أنواع متطور - يجب أن تنتمي جميع البيانات إلى نوع بيانات معروف مسبقًا (إما نوع قياسي تم إنشاؤه أثناء تطوير اللغة أو نوع مخصص يحدده المبرمج). يمكن للمبرمج إنشاء أنواعه الخاصة ببنية تعقيد عشوائية تعتمد على الأنواع القياسية أو الأنواع المحددة بالفعل من قبل المستخدم. عدد الأنواع التي تم إنشاؤها غير محدود. يتم الإعلان عن الأنواع المخصصة في البرنامج في قسم TYPE باستخدام التنسيق:

    [الاسم] = [النوع]

    يحتوي نظام الأنواع القياسية على هيكل هرمي متفرع.

    الابتدائية في التسلسل الهرمي هي أنواع بسيطة. مثل هذه الأنواع موجودة في معظم لغات البرمجة وتسمى بالبسيطة، أما في لغة باسكال فهي ذات بنية أكثر تعقيدًا.

    أنواع منظمةمبنية وفقًا لقواعد معينة من أنواع بسيطة.

    معالمتتكون من أنواع بسيطة وتستخدم في البرامج لتحديد العناوين.

    الأنواع الإجرائيةهي ابتكار في لغة Turbo Pascal، وتسمح بالوصول إلى الإجراءات الفرعية كما لو كانت متغيرات.

    أشياءهي أيضًا ابتكار، وتهدف إلى استخدام اللغة كلغة موجهة للكائنات.

    في لغة باسكال، هناك 5 أنواع من أنواع الأعداد الصحيحة. يميز كل واحد منهم نطاق القيم المقبولة والمساحة التي تشغلها في الذاكرة.

    عند استخدام الأعداد الصحيحة، يجب أن تسترشد بتداخل الأنواع، أي. يمكن أن تتداخل الأنواع ذات النطاق الأصغر ضمن الأنواع ذات النطاق الأكبر. يمكن تداخل نوع البايت ضمن جميع الأنواع التي تشغل 2 و4 بايت. وفي الوقت نفسه، لا يمكن دمج النوع Short Int، الذي يشغل بايت واحد، في نوع Word، لأنه لا يحتوي على قيم سالبة.

    هناك 5 أنواع حقيقية:

    يتم تمثيل أنواع الأعداد الصحيحة بدقة تامة في جهاز الكمبيوتر. على عكس الأنواع الصحيحة، تحدد قيمة الأنواع الحقيقية رقمًا عشوائيًا فقط مع بعض الدقة المحدودة، اعتمادًا على تنسيق الرقم. يتم تمثيل الأعداد الحقيقية في الكمبيوتر كنقطة ثابتة أو عائمة.

    2358.8395

    0.23588395*10 4

    0.23588395*هـ 4

    يحتل نوع Comp مكانة خاصة في لغة Pascal، وهو في الواقع عدد صحيح كبير. هذا النوع متوافق مع جميع الأنواع الحقيقية ويمكن استخدامه لعدد صحيح كبير. عند تمثيل الأعداد الحقيقية بفاصلة عائمة، يتم دائمًا وضع العلامة العشرية قبل الجزء العشري الأيسر أو الأمامي، ولكن عند العمل على رقم يتم إزاحتها إلى اليسار أو اليمين.

    الأنواع الترتيبية

    تجمع الأنواع الترتيبية بين عدة أنواع بسيطة. وتشمل هذه:

    • جميع أنواع الأعداد الصحيحة؛
    • نوع الحرف؛
    • نوع منطقي؛
    • نطاق النوع؛
    • النوع المذكور.

    السمات المشتركة للأنواع الترتيبية هي: كل نوع لديه عدد محدود من القيم الممكنة؛ ويمكن ترتيب قيمة هذه الأنواع بطريقة معينة ويمكن ربط رقم معين وهو رقم تسلسلي بكل رقم؛ تختلف القيم المجاورة للأنواع الترتيبية بواحد.

    بالنسبة لقيم النوع الترتيبي، يمكن تطبيق الدالة ODD(x) التي تُرجع الرقم الترتيبي للوسيطة x.

    الدالة PRED(x) - ترجع القيمة السابقة لنوع ترتيبي. بريد (أ) = 5.

    دالة SUCC(x) - ترجع القيمة الترتيبية التالية. SUCC(أ) = 5.

    نوع الحرف

    قيم نوع الحرف هي 256 حرفًا من المجموعة التي يسمح بها جدول التعليمات البرمجية للكمبيوتر المستخدم. المنطقة الأولية لهذه المجموعة، أي النطاق من 0 إلى 127، تتوافق مع مجموعة رموز ASCII، حيث يتم تحميل الحروف الأبجدية والأرقام العربية والأحرف الخاصة. توجد أحرف منطقة البداية دائمًا على لوحة مفاتيح الكمبيوتر. المنطقة العليا تسمى المنطقة البديلة، وهي تحتوي على أحرف من الأبجديات الوطنية وأحرف خاصة مختلفة وأحرف زائفة لا تتوافق مع رمز ASCII.

    تشغل قيمة نوع الحرف بايتًا واحدًا في ذاكرة الوصول العشوائي (RAM). في البرنامج، المعاني محاطة بفواصل عليا. يمكن أيضًا تحديد القيم في شكل رمز ASCII الخاص بها. في هذه الحالة، عليك وضع علامة # أمام الرقم الذي يحتوي على رمز الرمز.

    ج:= 'أ'

    النوع المنطقي (المنطقي).

    هناك قيمتان منطقيتان: صحيح وخطأ. يتم تحديد المتغيرات من هذا النوع باستخدام الكلمة الدالة BOOLEAN. تشغل القيم المنطقية بايتًا واحدًا في ذاكرة الوصول العشوائي. تتوافق القيمتان True وFalse مع القيمتين الرقميتين 1 و0.

    نطاق النوع

    هناك مجموعة فرعية من نوعها الأساسي، والتي يمكن أن تكون أي نوع ترتيبي. يتم تعريف نوع النطاق من خلال الحدود الموجودة داخل النوع الأساسي.

    [الحد الأدنى للقيمة]...[القيمة القصوى]

    يمكن تحديد نوع النطاق في قسم النوع، كنوع محدد، أو مباشرة في قسم Var.

    عند تحديد نطاق النوع، يجب أن تسترشد بما يلي:

    • يجب ألا يتجاوز الحد الأيسر الحد الأيمن؛
    • يرث نوع النطاق جميع خصائص النوع الأساسي، ولكن مع القيود المرتبطة بقدرته المنخفضة.

    نوع التعداد

    ينتمي هذا النوع إلى الأنواع الترتيبية ويتم تحديده عن طريق تعداد القيم التي يمكنه تعدادها. تسمى كل قيمة بمعرف معين وتقع في القائمة، داخل إطار بين قوسين. يتم تحديد النوع المذكور في النوع:

    الشعوب = (رجال، نساء)؛

    القيمة الأولى هي 0، والقيمة الثانية هي 1، وهكذا.

    الحد الأقصى للطاقة 65535 القيم.

    نوع السلسلة

    ينتمي نوع السلسلة إلى مجموعة الأنواع المنظمة ويتكون من النوع الأساسي Char. نوع السلسلة ليس نوعًا ترتيبيًا. فهو يحدد العديد من سلاسل الأحرف ذات الطول التعسفي الذي يصل إلى 255 حرفًا.

    في البرنامج، يتم الإعلان عن نوع السلسلة باستخدام الكلمة String. نظرًا لأن String هو نوع أساسي، يتم تعريفه في اللغة ويتم الإعلان عن متغير من النوع String في Var. عند الإعلان عن متغير من نوع السلسلة كسلسلة، فمن المستحسن الإشارة إلى طول السلسلة بين قوسين مربعين. يتم استخدام عدد صحيح من 0 إلى 255 للإشارة.

    فام: سلسلة؛

    تحديد طول السلسلة يسمح للمترجم بتخصيص العدد المحدد من البايتات في ذاكرة الوصول العشوائي (RAM) لهذا المتغير. إذا لم يتم تحديد طول السلسلة، فسيقوم المترجم بتخصيص الحد الأقصى لعدد البايتات الممكنة (255) لقيمة هذا المتغير.