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

الأكثر شيوعا في الرياضيات أنواع رقمية- هذا جميعالأرقام التي تمثل عدد لا حصر له من القيم المنفصلة، ​​و صالحالأرقام التي تمثل سلسلة متصلة غير محدودة من القيم.

وصف أنواع البيانات الرقمية في باسكال (الأعداد الصحيحة)

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

مع كامل أنواع البيانات الرقميةيستطيع باسكال القيام بالعمليات التالية:

  • علم الحساب:
    إضافة(+);
    الطرح(-);
    عمليه الضرب(*)؛
    باقي القسمة (mod) ؛
    الأسي.
    زائد أحادي (+)؛
    أحادي ناقص (-).
  • عمليات العلاقة:
    علاقة المساواة (=)؛
    علاقة عدم المساواة (<>);
    النسبة أقل(<);
    نسبة أكبر من (>)؛
    علاقة لا تقل عن (>=)؛
    موقف لا أكثر (<=).

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

ينبغي إيلاء اهتمام خاص لعملية تقسيم أنواع البيانات الرقمية الصحيحة. يسمح باسكال بإجراء عمليتين للقسمة، والتي يتم الإشارة إليها وفقًا لذلك "/" و شعبة. عليك أن تعلم أن نتيجة القسمة "/" ليست عددًا صحيحًا، ولكن عدد حقيقي(وهذا صحيح حتى لو قسمت 8 على 2، أي 8/2=4.0). شعبة القسم هو تقسيم صحيح، أي. نوع النتيجة عدد صحيح.

وصف أنواع البيانات الرقمية في باسكال (الحقيقية)

يشير نوع البيانات الرقمية الحقيقية إلى مجموعة فرعية من الأرقام الحقيقية التي يمكن تمثيلها فيما يسمى بتنسيق النقطة العائمة بعدد ثابت من الأرقام. باستخدام النقطة العائمة، يتم تمثيل كل نوع بيانات رقمي كمجموعتين من الأرقام. المجموعة الأولى من الأرقام تسمى الجزء العشري، والثانية هي الأس. بشكل عام، يمكن تمثيل نوع البيانات الرقمية في شكل الفاصلة العائمة على النحو التالي: X= (+|-)MP (+ | -) r، حيث M هو الجزء العشري للرقم؛ ص - ترتيب الأرقام (ص - عدد صحيح)؛ P - قاعدة نظام الأرقام. على سبيل المثال، بالنسبة للقاعدة العشرية، سيبدو التمثيل 2E-1 (هنا E هو أساس نظام الأرقام العشري) كما يلي: 2*10 -1 =0.2، وسيتوافق التمثيل 1.234E5 مع: 1.234*10 5 =123400.0.

يستخدم باسكال الأنواع التالية من الأعداد الحقيقية، والتي تحدد رقمًا عشوائيًا فقط مع بعض الدقة المحدودة اعتمادًا على التنسيق الداخلي للرقم الحقيقي:

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

يمكن تنفيذ العمليات التالية على أنواع البيانات الرقمية الحقيقية:

  • علم الحساب:
    إضافة (+)؛
    الطرح(-);
    عمليه الضرب(*)؛
    قسم(/)؛
    الأسي.
    زائد أحادي (+)؛
    أحادي ناقص (-).
  • عمليات العلاقة:
    علاقة عدم المساواة (<>);
    النسبة أقل(<);
    نسبة أكبر من (>)؛
    علاقة لا تقل عن (>=)؛
    موقف لا أكثر (<=).

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

يحتل نوع البيانات الرقمية مكانة خاصة في باسكال. شركات، والذي يتم التعامل معه كرقم حقيقي بدون الأجزاء الأسية والكسرية. في الحقيقة، شركاتهو عدد صحيح "كبير" موقّع يحتفظ بـ 19..20 رقمًا عشريًا مهمًا. وفي الوقت نفسه، نوع البيانات الرقمية شركاتفي التعبيرات، فهو متوافق تمامًا مع الأنواع الحقيقية الأخرى: يتم تعريف جميع العمليات الحقيقية عليه، ويمكن استخدامه كوسيطة للوظائف الرياضية، وما إلى ذلك.

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

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

فار X: عدد صحيح؛ ص: حقيقي؛

هذا هو المشغل

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

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

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

على سبيل المثال، نوع البيانات عدد صحيحفي دلفي لديها نطاق -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+)

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

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

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

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

✎ 1) البرنامج - باللغة الإنجليزية "program"، مكتوب في بداية الكود، متبوعًا باسم البرنامج باللغة اللاتينية وفاصلة منقوطة. على سبيل المثال: برنامجخلاصة؛ - برنامج اسمه Summa. لكن هذا الجزء من الكود، المسمى رأس البرنامج، لا يحتاج إلى الكتابة - فهو موجود فقط من أجل الوضوح ويظهر المشكلة التي يحلها هذا البرنامج. استخدمنا هنا كلمة "كود" - وهذا هو اسم إدخال النص للبرنامج.

✎ 2) عدد صحيح - في اللغة الإنجليزية تعني "عدد صحيح" (أو ببساطة "عدد صحيح") ويستخدم في لغة باسكال للإشارة إلى أعداد صحيحة موقعة 32 بت (8 بايت) من النطاق [-2147483648, 2147483647] . وسوف ننظر في ما تعنيه هذه الأرقام الكبيرة في وقت لاحق.

✎ 3) حقيقي - من الإنجليزية "حقيقي"، "حقيقي"، "حقيقي"، "حقيقي". في لغة باسكال، يشير هذا المصطلح إلى الأعداد الحقيقية في النطاق [-1.8∙10308، 1.8∙10308]. هذه أرقام كبيرة جدًا، ولكن يتم عرض 15 إلى 16 رقمًا مهمًا. بالمناسبة، يتم دائمًا تمييز أنواع البيانات الصحيحة والحقيقية في بيئة برمجة PascalABC.Net باللون الأزرق.

✎ 4) const – التناظرية للغة الإنجليزية. "ثابت" يعني "ثابت" ، "ثابت". في باسكال، هذه كمية لا يمكن أن تتغير. هو مكتوب مثل هذا:


يجب أن يؤخذ هذا الإدخال كما هو مكتوب: الرقم N هو 12، S هو 5، "pi" هو 3.14 (كما هو الحال في الرياضيات، يتم استخدام نقطة فقط بدلاً من الفاصلة في باسكال). في السطر الأخير، استخدمنا شرطة مائلة مزدوجة (شرطتان مائلتان للأمام)، متبوعة بالنص - هكذا تتم كتابة التعليقات بلغة باسكال، ولا يراها البرنامج. كل ما يبدأ بشرطة مائلة مزدوجة وحتى نهاية السطر هو تعليق، وهو مكتوب لشرح البرنامج ويتم تمييزه دائمًا بلون مختلف (في PascalABC.Net يكون باللون الأخضر، ولا يستخدم Turbo Pascal هذا النوع من تعليق). هناك نوع آخر من التعليقات - هذا (النص محاط بين قوسين متعرجين، تمامًا كما هو الحال هنا، ومظلل أيضًا باللون الأخضر). يمكن أن يكون هذا النوع من التعليق صالحًا لعدة أسطر متتالية - من بداية القوس إلى إغلاقه، ولا يرى المترجم كل ما هو في منتصف هذا البناء كرمز ويتخطىه ببساطة.

في الواقع تنسيق التسجيل مقدار ثابتأكثر تعقيدا قليلا. وفقًا للقواعد ، كان علينا أن نكتب:

1 2 3 4 مقدار ثابتن: اكتب عددا صحيحا؛

وصف:

")" onmouseout="toolTip()">عدد صحيح
= 12 ; // رقم N - نوع عدد صحيحس: اكتب عددا صحيحا؛

وصف:
يمثل عددًا صحيحًا بعلامة 32 بت.

نطاق القيمة: -2 147 483 648 .. 2 147 483 647")" onmouseout="toolTip()">عدد صحيح
= 5 ; //رقم S - نوع عدد صحيح باي: اكتب حقيقي؛

وصف:
يمثل رقم النقطة العائمة مزدوج الدقة.

الحجم: 8 بايت
عدد الشخصيات المهمة: 15 - 16
نطاق القيمة: -1.8∙10 308 .. 1.8∙10 308
")" onmouseout="toolTip()">حقيقي
= 3.14 ; //رقم "pi" - حقيقي

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

✎ 5) فار - يأتي من اللغة الإنجليزية. "متغير" ("متغير" أو "قابل للتغيير")، والتي تعني في لغة باسكال قيمة يمكن أن تتغير قيمتها أثناء البرنامج. هو مكتوب مثل هذا:


كما يتبين من الإدخال، لا توجد علامة "=" هنا - تتم إعادة حساب المتغيرات من نفس النوع (مفصولة بفواصل) ويتم الإشارة إلى النوع فقط بعد النقطتين. يمكن للمتغيرات N، m (عدد صحيح) و Q، r، t (حقيقي) في البرنامج تغيير القيم ضمن حدود العدد الصحيح والحقيقي على التوالي. ملاحظة أخرى: وصف المتغيرات يأتي دائمًا بعد وصف الثوابت (الثوابت) - يأتي بناء الثوابت أولاً، ثم var.

