Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 73

Institut National Spécialisé à la Formation Professionnelle

AMER AMER Djilali bendaoud –Relizane-

ECRITURES DES PROGRAMMES


SIMPLES (TPASCAL)

Réalisé par : KERMOUNI SERRADJ Oussama


• Année Universitaire 2015/2016
‫البرنامج‬

‫يمكن تعريف البرنامج على أنه "مجموعة من التعليمات واألوامر التي توضح للحاسب تسلسل‬
‫الخطوات التي ينبغي القيام بها ألداء مهام معينة لحل المشكلة المطروحة واستخراج النتائج‪.‬‬
‫ويختزن البرنامج في الذاكرة الرئيسية للحاسب لتوجهه إلنجاز العمليات المطلوبة ‪.‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫المترجم‪:‬‬

‫هو برنامج حاسوبي يقوم على تحويل الملفات المصدرية إلى أوامر مباشرة يفهمها الحاسوب وينفذها مباشرة بما يناسب بنية‬
‫الحاسوب الذي يستهدفه البرنامج‪.‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫برنامج باسكال ‪:‬‬

‫‪ .1‬قسم التصريحات‪ : Déclaration‬وهو قسم يتم التصريح عن جميع الثوابت ‪،‬والمتغيرات ‪ ،‬والبرامج الفرعية واألنواع‬
‫المستخدمة في البرنامج ‪.‬‬
‫‪ .2‬قسم العبارات أو التعليمات ‪ :instruction‬وهو قسم يتم كتابة جميع العبارات المستعملة في البرنامج‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


: ‫برنامج باسكال‬

‫مثــــــــــــال‬

PROGRAM cercle (input,output); (* entête *)


VAR
perimetre, diametre : REAL; (* déclarations *)
BEGIN
readln(diametre); (* instruction *)
perimetre := 3.14 * diametre; (* instruction *)
writeln(diametre,perimetre); (* instruction *)
END.

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


‫رسم تخطيطي لبرمجة باسكال‪:‬‬
‫يمكن تمثيل برنامج باسكال علي النحو التالي ‪:‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


:‫رسم تخطيطي لبرمجة باسكال‬

:d’en-tête‫مثال‬

1°) program exemple_01 ( input,


output ) ;
2°) program exemple_02 ;

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


‫رسم تخطيطي لبرمجة باسكال‪:‬‬

‫ترتكز لغة باسكال علي قسمان أساسيان التصريحات والتعليمات ويمكن تقسيم هذه األخيرة إلي‪:‬‬
‫‪-‬الالفتات ‪étiquettes ou label‬‬
‫‪-‬الثوابت ‪constante ,const‬‬
‫‪-‬األنواع ‪type‬‬
‫‪-‬المتغيرات ‪variable‬‬
‫‪-‬الدوال واإلجراءات ‪fonction et procédures‬‬
‫‪-‬التعليمات التنفيذية ‪instruction exécutables‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


:‫رسم تخطيطي لبرمجة باسكال‬

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


:‫رسم تخطيطي لبرمجة باسكال‬
: ‫مثال‬

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


‫واجهة برنامج باسكال ‪:‬‬

‫عند تحميل برنامج باسكال وتثبيته نجده يتكون من مجموعة من القوائم باإلضافة إلي توفر‬
‫مساحة العمل التي نكتب بداخلها البرنامج‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫واجهة برنامج باسكال ‪:‬‬

‫حفظ الملفات ‪:sauvegarder d’un fichier‬‬

‫يمكن حفظ الملف من القائمة ‪ file‬أو بالضغط علي الزر ‪ F2‬من لوحة المفاتيح فيظهر‬
‫مربع حوار نختار منه مكان الحفظ باإلضافة إلي تسمية هذا الملف‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫واجهة برنامج باسكال ‪:‬‬

‫تنفيذ البرنامج ‪:‬‬

‫عند االنتهاء من كتابة البرنامج يمكن تنفيذه عن طريق القائمة ‪ RUN‬ثم الضغط علي مرة‬
‫أخري علي ‪ RUN‬أو من لوحة المفاتيح بالضغط علي ‪.CTRL + F9‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫‪ -1‬تعريف‪:‬‬

‫‪-‬مثل اللغات الطبيعية لغات البرمجة لها قواعدها النحوية والصرفية ولغة‬
‫باسكال لها مجموعة من القواعد التي تضبطها حتى نتمكن من كتابة برنامج‪.‬‬

