الانتقال من Z إلى PASCAL

 

 

تعريف                            

تعبيرات

تخصيص                                                       

تكرار المشروط                           

تكرار المعدود                            

الاشتراط                          

قراءة                     

كتابة                                

إجراء                           

دالة                                      

دوال قياسية                  

            خوارزمية

 

 

             تطبيق الآلاة مجردة في باسكال (PASCAL)

 

 

تعريف المتغيرات

 

 

يتم إعلان المتغيرات في PASCAL بواسطة 

       <Li> : Type ;

حيث <Li> يدل على قائمة المعرفات.  

 

  ليكن يترجم إلى VAR.

 

     الكائنات بسيطة

   

مكافئات الكائنات Z إلى PASCAL:

      Z                          PASCAL

 

      صحيح                  INTEGER

      منطيقي            BOOLEAN

      محرف                  CHAR.

  سلسلة      STRING

 

التعبيرات  

 

يتم تضمين قواعد تعبيرات Z في قواعد اللغة PASCAL.

 

 

التخصيص

 

نفس بناء الجملة

التكرار المشروط

 

-------Z---------         

 مادام  شرط:              

                                 

      تعليمات

                                 

 نهاية_مادام

 

يترجم إلى

 

-------PASCAL------  

 WHILE ( Cond ) DO

   BEGIN

     Statements

   END

 

التكرار المعدود 

 

  --------------Z---------------

لكل V := ع1، ع2 [،ع3]

  

   تعليمات

  نهاية_لكل

 

إذا ع3 غير موجود أو يساوي 1

 

يترجم إلى 

 

  --------PASCAL--------- 

  FOR V:= Exp1 TO Exp2 DO

    BEGIN

        Instructions

    END

 

إذا ع3 # 1 : 

  ----------PASCAL------  

  V := Exp1;

  WHILE ( V <= Exp2 ) DO

    BEGIN

       Statements ;

      V := V + Exp3

    END;

 

الاشتراط  

 

  ----------Z----------        

  إذا شرط:                    

                                  

       تعليمات

 

  [وإلا                                                     

                        

       تعليمات]   

  نهاية_إذا

 

يترجم إلى 

 

  -------PASCAL--------- 

 IF Cond

 THEN

   BEGIN

     Statements

   END

 [ELSE

    BEGIN

      Statements

    END]

 

القراءة

  

 --------Z--------           

   اقرأ(م1، م2،...)    

 

يترجم إلى

 

    ------PASCAL------ 

    READLN(V1, V2, ...)

 

 

كتابة

 

   -----------Z-----------         

اكتب(ع1،ع2،...)   

 

يترجم إلى 

 

   --------PASCAL----------

   WRITELN(Exp1, Exp2, ...)

 

 

إجراء

 

  ------------Z-----------------

 إجراء إسم (و1، و2...)

 

  ليكن

تعريف  الكائنات المحلية و الوسطاء  

  بداية

        تعليمات

  نهاية

 

يترجم إلى 

  --------------------PASCAL--------------------

  PROCEDURE Name ( VAR P1: typ; VAR P2:typ, ...);

  VAR

         Declaration of local objects and parameters

  BEGIN

         Statements

  END

 

دالة

 

  ----------------Z-----------------

 دالة إسم (و1، و2...) : نوع 

  ليكن

تعريف  الكائنات المحلية و الوسطاء  

  بداية

        تعليمات

  نهاية

 

يترجم إلى 

  ---------------------PASCAL------------------------

  FUNCTION Name ( VAR P1: typ; VAR P2:typ, ...) : Type;

  VAR

        Declaration of local objects and parameters

  BEGIN

         Statements

  END

دوال قياسية

 

باقي_قسمة(أ، ب) 

 

 

FUNCTION Mod (a, b : INTEGER) : INTEGER;

  BEGIN

    Mod := a Mod b

  END;

 

أدنى(أ، ب) 

 

 

FUNCTION Min (a, b: INTEGER) : INTEGER;

  BEGIN

    Min := a; IF b < a THEN Min := b;

  END;

 

أقصى(أ، ب) 

 

FUNCTION Max (a, b: INTEGER) : INTEGER;

  BEGIN

    Max := a; IF b > a THEN Max := b;

  END;

 

  أس ( a, b ) 

 

FUNCTION Exp (a, b: INTEGER) : INTEGER;

  VAR I : INTEGER;

  BEGIN

    Exp := 1;

    FOR I:= 1 TO b DO Exp := Exp * a

  END;

 

عدد_عشوائي ( ن ) 

 

 

FUNCTION Randnumer (N: INTEGER) : INTEGER;

  BEGIN

    Randnumer := Random( N );

  END;

 

  سلسلة_عشوائية ( ن )

 

 

FUNCTION Randstring(N: INTEGER) : STRING;

  VAR

    K : BYTE;

    Chaine : STRING;

  BEGIN

    Chaine := '';

    FOR K:=1 TO N DO

      CASE Random(2) OF

      0 : Chaine := Chaine + CHR(97+Random(26) ) ;

      1 : Chaine := Chaine + CHR(65+Random(26) )

      END;

    Randstring := Chaine;

  END;

 

  طول(جملة)

 

 

FUNCTION Stringlength(C : STRING): INTEGER;

  BEGIN

    Stringlength := length (C)

  END;

 

خوارزمية

 

  --------------------Z-----------------

  ليكن

 

 

      تعريف  الكائنات المحلية و الشاملة

      الإعلان عن الوحدات

 

  بداية

 

      تعليمات

 

    نهاية

 

   

وحدة 1
....
وحدة ن

 

يترجم إلى 

 ------------------PASCAL---------------

 PROGRAM  Pascal;

   VAR

        

   {Local and static objects }

   { Definition of modules }

   Module 1

   Module 2

   ...

   Module n

 

   BEGIN

         Statements

   END.