الكل منا يسمع عن لغات البرمجة
و الكل يعرف أنها مجموعة من الأوامر توصلنا لغاية ما
و لكن قلة فقط تعرف أن كل هذه اللغات أصلها الألغوريتم
حيث أن الألغوريتم هو أيضا مجموعة من الأوامر مثل كل لغات البرمجة الأخرى
و الفرق بينها و بينه أنه يكتب على ورق و ليس على الحاسوب
فأي مبرمج يريد صنع برنامج يكتب أولا لوغارتمه ثم يستبدل أوامر اللوغ بأوامر أي لغة برمجة يريد ليضعها على الحاسوب
و قبل الدخول في التعقيدات يجب علينا معرفة مراحل عمل برنامج ما
في عالم المعلوميات يوجد ثلاث أطراف للحوار
-المستعمل: هو الشخص الذي يواجه مشكلا و يطلب المساعدة من الحاسوب
حيث أن المستعمل يرى في حاسوب مزود بالبرنامج المناسب أداة لتسيير أعماله فهدفه اذن هو تعلم الإستخدام الأفضل لهذه الأداة
-المبرمج و هو الشخص القادر على توجيه الحاسوب في حل المشاكل التي يضعها المستعمل
فالحاسوب بالنسبة للمبرمج هو منفد للأوامر يجب توجيهه
-ثم الحاسوب الذي لا يعرف سوى تنفيذ الأوامر
فيكفي أن يكون البرنامج سليما من حيث الكتابة ليقوم بكل ما هو مطلوب منه
تعريفالألغوريتم
لماذا نتعلم اللوغارتم لتعلم البرمجة؟
أظننا أجبنا على هذا السؤال و لكن لا ضير في الإعادة
اللوغارتم يعبرعن سلسلة من الأوامر تحل مشكلة ما و هو مستقل عن خصوصيات برنامج ما
إتقان اللوغارتم هو إتقان الصيغة أو البناء المنطقي لبرنامج ما و المشكل الوحيد المطروح هو اختلاف الأوامر بينه و بين لغات البرمجة المختلفة
و الآن ندخل صلب الموضوع
و بالنسبة للأوامر سأعطيها باللغة الفرنسية فليعذرني كل من لا يتكلمها و لكن طريقة وضعها هي نفسها بالإنجليزية أيضا فتكفي الترجمة
للوغارتم ست أركان أساسية سوف نتحدث عن الخمسة الأساسية
أولا المتغيرات
المتغير عبارة عن علبة يعرفها البرنامج بواسطة علامة توضع عليها فلكي يدخل البرنامج إلى محتوى العلبة يكفي الإشارة إليها بعلامتها
الإعلان عن المتغيرات
أول شيئ يجب فعله قبل استعمال متغير ما هو إنشاء العلبة و أعطاؤها علامة
عندما نريد الإعلان عن متغير ما لا يكفي إنشاء العلبة و إنما يجب تحديد نوعية المحتوى
طريقة الكتابة
متغير = var
و يتم التعبيرعن نوعية المحتوى كالتالي
كلمات = Chaine de caracteres
أعداد صحيحة طبيعية = entier
أعداد حقيقية = reel
صحيح أو خطأ = booleen
و هناك أخرى و لكن هذه هي الأساسية بالنسبة لمبتدئ
مثال
Var a : Chaine de caractere
إعطاء قيمة للمتغير
يتم الإعلان عن قيمة متغير ما باستعمال السهم المعكوس
مثال
لدينا اللوغارتم التالي
Var a,b,c : entiers
Début
a <-- 3
b <-- 10
c <-- a+b
b <-- a-b
a <-- c
Fin
بعد تنفيد الأوامر المطلوب هو إيجاد قيم a و b و c
نبدأ ب c:
c <-- a+b
c <-- 10+3
c <-- 13
ثم b
b <-- a-b
b <-- 3-10
b <-- -7
ثم a
a <-- c
a <-- 13
فنجد أن القيم هي
a : 13, b : -7, c : 13
ثانيا أوامر القراءة و الكتابة
يستعمل أمر الكتابة (Ecrire) لكتابة رسالة تدل المستعمل على ما يحدث
و يستعمل أمر القراءة (Lire) لجعل الحاسوب يتوقف في مرحلة ما إلى حين إدخال المستعمل لقيمة يقرؤها الحاسوب
مثال
طلب منا كتابة لوغارتم لبرنامج ما إن ندخل له عددا ما حتى يعطينا مربعه
Var a,b : entiers
Début
("Ecrire (" Donner un nombre
(Lire (a
B <-- a*a
(Ecrire (" Le carré est ",b
ثالثا صيغ الشرط
تتلخص صيغ الشرط في إعطاء شرط إجباري لتنفيذ عملية ما
طريقة الكتابة
Instruction 1
Sinon
Instruction 2
Fin Si
مثال
كتابة لوغارتم برنامج ندخل له عددين فيعطينا أكبرهما
Var a,b,Max : entiers
Début
("Ecrire (" Entrez le premier nombre
(Lire (a
("Ecrire (" Entrez le deuxième nombre
(Lire (b
Si a>b Alors
Max <-- a
Sinon
Max <-- b
Fin Si
(Ecrire (" Le Maximum est : ",Max
Fin
مثال ثاني
نفس المثال الأول و لكن هذه المرة بثلاث أعداد
Var a,b,c,Max : entiers
Début
("Ecrire (" Entrez le premier nombre
(Lire (a
("Ecrire (" Entrez le deuxième nombre
(Lire (b
("Ecrire (" Entrez le croisième nombre
(Lire (c
Si a>b Alors
Max <-- a
Sinon
Max <-- b
Fin Si
Si Max<c Alors
Max <-- c
Fin Si
(Ecrire (" Le Max est : ",Max
Fin
مثال ثالث
هذه المرة يجب أن يعطينا البرنامج أكبر عدد و أصغر عدد
Var a,b,c,Max,Min : entiers
Début
("Ecrire (" Entrez le premier nombre
(Lire (a
("Ecrire (" Entrez le deuxième nombre
(Lire (b
("Ecrire (" Entrez le croisième nombre
(Lire (c
Si a>b Alors
Max <-- a
Min <-- b
Sinon
Max <-- b
Min <-- a
Fin Si
Si Max<c Alors
Max <-- c
Fin Si
Si Min>c Alors
Min <-- c
Fin Si
(Ecrire (" Le Max est : ",Max
(Ecrire (" Le Min est : ",Min
Fin
مثال رابع
نريد في هذا المثال كتابة لوغارتم برنامج يحسب معدل ثلميذ مع إعطاء الميزة
نعطي مثلا تلاث مواد
العربية معاملها 3
الرياضيات معاملها 4
اللغة الأجنبية و معاملها 2
ALGO Moyaine Générale
Var a,b,c,MG : Réels
Debut
("Ecrire (" Entrez la note du Math
(Lire (a
("Ecrire (" Entrez la note de la langue arabe
(Lire (b
("Ecrire (" Entrez la note de la langue étrangère
(Lire (c
(MG <-- [(a*4)+(b*3)+(c*2)]/(4+3+2
(Ecrire (" La moyaine générale est : ",MG
Si MG<10 Alors
("Ecrire (" Eliminé
Sinon
Si MG<12 Alors
("Ecrire (" Passable
Sinon
Si MG<14 Alors
("Ecrire (" Assez Bien
Sinon
Si Mg<16 Alors
("Ecrire (" Bien
Sinon
("Ecrire (" Très Bien
Fin Si
Fin Si
Fin Si
Fin Si
Fin
رابعا الروابط المنطقية
يضع علم المعلوميات تحت تصرفنا أربع عوامل أو روابط منطقية و هي ET و OU و NOT و XOR
و سنهمل NOT و XOR لأنها ذات مستوى مرتفع قليلا
طريقة عمل هذه الروابط هي كالتالي
إذا كان A=Vrai فإن NOT A=Faux
و العكس بالعكس
إذا كان A=Vrai, B=Faux فإن A ET B=Faux
إذا كان A=Faux, B=Vrai فإن A ET B=Faux
إذا كان A=Vrai, B=Vrai فإن A ET B=Vrai
إذا كان A=Faux, B=Faux فإن A ET B=Faux
إذا كان A=Vrai, B=Faux فإن A OU B=Vrai
إذا كان A=Faux, B=Vrai فإن A OU B=Vrai
إذا كان A=Vrai, B=Vrai فإن A OU B=Vrai
إذا كان A=Faux, B=Faux فإن A OU B=Faux
مثال
لدينا اللوغارتم التالي
ALGO Opérations Logiques
Var a,b,c,d,e : booleen
Var x : entier
Début
("Ecrire (" Introduire un nombre
(Lire (x
A <-- x<2
B <-- x>12
C <-- x<6
D <-- (a ET b) OU c
(E <-- a ET (b OU c
(Ecrire (" La valeur de d est : ", d
(Ecrire (" La valeur de e est : ",e
Fin
نفترض أن x=14
علينا معرفة قيمة dو e هل هي صحيحة أم خاطئة
هذا ما سنحصل عليه
d <-- F
e <-- F
خامسا الحلقات
عندما تكون لدينا عملية تتكرر سيكون من المتعب إعادة كتابتها و هنا نلجأ إلى الحلقات
هناك ثلاث طرق أساسية لإنشاء الحلقات
الحلقة TANTQUE
طريقة الكتابة
Action
Fin TANTQUE
فمادام الشرط قائما سيستمر البرنامج في تكرار العملية إلى أن ينعدم الشرط
مثال
كتابة لوغ يسمح لنا بمعرفة اسم الشهر من رقمه
Var m : entier
Début
("Ecrire (" Donner le N° du mois
(Lire (m
TANTQUE m<1 OU m>12 Faire
("Ecrire (" Erreur, Donner un nombre entre 1 et 12
(Lire (m
Fin TANTQUE
.
.
.
.
Fin
الحلقة Répeter
لها نفس الدور و لكن باتجاه معاكس
طريقة الكتابة
Action
Jusqu'à
مثال
نرجع لمثال الأشهر
Répeter
("Ecrire (" Donner le N° du mois
(Lire (m
Jusqu'à m>1 ET 12>m
الحلقة POUR
هي الأكثر سهولة و الأكثر تعقيدا في الوقت نفسه
طريقة الكتابة
Action
Fin POUR
مثال
كتابة لوغ لحساب المجموع
S=1+2+3+4+......+20
Var i,s : entiers
Début
S <-- 0
POUR i allant de 1 à 20 Faire
S <-- s+i
Fin POUR
(Ecrire ("
Fin
بهذا أكون قد ختمت درسي الذي أتمنى أن يستفيد منه أكبر عدد من الأعضاء
و بالنسبة للفقرة السادسة فهي الجداول و هي فقرة لم أفهمها كليا بعد على أمل أن يشرحها أحد الأعضاء
ملاحظة هامة: يجب عدم الخلط بين Algorithme الذي هو موضوع درسنا و بين Logarithme الذي هو درس في الرياضيات, مع أن ترجمة Algorithme هي لوغارتم