صحيفة الاتحاد

نيوتك

نظام العد العشري Algorithm

إن جهاز الكمبيوتر مجرد آلة لا تستطيع التفكير أو التصرف، وإنما يقوم فقط بتنفيذ الأوامر التي يكتبها له الإنسان في صورة برنامج، لذلك يجب أن تكون هذه الأوامر مكتوبة بصورة واضحة خالية من الغموض والإبهام، وأن تكون مكتوبة بنفس الترتيب المراد تنفيذها به، وذلك حتى يتم تنفيذها بصورة سليمة· فمثلا إذا نظرنا للتعبير (3+2)(5+6) فإننا نفهم أن العملية الحسابية المراد تنفيذها هي ضرب محتويات القوس الأول في محتويات القوس الثاني، ولكن هذا الأمر يفهمه الإنسان فقط، أما جهاز الكمبيوتر فلا يستطيع فهم ذلك، لأننا لم نكتب له صراحة علامة الضرب (*) · ولكي يستطيع الكمبيوتر فهم الأمر و تنفيذه فلا بد من كتابته بصورة واضحة خالية من الإبهام، أي أن التعبير السابق يجب أن تتم كتابته بالصورة (3+2)*(5+6) حتى يفهمه الكمبيوتر· والهدف من كتابة Algorithm هو كتابة خطوات تفصيلية لحل المشكلة التي يعالجها البرنامج، وفيه تتم كتابة الخطوات خطوة بخطوة، وترتيب تنفيذها وبصورة واضحة خالية من الإبهام·
وكلمة Algorithm هي تحريف لكلمة Khwarizmi's method نسبة إلى الخوارزمي حيث أن العالم الرياضي ''أبو جعفر محمد بن موسى الخوارزمي'' كان أول من اخترع هذه الطريقة·
و يمر إعداد الـ Algorithm بعدة خطوات هي:
1- تحديد المشكلة المطلوب كتابة برنامج لحلها، وتحديد جميع البيانات الداخلة إلى البرنامج كمدخلات، والتي تتم عليها العمليات الحسابية ، وكذلك تحديد جميع البيانات الناتجة كمخرجات من البرنامج·
2- كتابة Algorithm لحل المشكلة التي تم تحديدها، ونحتاج في هذه الخطوة إلي تحديد اسم نقوم باختياره لكل بيان من البيانات الموجودة في المدخلات والمخرجات، وذلك حتى يمكن الرجوع لهذا البيان بهذا الاسم في البرنامج· ومن الأفضل أن يكون الاسم المستخدم ذا معنى مرتبط بالبيان المستخدم له، وهذا يجعل عملية قراءة البرنامج وفهمه أسهل· فمثلا إذا كنا نكتب برنامجا يقوم بحساب السن، فإن تاريخ الميلاد يكون هو المدخلات للبرنامج، وبمكن تسميته birth_date ويكون السن هو المخرجات من البرنامج و يمكن تسميته ageويطلق على الأسماء التي يتم إعطاؤها للمدخلات والمخرجات مصطلح Variables (متغيرات)، وتسمى بمتغيرات لأن قيمتها ليست ثابتة· فمثلا في برنامج حساب السن لا يتم تحديد سنة الميلاد كقيمة ثابتة (1970 مثلا) و إنما يتم عمل البرنامج على أنها قيمة متغيرة (birth_date) ويتم إعطاء قيمتها كمدخل للبرنامج عند تنفيذه، وذلك لأن البرنامج لا يُستخدم لحساب عمر شخص محدد وإنما يمكن إعطاؤه أي تاريخ ميلاد لأي شخص فيقوم بحساب عمره لهذا تُستخدم فكرة المتغيرات· ويمكن التعبير عن الـ Algorithm بإحدى طريقتين هما:
1-Pesudocode : و هي مجموعة من الخطوات المكتوبة باللغة الإنجليزية
2- Flowchart (خريطة الانسياب) : عبارة عن رسم يستخدم مجموعة من الرموز المحددة للتعبير عن خطوات البرنامج·
3-اختبار الـ Algorithm الذي تم تصميمه عن طريق وضع قيمة تجريبية للمدخلات وتنفيذ خطوات الـ Algorithm عليها للحصول على المخرجات، لمعرفة ما إذا كانت المخرجات من البرنامج تمثل المخرجات الصحيحة المطلوبة أم أن هناك خطأ في كتابة الـ Algorithm تسبب في ظهور ناتج خطأ كمخرج من البرنامج· على سبيل المثال لاختبار الـ Algorithm الخاص ببرنامج حساب السن نقوم بتنفيذ خطوات هذا الـ Algorithm باستخدام تاريخ ميلاد محدد ثم نقارن قيمة السن الناتجة من تنفيذ هذه الخطوات بالقيمة الصحيحة للسن، فإن تطابقا تكون خطوات الـ Algorithm صحيحة و إن اختلفا فإن هذا يعني وجود خطأ ما في خطوات الـ Algorithm.
مثال تفصيلي يوضح جميع خطوات كتابة Algorithm
المطلوب : مطلوب حساب المتوسط الحسابي لثلاثة أرقام
الحل :
1- المشكلة المطلوب حلها هي حساب المتوسط الحسابي لثلاثة أرقام و بالتالي فإن المدخلات للبرنامج هي قيم ثلاثة أرقام، والمخرجات منه هي المتوسط الحسابي لهم·
2- نقوم بتحديد أسماء متغيرات للأرقام الثلاثة و لتكن num,1 num,2 num3 وكذلك للمتوسط الحسابي لهم وليكن average، وقيمة المتوسط الحسابي للأرقام الثلاثة هي ناتج قسمة مجموعهم على عددهم أي

وبالتالي نحتاج لوجود متغير وسيط للتعبير عن مجموع الثلاثة أرقام و ليكن اسمه sum وتكون خطوات الـ Algorithm الخاص بحل هذه المشكلة كالتالي :
Read num,1 num,2 num3
sum = num1 + num2 + num3
average = sum / 3
print average
والشرح التالي يوضح معنى تلك الخطوات :
في السطر الأول نطلب من المستخدم إدخال قيم للأرقام الثلاثة num,1 num,2 num.3
في السطر الثاني نقوم بجمع قيم الأرقام الثلاثة ونضع قيمة الناتج في متغير اسمه sum.
في السطر الثالث نقوم بحساب قيمة المتوسط الحسابي لهذه الأرقام ونضع قيمة الناتج في متغير اسمه average.
في السطر الرابع نقوم بإظهار قيمة المتوسط الحسابي للمستخدم على الشاشة·
وتكون خريطة الانسياب (Flowchart) لهذا البرنامج كما في الشكل:
3-لاختبار الـ Algorithm نقوم بوضع قيم تجريبية للمتغيرات num,1 num,2 num3 و لتكن 2 و 3 و 4 ثم نقوم بتطبيق خطوات الـ Algorithm باستخدام هذه القيم فنجد أن sum = 2 + 3 + 4 أي أن sum = 9 . ونجد أن average = 9/3 أي أن average = 3 . وبالتالي نجد أن المخرج من البرنامج يمثل الحل الصحيح لهذه العملية الحسابية، وهذا يعني أنه قد تم كتابة خطوات الـ Algorithm بصورة واضحة وصحيحة·
الأنظمة الرقمية (Number System)

