• 0
الفكر

المصفوفات وطرق التعامل معها

سؤال

السلام عليكم ورحمة الله وبركاته

تحيه طيبه وبعد ,,

هل توجد مصفوفه متغيّرة الطول ؟

هل توجد مصفوفه ذات بعدين ؟

وكيف يمكنني التخزين داخل المصفوفه ؟

وهل أستطيع جلب البيانات من المصفوفه على حسب ال index ؟

واذا أنشأت مصفوفه تحتوي على 10 خانات

ثم وضعتها نمط لعمود معين داخل جدول معين

كيف يتم التخزين فيها ؟

مثال

أنشأت مصفوفه بالشكل التالي

create type corses as varray(10) of number;

الي هي مثلا عدد الكورسات لكل طالب

ثم أنشأت جدول الطلاب

كالتالي :

create table student(
num number primary key,
name varchar2(15),
cors  corses);

هنا المفروض انه يدخل رقم الطالب واسمه والكورسات تبعه

اذا أردت أن أبحث عن كورس معين داخل المصفوفه , كيف يتم ذلك ؟

أو اذا أرد ادراج صف آخر للمصفوفه وهو عدد ساعات كل كورس

لكي يكون التخزين كالتالي

الرقم ثم الإسم ثم الكورس وعدد ساعاته (ادخال الكورس والساعات عشر مرات)

كيف يتم ذلك ؟؟

لكم جل التحيات

والسلام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

1 إجابات على هذا السؤال .

  • 0

أخ (((الفكر)))

بالنسبة للمصفوفات فقد أقتبست لك هذه الأسطر التالية من بعض الدروس الموجودة بجهازي (لا أتذكر من أي موقع نزلتها)

الجـداول  في pl/sql ( المصفوفات)

تستخدم هذه الجداول (المصفوفات) مثل المصفوفات في هي  لغة من لغات البرمجة مثل لو كانت لديك سلسلة من الارقام وتريد تخزينها فانك تستخدم هذه الجداول للتخزين ويتم تعريف متغير من هذا النوع كمايلي  اولا يتم تعريف هذا النوع :

TYPE  اسم_النوع IS TABLE OF نوع_المتغير INDEX BY BINARY_INTEGER

مثال على ذلك :

DECLARE
TYPE num_array IS TABLE OF number(4) INDEX BY BINARY_INTEGER;
num num_array;
BEGIN
........
........
END;

لاحظ اولا تم تعريف نوع واسماه num_array  , ثم قام بتعريف متغير num واعطاه نوع num_array  وهو النوع الجديد الذي قمنا بانشاءه.

مثال عملي /

set serveroutput on;
DECLARE
TYPE num_array IS TABLE OF number(4) INDEX BY BINARY_INTEGER;
i   number(4);
num    num_array;
BEGIN
FOR  i  IN  1..10 LOOP
num(i) := i * i;
END LOOP;
FOR  i  IN  1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i || '*' || i || '= ' || num(i) );
END LOOP;
END;
/

وويكون عمل هذا الاجراء كمايلي : الحلقة الاولى تقوم بضرب العدد i  في نفسه وتخزنه في المتغير num برتبه i وهكذا والحلقة الثانية للطباعة ويكون الناتج كمايلي :

1*1= 1

2*2= 4

3*3= 9

4*4= 16

5*5= 25

6*6= 36

7*7= 49

8*8= 64

9*9= 81

10*10= 100

إن شاء الله تفيدك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .