تعريف النوع
يمكن في لغة ج تعريف أنواع بيانات جديدة بواسطة أمر تعريف النوع الذي له الصيغة التالية: النوع <اسم> : <تعريف نوع> مثلاً يعرف الأمر الأول في المثال التالي نوع بيانات جديد اسمه عدد_صحيح، يكافئ النوع "صحيح" المعرف أصلاً في لغة ج. أما الأمر الثاني فيعرف المتغير ص بأنه متغير من نوع عدد_صحيح. |
النوع عدد_صحيح : صحيح |
ويعد هذا أبسط استخدام لأمر تعريف النوع، ويفيد ببساطة في تعريف أسماء جديدة للأنواع المعرفة سابقاً. أما الاستخدام الأكثر فائدة لأمر تعريف النوع فيتمثل في تعريف أنواع البيانات المركبة، مثل الجداول والمصفوفات والوحدات، وفي تعريف المؤشرات أيضا. |
الجداول
الجدول (أو الصفيفة) هو عبارة عن سلسلة متصلة من المتغيرات (أو عناصر) ذات النوع الواحد، كما هو مبين في الشكل التالي. |
|
ويمكن لعناصر الجدول أن تكون من أنواع البيانات البسيطة، مثل الأعداد الصحيحة أو الحقيقية، أو المركبة، مثل الجداول والبنيات. ويعرف الجدول كما يلي: صفيفة [<عبارة حسابية ثابتة>] [[<عبارة حسابية ثابتة>]] من <تعريف نوع> حيث تحدد العبارة الحسابية عدد عناصر الجدول، ويحدد اسم النوع المذكور بعد كلمة "من" نوع عناصر البيانات في هذا الجدول. مثلاً، يعرف الأمر التالي نوعاً جديداً اسمه شعاع وهو عبارة عن جدول به 3 عناصر، كل منه عدد حقيقي. |
النوع شعاع : صفيفة [3] من حقيقي |
المصفوفات (الجداول ذو بعدين)
ويعرف الأمر التالي جدول ذو بعدين، متكون من 10 × 10 = 100 عنصر من النوع حقيقي. |
النوع مصفوفة : صفيفة [10][10] من حقيقي |
المصفوفات (الجداول ذو ثلاث أبعاد)
أما الأمر التالي فيعرف نوعاً جديداً اسمه "مصفوفة_ثلاثية_البعد" وهو عبارة عن جدول بثلاثة أبعاد متكون من 10×5×20=1000 عنصر يمثل كل واحد منهم عددا حقيقيا. |
النوع مصفوفة_ثلاثية_البعد : صفيفة [10][5][20] من حقيقي |
بعد ذلك يمكن تعريف متغيرات من هذه الأنواع الجديدة. مثلاً، تعرف الجمل التالية ثلاثة متغيرات ش، ص، م لها النوع شعاع، مصفوفة، ومصفوفة_ثلاثية_البعد على التوالي. |
المتحول ش : شعاع |
ويمكن الوصول إلى أي عنصر من عناصر الجدول من خلال رقم خانته. ويكون رقم خانة أول عنصر في الجدول هو 1 ورقم خانة ثاني عنصر هو 2 وهكذا… مثلاً، لإسناد القيمة 6 إلى العنصر الثاني في الشعاع ش، نكتب ما يلي: |
ش[2] = 6 |
ولإسناد القيمة 5.5 مثلاً للعنصر الثالث في البعد الأول، والتاسع في البعد الثاني، للمتغير ص، نكتب: |
ص[3][9] = 5.5 |
وبطريقة مشابهة تسند الأمر التالي للمتغير الحقيقي ح، قيمة العنصر الذي ترتيبه 2 ، 5 ، 12 في المصفوفة ثلاثية البعد م. |
ح = م[2][5][12] |
مثال
النوع جدول_قيم : صفيفة [10] من صحيح |
يعرف السطر الأول في هذا البرنامج نوعاً اسمه جدول_قيم وهو جدول أعداد صحيحة يتسع لعشرة أعداد صحيحة. ثم يعرف السطر الثاني المتغير س بأنه من النوع جدول_قيم. أخيراً توضع القيمة 123 في العنصر الثالث من الجدول س. |
تمارين تطبيقية 1: الجداول
التمرين 9.1 أنجز برنامجا يـمكن من قراءة البعد ن لجدول ج من النوع صحيح (البعد الأقصى هو 50)، أملئ الجدول من خلال لوحة المفاتيح ثم أظهره على الشاشة. قم كذلك بحساب وإظهار حاصل الجمع لعناصر الجدول. |
التمرين 9.2 أنجز برنامجا يـمكن من قراءة البعد ن لجدول ج من النوع صحيح (البعد الأقصى هو 50)، أملئ الجدول من خلال لوحة المفاتيح ثم أظهره على الشاشة. |
التمرين 9.3 أنجز برنامجا يـمكن من قراءة البعد ن لجدول ج من النوع صحيح (البعد الأقصى هو 50)، أملئ الجدول من خلال لوحة المفاتيح ثم أظهره على الشاشة. اقلب بعد ذلك بقلب عناصر الجدول بدون استعمال جدول آخر للمساعدة. أظهر الجدول الناتج. |
التمرين 9.4 أنجز برنامجا يـمكن من قراءة البعد ن لجدول ج من النوع صحيح (البعد الأقصى هو 50)، أملئ الجدول من خلال لوحة المفاتيح ثم أظهره على الشاشة. قم بتحديد القيم الموجبة وضعها في جدول ثان سميه جموجب. قم بتحديد القيم السالبة وضعها في جدول ثالث سميه جسالب. أظهر الجدولين على الشاشة. |
تمارين تطبيقية 2: المصفوفات
التمرين 9.5 أنجز برنامجا يـمكن من قراءة البعدين ل و س لجدول ج من النوع صحيح (البعد الأقصى للأعمدة والسطور هو 50)، أملئ الجدول من خلال لوحة المفاتيح ثم أظهره على الشاشة، وكذلك مجموع عناصره. |
التمرين 9.6 أنجز برنامجا يـمكن من قراءة البعدين ل و س لجدول ج من النوع صحيح (البعد الأقصى للأعمدة والسطور هو 50)، أملئ الجدول من خلال لوحة المفاتيح ثم أظهره على الشاشة، وكذلك مجموع عناصر كل سطر من سطوره وكل عمود من أعمدته باستعمال متغير واحد فقط للمساعدة لأجل الجمع. |
التمرين 9.7 أنجز برنامجا يـمكن من تحويل جدول نسميه ج ذي البعدين ف و ق (البعد الأقصى للأعمدة والسطور هو 10)، في جدول خ ذي البعد ف*ق. مثال : \ / |
تمارين تطبيقية 3: الجداول
التمرين 9.8 : الجداء السلمي لمتجهتين أكتب برنامجا يمكن من حساب الجداء السلمي لمتجهتين ب و ت (لهما نفس الدرجة). مثال : \ / \ / |
||||||||||
التمرين 9.10 أحسب قيمة الحدودية ح ذات الدرجة ن انطلاقا من العدد الحقيقي ذي النوع حقيقي : ح(س) = ن×أن×س + (ن-1)×أن-1×س + ... + أ1×س+ أ0 P(X) = AnXn + An-1Xn-1 + ... + A1X + A0 (مكتوبة بالحروف اللاتينية) قيم ن والمعاملات أن ،....،أ0 مطلوب إدخالها من طرف المستعمل وتخزينها في جدول يسمى أ.
|
||||||||||
التمرين 9.10 : القيمة القصوية و الدنوية لجدول أكتب شفرة تمكن من تحديد أكبر و أصغر قيمة في جدول ج للأعداد الصحيحة. أظهر على الشاشة القيمة والموقع للقيمة القصوية والدنوية. إذا كان الجدول يحتوي على كثير من مثيلات القيمة القصوية أو الدنوية ، يكفي اختيار أول قيمة موجودة. |
||||||||||
التمرين 9.11 : إضافة قيمة إلى جدول مرتب جدول ذي البعد ن+1 يحتوي على ن من الأعداد الصحيحة مرتبة تزايديا، القيمة (ن+1) غير معرفة. أضف قيمة جديدة ق (مطلوب إدخالها من طرف المستعمل) إلى الجدول ج ليكتمل بـ ن+1 قيمة مرتبة. |
||||||||||
التمرين 9.12: البحث عن قيمة داخل جدول أنجز برنامجا يـمكن من البحت عن قيمة ق ( مطلوب إدخالها من طرف المستعمل) داخل جدول ج للأعداد الصحيحة. أظهر على الشاشة موقع القيمة في الجدول إذا كانت موجودة فيه، وإلا فيجب إظهار جملة مناسبة لهذه الحالة. يمكنك استعمال طريقتين :
|
||||||||||
التمرين 9.13 : اتحاد جدولين مرتبين نعتبر جدولين ج و خ (ذي البعدين ن و م على التوالي)، مرتبين تزايديا. وحِّد عناصر الجدولين في جدول ثالث ح لكن بالشكل التزايدي. |
||||||||||
التمرين 9.14 الترتيب باستعمال القيمة القصوية. صنف عناصر أو قيم الجدول ج تناقصيا. أظهر الجدول ج بعد ترتيبه على الشاشة. طريقة: استعمل الرمز د للمرور من أول الجدول إلى آخره. ولكل عنصر ج [د]من الجدول، حدد الموقع قصوي لأول عدد تصادفه يكون أكبر من ج [د] وبدل في هذه الحالة ج [د]و ج[قصوي] . مثال :
|
||||||||||
التمرين 9.15 الترتيب بطريقة الفقاعات صنف عناصر أو قيم الجدول أ تزايديا. أظهر الجدول أ بعد ترتيبه على الشاشة. طريقة: في كل مرة نبدأ من بداية الجدول، ونكرر هذه العمليات : باستعمال التبديل المتتالي، نضع أكبر قيمة وجدناها في نهاية الجدول (كما يحدث لفقاعات البرك المائية). مثال :
أكمل الخوارزم باعتبار أن : * قد لا توجد أية تبديلة ، في هذه الحالة سيكون الجدول مرتبا. * قد لا يوجد أي جزء من الجدول مرتبا. |
||||||||||
التمرين 9.16 : إحصاء النقاط
أكتب شفرة تمكن من قراءة نقاط الامتحان لـ ن تلميذ بقسم بحيث يتم تحفيظها في جدول يسمى نقاط ذي الرتبة ن. * ابحث وأظهر: - أعلى نقطة في القسم. - أدنى نقطة في القسم. - المعدل العام يعني متوسط النقاط. * من خلال جدول نقاط التلاميذ نقاط ، أنشئ جدول آخر يسمى معدل ذي الرتبة 7 ومركب على الشكل التالي:
أنجز إنشاء هندسيا للعوارض الممثلة للجدول معدل. استعمل سلسلة الرموز ####### لتمثيل العوارض وأظهرها في مجال النقاط.
مساعدة: حدد القيمة قصوى في الجدول معدل و أظهر السطور على الشاشة بداية منه. (في المثال الأسفل نعتبر قصوى= 6).
مثال :
|
تمارين تطبيقية 4: المصفوفات
التمرين 9.17: وضع العدد 0 في قطر مصفوفة. أنجز برنامجا يـمكن من ملء مصفوفة مربعة. بعد ملئها ضع 0 مكان عناصر قطر المصفوفة. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
التمرين 9.18 : مصفوفة وحيدية. أنجز برنامجا يـمكن من إنشاء مصفوفة مربعة وحيدية ص ذات البعد ن. المصفوفة الوحدية معرفة على الشكل التالي :
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
التمرين 9.19 : مقلوب مصفوفة أنجز برنامجا يـمكن من تحديد المقلوب قج لمصفوفة ج ذات البعدين ن و م على التوالي إلى مصفوفة ذات البعدين م و ن على التوالي. بطبيعة الحال المصفوفة ذات البعدين م و ن على التوالي (أي المصفوفة المقلوبة) تكون في جدول آخر خ لإظهاره على الشاشة. المصفوفة المقلوبة خ = قج معرفة على الشكل التالي : \ / \ / ملاحظة: قج مكونة من حرفين ق و ج بمعنى قلب ج إلى جدول آخر. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
التمرين 9.20 : ضرب مصفوفة في عدد حقيقي أنجز برنامجا يـقوم بضرب مصفوفة ج في عدد حقيقي س. مثال : \ / \ / النتيجة المحصل عليها يجب أن تكون في جدول أو مصفوفة أخرى خ لإظهارها على الشاشة. جميع عناصر المصفوفة ج يجب ضربها في س. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
التمرين 9.21 : جمع مصفوفتين
أنجز برنامجا يـقوم بجمع مصفوفتين ج و خ لهما نفس البعدين ن و م. مثال : \ / \ / \ / النتيجة المحصل عليها يجب أن تكون في مصفوفة أخرى ح لإظهارها على الشاشة. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
التمرين 9.22 : ضرب مصفوفتين أنجز برنامجا يـقوم بضرب مصفوفة ج ذات البعدين ن و م في المصفوفة خ ذات البعدين م و ل للحصول على مصفوفة جديدة ذات البعدين ن و ل: ح(ن,ل) = ج(ن,م) ×خ(م,ل) ضرب مصفوفتين يتم بضرب سطر المصفوفة الأولى في عمود المصفوفة الثانية حسب العلاقة التالية: تذكير (إقرأها من اليسار إلى اليمين): / \ / \ / \ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
التمرين 9.23 : مثلث عمر الخيام أنجز برنامجا يـقوم بإنشاء مثلث الخيام ذي الدرجة ن وكذلك تقوم بحفظه في مصفوفة مربعة ج ذات البعد ن+1.
مثال : مثلث الخيام ذي الدرجة 6.
الطريقة : أحسب و أظهر فقط القيم كما هو واضح في المثال أعلاه . حدد درجة المثلث للمستعمل بان لا تتجاوز 13. أنشئ المثلث سطرا سطرا: - هيئ الجدول بأن تكون العناصر الأولى للسطور وكذلك عناصر القطر تساوي 1. - أحسب القيم المتبقية حسب العلاقة التالية : ج د،ذ = ج د-1،ذ + ج د-1,ذ-1 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
التمرين 9.24 : البحث عن النقاط السحرية ابحث في مصفوفة ج (تم إدخالها من طرف المستعمل) على الأعداد التي تكون في آن واحد هي الأكبر في سطرها والأصغر في عمودها. هذه الأعداد تسمى النقاط السحرية. أظهر على الشاشة مواقع وقيم جميع النقاط السحرية الموجودة. أمثلة : القيم الملونة بالأحمر هي النقاط السحرية في هذه المصفوفات : / \ / \ / \ / \ طريقة : استعمل مصفوفتين للمساعدة قصوى و دنوى لهما نفس بعد المصفوفة ج ، بحيث :
|
تمارين إضافية
التمرين 9.25 : حساب الإنحراف المعياري لسلسلة من الأعداد الحقيقية أكتب برنامجاً يقرأ سلسلة من الأعداد الحقيقية، ثم يحسب المتوسط الحسابي والإنحراف المعياري لهذه الأعداد. |
تأليف
المؤلف الأصلي: الدكتورمحمد عمار السَلكة (دمشق - سوريا)
الموقع الشخصي: http://www.drsalka.com
البريد الإلكتروني: عنوان البريد الإلكتروني هذا محمي من روبوتات السبام. يجب عليك تفعيل الجافاسكربت لرؤيته.
ضبط بتصرف: محمد عبد الرحمان (الدار البيضاء - المغرب)
المراجع