شرح الالغوريتم

 



الكل منا يسمع عن لغات البرمجة

و الكل يعرف أنها مجموعة من الأوامر توصلنا لغاية ما

و لكن قلة فقط تعرف أن كل هذه اللغات أصلها الألغوريتم

حيث أن الألغوريتم هو أيضا مجموعة من الأوامر مثل كل لغات البرمجة الأخرى

و الفرق بينها و بينه أنه يكتب على ورق و ليس على الحاسوب

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


و قبل الدخول في التعقيدات يجب علينا معرفة مراحل عمل برنامج ما

في عالم المعلوميات يوجد ثلاث أطراف للحوار

-المستعمل: هو الشخص الذي يواجه مشكلا و يطلب المساعدة من الحاسوب

حيث أن المستعمل يرى في حاسوب مزود بالبرنامج المناسب أداة لتسيير أعماله فهدفه اذن هو تعلم الإستخدام الأفضل لهذه الأداة

-المبرمج و هو الشخص القادر على توجيه الحاسوب في حل المشاكل التي يضعها المستعمل

فالحاسوب بالنسبة للمبرمج هو منفد للأوامر يجب توجيهه

-ثم الحاسوب الذي لا يعرف سوى تنفيذ الأوامر

فيكفي أن يكون البرنامج سليما من حيث الكتابة ليقوم بكل ما هو مطلوب منه

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

 

اللوغ هي متتالية منتهية من التعليمات تبين الطريقة التي بها يتم تنفيذ مجموعة من العمليات للحصول على حل لمشكل ما

لماذا نتعلم اللوغارتم لتعلم البرمجة؟

أظننا أجبنا على هذا السؤال و لكن لا ضير في الإعادة

اللوغارتم يعبرعن سلسلة من الأوامر تحل مشكلة ما و هو مستقل عن خصوصيات برنامج ما

إتقان اللوغارتم هو إتقان الصيغة أو البناء المنطقي لبرنامج ما و المشكل الوحيد المطروح هو اختلاف الأوامر بينه و بين لغات البرمجة المختلفة

و الآن ندخل صلب الموضوع

و بالنسبة للأوامر سأعطيها باللغة الفرنسية فليعذرني كل من لا يتكلمها و لكن طريقة وضعها هي نفسها بالإنجليزية أيضا فتكفي الترجمة

للوغارتم ست أركان أساسية سوف نتحدث عن الخمسة الأساسية

أولا المتغيرات

المتغير عبارة عن علبة يعرفها البرنامج بواسطة علامة توضع عليها فلكي يدخل البرنامج إلى محتوى العلبة يكفي الإشارة إليها بعلامتها

الإعلان عن المتغيرات

أول شيئ يجب فعله قبل استعمال متغير ما هو إنشاء العلبة و أعطاؤها علامة

عندما نريد الإعلان عن متغير ما لا يكفي إنشاء العلبة و إنما يجب تحديد نوعية المحتوى

طريقة الكتابة

متغير = var

و يتم التعبيرعن نوعية المحتوى كالتالي

كلمات = Chaine de caracteres

أعداد صحيحة طبيعية = entier

أعداد حقيقية = reel

صحيح أو خطأ = booleen

و هناك أخرى و لكن هذه هي الأساسية بالنسبة لمبتدئ

مثال

Var a : entier

Var a : Chaine de caractere


إعطاء قيمة للمتغير

يتم الإعلان عن قيمة متغير ما باستعمال السهم المعكوس

مثال

لدينا اللوغارتم التالي

ALGO Valeurs

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) لجعل الحاسوب يتوقف في مرحلة ما إلى حين إدخال المستعمل لقيمة يقرؤها الحاسوب



مثال

طلب منا كتابة لوغارتم لبرنامج ما إن ندخل له عددا ما حتى يعطينا مربعه

ALGO Carré

Var a,b : entiers

Début

("Ecrire (" Donner un nombre

(Lire (a

B <-- a*a

(Ecrire (" Le carré est ",b


ثالثا صيغ الشرط

تتلخص صيغ الشرط في إعطاء شرط إجباري لتنفيذ عملية ما

طريقة الكتابة

Si condition = vrai Alors

Instruction 1

Sinon

Instruction 2

Fin Si


مثال

كتابة لوغارتم برنامج ندخل له عددين فيعطينا أكبرهما

ALGO Maximum

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


مثال ثاني

نفس المثال الأول و لكن هذه المرة بثلاث أعداد

ALGO Maximum

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


مثال ثالث

هذه المرة يجب أن يعطينا البرنامج أكبر عدد و أصغر عدد

ALGO Max & Min

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

طريقة الكتابة

TANTQUE condition Faire

Action

Fin TANTQUE



فمادام الشرط قائما سيستمر البرنامج في تكرار العملية إلى أن ينعدم الشرط

مثال

كتابة لوغ يسمح لنا بمعرفة اسم الشهر من رقمه

ALGO Mois

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

لها نفس الدور و لكن باتجاه معاكس


طريقة الكتابة

Répeter

Action

Jusqu'à




مثال

نرجع لمثال الأشهر

Répeter

("Ecrire (" Donner le N° du mois

(Lire (m

Jusqu'à m>1 ET 12>m


الحلقة POUR

هي الأكثر سهولة و الأكثر تعقيدا في الوقت نفسه


طريقة الكتابة

POUR i allant de Vi à Vf Faire

Action

Fin POUR


 


مثال


كتابة لوغ لحساب المجموع

S=1+2+3+4+......+20

ALGO Somme

Var i,s : entiers

Début

S <-- 0

POUR i allant de 1 à 20 Faire

S <-- s+i

Fin POUR

(Ecrire (" La Somme est : ",s

Fin



بهذا أكون قد ختمت درسي الذي أتمنى أن يستفيد منه أكبر عدد من الأعضاء

و بالنسبة للفقرة السادسة فهي الجداول و هي فقرة لم أفهمها كليا بعد على أمل أن يشرحها أحد الأعضاء

ملاحظة هامة: يجب عدم الخلط بين Algorithme الذي هو موضوع درسنا و بين Logarithme الذي هو درس في الرياضيات, مع أن ترجمة Algorithme هي لوغارتم