‫‪ ‬مفردات لغة باسكال )‪: Le vocabulaire (lexique‬هي عبارة عن مجموعة من‬


‫الحروف (الكلمات ‪,‬الرموز) المعروفة من قبل المترجم ‪.compilateur‬‬
‫‪ ‬قواعد لغة باسكال)‪: Syntaxe (grammaire‬هناك مجموعة من القواعد لكتابة البرنامج‬
‫والتي بدورها تتطلب الدقة ومن خالل المترجم نستطيع التحقق من صحتها‪.‬‬
‫‪ ‬الداللة ‪ :La sémantique‬ينبغي أن يكون للبرنامج معني وهذا يرجع باألساس إلي مصمم‬
‫البرنامج‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


:‫ الحروف والرموز‬-2

les chiffres 0 .. 9 
les lettres a... z A... Z 
le caractère espace appelé aussi blanc 
» _ « le caractère souligné 
:les caractères spéciaux suivants 
Parenthèse gauche ( 
Parenthèse droite ) 
Crochet gauche [ 
Crochet droit ] 
Accolade gauche { 
Accolade droite } 
Plus + 
Moins - 

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


:‫ الحروف والرموز‬-2

Fois, Etoile * 
Divisé, Slash / 
Inférieur à (plus petit que) < 
Egale à = 
Supérieur à (plus grand que) > 
Deux-points : 
Point-virgule ; 
Point . 
Virgule , 
Apostrophe ' 
Chapeau, flèche ^ 

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


:‫ مكونات لغة باسكال‬-3

Les identificateurs Définis ‫ المعرفات المحددة‬


Les identificateurs Réservés (mots clé) ‫ المعرفات المحجوزة‬
les symbole ‫ الرموز‬
les commentaire ‫ التعليقات‬
les numéros ‫ األعداد‬
les constantes caractère ‫ الثوابت الحرفية‬
les constantes chaine de‫ ثوابت السالسل الحرفية‬
caractère
1ère Année Technologie 01/10 Année Universitaire : 2015/2016
‫‪ -3‬مكونات لغة باسكال‪:‬‬
‫أ‪ -‬المعرفات المحددة‪:‬‬
‫يقوم المستخدم أو مصمم البرنامج بتحديد أسم ‪ référence‬ألحد‬
‫عناصر البرنامج مثل الثابت– المتغير – البرنامج‪.‬‬
‫ويمكن كتابة المُعرف باستخدام الحروف الهجائية أو األرقام بأي‬
‫ترتيب‪ ،‬ويفضل استخدام الحروف الصغيرة ‪ ،‬ويشترط عند كتابة‬
‫المُعرف ما يلي‪:‬‬
‫‪ ‬عدم استخدام أي رمز خاص‪.‬‬
‫‪ ‬عدم البدء برقم‪ ،‬فيجب أن تكون أول خانة تحتوى على حرف‪.‬‬
‫‪ ‬عدم ترك مسافة بين الحروف أو األرقام المستخدمة في‬
‫المُعرف‪.‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


:‫ مكونات لغة باسكال‬-3
:‫ المعرفات المحددة‬-‫أ‬

‫ مثال‬
;Program calcul
;Const Pi=3.14
;Var Ray,X1,X2,salaire_net : real

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


:‫ مكونات لغة باسكال‬-3
: ‫ المعرفات المحجوزة‬-‫ب‬

‫ تحتوى على بعض الكلمات والتي استخدمت في‬Pascal ‫إن لغة‬


‫ وهذه الكلمات لها معاني قياسية ال يمكن تغييرها أو‬،‫تصميم اللغة‬
‫إعادة تعريفها بواسطة المستخدم‬
AND, ARRAY, ASM, BEGIN, CASE, CONST,CONSTRUCTOR,
DESTRUCTOR, DIV, DO, DOWNTO, ELSE, END, EXPORTS,
FILE, FOR, FUNCTION, GOTO, IF, IMPLEMENTATION, IN,
INHERITED, INLINE, INTERFACE, LABEL, LIBRARY, MOD,
NIL, NOT, OBJECT, OF, OR

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


‫‪ -3‬مكونات لغة باسكال‪:‬‬
‫ج‪ -‬الرموز ‪:les symboles‬‬
‫تستخدم لغة ‪ Pascal‬مجموعة الحروف الهجائية باللغة اإلنجليزية من ‪ A‬إلى ‪ Z‬سواء‬
‫كانت حروف كبيرة ‪ CAPITAL LETERS‬أو حروف صغيرة ‪ ،Small lettres‬كما تستخدم‬
‫مجموعة األرقام من ‪ 0‬إلى ‪ 9‬وبعض الرموز الخاصة مثل الجمع ‪ ،+‬والطرح ‪،-‬‬
‫والضرب *‪ ،‬والقسمة ‪ ،/‬مسافة ‪ … espace‬إلى أخره‪.‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫‪ -3‬مكونات لغة باسكال‪:‬‬

‫د‪ -‬التعليقات ‪ :les commentaires‬هو نص يحاط بأقواس‬


‫{} أو عن طريق األحرف (* و *)‪.‬‬
‫ويهدف هذا االستعراض لتسهيل القراءة والفهم من‬
‫البرنامج‪ ،‬ويعمل على تسليط الضوء على النقاط‬
‫الهامة من البرنامج‬
‫مثال ‪:01‬‬
‫}‪Surf :=Pi* Ray **2 ; {calcul de la surface de cercle‬‬
‫‪Ou bien‬‬
‫)*‪Surf :=Pi* Ray **2 ; (*calcul de la surface de cercle‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫‪ -3‬مكونات لغة باسكال‪:‬‬

‫د‪ -‬األعــــــداد ‪:les constantes numériques‬‬


‫‪ ‬أعداد صحيحة ‪: intèger‬هي األعداد التي ال تحتوي علي‬
‫كسور أي كل العداد السالبة والموجبة بدون كسور‬
‫‪ ‬أعداد حقيقية ‪: real‬هي األعداد التي تحتوي علي‬
‫كسور سواء موجبة أو سالبة وبالتالي جميع األعداد‬
‫الصحيحة هي حقيقية‪.‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫‪ -3‬مكونات لغة باسكال‪:‬‬

‫هـ‪ -‬الثوابت الحرفية ‪:les constantes caractère‬‬


‫تتم كتابة األحرف بين عالمات االقتباس المفردة‪.‬‬
‫على سبيل المثال‪:‬‬
‫'‪' 'A‬ا' '‪' '1‬؟ '‪'/‬‬
‫و‪ -‬ثوابت السالسل الحرفية ‪les constantes chaine de‬‬
‫‪: caractère‬‬
‫هي عبارة عن مجموعة من الحروف المحاطة بعالمة‬
‫تنصيص‬
‫مثال‪'abcd' , ‘bonjour’ , 'CARRE de huit' :‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫‪ -3‬مكونات لغة باسكال‪:‬‬

‫‪ -4‬التعابير والعمليات ‪: expressions et operateur‬‬


‫‪ ‬التعبير ‪: Expression‬عبارة عن تجميع (أرقام – ثوابت – متغيرات)‬
‫متصلة مع بعضها البعض بواسطة مؤثرات ‪ Operateurs‬لتكوين‬
‫اصطالح جبري يعطى قيمة معينة‪.‬‬
‫إن التعبيرات ‪ Expressions‬نوعان‪:‬‬
‫‪ ‬تعبيرات عددية أو حسابية ‪NUMERICAL EXPRESSIONS‬‬
‫‪ ‬تعبيرات منطقية ‪BOOLEAN EXPRSSIONS‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫‪ -3‬مكونات لغة باسكال‪:‬‬
‫‪ ‬العمليات ‪ :les operateurs‬باسكال يتوفر علي العمليات‬
‫التالية‬

‫العمليات الحسابية ‪:les opérations arithmétiques‬‬ ‫‪-‬‬


‫‪ :-‬الطرح (تكملة)‪ :/‬القسمة‬ ‫‪ :+‬الجمع (اتحاد مجموعتين)‬ ‫‪‬‬
‫*‪ :‬الضرب‬
‫=‪ :‬المساواة‬ ‫‪‬‬
‫‪ :MOD‬إظهار باقي القسمة‬ ‫‪‬‬
‫‪ :DIV‬إظهار حاصل القسمة أي النتيجة‬ ‫‪‬‬
‫العمليات العالقية ‪:les opérations relationnelles‬‬ ‫‪-‬‬
‫< >‪ :‬مختلفة‬ ‫<‪ :‬أقل <=‪ :‬أقل من أو يساوي >‪ :‬العليا‬ ‫‪‬‬
‫=‪ :‬أكبر من أو يساوي‬ ‫‪‬‬
‫العمليات المنطقية ‪:les opérations logiques‬‬ ‫‪-‬‬
‫أو(‪)OU( )OR‬‬ ‫ال (‪)NOT‬‬ ‫و (‪)ET()AND‬‬ ‫‪‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫مقدمـــــــ‬
: ‫ــــة‬

‫يتكون برنامج باسكال من رأس البرنامج ومن مجموعة من التصريحات باإلضافة إلي‬
.end ‫ و‬Begin ‫التعليمات المحصورة بين‬

:‫مثــــــــال‬
PROGRAM addition; (* entête *)
VAR A,B,C: REAL; (* déclarations *)
BEGIN
read(A,B); C:=A+B; (* instructions *)
writeln("la somme est:",C) (* instruction *)
END.

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


‫‪ -1‬رأس البرنامج ‪L'ENTÊTE DE‬‬
‫‪:PROGRAMME‬‬

‫ھو مجموعة من األحرف و األرقام حیث الیوجد فراغات في االسم وال یقبل الرموز عدا‬
‫الرمز _ ويبدأ تسمية البرنامج بحرف أبجدي‪.‬‬

‫مثــــــــــال‪:‬‬
‫; ‪program Second_Degre‬‬
‫;)‪Program stock(input,output‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


LES ‫ التصريحات‬-2
:DÉCLARATIONS

.‫في ھذا الجزء یعلن عن الثوابت و المتغيرات الضرورية لحل مشكل ما‬
les constantes ‫الثوابت‬ -
les types ‫األنواع‬ -
les fonction et procédures ‫الدوال واإلجراءات‬ -
les variable ‫المتغيرات‬ -

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


LES ‫ التصريحات‬-2
:DÉCLARATIONS

:DÉCLARATIONS DES CONSTANTES ‫الثوابت‬

.‫الثابت يشير إلى القيمة التي ال تتغير أثناء تنفيذ البرنامج‬


‫ سلسلة أحرف أو معرف آخر‬،‫يمكن أن تكون قيمة ثابت رقم‬.

:‫مثــــــال‬
program exemple;
const N=12; M=N ;
V=TRUE; F=FALSE;
Y='H'; B='Bonjour Monsieur'; Message = 'Salut ...';
R2=25.36 ; PI=3.14;
MaxData = 1024 * 64 - 16;
NumChars = Ord('Z') - Ord('A') + 1;

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


LES ‫ التصريحات‬-2
:DÉCLARATIONS

:DÉCLARATIONS DES TYPES ‫األنواع‬

:Les types simples ‫) األنواع البسيطة‬1