✎ 6) start – مترجمة من الإنجليزية وتعني “to begin” والباسكال تعني بداية البرنامج الرئيسي الذي تكتب فيه الأوامر (المشغلون). بعد الكلمة يبدألا يوجد فاصلة منقوطة.

✎ 7) النهاية – باللغة الإنجليزية. "النهاية" وبالباسكال تعني نفس الشيء (نهاية البرنامج). بعد الكلمة الأخيرة نهايةهناك دائما فترة. وقد أكدنا على كلمة "آخر" لأن استعمالها في البناء البداية والنهايةربما في حالة أخرى: هذه هي ما يسمى بأقواس المشغل، والتي تستخدم للجمع بين عدة عمليات تحت عامل واحد. ولكن أكثر عن ذلك لاحقا. لذلك سيبدو البرنامج الرئيسي هكذا:

1 2 3 4 5 6 يبدأ < оператор 1 > ; < оператор 2 > ; . . . . . . . < оператор N > ; نهاية.

هنا، المشغلون في نص البرنامج هم أوامر مختلفة للمترجم.

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

يكتب( "يتم عرض هذا النص على الشاشة");

سيتم عرض رسالة داخل الأقواس وعلامات الاقتباس في نافذة وحدة التحكم (لا يمكنك وضعها بين قوسين بدون علامات الاقتباس). بعد تنفيذ هذا البيان سنرى على الشاشة:

يتم عرض هذا النص على الشاشة

في هذا النموذج، يتم استخدام عامل الكتابة في الحالة التي تحتاج فيها إلى إظهار تلميح أو شرح أو تعليق وما إلى ذلك. وإذا كنت بحاجة أيضًا إلى عرض قيمة عددية، على سبيل المثال، S = 50 sq. م، ثم يتم استخدام التنسيق:

اكتب (، ق)؛

ونتيجة لذلك، نحصل على النتيجة التي تظهر على الشاشة:

المساحة تساوي: S = 50

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

يكتب( "حجم المنطقة هو: S = ", S, " sq.m" );

بعد تنفيذ بيان الإخراج الأخير، نحصل على الإخراج التالي على الشاشة:

حجم المنطقة هو: S = 50 متر مربع

✎ 9) writeln – مثل write، ولكن بعد التنفيذ سيتم نقل المؤشر إلى السطر التالي.

✎ 10) قراءة - تعني الترجمة من الإنجليزية "يقرأ"، لذلك يُطلق على read اسم عامل القراءة أو إدخال البيانات. يتم كتابته كقراءة (N)، مما يعني أنه يجب إدخال القيمة N، حيث N هي أي رقم، أو نص، أو أي نوع آخر من المتغيرات. على سبيل المثال، إذا أردنا إدخال عمر شخص يبلغ من العمر 32 عامًا، فيمكننا كتابته على النحو التالي:


في السطر الأول من هذا الكود، يعرض البرنامج السؤال " ما هو عمرك؟" وينقل المؤشر إلى السطر التالي (ينتهي ln)؛ في السطر الثاني نطبع "Year =" (مسافة في البداية)؛ بعد ذلك نرى عامل التشغيل readln(Year)، مما يعني الحاجة إلى إدخال العمر Year (رقم 32)؛ وأخيراً نعرض الرسائل "عمري" و"32" و"سنوات". " واحدا تلو الآخر. تحتاج إلى مراقبة المساحات بعناية. ونتيجة لتنفيذ هذا الكود سوف نتلقى الرسالة التالية:

ما هو عمرك؟
السنة = 32
عمري 32 سنة

✎ 11) readln - نفس القراءة، فقط مع سطر جديد. وبالفعل في المثال أعلاه، بعد إدخال الرقم سنة، نكتب فقط في السطر التالي: “ عمري 32 سنة».

هذا كل شئ حتى الان. في الصفحة التالية سنكتب البرنامج الأول، وفي برمجة باسكال سيكون هذا هو برنامجنا

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

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

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

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

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

يكتب يتراوح الذاكرة المطلوبة (بايت)
بايت 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 ("الاسم: "، اسمي، "، العمر: "، ص) النهاية.

