Post new topic   Reply to topic    NILEZONEdotNET - Forums Home -> Engineering Society -> Remove Highlighting :: خاص بأعضاء طلبة كلية الهندسة شعبة هندسة نظم
Author Message
MohamedEl-Masry
NILEZONE Team Work
NILEZONE Team Work


Joined: 25 Jun 2006
Posts: 1667
Threads: 81
Country: Egypt

PostPosted: Fri Jun 30, 2006 7:56 pm    Post subject: خاص بأعضاء طلبة كلية الهندسة شعبة هندسة نظم Reply with quote

أنواع البرمجيات:
يوجد نوعان أساسيان من البرمجيات هما:
1- برمجيات النظم(System Software)
2- البرمجيات التطبيقية (System Software)

ملاحظة: هناك كلمة مرادفة أخرى لكلمة Software وهي برمجةProgramming والفرق بينهما أن الأولى على ما أظن عامة بأنواع البرمجيات والثانية خاصية بلغة معينة كما يقال لغة فيجوال بيسك VBProgramming.

أولاً-برمجيات النظم: هي التي تتخاطب مباشرة مع المكونات المادية للحاسب،و من هذه البرامج:-

1-برامج نظم التشغيل مثل برنامج نظام التشغيل(دوسDos) وبرنامج النوافذ أو كما يسميه الأغلبية نظام ويندوز(Windows).
2- برامج التحكم في وسائط التخزين.
3-برامج التحكم في أجهزة الاتصالات.
4-برامج التحكم في شبكات الحاسب.
ثانياً:البرمجيات التطبيقية:
(لا حظ الفرق بين النوعين )
هي التي تتخاطب مع المستخدم. وهذه البرامج يحصل المستخدم من الشركات المتخصصة في البرمجيات ومن أمثلة هذه البرامج كايلي:

أ‌- نظم المعلومات:وهذه النظم تيسر للمستخدم التخاطب والاستفادة من خدمات الحاسب في مجال معالجة البيانات واستخلاص المعلومات المفيدة منها. ومن أمثلة هذه النظم : نظام شئون الموظفين،ونظام المالية، ونظام المستودعات ويمكن تطوير نظم المعلومات باستخدام لغات البرمجة.
ب‌- محرر النصوص:هذا البرنامج ييسر للمستخدم إدخال البيانات(النصوص)وتنسيقها و حفظها وطباعتها مثل برنامج الورد والدفتر .
ج- الجداول الإلكترونية: هذا البرنامج يقوم بإجراء العمليات الحسابية على الأرقام وبدقة كما يقوم بتمثيل البيانات في شكل رسوم بيانية وكذلك يساعد في الحصول على المعلومات الإحصائية المطلوبة مثل اكسل وأكسس.
د-نظم إدارة قواعد البيانات: هذه البرمجيات تستخدم في تطوير نظم المعلومات بواسطة المبرمجين المتخصصين مثل أوراكل .
هـ-لغات البرمجة:وهي التي تستخدم في كتابة البرامج التطبيقية وكتابة برامج النظم بواسطة المبرمجين.وتعتبر لغات البرمجة هي برامج تطبيقية كما أنه توجد بعض لغات البرمجة تمتاز بخصائص برمجيات النظم فمن أمثلة النوع الأول هي لغة فيجوال بيسك ومن أمثل النوع لغة ويندوز وهي لغة فيجوال سي ++ .

ملاحظة: الفرق بين برمجيات النظم والبرامج التطبيقية هو ان برامج النظم تتخاطب مباشرة مع المكونا المادية للحاسب ولكن البرمجيات التطبيقية لا تتخاطب مع المكونات ولكن تتخاطب مباشرة مع المستخدم

_________________
اللهم اتنا في الدينا حسنة وفي الأخرة حسنة وقنا عذاب النار


Last edited by MohamedEl-Masry on Mon Sep 18, 2006 4:58 am; edited 3 times in total
Back to top
View user's profile Send private message Visit poster's website
MohamedEl-Masry
NILEZONE Team Work
NILEZONE Team Work


Joined: 25 Jun 2006
Posts: 1667
Threads: 81
Country: Egypt

PostPosted: Fri Jun 30, 2006 7:59 pm    Post subject: بالنسبة للخوازميات Reply with quote