;Le type réel (REAL) ‫األنواع الحقيقية‬ •


;Le type entier (INTEGER) ‫األنواع الصحيحة‬ •
;Le type caractère (CHAR ) ‫األنواع الحرفية‬ •
.Le type booléen (BOOLEAN) ‫النواع المنطقية‬ •

Le type énuméré •
Le type intervalle •

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


LES ‫ التصريحات‬-2
:DÉCLARATIONS

:DÉCLARATIONS DES TYPES ‫األنواع‬

Les types complexe ou composé ‫ األنواع المعقدة‬-2


,Le type tableau (array) •
,Le type enregistrement (record) •
,Le type ensemble (set of) •
,Le type fichier (file, texte) •
Le type chaîne de caractères (string) •

: ‫مثــــال‬
Type jj=1..31; mm=1..12; aa=1900..2040; Alphab=’A’..’Z’; {type intervalle}
joursemaine =(sam, dim, lun, mar, mer, jeu, ven); {type énuméré}
tab=array[1..100]of real {type tableau}

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


‫التعليمــــات ‪Les‬‬
‫‪instructions‬‬

‫مقدمــــــــــــة ‪:‬‬
‫التعليمة هي عبارة عن جملة تمثل أمر أو مجموعة من األوامر‬
‫التي ينفذها الحاسوب‬
‫كل تعليمة تنتهي بفاصلة منقوطة ويمكن تقسيم التعليمات إلي‬
‫نوعين ‪:‬‬
‫‪ )1‬التعليمات البسيطة‪ :‬فريدة من نوعها‪ ،‬أمر بدون شرط‬
‫على النحو التالي‪ :‬إسناد ‪,‬القراءة ‪,‬الكتابة‪.‬‬
‫‪ )2‬التعليمات الهيكلية‪ :‬و تنقسم إلي‬
‫‪ -‬التعليمات الشرطية‬
‫‪ -‬التعليمات تكرارية أو المتكررة‬
‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬
‫التعليمــــات ‪Les‬‬
‫‪instructions‬‬