نتيجة:
الاسم: بيتر، العمر: 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؛ فار 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.ومن المعروف أن ستكاليف كيلو من الحلويات أروبل تحديد كم يكلف ذكيلوغرام من هذه الحلويات، وأيضاً بكم كيلوغراماً من الحلويات يمكن شراؤها كروبل يتم إدخال كافة القيم من قبل المستخدم.

    الوكالة الفيدرالية للتعليم

    مقال

    "أنواع البيانات في باسكال"

    1. أنواع البيانات

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

    بشكل عام، تتميز لغة Object Pascal ببنية متفرعة من أنواع البيانات (الشكل 1.1). توفر اللغة آلية لإنشاء أنواع جديدة، بحيث يمكن أن يكون إجمالي عدد الأنواع المستخدمة في البرنامج كبيرًا حسب الرغبة.

    تنقسم البيانات المعالجة في البرنامج إلى متغيرات وثوابت وأحرف:

    الثوابت تمثل البيانات التي تم ضبط قيمها في قسم التصريح الثابت ولا تتغير أثناء تنفيذ البرنامج.

    المتغيرات يتم الإعلان عنها في قسم إعلان المتغيرات، ولكن على عكس الثوابت، فإنها تتلقى قيمها أثناء تنفيذ البرنامج، ويمكن تغيير هذه القيم. يمكن الإشارة إلى الثوابت والمتغيرات بالاسم.

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

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

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

    1.1 أنواع بسيطة

    تتضمن الأنواع البسيطة الأنواع الترتيبية والحقيقية والتاريخية.

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

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

    نوع التاريخ والوقتمصممة لتخزين التاريخ والوقت. في الواقع، يستخدم التنسيق الحقيقي لهذه الأغراض.

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

    تتضمن الأنواع الترتيبية (انظر الشكل 1.1) الأنواع الصحيحة والمنطقية والحرفية والمعدادة والنطاقية. يمكن تطبيق الدالة Ord(x) على أي منها، مما يُرجع الرقم الترتيبي لقيمة التعبير X.


    أرز. 1.1 - هيكل نوع البيانات

    ل جميعالأنواع، فإن الدالة ord(x) ترجع قيمة x نفسها، أي Ord(X) = x لـ x ينتمي إلى أي جميعيكتب. تطبيق Ord(x) على منطقي , رمزية ولا تعد ولا تحصىالأنواع تعطي عددًا صحيحًا موجبًا في النطاق من 0 إلى 1 ( نوع منطقي)، من 0 إلى 255 ( رمزي)، من 0 إلى 65535 ( لا تعد ولا تحصى). نطاق النوعيحافظ على جميع خصائص النوع الترتيبي الأساسي، وبالتالي فإن نتيجة تطبيق الدالة ord(x) عليه تعتمد على خصائص هذا النوع.

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

    بريد (خ)- تُرجع القيمة السابقة للنوع الترتيبي (القيمة التي تتوافق مع الرقم الترتيبي ord(x) -1، أي ord(pred(x)) = ord(x) - 1;

    نجاح (خ)- تُرجع القيمة التالية من النوع الترتيبي، الذي يتوافق مع الرقم الترتيبي ord(x) +1، أي ord(Succ(x)) = ord(x) + 1.

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

    فإن الدالة PRED(c) سترجع الحرف "4"، وسترجع الدالة SUCC(c) الحرف "6".

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

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

    الجدول 1.1 - أنواع الأعداد الصحيحة

    اسم الطول، بايت مدى من القيم
    أساسي 4 0. .. 2 147 483 647
    بايت 1 0...255
    اختصار 1 -128...+127
    سمولينت 2 -32 768...+32 767
    كلمة 2 0...65 535
    عدد صحيح 4
    لونجينت 4 -2 147 483 648...+2 147 483 647
    كثافة العمليات64 8 -9*1018...+9*1018
    كلمة طويلة 4 0. . .4 294 967 295

    أنواع كلمة طويلةو كثافة العمليات64تم تقديمها لأول مرة في الإصدار 4، والأنواع سمولينتو أساسيغير متوفر في دلفي 1. اكتب عدد صحيحبالنسبة لهذا الإصدار، يستغرق الأمر 2 بايت وله نطاق قيمة من -32768 إلى +32767، أي نفس الشيء سمولينت .

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

    وترد في الجدول قائمة الإجراءات والوظائف المطبقة على الأنواع الصحيحة. 1.2. تشير الحروف b، s، w، i، l إلى تعبيرات من الأنواع التالية: بايت , Shortint، Word، عدد صحيح وLongint ,

    x هو تعبير عن أي من هذه الأنواع؛ تشير الحروف vb، vs، vw، vi، vl، vx إلى متغيرات من الأنواع المقابلة. تتم الإشارة إلى المعلمة الاختيارية بين قوسين مربعين.

    الجدول 1.2 - الإجراءات والوظائف القياسية المطبقة على الأنواع بأكملها

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

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

    أنواع منطقية . تشمل الأنواع المنطقية منطقية، بايت بول، بول، وورد بولو LongBool. في لغة باسكال القياسية، يتم تعريف النوع فقط منطقية، يتم تقديم أنواع منطقية أخرى في Object Pascal للتوافق مع Windows: الأنواع منطقيةو بايتبولكل منها يأخذ بايت واحد، بولو WordBool- 2 بايت لكل منهما، LongBool- 4 بايت. يمكن أن تكون القيم المنطقية إحدى الثوابت المعلنة مسبقًا False أو True.

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

    Ord (صحيح) = +1، بينما بالنسبة للأنواع الأخرى ( بول، ووردبولإلخ.)

    Ord(True) = -1، لذلك يجب استخدام هذه الأنواع من العوامل بحذر! على سبيل المثال، بالنسبة لإصدار دلفي 6، عبارة showMessage(" --- ") القابلة للتنفيذ في الحلقة التالية للن يتم تنفيذه أبداً:

    من أجل L:= خطأ إلى صحيح

    اظهر الرسالة("--)؛

    إذا قمنا باستبدال معلمة الحلقة من النوع L في المثال السابق بـ منطقيةسيتم تشغيل الحلقة وستظهر الرسالة على الشاشة مرتين. [بالنسبة لإصدارات دلفي 1 و2 ord (True) =+1 لأي ​​نوع منطقي.]

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

    للتشفير في نظام التشغيل Windows، يتم استخدام رمز ANSI (سمي على اسم المعهد الوطني الأمريكي للمعايير، وهو معهد التقييس الأمريكي الذي اقترح هذا الرمز). النصف الأول من أحرف الكمبيوتر الشخصي مع الرموز 0...127 يتوافق مع الجدول 1.3. النصف الثاني من الأحرف ذات الرموز 128...255 يختلف باختلاف الخطوط. تستخدم خطوط Windows القياسية Arial Cyr وCourier New Cyr وTimes New Roman آخر 64 رمزًا (من 192 إلى 256) لتمثيل الأحرف السيريلية (بدون الحروف "ё" و"Ё"): "A"... "Z" هي القيم المشفرة 192..223، "a"... "i" - 224...255. الرمزان "Ё" و"е" لهما الرمزان 168 و184 على التوالي.

    الجدول 1.3 - ترميز الأحرف وفقًا لمعيار ANSI

    شفرة رمز شفرة. رمز شفرة. رمز شفرة رمز
    0 NUL 32 ب.ل. 64 @ 96 "
    1 منطقة 33 ! 65 أ 97 أ
    2 اس تي اكس 34 66 في 98 ب
    3 إيتكس 35 # 67 مع 99 مع
    4 محكمة تكافؤ الفرص 36 $ 68 د 100 د
    5 إن كيو 37 % 69 ه 101 ه
    6 أك 38 & 70 F 102 F
    7 بيل 39 " 71 ز 103 د
    8" ب.س. 40 ( 72 ن 104 ح
    9 إتش تي 41 ) 73 أنا 105 أنا
    10 LF 42 * 74 ج 106 ي
    11 VT 43 + 75 ل 107 ك
    12 FF 44 F 76 ل 108 1
    13 سجل تجاري 45 - 77 م 109 م
    14 لذا 46 78 ن 110 ن
    15 إس.آي. 47 / 79 0 111 يا
    16 ديل 48 0 80 ر 112 ص
    17 DC1 49 1 81 س 113 س
    18 DC2 50 2 82 ر 114 ص
    19 DC3 51 3 83 س 115 س
    20 العاصمة 4 52 4 84 ت 116 ر
    21 ن.ك. 53 5 85 ش 117 ش
    22 مزامنة 54 6 86 الخامس 118 الخامس
    23 إي تي بي 55 7 87 دبليو 119 دبليو
    24 يستطيع 56 8 88 X 120 س
    25 م. 57 9 89 ي 121 ش
    26 الفرعية 58 : 90 ز .122 ض
    27 خروج 59 ; 91 ر 123 {
    28 خ.س 60 < 92 \ 124 1
    29 جي إس. 61 = 93 ] 125 }
    30 ر.س. 62 > 94 ل 126 ~
    31 نحن 63 F 95 127 ص

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