ماهي الخوازميات ؟
Algorithm
هي الخطوات التي تتبعها للوصول الي الحل
Flow chart
اما الفلوتشرت فهي الأشكال الهندسية التي تستخدم بغرض تسهيل سيل البرنامج للمبرمج مثل
اشكال ناسي - شنايدر

_________________
اللهم اتنا في الدينا حسنة وفي الأخرة حسنة وقنا عذاب النار


Last edited by MohamedEl-Masry on Mon Sep 18, 2006 4:58 am; edited 3 times in total
Back to top
View user's profile Send private message Visit poster's website
MohamedEl-Masry
NILEZONE Team Work
NILEZONE Team Work


Joined: 25 Jun 2006
Posts: 1667
Threads: 81
Country: Egypt

PostPosted: Fri Jun 30, 2006 8:12 pm    Post subject: طريقة البحث الثنائي Binary Search: Reply with quote

طريقة البحث الثنائي
Binary Search :
يصادف المبرمج دوماً العمل مع كمية بيانات كبيرة مخزنة في مصفوفة، ومن الضروري أن يستخدم تكنيك معين يحدد له ما إذا كان العنصر الذي يبحث عنه key ينتمي إلى هذه المصفوفة أم لا! هذا التكنيك يطلق عليه "البحث" وله عدة أنواع، من أشهرها وأكثرها فاعلية طريقة البحث الثنائي.

ولكي نطبق أحد خوارزميات الـBinary Search على مصفوفة ما نتبع الخطوات البسيطة التالية:

الخطوة الأولى والأهم والتي لا يمكن تطبيق الـBinary Search لولاها هي:
ترتيب المصفوفة تصاعدياً أو تنازلياً أو أبجدياً على حسب نوع البيانات المخزنة فيها!
تحديد أول عنصر في المصفوفة ولنسمه i، وآخر عنصر فيها ولنسمه مثلاً j.
تحديد العنصر الذي يقع في منتصف هذه المصفوفة ولنسمه k.
بعد ذلك يمكننا تطبيق تكنيك البحث الثنائي على مصفوفتنا، وهناك عدة خوارزميات للبحث الثنائي، سأشرح أحدها في هذا الدرس على مصفوفة ذات بيانات رقمية، وسأشرح خوارزم آخر على مصفوفة ذات بيانات حرفية أو رمزية في الدرس التالي إن شاء الله، وبذلك نكون استوفينا شرح الخوارزميات وأيضاً المصفوفات المختلفة البيانات.

_________________
اللهم اتنا في الدينا حسنة وفي الأخرة حسنة وقنا عذاب النار


Last edited by MohamedEl-Masry on Mon Sep 18, 2006 4:58 am; edited 2 times in total
Back to top
View user's profile Send private message Visit poster's website
MohamedEl-Masry
NILEZONE Team Work
NILEZONE Team Work


Joined: 25 Jun 2006
Posts: 1667
Threads: 81
Country: Egypt

PostPosted: Fri Jun 30, 2006 8:17 pm    Post subject: خوارزم البحث الثنائي الأول First Binary Search Algorithm: Reply with quote

خوارزم البحث الثنائي الأول
First Binary Search Algorithm:

تقوم فكرة البحث الثنائي على تقسيم المصفوفة إلى نصفين واستبعاد النصف الذي لا ينتمي إليه المفتاح key الذي نبحث عنه، كيف ذلك؟
عن طريق تحديد العنصر الذي يقع في منتصف هذه المصفوفة، ثم نقارن هذا العنصر مع المفتاح الذي نبحث عنه كالتالي (تذكر أن مصفوفتنا مرتبة تصاعدياً أو تنازلياً):

إذا كان يساويه نكون قد وجدنا العنصر الذي نبحث عنه.

إذا كانت قيمة المفتاح أقل من قيمة العنصر الأوسط في المصفوفة، إذن نحتاج أن نبحث فقط في نصف المصفوفة الأول ونستبعد البحث في نصفها الثاني.

وفيما عدا ذلك: إذا كانت قيمة المفتاح أكبر من قيمة العنصر الأوسط في المصفوفة، إذن نحتاج أن نبحث فقط في نصف المصفوفة الثاني ونستبعد البحث في نصفها الأول.