‫أ)‪ -‬التعليمات البسيطة‪:‬‬


‫وتسمى هيكل بسيط إذ يمكن تحويله إلى إسناد من‬
‫اإلجراءات التالية‪:‬‬
‫• اإلحالة أو اإلسناد ‪.affectation‬‬
‫• إدخال أو قراءة البيانات‪.‬‬
‫• واإلخراج أو كتابة البيانات‪.‬‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


Les ‫التعليمــــات‬
instructions

:‫ التعليمات البسيطة‬-)‫أ‬
::Instruction d’affectation ‫ تعليمات اإلسناد‬
.‫اإلحالة أو اإلسناد هي إجراء لتحديد قيمة متغير‬
‫مثال‬
X := Y {valeur de la variable X devient égale à la valeur de la variable Y}

X := X + 1 {valeur de la variable X devient égale à sa valeur actuelle incrémentée de 1}

X :=10.25 {Après exécution de l'instruction, la valeur de la variable x vaut 10.25. }

test := true {Après exécution de l'instruction, la valeur de la variable test vaut Vrai. }

ch := "Pascal" {Après exécution de l'instruction, la valeur de la variable ch vaut "Pascal".}

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


Les ‫التعليمــــات‬
instructions

:‫ التعليمات البسيطة‬-)‫أ‬

: 01ϝΎ
Μϣ
:ΔϴϟΎ
Θϟ΍ϢϴϘϟ΍ϥ΍άΧ΄ϳϥΎ
ϴϘϴϘΣϥ΍ήϴϐΘϣx,yϦϣϞϛϥΎ
ϛ΍ Ϋ·
1) x := 20 ;
2) y := 50 ;
3) x := x+ y ;
4) y := x - y
5) x := x - y
:ϲ ϟΎ
Θϟ΍ϝϭΪΠϟ΍ΔΌΒόΘΑϢϗ )α
N° de séquence Valeur de x Valeur de y
1
2
3
4
5

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


Les ‫التعليمــــات‬
instructions

:‫ التعليمات البسيطة‬-)‫أ‬

:02 ‫ مثال‬
: ‫ ) إلي مايقابلها بالساعات والدقائق والثواني‬sec 4200( ‫أكتب برنامج لتحويل‬

Program CH2_Program5;
Var
Hour, min, sec, temp: integer;
Begin
Sec:=42200 mod 60;
Temp:=42200 div 60;
Min:=temp mod 60;
Hour: = temp div 60;
Writeln ('hour=', hour,'min=', min,'sec=', sec);
End.
1ère Année Technologie 01/10 Année Universitaire : 2015/2016
‫التعليمــــات ‪Les‬‬
‫‪instructions‬‬

‫ب) تعليمات اإلدخال ‪Les Instructions d'entrées‬‬

‫األمر (‪ )Readln‬و ‪ )Read(:‬یقوم ھذا األمر بقراءة قیمة عن طریق لوحة المفاتیح وإدخالھا داخل‬
‫المتغیر‪ .‬الصیغة العامة لھذا األمر كما یلي‪:‬‬
‫* قراء قيمة واحدة )‪;Read(Variable‬‬
‫* قراءة عدة قيم )‪;Read(Variable1,Variable2,…,VariableN‬‬

‫ج) تعليمات اإلخـــراج ‪Les Instructions de sorties‬‬

‫‪ -2‬األمر (‪ )Writeln‬و (‪ )Write‬یقوم ھذا األمر بطباعة –كتابة‪ -‬قیمة متغیر أو جملة في الشاشة الصیغة‬
‫العامة لھذا األمر كما یلي ‪:‬‬
‫طباعة قیمة‪;Write(Variable) :‬‬ ‫‪‬‬
‫طباعة رسالة‪;Write( ' Message ' ) :‬‬ ‫‪‬‬
‫كتابة األمر المطلوب ‪Write‬‬ ‫‪‬‬

‫‪ Writeln‬كتابة األمر المطلوب وتنفيذ األمر الثاني في السطر الموالي ‪.‬‬ ‫‪‬‬
‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬
Les ‫التعليمــــات‬
instructions

Write ‫عن‬ :‫مثال‬ Writeln ‫ عن‬:‫مثال‬

Write( 'hello_ ' ); Writeln( 'hello_ ' );


Write( 'Ali' ); Write( 'Ali' );

hello_ Ali hello_


Ali

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


Les ‫التعليمــــات‬
instructions

2 ‫مثال‬:
Program Exemple;
Var nom : String; I : integer; R : real;
BEGIN
Write('Entrez votre nom : ');
ReadLn(nom); {lecture du nom}
WriteLn('Votre nom est ', nom); {affichage du nom}
Writeln; {saut de ligne}
write('Entrez un entier et un réel :');
read(i,r); {lecture des valeurs}
writeln('L''entier vaut : ', i : 5); {affichage de i}
writeln('et le réel est : ', r : 6:2); {affichage de r}
ReadLn;
END.

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


‫تمارين‬

‫اكتب برنامج بلغة ‪ T.Pascal‬لقراءة عددين صحيحين وطباعة نواتج عملي‬


‫الضرب والقسمة والجمع والطرح لهذين العددين‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


‫تمارين‬

‫اكتب برنامج بلغة ‪ T.Pascal‬لقراءة عددين صحيحين وطباعة نواتج عملي‬


‫الضرب والقسمة والجمع والطرح لهذين العددين‬

‫‪1ère Année Technologie‬‬ ‫‪01/10‬‬ ‫‪Année Universitaire : 2015/2016‬‬


: ‫ التعليمات الشرطية‬-2

:IF STATEMENT‫ عبارة إذا‬2-1

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


: ‫ التعليمات الشرطية‬-2

:IF STATEMENT‫ عبارة إذا‬2-1

if 5 > 2 then
begin
writeln(‘5 Is Greater Than 2’);
end;

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


: ‫ التعليمات الشرطية‬-2

:IF STATEMENT‫ عبارة إذا‬2-1

1ère Année Technologie 01/10 Année Universitaire : 2015/2016


