انتقل إلى المحتوى

برمجة باسكال

من ويكي الكتب

الباسكال هي لغة برمجة سهلة التعلم نسبيا. صياغتها مستمدة من اللغة الإنجليزية. سميت اللغة كذلك تمجيدا لذكرى عالم الرياضيات الفرنسي بليز باسكال.

تعتبر لغة الباسكال *نسبة للعالم الرياضي باسكال* من اللغات دات المستوى العالي وهي لغة تدرس في الجامعات لسهولتها. ولكتابة برنامج بلغة باسكال فانك بحاجة إلى مترجم مثل (devpascal) على سبيل المثال. الآن سنقوم باول خطوة أي كتابة أول برنامج بلغة الباسكال. حيث سيقوم البرنامج بطباعة عبارة (hello world) على الشاشة.

program hello-world; 1

begin 2

write("hello world"); 3

4 .end

ملاحظة الترقيم (1-5) ليس ضمن البرنامج.

1}- رأس البرنامج: السطر الأول هو لكتابه اسم للبرنامج ، أي اسم يمكنك وضعه كيفما تريد ، لكن يحبذ ان يكون له علاقه بالبرنامج الذي تكتبه ، فمثلا برنامج اله حاسبه ، يصبح اسمه مثلا calculate ، أيضا هناك قواعد في كتابه أسماء البرامج فلا يمكن أن يحتوي على مسافات أو يبدأ الاسم برقم ، أيضا في حاله ان اسم البرنامج يحتوي على كلمتين فمن الممكن ان تكتب متلاصقتين مع مراعاه تكبير الحرف الأول من كل كلمه ،مثل HelloWorld ، أو من الممكن وضع علامه الشرطه – للفصل بين الاسم الأول والثاني ، hello-world .

2}- كل البرامج في الباسكال ، تبدأ بالكلمه المحجوزه (begin) . 3}- في هذا السطر كتبنا كلمة (write). دورها هو الطباعة.

ويجب على النص الذي نريد أن نقوم بطباعته أن يكون داخل قوسين (النص).ويجب أن يكون ما بداخل القوسين بين العلامتين ("النص")

وفي الاخير نقوم بختم السطر بفاصلة منطقة ;("النص") .

4}- كل البرامج في الباسكال ، تنتهي بالكلمة المحجوزة (end). ______________________________

برنامج آخر لعمليات الضرب :

Program Multiplication;

uses wincrt;

var

a,b:integer;

begin

writeln('donner a ');

readln(a);

writeln('donner b');

readln(b);

x:=a*b;

write(a,'*',b,'=',x);

end. برنامج اخر لتعليم كيفية كتابة معادلة:

;Program input
var
Z,X,Y,
integer

begin

