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

نعرف على مكتبة الalgorithim من خلال الأمثلة

مغلق
بدأه Breeze في 28 نوفمبر 2006 · 8 رد · 775 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

****************************************

السلام عليكم

*****الخوض في لوغاريتمية الكمبيوتر ومعرفة كيفية عمل الدوال الجاهزة ومقارنتها

مع ما نكتبه من دوال . شيئ ممتع للغاية.وبرمجة السي++ غزيرة بمكتباتها القوية ومتعددة الأغراض

الرياضية..والمنطقية..والتنسيق....والإدخال والإخراج...والتصميم الهندسي......

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

أنت أخي قارئ هذا المقال من ينتج أول لغة برمجة عربية لها مركزها..أو نظام تشغيل عربي خالص.

***أعجبني سؤال وجهه أحد أعضاء المنتدى مرة ...وهو كيفية عمل المكتبة <cmath> أي ما هي

برمجة دوال هذه المكتبة(كيف تمت برمجتها)....سؤال غريب وجميل......

لن أطيل عليكم وسأقدم لكم هذه المكتبة الرائعة فعلا والسهلة نوعا ما.<algorithm>

ويجب تضمينها في البرنامج كالعادة :

#include<algorithim>

----------------

Count()

وتقوم بحساب عدد المرات التي يتكرر فيها الرقم المطلوب في المصفوفة المحددة.

ويعيد لنا رقم يمثل مرات التكرار....عملية سهلة ويستطيع أي شخص أن يعملها

ولكن هذه الدالة لإختصار الوقت.

Example // 
#include <iostream>
#include <algorithm>			   //for count()
using namespace std;

int arr[] = { 33, 22, 33, 44, 33, 55, 66, 77 };

int main()
   {
   int n = count(arr, arr+8, 33);  //count number of 33’s
   cout << “There are “ << n << ” 33’s in arr.” << endl;
   return 0;
   }

***********************
The output is 

There are 3 33’s in arr. 
***********************

-----------------------------------------------------------------

-----------------------

sort()

**الموضوع واضح من عنوانه** تستخدم لترتيب المصفوفة حيث أننا نعطيها مصفوفة

غير مرتبة (مخربطة) وتعيدها مرتبة تصاعديا...وهي ستساعدنا كثيرا إن كنا نعمل على

قواعد البيانات أو ما شابه.

Example   ://
// sorts an array of integers
#include <iostream>
#include <algorithm>
using namespace std;
				   //array of numbers
int arr[] = {45, 2, 22, -17, 0, -30, 25, 55};

int main()
   {
   sort(arr, arr+8);		   //sort the numbers

   for(int j=0; j<8; j++)	  //display sorted array
	  cout << arr[j] << ‘ ‘;
   return 0;
   }
*******************************
The output from the program is 

-30, -17, 0, 2, 22, 25, 45, 55

******************************

------------------------------------------

-------------------------

merge ()

أيتها الدالة الخيالية....لو كنت أعرفك حينها**.

وتعني بالإنجليزية دمج أي ربط .وهي من الدوال التي تعمل مع أكثر من مصفوفة .

حيث أنها وبإختصار تقوم بدمج مصفوفتين وتخزينها في مصفوفة ثالثة.وتكون تلقائيا مرتبة تصاعديا.!

Example ://
#include <iostream>
#include <algorithm>		  //for merge()
using namespace std;

int src1[] = { 2, 3, 4, 6, 8 };
int src2[] = { 1, 3, 5 };
int dest[8];

int main()
   {						  //merge src1 and src2 into dest
   merge(src1, src1+5, src2, src2+3, dest);
   for(int j=0; j<8; j++)	 //display dest
	  cout << dest[j] << ‘ ‘;
   cout << endl;
   return 0;
   }
}
*********************
والناتج هو : 1 2 3 3 4 5 6 8

*****************************

--------------------------

------------------------------------------

for_each() Alg

تمكنك هذه الدالة من عمل تغيير ما(ضرب ،جمع....)على كل عناصر المصفوفة

أي عملية واحدة لكل العناصر.

Example  :
// uses for_each() to output inches array elements as centimeters
#include <iostream>
#include <algorithm>
using namespace std;

void in_to_cm(double);	 //prototype

int main()
   {					   //array of inches values
   double inches[] = { 3.5, 6.2, 1.0, 12.75, 4.33 };
			   //output as centimeters
   for_each(inches, inches+5, in_to_cm);
   cout << endl;
   return 0;
   }

void in_to_cm(double in)   //convert and display as centimeters
   {
   cout << (in * 2.54) << ‘ ‘;
   }

The output looks like this: 

8.89 15.748 2.54 32.385 10.9982

*******************************

-----------------

transform() Alg

كما الدالة السابقة مع إختلاف أنك تستطيع تخزين الناتج في مصفوفة منفصلة ومعرّفة من قبل.

=====================

المرجع :

(Waite Group's Object-Oriented Programming in C++ (3rd Edition

لـــــ Robert Lafore

ملاحظة : هذه بعض الدوال داخل هذه المكتبة وهناك الكثير والمتشعب وقدمت لكم ما أستطيع..

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

تم تعديل هذه المشاركة بواسطة Breeze في 28 نوفمبر 2006 في 10:24

#2

أنا شديد الأسف لأني عملت موضوعين تحت نفس العنوان .....ولكن صدقوني بالغلط..إضافة إلى أن الكمبيوتر الدي أعمل علية لا يساعدني كثيرا

#3

جزاك الله خير .. موضوع حلو .. وتم حذف الموضوع المكرر .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4

شكرا لك أخي الشمري على تعقيبك المعطر.......................

والله يسعدك لإنو إنت الوحيد إللي دايما بجبر بخاطري.

***********

#5

:(

:(

:(

:(

I'm sad GUYs

#6

و الله لمحة سريعة و لا أحلى عن المكتبة الرائعة

#7

Khaled.Alshaya

لك مني تحية.وأظن أنني سأحمل أمتعتي وأغادر...

فلم أجد هنا غير مواضيع الواجبات المدرسية والجامعية............وأريد حلا للسؤال وأريد حلا سريعا .

...غدا امتحاني.....الأسبوع القادم تقريري ساعدوني......

-------------------------------

السلام عليكم.....

#8

لا يهمك أخ Breeze .. صدقني أنا أول مرة عرفت المنتدى كانت بعد افتتاحه بشهرين تقريباً منذ 6 سنوات تقريباً على ما أذكر .

المنتدى كغيره من المواقع الكبيرة تمر عليه فترات تفوق و انحدار . أعلم أن كثرة الأسئلة التي إجاباتها بـ "راجع قواعد المشاركة" يهز من الثقة في نفس الكثيرين.

لكن مع هذ يبقى المنتدى هو الموقع العربي الصامد حتى الآن بتفوق في مجال البرمجة لكثرة المحترفين و الخبراء فيه ..

تحياتي

#9

شكرا لك مجددا

بالفعل إنك العضو البارز في هده الأيام.

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

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