بعد ذلك: نعتبر النصف الذي حددنا لأنفسنا البحث فيه مصفوفة قائمة بحد ذاتها، نحدد فيها الـi, j, & k (أي نقوم بتقسيمها إلى قسمين) ونطبق نفس الخطوات من 1 إلى 3 فيها، ثم نقارن المفتاح مع العنصر الأوسط الجديد، بنفس الترتيب الذي ذكر في الخطوات 1 إلى3 السابقة.

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

Array[]={0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28}

والسؤال الآن: كيف نكتب
code
يمثل هذا الخوارزم بالسي أو الجافا؟!
وللإجابة على هذا السؤال سيصادفنا تساؤل آخر: كيف نرتب المصفوفة تصاعدياً او تنازلياً؟!
والإجابة:
لترتيب المصفوفة فهناك عدة خوارزميات للترتيب منها مثلاً: (Bubble sort, sorting by Selection, sorting by Insertion, Shell sort, & Quick sort).
ولا مجال لذكرها الآن، حيث سنعتمد في الـcode على ترتيبنا نحن للمصفوفة بشكل صحيح.

والآن، لنستعرض معاً code يطبق تكنيك binary search على مصفوفة ذات عناصر رقمية بلغة السي:



#include "STRING.h"
#include "STDIO.h"
#define max_size 15

//-------------------------------
int binary_search (key)
int key;
{
int NumArray[]={0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28};

int i=0, j=max_size-1, k=(i+j)/2;
while(iif (key = NumArray[k]){
printf("nwe found the key (%i) ", key);
return k;
}
else{
if (key < NumArray[k]){
j=k;
k=(i+j)/2;
}
if (key > NumArray[k]){
i=k;
k=(i+j)/2;
}
}
}
return -1;
}
//--------------------------------
void main()
{
int result;
int key;
printf("nnPlz. Enter the Key to begin searchnKey=");
scanf("%i",key);
result = binary_search(key);
if (result==-1){
printf("nthe key(%i) is not found",key); }
getch();
}

أرجو أن يكون هذا المثال البسيط جداً واضحاً.

_________________
اللهم اتنا في الدينا حسنة وفي الأخرة حسنة وقنا عذاب النار


Last edited by MohamedEl-Masry on Mon Sep 18, 2006 4:59 am; edited 3 times in total
Back to top
View user's profile Send private message Visit poster's website
MohamedEl-Masry
NILEZONE Team Work
NILEZONE Team Work


Joined: 25 Jun 2006
Posts: 1667
Threads: 81
Country: Egypt

PostPosted: Fri Jun 30, 2006 8:21 pm    Post subject: عدد مرات البحث في أي مصفوفة عن عنصر محدد Reply with quote

عدد مرات البحث في أي مصفوفة عن عنصر محدد باستخدام
Binary Search
تسائلنا عن أقصى عدد من مرات البحث باستخدام الـBinary Search في أي مصفوفة، لوجدنا أنه يُعطى من إيجاد القوة التي يرفع إليها رقم 2 كي يطعينا العدد الذي يزيد عن عناصر المصفوفة بواحد. أي أنه أول قوة لـ2 والتي تُعطي رقم أكبر من عدد عناصر المصفوفة بواحد.

ففي مثالنا: استخدمنا مصفوفة من 15 عنصر، نلاحظ ان العدد الذي يزيد على عدد عناصر المصفوفة بواحد، أي العدد 16 ينتج من القوة الرابعة لرقم2 (2^4=16) وذلك يعني اننا نحتاج على الأكثر لأربع مرات مقارنة في الـBinary Search حتى نجد العنصر الذي نبحث عنه! فمن الممكن أن نجده من أول مرة في المقارنة، ومن الممكن أن نجده في ثاني مرة، أو ثالث مرة أو رابع مرة.. أو أن يكون غير موجود في المصفوفة!

