يتم إعلان المتغيرات في C بواسطة
Type <Li>;
حيث
<Li>
يدل على قائمة المعرفات.
الكائنات بسيطة
مكافئات الكائنات Z إلى C:
صحيح يترجم إلى INT.
محرف يترجم إلى CHAR.
إلى النوع "سلسلة"
نربط النوع St الذي تم إنشاؤه والذي نحدده بواسطة
typedef char St[256]
فيC
النوع المنطقي غير موجود.
لمواصلة العمل دائما مع هذا النوع ، فقط أضف في بداية البرنامج
typdef int Booleen
وتعيين القيم صواب و خطأ على النحو التالي :
#define true 1
#define false 0
بنى
لتحديد
بنية في C ، يجب عليك اختيار التطبيق.
التطبيق هو اختيار تمثيل الذاكرة (عادة ثابتة أو ديناميكية) وترجمة عمليات آلة
مجردة في هذا التمثيل.
يكفي استبدال البنية س بواسطة المؤشر وإضافة على مستوى رأس البرنامج ج التطبيق المطلوب حيث سيتم تحديد نوع المؤشر.
يتم تضمين قواعد تعبيرات Z في قواعد اللغة C.
نفس بناء الجملة مع ' = 'بدلا من':='.
-----------Z----------
مادام شرط :
تعليمات
نهاية_مادام
يترجم إلى
-------------C-----------
WHILE ( Cond )
{
Statements
}
--------------Z-----------------
لكل
V := ع1، ع2 [،ع3]
تعليمات
نهاية_لكل
يترجم إلى
---------------C---------------
for (V=Exp1; V<=Exp2; V=V+Exp3)
{
Statements
}
-----------Z------------
إذا شرط :
تعليمات
[وإلا
تعليمات ]
نهاية_إذا
يترجم إلى
----------------C--------------
IF ( Cond )
{
Statements
}
[ELSE
{ Statements } ]
--------Z--------
اقرأ(م1، م2،...)
يترجم إلى
-----------C---------------
scanf("...", &V1, &V2, ...)
--------Z----------
اكتب(ع1،ع2،...)
يترجم إلى
-------------C-------------
printf(E1, E2, ...)
------------Z-------------
إجراء إسم (و1، و2...)
ليكن
تعريف الكائنات المحلية و الوسطاء
بداية
تعليمات
نهاية
يترجم إلى
-----------------C----------------
void Name ( typ1 P1 , typ2 P2, ...)
{
Definition of local objects
Statements
}
------------------Z------------------
دالة إسم (و1، و2...) : نوع
ليكن
تعريف الكائنات المحلية و الوسطاء
بداية
تعليمات
نهاية
يترجم إلى
------------------C------------------
type Name ( typ1 P1, typ2 P2, ...)
{
Definition of local objects
Statements
}
باقي_قسمة(أ،
ب)
int Mod( int a, int b)
{ return ( a % b ); }
أدنى(أ، ب)
int Min (int a, int b)
{
if (a < b) return(a);
else return(b);
}
أقصى(أ، ب)
int Max (int a, int b)
{
if (a > b) return(a);
else return(b);
}
EXP ( a, b )
int Exp (int a, int b)
{
int i; int Ex ;
Ex = 1;
for (i= 1; i<=b; i++)
Ex = Ex * a ;
return (Ex);
}
عدد_عشوائي
( ن )
int
Aleanombre( int N )
{ return ( rand() % N ); }
سلسلة_عشوائية ( ن ) .
char *Aleachaine ( int N )
{
int k;
char * Chaine =
malloc(N);
char Chr1[26] = "abcdefghijklmnopqrstuvwxyz";
char Chr2[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (k=0;k<N; k++)
switch ( rand() % 2 ){
case 0 : *(Chaine+k) = Chr1[rand() % 26] ; break ;
case 1 : *(Chaine+k) = Chr2[rand() % 26] ; break ;
}
Chaine[k] = '\0' ;
return (Chaine);
}
طول(جملة)
int Longchaine (
string255 Ch )
{
return strlen(Ch);
}
محرف_سلسلة ( جملة , ر )
char *Caract ( string255 Ch , int I )
{
char *s = malloc(2);
s[0] = Ch[I-1];
s[1] = '\0';
return s;
}
--------------------Z--------------------
ليكن
تعريف الكائنات المحلية و الشاملة
الإعلان عن الوحدات
بداية
تعليمات
نهاية
وحدة 1
....
وحدة ن
يترجم إلى
-------------------C----------------------
Local and static objects
Definition of functions
Function 1
Function 2
...
Function n
main()
{
Statements
}