الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مكتبة برمجية من صنعي

مغلق
بدأه Ferrum في 5 مايو 2007 · 11 رد · 1,345 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تفضلو صفحة المكتبة على موقعي ، طبعا المكتبة تضيف نوع جديد من نوع Matrix ، حيث انك تقدر بسهولة تجمع و تطرح و تضرب مصفوفات :) و مزايا عديدة :)

الصفحة بالإنجليزي و تحتوي على شرح مصور لكيفية ربط المكتبة ، بس طبعا بالإنجليزي :)

http://www.nightvisiongames.com/matrixlib.htm

:::كوت بو 6:::

IDE : Microsoft Visual Studio 2005 Pro

#3

انا ارفقت الملف المظغوط ، فيه الصفحة (الـ documentation) و فيه الملف المضغوط اللي يحتوي على الهيدر و المكتبة :)

web.zip

:::كوت بو 6:::

IDE : Microsoft Visual Studio 2005 Pro

#4

هل الكود مهم لهذه الدرجة حتى يكون مخفي ؟ :) رأيت العديد من البرامج التي تتعامل مع المصفوفات مفتوحة المصدر . وطبعاً هذا من حقك ولا اعترض عليه نهائياً لكن هناك احتمال ان تجد النصح و التنبيه على الاخطاء من قبل الاعضاء هنا . بالتوفيق اخي Ferrum وان شاء الله نشوفك من أفضل البرمجين باذن الله :)

#5

السلام عليكم

شكرا أخي على الموضوع ولي بعض الملاحظات إذا سمحت

1. إضافة مكتبة .hو.lib لا يكون بتلك الطريقة

اقتباس
Note: if you get warning message about adding new type, don't worry, cancel it for now.
هل هي ثغرت في الفيزوال ستوديو من إكتشافك!!! :D

إذا أردت إضافة مكتباتك إذهب إلى

اقتباس
project properties-> C/C++->General->Additional Include Directories

ثم حدد المجلد الذي فيه الملف .h

ثم إذهب إلى

اقتباس
project properties-> Linker ->General->Additional library Directories

ثم حدد المجلد الذي يحتوي الملف .lib

2. هناك دالة إسمها GetLastError موجودة فيwindows.h لتحديد الإستثناآت وبذلك مكتبتك لن ترجع الخطأ التالي عند جمع مصفوفتين بحجمين مختلفين

اقتباس
Error with dimensions . The matrice is

is what????????

3. ماذا لو أردت جمع مصفوفتين 100*100

4. ماذا لو أرت قسمة مصفوفة على أخرى أو البحث على eighenvalues ....

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

build

void build()
{/* populate the matrix*/
  for (i = 0; i < NbrLines; i++)
  {
	  for (j = 0; j < NbrColumns; j++)
	   { printf("please write the element[%d][%d]",i,j);
		 scanf("%d",&matrix[j]);
	   }
  }
}

Print

void print()
{
 for (i = 0; i < NbrLines; i++)
  { for (j = 0; j < NbrColumns; j++)
	  {printf("matrice[%d][%d]=%d\n",i,j,matrix[j]);}
  }
}

Addition

void addition(int matrix1[l1][c1],int matrix2[l2][c2])
{
if((l1==l2)||(c1 ==2))
 {
  //-polpulate matrix1-----------
 for (i = 0; i < 2; i++)
  {
	  for (j = 0; j < 2; j++)
	   { printf("please write the element[%d][%d]",i,j);
		 scanf("%d",&matrix1[j]);
	   }
  }
 //--- Populate matrix2----------
 for (i = 0; i < 2; i++)
  {
	  for (j = 0; j < 2; j++)
	   { printf("please write the element[%d][%d]",i,j);
		 scanf("%d",&matrix2[j]);
	   }
  }

//------ compute and show the sum ---------
 for (i = 0; i < 2; i++)
  {
	  for (j = 0; j < 2; j++)
	  {printf("matrice[%d][%d]=%d\n",i,j,matrix1[j]+matrix2[j]);}
  }
}
else {printf("Matrixes should have the same dimensions");}
}