في كثير من الأحيان نحتاج لاستخدام أرقام داخل البرنامج، وفي حقيقة الأمر، فإن الأنظمة الرقمية متعددة وليس كما قد يعتقد البعض بأن الأرقام لها نظام واحد فقط للتعبير عنها، وهو النظام الشائع في التعبير عن الأرقام والذي يستخدم الأرقام من صفر إلى 9 وإنما يمثل هذا النظام أحد الأنظمة الرقمية، والتي تضم عدة أنظمة أخرى هي :
1- النظام العشري (Decimal System )
ويسمى هذا النظام أيضا بالنظام للأساس عشرة حيث انه يستخدم عشرة أرقام وهى الأرقام من صفر إلى تسعة و يضرب في مضاعفات العشرة لحساب قيمة الرقم·
مثال الرقم 341,15 هو مثال للتعبير عن الأرقام باستخدام النظام العشري ويتم حساب قيمته كالتالي :
الجزء الصحيح = الرقم الأول * 10 صفر + الرقم الثاني * 101 + الرقم الثالث *102
= 1*1+4 * 10+3* 100
= 1 (آحاد) + 40 (عشرات) + 300 (مئات) = 341
الكسر= الرقم الأول بعد العلامة العشرية *10-1 + الرقم الثاني *10-2
= 1 * ،1 + 5 * ،01 = ،15
الرقم الكلي = الجزء الصحيح + الكسر = 341 + ،15 = 341,15
2- النظام الثنائي (Binary System)
ويسمى هذا النظام أيضا بالنظام للأساس اثنين حيث انه يستخدم رقمين وهما صفر و واحد، و يضرب في مضاعفات الاثنين لحساب قيمة الرقم·
مثال الرقم 1001101,110 هو مثال للتعبير عن الأرقام باستخدام النظام الثنائي ويتم حساب قيمته كالتالي :
الجزء الصحيح (1001101) = الرقم الأول * 2 صفر + الرقم الثاني * 21 + الرقم الثالث * 22 + الرقم الرابع * 23 + الرقم الخامس * 24 + الرقم السادس * 25 + الرقم السابع * 26 = 1* 1 + 0 * 2 + 1 * 4 + 1 * 8 + 0 * 16 + 0 * 32 + 1 * 64 = 77
الكسر(110) = الرقم الأول بعد العلامة العشرية * 2-1 + الرقم الثاني * 2-2 + الرقم الثالث * 2-3 = 1 *،5 + 1 *،25 + 0 * ،125 = ،75
الرقم الكلي = الجزء الصحيح + الكسر = 77 + ،75 = 75,77
3- النظام الثماني (Octal System)
ويسمى هذا النظام أيضا بالنظام للأساس ثمانية، حيث انه يستخدم ثمانية أرقام، وهي الأرقام من صفر إلى سبعة، ويضرب في مضاعفات الثمانية لحساب قيمة الرقم·
مثال الرقم 275,5 هو مثال للتعبير عن الأرقام باستخدام النظام الثماني ويتم حساب قيمته كالتالي :
الجزء الصحيح = الرقم الأول * 8 صفر + الرقم الثاني * 81 + الرقم الثالث * 82
= 5* 1 + 7 * 8 + 2 * 64 = 189
الكسر = الرقم الأول بعد العلامة العشرية * 8-1
= 5 * ،125 = ،625
الرقم الكلي = الجزء الصحيح + الكسر = 189 + ،625 =189,625
4- النظام للأساس 16 (Hexadecimal)
و يستخدم 16 عنصرا لتكوين الرقم، وهم الأرقام من صفر إلى تسعة والحروف من A إلي F حيث تمثل الحروف من A إلى F الأرقام من 10 إلى 15 على التوالي· و يضرب في مضاعفات 16 لحساب قيمة الرقم·
مثال الرقم A7B8 هو مثال للتعبير عن الأرقام باستخدام هذا النظام ويتم حساب قيمته كالتالي :
القيمة = الرقم الأول * 16 صفر + الرقم الثاني * 161
+ الرقم الثالث * 162 + الرقم الرابع * 163
= 8*1 +6904 * A + 652 * 7 + B*61
= 8*1+11*16+7*256+10*4096
= 42936

إعداد- م· عبير السيد
ab_elsayed1002@yahoo.com