وفي مثال آخر: لو بحثنا في مصفوفة تحوي 1024 عنصر، سنحتاج إلى 10 مرات للمقارنة كحد أقصى، ونعرف ذلك بتكرار قسمة عدد العناصر على رقم 2 إلى أن نصل إلى العدد واحد في خارج القسمة (وسبب ذلك هو أننا بعد كل مقارنة نقوم بإلغاء نصف عناصر المصفوفة من الاعتبار)، فبتكرار قسمة 1024 على رقم 2 نحصل على القيم التالية على الترتيب: 512، 256، 128، 64، 32، 16، 8، 4، 2، ورقم 1. نلاحظ أن العدد 1024 (2^10) قسم على رقم 2 عشر مرات حتى حصلنا على العدد 1.
نستنتج من ذلك، أن القسمة على اثنين تقابل مرة واحدة من المقارنة في الـBinary Search Algorithm. فمصفوفة بـ 1048576 (2^20) عنصر تستلزم على الأكثر 20 مرة من المقارنة حتى نجد العنصر الذي نبحث عنه، ومصفوفة تحوي بليون عنصر، تستلزم على الأكثر إلى 30 مرة من المقارنة حتى نجد العنصر المطلوب فيها!

ترى، كم يوفر لنا هذا التكنيك من الوقت في البحث؟.. فقط 30 مرة من البحث بين بليون عنصر لنجد ضالتنا!!.. إنه تكنيك عبقري فعلاً Smile

_________________
اللهم اتنا في الدينا حسنة وفي الأخرة حسنة وقنا عذاب النار


Last edited by MohamedEl-Masry on Sat Sep 23, 2006 10:35 pm; edited 2 times in total
Back to top
View user's profile Send private message Visit poster's website
Mr.Online
Golden Member
Golden Member


Joined: 26 Jun 2006
Posts: 529
Threads: 71
Country: Alexandria

PostPosted: Fri Jul 07, 2006 8:50 pm    Post subject: Reply with quote

شكرا
_________________
Back to top
View user's profile Send private message Visit poster's website
angham
Moderator
Moderator


Joined: 10 Sep 2006
Posts: 220
Threads: 7

PostPosted: Tue Sep 19, 2006 11:10 am    Post subject: Reply with quote

Thanks alot Mohamed Smile
_________________
Back to top
View user's profile Send private message
Solly
NILEZONE Team Work
NILEZONE Team Work


Joined: 25 Jun 2006
Posts: 669
Threads: 56

PostPosted: Tue Sep 19, 2006 11:13 am    Post subject: Reply with quote

thnx mohamed Bye
_________________


Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Nader2006
NILEZONE Member
NILEZONE Member


Joined: 10 Aug 2006
Posts: 165
Threads: 10
Country: Mansoura

PostPosted: Tue Sep 19, 2006 11:14 am    Post subject: Reply with quote

الف شكر يامحمد باشا
Back to top
View user's profile Send private message
khaled1986
New Member
New Member


Joined: 30 Jun 2006
Posts: 6
Threads: None

PostPosted: Wed Oct 04, 2006 5:06 pm    Post subject: 100000000000000 thank you Reply with quote

100000000000000 thank you
Back to top
View user's profile Send private message MSN Messenger
MohamedEl-Masry
NILEZONE Team Work
NILEZONE Team Work


Joined: 25 Jun 2006
Posts: 1667
Threads: 81
Country: Egypt

PostPosted: Sat Oct 07, 2006 5:13 pm    Post subject: Reply with quote

Thanks all , Welcome Smile
_________________
اللهم اتنا في الدينا حسنة وفي الأخرة حسنة وقنا عذاب النار
Back to top
View user's profile Send private message Visit poster's website
Don Karim
Active Member
Active Member


Joined: 12 Aug 2006
Posts: 340
Threads: 2
Country: Egypt

PostPosted: Sat Oct 07, 2006 5:38 pm    Post subject: Reply with quote

Thanks a lot Mohamed Smile
_________________

To achieve your goal, you must be patient
Back to top
View user's profile Send private message
Amir2009
NILEZONE Member
NILEZONE Member


Joined: 20 Mar 2007
Posts: 71
Threads: 13

PostPosted: Sun May 04, 2008 4:21 pm    Post subject: Reply with quote

100 100 ya masry
Back to top
View user's profile Send private message
Display posts from previous:    View previous topic : View next topic : Print This Topic  
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1


 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

NILEZONEdotNET RSS Last Threads

Add to My Live!  Add to My Yahoo!  Add to Google
name@nilezone.net
FREE 5000 MB EMAIL