تذكر يا أخي Ferrumأنك في منتدى الفريق العربي للبرمجة وليست عند البقال إضافة إلى ذلك نحن مستعدين لتعليمك قبل أن تفكر في أن تبيعنا مكتباتك.

وقبل أن أختم. رجاأ أبلغ سلامي ل Frank Luna :D

#6

هل تم استخدام الـ Dynamic Programming algorithms لضرب المصفوفات ؟

وبالنسبة للجمع ما هي انواع الخوارزميات المستعملة في المكتبة يعني فيه خوارزميات تكون optimal هل تم استخدامها ؟

شاكر لك....

#7

بصراحة اخر حاجة أي حد يفكر فيها هي كتابة مكتبة للرياضيات الخطية linear algebra بوجه عام. أنا لم أختبر مكتبتك بعد لكن بمجرد البحث في الملف المرفق لم أجد أي ذكر للمصفوفات الكثيفة و المخلخلة sparse, dense

و بمنتهى الصراحة لا يمكنك أت تطلق عليها مكتبة ما لم تدعم هاذين النوعين- ثم أين مصفوفة الصفر و الوحدة لا يعقل أن يتم تكوينهما كل مرة هذا سيحدث بطء رهيب الافضل أن يكونوا static members

المكتبة بوجه عام تفتقر الى اساسيات العمليات فى علم الرياضيات الخطية linear algebra

اقرأ GNU Scientific Library

http://www.math.utah.edu/software/gsl/gsl-ref_toc.html

و كذلك الكتاب الرائع Numerical Recipes لو أنت في القاهرة أعتقد أني عندي النسخة من الكتاب بال Fortran

#8
Ben_Laiid كتب:
السلام عليكم

شكرا أخي على الموضوع ولي بعض الملاحظات إذا سمحت

1. إضافة مكتبة .hو.lib لا يكون بتلك الطريقة

هل هي ثغرت في الفيزوال ستوديو من إكتشافك!!! :D

إذا أردت إضافة مكتباتك إذهب إلى

ثم حدد المجلد الذي فيه الملف .h

ثم إذهب إلى

ثم حدد المجلد الذي يحتوي الملف .lib

2. هناك دالة إسمها GetLastError موجودة فيwindows.h لتحديد الإستثناآت وبذلك مكتبتك لن ترجع الخطأ التالي عند جمع مصفوفتين بحجمين مختلفين

is what????????

3. ماذا لو أردت جمع مصفوفتين 100*100

4. ماذا لو أرت قسمة مصفوفة على أخرى أو البحث على eighenvalues ....

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

build

void build()
{/* populate the matrix*/
  for (i = 0; i < NbrLines; i++)
  {
	  for (j = 0; j < NbrColumns; j++)
	   { printf("please write the element[%d][%d]",i,j);
		 scanf("%d",&matrix[j]);
	   }
  }
}

Print

void print()
{
 for (i = 0; i < NbrLines; i++)
  { for (j = 0; j < NbrColumns; j++)
	  {printf("matrice[%d][%d]=%d\n",i,j,matrix[j]);}
  }
}

Addition

void addition(int matrix1[l1][c1],int matrix2[l2][c2])
{
if((l1==l2)||(c1 ==2))
 {
  //-polpulate matrix1-----------
 for (i = 0; i < 2; i++)
  {
	  for (j = 0; j < 2; j++)
	   { printf("please write the element[%d][%d]",i,j);
		 scanf("%d",&matrix1[j]);
	   }
  }
 //--- Populate matrix2----------
 for (i = 0; i < 2; i++)
  {
	  for (j = 0; j < 2; j++)
	   { printf("please write the element[%d][%d]",i,j);
		 scanf("%d",&matrix2[j]);
	   }
  }

//------ compute and show the sum ---------
 for (i = 0; i < 2; i++)
  {
	  for (j = 0; j < 2; j++)
	  {printf("matrice[%d][%d]=%d\n",i,j,matrix1[j]+matrix2[j]);}
  }
}
else {printf("Matrixes should have the same dimensions");}
}