‫‪ -2‬التعليمات التكرارية‪:‬‬

‫تعليمات التكرار ‪: REPEAT -- UNTIL‬‬

‫‪ -‬يستخدم هذا األمر لتكرار عبارة أو أكثر لعدد من المرات وفقا لمتطلبات البرنامج‬
‫‪ -‬البرنامج سينفذ علي األقل لمرة واحدة ويكون توقف البرنامج اعتمادا علي شرط يوضع بعد ‪until‬‬

‫الصيغة القاعدية هي‪:‬‬


‫‪Repeat‬‬
‫; ‪Instruction 1‬‬
‫; ‪Instruction 2‬‬
‫…‪Etc‬‬
‫) ‪; Until (condition is true‬‬

‫‪01/10‬‬
:‫ التعليمات التكرارية‬-2

‫ برنامج يقوم بإدخال أسماء الطلبة وطباعتها البرنامج ال يتوقف لغاية إدخال إسم علي‬: ‫ مثال‬.

Program CH3_Program2;
Var YN: String;
Begin
Writeln ('enter name of student?’);
Repeat
Readln ( YN );
Writeln (YN) ;
Until (YN=’ALI’) ;
END.

01/10
‫‪ -2‬التعليمات التكرارية‪:‬‬

‫عبارة التكرار ‪:WHILE -DO LOOP‬‬


‫وهو أيضا من إيعازات التكرار وهو يشابه إلي درجة كبيرة (‪.)repeat ,until‬‬
‫الصيغة القاعدية لهذا األمر هي ‪:‬‬
‫‪While <condition is true> do the following:‬‬
‫;‪instruction 1‬‬
‫;‪instruction 2‬‬
‫;‪instruction 3‬‬
‫‪etc...‬‬
‫;‪End‬‬

‫‪01/10‬‬
:‫ التعليمات التكرارية‬-2

:‫ مثال‬-
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

01/10
:‫ التعليمات التكرارية‬-2

:‫ مثال‬-
program whileLoop;
var
a: integer;
begin
a := 10;
while a < 20 do
begin
writeln('value of a: ', a);
a := a + 1;
end;
end.

01/10
:‫ التعليمات التكرارية‬-2

0 ‫ إدخال مجموعة أعداد وطباعتها شرط التوقف عند إدخال الرقم‬: ‫مثال‬

Program CH3_Program3;
Var X: integer;
Begin
Write ln ('Enter number');
Readln(x);
While x < > 0 do
Begin
Writeln(x);
Read ln(x);
End ;
End.

01/10
‫‪ -2‬التعليمات التكرارية‪:‬‬

‫أيعاز التكرار ‪: FOR LOOP‬‬

‫‪01/10‬‬
‫‪ -2‬التعليمات التكرارية‪:‬‬

‫أيعاز التكرار ‪: FOR LOOP‬‬

‫إن هذا األمر يقوم بتكرار إيعاز أو مجموعة إيعازات لعدد من المرات المحددة مسبقا‪.‬‬
‫الصيغة القاعدية هي ‪:‬‬
‫‪For {variable}* := {original value} to/downto {final value} do‬‬
‫{)‪}code...(for one action‬‬
‫بشكل عام هذا المتغير يسمى ( ‪) loop counter‬‬
‫قيمة هذا العدد تبدأ بالقيمة األصلية أو االبتدائية ‪ original value‬ثم تزداد بمقدار واحد أو تقل بمقدار واحد‬
‫في كل مرة يتم تنفيذ اإليعاز الذي بعده مباشرة ويستمر كذلك لحين تصل قيمة العداد إلي القيمة النهائية ‪final‬‬
‫‪ value‬والتي تمثل التنفيذ األخير‪.‬‬

‫‪ -‬إذ كانت القيمة االبتدائية أقل من القيمة النهائية فعند ذلك نستخدم ‪to‬‬
‫‪ -‬إذا كانت القيمة االبتدائية أكبر من القيمة النهائية فنستخدم ‪downto‬‬

‫‪01/10‬‬
: ‫ التعليمات الشرطية‬-2

: FOR LOOP ‫أيعاز التكرار‬

Program CH3_Program4; Program CH2_Program5;


Begin Var Counter: Integer; {loop counter
Writeln ('for loop'); {somewhat boring declared as integer}
writing all this!!!} Begin
Writeln ('for loop'); For Counter: = 1 to 7 do {it's easy and
Writeln ('for loop'); fast!}
Writeln ('for loop'); writeln ('for loop');
Writeln ('for loop'); ;Readln
Writeln ('for loop'); End.

Writeln ('for loop');


Readln;
.End

01/10
‫‪ -2‬التعليمات الشرطية ‪:‬‬

‫‪01/10‬‬
‫‪ -2‬التعليمات الشرطية ‪:‬‬

‫مالحظة‪ :‬يستخدم األمر ‪ break‬واألمر ‪ continue‬مع حلقات ‪ for‬وكافة حلقات التكرار األخري‬
‫مثل ‪ repeat, while‬كما يلي ‪:‬‬

‫‪ )1‬األمر ‪ :break‬ويستخدم للسيطرة على تدفق تكرار العبارات وهي تؤدي إلى إنهاء أو توقف التكرار‬
‫مثــال‪:‬‬
‫‪For i: = 1 to 10 do‬‬
‫‪Begin‬‬ ‫في هذه الحالة يتوقف التنفيذ عند ورود عدد سالب لعدم أمكانية‬
‫;) ‪Readln ( x‬‬ ‫أيجاد الجذر ألتربيعي للعدد السالب‪.‬‬
‫‪If x < 0 then‬‬
‫‪Break‬‬
‫‪Else‬‬
‫;) ) ‪Writeln ( sqrt ( x‬‬
‫‪; End‬‬

‫‪01/10‬‬
‫‪ -2‬التعليمات الشرطية ‪:‬‬

‫‪ )2‬األمر ‪ : continue‬ويستخدم أيضا مع حلقات التكرار وهو يعني أستمر مع حلقة تكرار جديدة أي أهمل تنفيذ‬
‫األوامر التي بعد األمر ‪ continue‬عند تحقق شرط معين حيث سيعيد المؤشر إلى األمر ‪.For‬‬

‫مثـــــال ‪:‬‬
‫‪For i: = 1 to 10 do‬‬
‫‪Begin‬‬ ‫في هذه الحالة عند ورود عدد سالب فأن األمر ‪Continue‬‬
‫;) ‪Readln ( x‬‬
‫سيمنع متابعة تنفيذ العبارات األخرى في حلقة التكرار‬
‫‪If x < 0 then‬‬
‫‪Continue‬‬ ‫والمتمثلة بأمر الطباعة في هذا المثال ويعيد المؤشر إلى األمر‬
‫‪Else‬‬ ‫‪ For‬ليبدأ بتكرار جديد‪.‬‬
‫;) ) ‪Writeln ( sqrt ( x‬‬
‫;‪End‬‬

‫‪01/10‬‬
: ‫ التعليمات الشرطية‬-2
:The Simple Case statements ‫عبارة اختيار الحالة‬. 3.8
.Begin ‫ بالرغم من عدم وجود‬End ‫ ينتهي دائما باألمر‬Case ‫ األمر‬-
‫ ) متغير وهذا المتغير من نوع األعداد الصحيحة أو الحروف فقط وال يمكن أن‬Case (‫ يأتي بعد األمر‬-
.‫نستخدم السالسل الحرفية هنا‬

Program CH3_Program7; Program CH3_Program8;


Var Var
ch: char ;
num1, num2: integer;
num1, num2: integer;
Res Begin ch: char ;
ult: real; Res ult: real;
Writeln (' enter two numbers '); begin
Readln (num1, num2); Writeln (' enter two numbers ');
Writeln (' enter one of operators " +, - , * , / " ');
Readln (num1, num2);
Readln (ch);
If (ch = ' + ') then Writeln (' enter one of operators " +, - , * ,/ " ');
Result: = num1 + num2 Readln (ch);
Else Case ch of
If (ch = ' – ') then '+ ': result: = num1 + num2;
Result: = num1 – num2
'– ': result: = num1 – num2;
Else
If (ch = ' * ') then '* ': result: = num1 * num2;
Result: = num1 * num2 '/ ': result: = num1 / num2;
Else End;
Result: = num1 / num2 ; Writeln (result);
Writeln (result); case for
End.
End.

01/10
‫‪ -2‬التعليمات الشرطية ‪:‬‬

‫جملـــــــــة ‪:IN‬‬

‫تستخدم جملة ‪ IN‬في الجمل الشرطية استخدامات مختلفة وهي ‪:‬‬


‫‪ )1‬لتحديد المدى الذي يعمل به متغير معين ولتوضيح ذلك لنرى المثال التالي ‪:‬‬
‫‪If ( degree > = 90 ) And ( degree <= 100 ) then‬‬
‫) ' ‪; Writeln ( ' Excellent‬‬
‫نالحظ أن الشرط في المثال يحدد الدرجة بين (‪ 90‬لغاية ‪ )100‬ليعطي درجة اإلمتياز من الممكن إعادة كتابة‬
‫الشرط أعاله باستخدام إيعاز تحديد ألمدي ‪ IN‬كما يلي ‪:‬‬
‫‪If degree in [ 90 .. 100 ] then‬‬
‫) ' ‪; Writeln ( ' Excellent‬‬
‫لكي نستخدم اإليعاز أو األمر لتحديد المدى نستخدم بعده قوسين مربعين وتحدد بداية ونهاية المدى علي أن‬
‫يفصل بينهما نقطتان كما هو موضح بالمثال‬