('
Writeln ('enter your values
(Readln(x, y
Z
=x*x+5*y
(Writeln( 'z=' ,z)
Readln

.end

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

في لغة الباسكال يطلب تعريف كل الثوابت والمتغيرات التي ستستعمل. كما يجب تعريف أنواع البيانات (DATA TYPES - Types de données) الخاصة. كما تعرف الدوال (Function) والبرمجيات الفرعية (Procedure). دون نسيان مكتبات الدوال والبرمجيات الفرعية المستعملة حتى لا يطلب تعرف المجهول منها.

أنواع البيانات والعمليات

[عدل]

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

[عدل]

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

الأنواع البسيطة
التعريف الفئة المعرفة ملاحظات
INTEGER القيم الصحيحة 1، 12 ، +93، -6
REAL القيم الحقيقية 5، 2.5، 100، 1.05E+2 (= مئة وخمسة)
BOOLEAN القيم المنطقية TRUE - FALSE (وهما القيمتان الوحيدتان : صحيح أو خطأ)
CHAR الرموز القيمة هي رمز واحد قد يكون: حروف لاتينية (A,B,C ... a,b,c ..)، أرقام (0 1 2 3 4 5 6 7 8 9)، رموز أخرى (, ; & ! $ . :)
STRING سلسلة حروف ورموز تحدد دائما بالرمز '. مثال : 'Hello'

العمليات

[عدل]

أبرز العمليات هي العمليات الحسابية : الجمع + ، الطرح - ، الضرب *، القسمة /. و تضاف إليها عمليتي القسمة الصحيحة باستعمال DIV و باقي القسمة الصحيحة باستعمال MOD. ولما كانت كتابة العمليات تتم على سطر واحد، وجب إدراك أنه يجب الإلمام بأولوية العمليات.

مثال

العبارة الرياضية التالية :

تكتب a - ( b + c ) /2 وليس a - b + c / 2 لأن هذه الأخيرة توافق

الدوال

[عدل]

الدالة الخطية و الدالة التألفية

الفصل الأول: تقديم لـلغة باسكال

[عدل]

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

الكلمات الخاصة

[عدل]

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

الكلمة الاستعمال الكلمة الاستعمال
ABSOLUTE AND وصل منطقي
ARRAY تعريف الجداول والمصفوفات ASM
BEGIN تحديد بداية CASE اختيار حسب الحالات
CONST تعريف الثوابت CONSTRUCTOR
DESTRUCTOR EXTERNAL
DIV قسمة طبيعية تامة DO للتنفيذ
DOWNTO ELSE
END تحديد نهاية FILE
FOR FORWARD
FUNCTION تعريف دالة GOTO قفزة غير مشروطة
IF اختيار مشروط IMPLEMENTATION
IN INLINE
INTERFACE INTERRUPT
LABEL تعريف اللافتات MOD باقي القسمة الطبيعية
NIL NOT نفي منطقي
OBJECT OF مستعملة في تعريف الجداول
OR فصل منطقي PACKED
PRIVATE PROCEDURE تعريف برنامج فرعي
PROGRAM RECORD تعريف تسجيل
REPEAT SET
SHL SHR
STRING THEN
TO TYPE تعريف أنواع جديدة
UNIT UNTIL
USES VAR تعريف المتغيرات
VIRTUAL WHILE
WITH XOR

الأدوات

[عدل]

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

الأمثلة

[عدل]

يمكننا سرد أشهر الأدوات هنا :

  • توربو باسكال Turbo PASCAL: نظام متكامل لشركة بورلند يضم محرر ومترجم ومتابع للتنفيذ (DEBUGGER). اشتهر كثيرا في الفترة ثمانينيات القرن 20 وبداية التسعينيات. وهو أداة بسيطة سهلة للمتعلمين ويمكن العثور عليه على النت.
  • فري باسكال : كما يظهر من اسمه فهو مترجم من البرامج المفتوحة يعمل على أنظمة متعددة. متوافق مع توربو باسكال.
  • جنو باسكال : مترجم للغة باسكال يقبل صياغة حسب معيار ANSI/ISO ويتوافق جزئيا مع البرامج المكتوبة حسب صياغة توربو باسكال.

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

هيكل البرامج

[عدل]

أي برنامج مكتوب بلغة الباسكال فهو مكون من 3 أجزاء :

  • ترويسة : تحمل تسمية البرنامج
  • تعريفات : وفي هذا الجزء يتم تعريف كل ما يستعمله البرنامج من متغيرات وثوابت وأنواع بيانات جديدة ودوال وغيرها.
  • بدن البرنامج : ويضم سلسلة التعليمات والتي بتنفيذها تسلسليا ويؤدي البرنامج المطلوب منه.

مثال

[عدل]
(* الترويسة في سطر واحد وتحمل اسم البرنامج *)
Program test;
(* مجموعة من التعريفات *)
var a: real;
b:integer;
(* نهاية التعريفات وبداية مجموعة التعليمات *)
begin

b := 3;
a:= b/2;

Write(a);

end.

(* نهاية التعليمات والبرنامج *)

ملاحظة
استعمال (* --------- *) يهدف منه وضع تعليقات تفيد المبرمج ولا تأثر على البرنامج حيث أن المجمع يتجاهلها. وكما يلاحظ فهي تبدأ بـ (* أو { لتعليم نقطة بداية التعليق، وبالمقابل فإن *) أو } فهي علامة نهاية التعليق.
Wikimedia Commons هناك ملفات عن Pascal (programming language) في ويكيميديا كومنز.