تذكر يا أخي Ferrumأنك في منتدى الفريق العربي للبرمجة وليست عند البقال إضافة إلى ذلك نحن مستعدين لتعليمك قبل أن تفكر في أن تبيعنا مكتباتك.

وقبل أن أختم. رجاأ أبلغ سلامي ل Frank Luna :D

اخوي الخطوات اللي انا حاطها تشتغل و انا مجربها :)

و بعدين مو قال اني بايع المكتبة :s انا اصلا قلت حق كل ربعي ، بعد ما اخلص من النسخة بحط السورس الكود بس الله يهداك كليتني اكال بكلامك :)

و بعدين الكود اللي حاطه "مع ان انا مو خبير C" ما اشوفه يسأل المستخدم لإدخال ابعاد المصفوفة و جعلها مصفوفة ثنائية الأبعاد ديناميكية ، و ما شفتك تحط فنكشن الـ Multiplication (ما تعرفه؟؟)

على العموم مشكورين على ردودكم

تم تعديل هذه المشاركة بواسطة Ferrum في 7 مايو 2007 في 00:29

:::كوت بو 6:::

IDE : Microsoft Visual Studio 2005 Pro

#9
NullFlag كتب:
هل تم استخدام الـ Dynamic Programming algorithms لضرب المصفوفات ؟

وبالنسبة للجمع ما هي انواع الخوارزميات المستعملة في المكتبة يعني فيه خوارزميات تكون optimal هل تم استخدامها ؟

شاكر لك....

نعم تم استخدام Dynamic Programming و انا جربت البرنامج على Profiler و مافيه memory leaks :)

و لم استخدم اي خوارزميات من اي مكتبات ، انا كتبته بمساعدة المدرس :)

:::كوت بو 6:::

IDE : Microsoft Visual Studio 2005 Pro

#10

Dynamic Programming algorithms != Dynamic Allocation

:)

فيه فرق اخوي يوم تقول memory leaks الداينمك بروقرامينق هي approach معينه زي مثلا الـ Divide and Conquer algorithms :)

http://en.wikipedia.org/wiki/Chain_matrix_multiplication

فمان الله ...

#11

السلام عليكم

اقتباس
و بعدين الكود اللي حاطه "مع ان انا مو خبير C" ما اشوفه يسأل المستخدم لإدخال ابعاد المصفوفة و جعلها مصفوفة ثنائية الأبعاد ديناميكية ، و ما شفتك تحط فنكشن الـ Multiplication (ما تعرفه؟؟)

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

اقتباس
اخوي الخطوات اللي انا حاطها تشتغل و انا مجربها

ليس هناك أي مانع في تقبل ملاحظات الآخرين والأخذ بها بل هي ميزة جيدة

اقتباس
اخوي الخطوات اللي انا حاطها تشتغل و انا مجربها

لا تعاند يا أخي وأتبع الطريقة الصحيحة ثم أضف الى الكود

#pragma comment(lib, "matrix.lib")

من حقك يا أخي أن تفكر بأسلوب تجاري وتبيع مكتبتك وأضن أن ردود نا قد بينت لك نقائص مكتبتك لا أكثر.

لا تأخذ ملاحظاتنا و ردوودنا بشكل سلبي بل هي لفائدتك ووضعك في المسار الصحيح أكثر من كونها إستنقاص لعملك.

والسلام عليكم

في إنتظار مشاركاتك يا أخي Ferrum ومرحبا بك بيننا :)

#12

اخوي انت ليش ماسك علي "تبيع تبيع" ، بالله عليك انا قلت ببيعها :s انا رفعتها عشان الناس تجربها و تعطيني رايهم فيها. و انت ذابحنا بالبيع

على العموم مشكور على ردك، و على يوم راح اشرح الكود :)

:::كوت بو 6:::

IDE : Microsoft Visual Studio 2005 Pro

هذا الموضوع مغلق.

مواضيع مشابهة