ما هو البايت في باسكال. باسكال

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

تنقسم الأنواع البسيطة إلى قياسية (ترتيبية) ومعدودة (مقيدة).

الأنواع القياسية

يحتوي Turbo Pascal على أربعة أنواع قياسية مدمجة: عدد صحيح، وحقيقي، ومنطقي، وشار.

نوع عدد صحيح (عدد صحيح)

يحتوي Turbo Pascal على خمسة أنواع من الأعداد الصحيحة: Shortint، وInteger، وLongint، وByte، وWord. يشير كل نوع إلى مجموعة فرعية محددة من الأعداد الصحيحة، كما هو موضح في الجدول التالي.

أنواع الأعداد الصحيحة المضمنة.

يتراوح

شكل

8 بتات موقعة

16 بت موقعة

2147483648 +2147483647

32 بت وقعت

8 بت غير موقعة

16 بت غير موقعة

يتم تنفيذ العمليات الحسابية على المعاملات من النوع الصحيح وفقًا للقواعد التالية:

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

العمليات التي تتم على الأعداد الصحيحة:

"+" - إضافة

"-" - الطرح

"*" - عمليه الضرب

SQR - التربيع

DIV - يتجاهل الجزء الكسري بعد القسمة

MOD - الحصول على العدد الصحيح المتبقي بعد القسمة

ABS - وحدة الأرقام

RANDOM(X) - الحصول على رقم عشوائي من 0 إلى X

ج:=100؛ ب:=60؛ نتيجة DIV ب - 1 نتيجة MOD ب - 40

يتم وصف متغيرات النوع الصحيح على النحو التالي:

قائمة المتغيرات فار: النوع؛

على سبيل المثال: var а,п,n:integer;

النوع الحقيقي (الحقيقي)

النوع الحقيقي هو مجموعة فرعية من الأرقام الحقيقية التي يمكن تمثيلها بتنسيق النقطة العائمة بعدد ثابت من الأرقام. تتضمن كتابة قيمة بتنسيق الفاصلة العائمة عادةً ثلاث قيم - m وb وe - بحيث تكون m*b e، حيث تكون b دائمًا 10 وتكون m وe قيمتين صحيحتين في النطاق الحقيقي. تحدد قيمتي m وe نطاق ودقة النوع الحقيقي.

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

النطاق والأرقام العشرية للأنواع الحقيقية

يتراوح

أعداد

2.9x10E-39 إلى 1.7x10E 38

1.5x10E-45 إلى 3.4x10E 38

5.0x10E-324 إلى 1.7x10E 308

3.4x10E-493 إلى 1.1x10E 403

2ه 63 إلى 2ه 63

العمليات التي تتم على الأعداد الحقيقية:

  • جميع العمليات صالحة للأعداد الصحيحة.
  • SQRT(x) هو الجذر التربيعي لـ x.
  • الخطيئة (X)، COS (X)، أركان (X).
  • LN(X) هو اللوغاريتم الطبيعي.
  • EXP(X) هو أس X (e x).
  • EXP(X*LN(A)) - الأسي (A x).
  • وظائف تحويل النوع:
    • TRUNC(X) - يتجاهل الجزء الكسري؛
    • ROUND(X) - التقريب.
  • بعض قواعد العمليات الحسابية:
    • إذا كانت العملية الحسابية تحتوي على أرقام من النوع الحقيقي وعدد صحيح، فستكون النتيجة من النوع الحقيقي.
    • تتم كتابة جميع مكونات التعبير على سطر واحد.
    • يتم استخدام الأقواس فقط.
    • لا يمكنك وضع علامتين حسابيتين على التوالي.

يتم وصف المتغيرات من النوع الحقيقي على النحو التالي:

قائمة المتغيرات فار: النوع؛

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

فار د,ز,ك:حقيقي ;

نوع الحرف (شار)