‫‪01/10‬‬
‫‪ -2‬التعليمات الشرطية ‪:‬‬

‫جملـــــــــة ‪:IN‬‬

‫‪ )2‬يمكن أن نستخدمها بطريقة أخري فبدال أن نحدد المدى كبداية ونهاية يمكن االستعاضة عنها بقيم معينة بحيث‬
‫يمكن للمتغير أن يأخذ أحد هذه القيم‬

‫‪If x in [5 , 10, 20, 35, 50 ] then‬‬


‫) ' ‪; Writeln ( ' OK‬‬

‫‪01/10‬‬
EXERCICES

- Ecrire un programme qui affiche les 10 premières lettres de l'alphabet en utilisant


un for.

10. program alphabet;


var x : char;
begin
for x:= 'a' to 'j' do write( x );
end.

01/10
EXERCICES

50 ‫ﺞﻣﺎﻧﺭﺑ‬
– 75‫ﻥﻳﻣﻗﺭﻟﺍ ﻥﻳﺑ ﺓﺩﺩﺣﻣﻟﺍ ﺔﻳﺩﺭﻔﻟﺍ ﺩﺍﺩﻋﻷﺍ ﺔﻋﺎﺑﻁﻟ‬

Program test_28;
Vari:integer;
Begin
For i:= 50 to 75 do
Begin
If (I mod 2<>0) then
Writeln(i);
End;
End.