نوع char هو أي حرف محاط بفواصل عليا. لتمثيل الفاصلة العليا كمتغير حرف، يجب عليك تضمينها بفاصلة عليا: ''''.

كل حرف له رمزه ورقمه الخاص. يتم ترتيب الأرقام التسلسلية للأرقام 0،1..9 بترتيب تصاعدي. يتم أيضًا ترتيب الأرقام التسلسلية للحروف تصاعديًا، ولكن ليس بالضرورة أن تتبع بعضها البعض.

تنطبق علامات المقارنة التالية على بيانات الشخصية:

> , < , >=, <=, <> .

على سبيل المثال: "أ"< ‘W’

الوظائف التي تنطبق على متغيرات الأحرف:

  1. ORD(X) - يحدد الرقم التسلسلي للرمز X. ord ('a') =97;
  2. CHR(X) - يحدد الحرف بالرقم. حقوق الإنسان(97) ='أ';
  3. PRED(X) - يُرجع الحرف الذي يسبق الحرف X. pred ('B') ='A';
  4. SUCC(X) - يُرجع الحرف الذي يلي الحرف X. succ ('A') ='B';

نوع التعداد

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

يكتب<имя типа>=(قائمة الثوابت) ; فار<имя переменной>:<имя типа>;

أين<список констант>- هذا نوع خاص من الثوابت، يتم تحديدها مفصولة بفواصل ولها رقم تسلسلي خاص بها يبدأ من 0.

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

اكتب الاتجاه = (الشمال، الجنوب، الغرب، الشرق) ؛ شهر=(يونيو، يوليو، أغسطس، يناير) ; السعة = (الدلو، البرميل، العلبة، الخزان) ؛ دوران فار: الاتجاه؛ المغادرة:شهر؛ الحجم: القدرة؛ فار بدوره:(الشمال، الجنوب، الغرب، الشرق) ؛ المغادرة: (يونيو، يوليو، أغسطس، يناير)؛ الحجم: (دلو، برميل، علبة، خزان)؛

يمكنك تنفيذ عوامل التعيين التالية:

الدوران:= الجنوب؛ المغادرة:= أغسطس؛ الحجم:=الخزان;

لكن لا يمكنك القيام بمهام مختلطة:

المغادرة:= الجنوب؛ المجلد: = أغسطس؛

تنطبق الوظائف التالية على متغيرات النوع المذكور:

1. ORD - الرقم التسلسلي

2. بريد - العنصر السابق

3. SUCC - العنصر اللاحق.

بريد (برميل) = دلو؛ SUCC (جنوب) = الغرب؛ ORD (يوليو) =1 ;

يمكن مقارنة المتغيرات من النوع المعد لأنها مرتبة ومرقمة. فإعرابها : شمال< юг, июнь < январь имеют значения TRUE, а юг>الغرب والدبابة<бочка значение FАLSE.

نوع محدود

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

يتم وصفه على النحو التالي:

يكتب<имя типа>=ثابت1 ..ثابت2

وفي هذه الحالة يجب اتباع القواعد التالية:

  1. يجب أن يكون كلا الثوابت المحدودة من نفس النوع.
  2. يمكن استخدام أي نوع بسيط باستثناء النوع الحقيقي كنوع أساسي.
  3. يجب ألا تكون القيمة الأولية عند تحديد نوع محدود أكبر من القيمة النهائية.
فهرس النوع =0 ..63 ؛ letter='a'..'z'; فار char1,char2:حرف; أ،ز:الفهرس؛

يمكنك وصفه على الفور في قسم وصف المتغير:

فار أ,ز:0 ..63 ; char1,char2:'a'..'z'. أساسيات البرمجة
كل محترف كان ذات يوم إبريق شاي. من المؤكد أنك على دراية بالحالة عندما "لا تعرف كيف تبدأ بالتفكير من أجل التوصل إلى مثل هذا الشيء". من المحتمل أنك واجهت موقفًا لا تعرف فيه من أين تبدأ. يستهدف هذا الكتاب على وجه التحديد هؤلاء الأشخاص الذين يرغبون في أن يصبحوا مبرمجين، ولكن ليس لديهم أي فكرة على الإطلاق عن كيفية بدء هذا المسار. ...

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

على سبيل المثال، نوع البيانات عدد صحيحفي دلفي لديها نطاق -2147483648...2147483647، بينما في توربو باسكال نوع البيانات عدد صحيحيمثل أرقامًا في النطاق -35768…32767. في Free Pascal، نطاق قيم النوع عدد صحيحيتم تحديده بواسطة الوضع المحدد.

نظرًا لأن Lazarus يستخدم مترجم Free Pascal، فإن كل ما يقال عن أنواع البيانات المتعلقة بـ Free Pascal ينطبق أيضًا على Lazarus.

لذلك، تم إدراج أنواع البيانات الصحيحة في Free Pascal في الجدول 13.1.

الجدول 13.1. أنواع البيانات الصحيحة باسكال (لازاروس).

يكتب الحجم، بايت مدى من القيم
بايت 1 0…255
اختصار 1 -128…127
سمولينت 2 -35768…32767
كلمة 2 0…65535
عدد صحيح 2 أو 4 يعتمد على وضع التجميع
أساسي 4 0…4294967295
لونجينت 4 -2147483648…2147483647
كلمة طويلة 4 0...4294967295
كثافة العمليات64 8 -9223372036854775808...9223372036854775807
كيو ورد 8 0...18446744073709551615

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

والآن بعض التوضيحات حول الجدول.

في عمود يكتبيتم إعطاء معرفات نوع البيانات (الكلمات الرئيسية التي تشير للمترجم إلى النوع الذي تنتمي إليه بيانات معينة). سوف تتعلم كيفية استخدام هذه المعرفات في الدروس التالية.

في عمود مقاسيشير إلى الحجم الذي يشغله نوع البيانات في ذاكرة الكمبيوتر. على سبيل المثال، يمكن تمثيل عدد صحيح موجب بأنواع مختلفة: بايت, كلمة, أساسيالخ ومع ذلك، عدد مثل أساسيسوف تشغل 4 بايت في الذاكرة، في حين أن الرقم مثل بايت- 1 بايت فقط. لذلك، إذا كنت تعلم يقينًا أن الرقم الذي تعمل به لن يأخذ قيمة أكبر من 255 أبدًا، فمن الأفضل تعريفه كنوع بايت، لأن هذا سيوفر مساحة في ذاكرة جهاز الكمبيوتر الخاص بك. على الرغم من أن كل شيء ليس بهذه البساطة هنا (الفروق الدقيقة في توزيع الذاكرة وموارد الكمبيوتر الأخرى خارج النطاق).

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

الآن للممارسة. لنكتب برنامجًا يعرض نطاقات القيم لجميع أنواع البيانات الصحيحة. الكود المصدري لهذا البرنامج موضح أدناه:

القائمة 13.1. برنامج لعرض نطاقات الأعداد الصحيحة.برنامج تد. يستخدم ($mode objfpc)($H+) $IFDEF UNIX)($IFDEF UseCThreads) cthreads، ($ENDIF)($ENDIF) الفئات (يمكنك إضافة وحدات بعد ذلك)؛ ابدأ Writeln("البايت: "، منخفض(بايت)، ".."، عالي(بايت)); Writeln("Shortint: "، Low(Shortint)، ".."، High(Shortint)); Writeln("Smallint: "، Low(Smallint)، ".."، High(Smallint)); Writeln("Word: "، Low(Word)، ".."، High(Word)); Writeln("عدد صحيح: "، منخفض(عدد صحيح)، ".."، عالي(عدد صحيح)); Writeln("الكاردينال: "، منخفض(الكاردينال)، ".."، عالي(الكاردينال)); Writeln("Longint: ", Low(Longint), "..", High(Longint)); Writeln("الكلمة الطويلة: "، Low(Longword)، ".."، High(Longword)); Writeln("Int64: ", Low(Int64), "..", High(Int64)); Writeln("QWord: "، منخفض(QWord)، ".."، عالي(QWord)); ريدلن؛ نهاية.

وظيفة قياسية قليليحدد الحد الأدنى لقيمة نوع البيانات. فونتسكيا عالييحدد القيمة القصوى. مع وظائف اكتبLnو قراءةLnأنتم تعرفون بعضكم بعضًا بالفعل. سنتحدث بمزيد من التفاصيل حول الإجراءات الفرعية (الإجراءات والوظائف) في القسم المقابل.

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

10
178
35278

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

يدعم Free Pascal أربعة تنسيقات للأعداد الصحيحة:

  1. العشري. مجرد رقم، مثل 10.
  2. تدوين سداسي عشري. رقم يبدأ بـ $. على سبيل المثال، الرقم السداسي العشري $10 يساوي الرقم العشري 16.
  3. تدوين ثماني. رقم يبدأ بـ &. على سبيل المثال، الرقم الثماني &10 يساوي العدد العشري 8.
  4. التدوين الثنائي. رقم يبدأ بـ %. على سبيل المثال، الرقم الثنائي %10 يساوي الرقم العشري 2.

العمل في المنزل:

إنشاء برنامج يعرض نطاقات من القيم الصحيحة (القائمة 13.1). تجميع البرنامج وتشغيله. تأكد من أن هذه القيم تتوافق مع تلك المبينة في الجدول 13.1.

في الكود المصدري للبرنامج، ابحث عن السطر الذي يحدد وضع الترجمة:

($وضع objfpc)($H+)

في هذا السطر بدلا من الكلمة com.objfpcاكتب الكلمة tp. أي أن السطر الأخير يجب أن يبدو هكذا:

($الوضع t)($H+)

إطلاق البرنامج. انظر إلى نطاق قيم النوع عدد صحيح. استخلاص النتائج.

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

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

3.2. أنواع البيانات البسيطة في Turbo Pascal 7

يحدد النوع البسيط مجموعة مرتبة من قيم المعلمات. يحتوي Turbo Pascal على المجموعات التالية من الأنواع البسيطة:

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

تسمى جميع الأنواع البسيطة، باستثناء الأنواع الحقيقية، بالأنواع الترتيبية. بالنسبة لكميات الأنواع الترتيبية، يتم تحديد الإجراءات والوظائف القياسية: Dec، Inc، Ord، Pred، Succ (انظر القسم 13.1).

3.2.1. أنواع الأعداد الصحيحة

على عكس Pascal، الذي يحدد نوعًا واحدًا من الأعداد الصحيحة، Integer، فإن Turbo Pascal لديه خمسة أنواع صحيحة قياسية: Shortint، Integer، Longint، Byte، Word. وترد خصائص هذه الأنواع في الجدول. 2.

الجدول 2. أنواع البيانات الصحيحة

يكتب يتراوح شكل الحجم بالبايت
اختصار -128 .. 127 مبدع 1
عدد صحيح -32768 .. 32767 مبدع 2
لونجينت -2147483648 .. 2147483647 مبدع 4
بايت 0 .. 255 غير موقعة 1
كلمة 0 .. 65535 غير موقعة 2

3.2.2. نوع منطقي

النوع المنطقي القياسي (الحجم - 1 بايت) هو نوع بيانات، يمكن لأي عنصر منه أن يأخذ قيمتين فقط: True وFalse. وفي هذه الحالة تكون الشروط التالية صالحة:
الترتيب الخاطئ (خطأ) = 0
الترتيب (صحيح) = 1
نجاح (خطأ) = صحيح
بريد (صحيح) = خطأ

أضاف Turbo Pascal 7.0 ثلاثة أنواع منطقية أخرى ByteBool (الحجم - 1 بايت)، وWordBool (الحجم - 2 بايت) وLongBool (الحجم - 4 بايت). تم تقديمها للتوحيد مع لغات البرمجة الأخرى ومع بيئة Windows. الفرق بينها وبين النوع المنطقي القياسي هو القيمة الفعلية لمعلمة هذا النوع، والتي تتوافق مع القيمة True. بالنسبة لجميع الأنواع المنطقية، تتوافق القيمة False مع الرقم 0، المكتوب بالعدد المقابل من البايتات. القيمة True للنوع المنطقي تتوافق مع الرقم 1 المكتوب في البايت الخاص به، وبالنسبة للأنواع الأخرى فإن القيمة True تتوافق مع أي رقم غير الصفر (على الرغم من أن الدالة Ord في هذه الحالة تعطي القيمة 1).

3.2.3. نوع الحرف

يحدد نوع الحرف القياسي Char مجموعة كاملة من أحرف ASCII. توفر الدالة Ord من قيمة نوع Char رمز الحرف المقابل. تتم مقارنة قيم نوع الحرف وفقًا لرموزها.

3.2.4. نوع التعداد

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

يكتب
= ();)

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

مثال.نوع معدود.

اكتب Operat = (Plus، Minus، Mult، Divide)؛

النوع المنطقي هو حالة خاصة من النوع المذكور:

اكتب Boolean = (False, True);

3.2.5. نطاق النوع

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

النوع = . . ;

يجب ألا تكون القيمة الدنيا عند تحديد هذا النوع أكبر من الحد الأقصى.

مثال.تعريف أنواع النطاق.

يكتب
دزينة = 1..12؛ (الأرقام من 1 إلى 12)
AddSub = Plus..Minus; (عمليات الجمع والطرح)

3.2.6. أنواع حقيقية

على عكس معيار لغة باسكال، حيث يتم تعريف نوع حقيقي واحد فقط، فإن Turbo Pascal لديه خمسة أنواع حقيقية قياسية: Real، Single، Double، Extended، Comp. للتعرف على خصائص هذه الأنواع، انظر الجدول. 3. الجدول 3. أنواع البيانات الحقيقية

يكتب يتراوح عدد الشخصيات الهامة الحجم بالبايت
حقيقي 2.9*10-39..1.7*1038 11-12 6
أعزب 1.5*10-45..3.4*1038 7-8 4
مزدوج 5.0*10-324.-1.7*10308 15-16 8
ممتد 3.4*10-4932..1.1*104932 19-20 10
شركات -263+1..263-1 19-20 8

نوع Comp هو في الواقع نوع عدد صحيح ممتد النطاق، لكنه لا يعتبر نوعًا ترتيبيًا.

يمكن استخدام الأنواع الفردية والمزدوجة والممتدة والمركبة في البرامج فقط في حالة وجود معالج مساعد حسابي أو في حالة تمكين محاكي المعالج الثانوي (راجع الفقرتين 17.5.8 و17.7.1).

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

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

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

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

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

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

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

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

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

نتيجة:
الاسم: بيتر، العمر: 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("الاسم: "، اسمي،"، العمر: "، x) النهاية.

    ثابت س = 17؛ فار اسمي:سلسلة؛ ابدأ اسمي:="بيتر"; 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 مرات. وإذا كان البرنامج كبيرا، وهناك الكثير من المتغيرات، فإن توفير الذاكرة يرتفع بشكل حاد للغاية. علاوة على ذلك، لا فائدة من استخدام أنواع الأعداد الصحيحة ذات الإشارة إذا كانت المشكلة تتعلق بكميات مثل الطول والكتلة والمسافة والزمن وما إلى ذلك.

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