01/10
EXERCICES

while 10 ‫ الى‬01 ‫برنامج يقوم بطباعة األرقام من‬

Program test_30;
Vari:integer;
Begin
I:=0;
While (i<10) do
Begin
I:=i+1;
Writeln(i);
End;
End.
EXERCICES

‫ ﻥﻳﻌﻣ ﺩﺩﻌﻟ ﺏﺭﺿﻟﺍ ﻝﻭﺩﺟ ﻊﺑﻁﻳ ﺞﻣﺎﻧﺭﺑ‬-

Program test_5;
Var n,I,prod:integer;
Begin
Write('n=');
Readln(n);
For:=1 to 10 do
Prod:=n*I;
Writeln(prod);
End.

01/10
EXERCICES

Ecrire un programme qui demande à l'utilisateur une valeur de n puis calcule


-
la somme des n premiers carrés (1 + 4 + 9 + 16 + 25… + n2) en affichant tous
les résultats intermédiaires.

program sommecarres;
var i,n, res : integer;
begin
writeln('Entrez la valeur de n'); readln(n);
res := 0;
for i:=1 to n do
begin
res := res + i*i;
writeln('La somme des ',i:2,' premiers
carres est: ',res:4);
end;
end.

01/10
EXERCICES

1. Ecrire un programme qui demande une valeur de n à l'utilisateur et affiche


les n premiers nombres pairs par ordre croissant, en commençant par 0.

1. program pairs; { Une des solutions possibles }


var i, n : integer;
begin
writeln('Combien de nombre pairs voulez-vous afficher ?'); readln(n);
for i:=1 to n do writeln( 2*i - 2 ); { i varie de 1 à n car on doit afficher n nombres }
end. { 2*i-2 se déduit logiquement }

04
EXERCICES

2. Ecrire un programme qui demande une valeur de n à l'utilisateur et affiche les


n premiers nombres impairs par ordre décroissant.

2. program impairs; { Une des solutions possibles }


var i, n : integer;
begin
writeln('Combien de nombre impairs voulez-vous afficher ?'); readln(n);
28
for i:=1 to n do writeln( 2*(n-i) + 1); { i varie de 1 à n car on doit afficher n nombres }
end. { 2*(n-i)+1 se déduit logiquement }

01/10
EXERCICES

- Ecrire un programme qui demande à l'utilisateur une valeur de n et qui affiche


le résultat de n!.

program factorielle; var i,n, res : integer; { Illustration d'une présentation peu lisible }
begin
writeln('Entrez un nombre n'); readln(n); res := 1; for i:=2 to n do res := res * i;
writeln('La factorielle de ce nombre est : ', res:5);
end.
{ Attention, si n est grand, il faut définir res en real car la limite de integer est 32767. }

01/10
EXERCICES

‫ برنامج يقوم بطباعة‬-‫ﻥﻳﻌﻣ ﻝﺧﺩﻣ ﺩﺩﻌﻟ ﺏﺭﺿﻟﺍ ﻝﻭﺩﺟ‬

Program test_5;
Varn,I,prod:integer;
Begin
Write('n=');
Readln(n);
For:=1 to 10 do
Prod:=n*I;
Writeln(prod);
End.
EXERCICES
EXERCICES
EXERCICES

You might also like