| Author |
Message |
MohamedEl-Masry NILEZONE Team Work


Joined: 25 Jun 2006 Posts: 1667 Threads: 81 Country: Egypt
|
Posted: Fri Jun 30, 2006 7:56 pm Post subject: خاص بأعضاء طلبة كلية الهندسة شعبة هندسة نظم |
|
|
|
أنواع البرمجيات:
يوجد نوعان أساسيان من البرمجيات هما:
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 |
|
 |
MohamedEl-Masry NILEZONE Team Work


Joined: 25 Jun 2006 Posts: 1667 Threads: 81 Country: Egypt
|
Posted: Fri Jun 30, 2006 7:59 pm Post subject: بالنسبة للخوازميات |
|
|
|
ماهي الخوازميات ؟
Algorithm
هي الخطوات التي تتبعها للوصول الي الحل
Flow chart
اما الفلوتشرت فهي الأشكال الهندسية التي تستخدم بغرض تسهيل سيل البرنامج للمبرمج مثل
اشكال ناسي - شنايدر _________________ اللهم اتنا في الدينا حسنة وفي الأخرة حسنة وقنا عذاب النار
Last edited by MohamedEl-Masry on Mon Sep 18, 2006 4:58 am; edited 3 times in total |
|
| Back to top |
|
 |
MohamedEl-Masry NILEZONE Team Work


Joined: 25 Jun 2006 Posts: 1667 Threads: 81 Country: Egypt
|
Posted: Fri Jun 30, 2006 8:12 pm Post subject: طريقة البحث الثنائي Binary Search: |
|
|
|
طريقة البحث الثنائي
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 |
|
 |
MohamedEl-Masry NILEZONE Team Work


Joined: 25 Jun 2006 Posts: 1667 Threads: 81 Country: Egypt
|
Posted: Fri Jun 30, 2006 8:17 pm Post subject: خوارزم البحث الثنائي الأول First Binary Search Algorithm: |
|
|
|
خوارزم البحث الثنائي الأول
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 |
|
 |
MohamedEl-Masry NILEZONE Team Work


Joined: 25 Jun 2006 Posts: 1667 Threads: 81 Country: Egypt
|
Posted: Fri Jun 30, 2006 8:21 pm Post subject: عدد مرات البحث في أي مصفوفة عن عنصر محدد |
|
|
|
عدد مرات البحث في أي مصفوفة عن عنصر محدد باستخدام
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 مرة من البحث بين بليون عنصر لنجد ضالتنا!!.. إنه تكنيك عبقري فعلاً  _________________ اللهم اتنا في الدينا حسنة وفي الأخرة حسنة وقنا عذاب النار
Last edited by MohamedEl-Masry on Sat Sep 23, 2006 10:35 pm; edited 2 times in total |
|
| Back to top |
|
 |
Mr.Online Golden Member


Joined: 26 Jun 2006 Posts: 529 Threads: 71 Country: Alexandria
|
Posted: Fri Jul 07, 2006 8:50 pm Post subject: |
|
|
|
شكرا _________________
 |
|
| Back to top |
|
 |
angham Moderator


Joined: 10 Sep 2006 Posts: 220 Threads: 7
|
Posted: Tue Sep 19, 2006 11:10 am Post subject: |
|
|
|
Thanks alot Mohamed  _________________
 |
|
| Back to top |
|
 |
Solly NILEZONE Team Work


Joined: 25 Jun 2006 Posts: 669 Threads: 56
|
Posted: Tue Sep 19, 2006 11:13 am Post subject: |
|
|
|
thnx mohamed  _________________
 |
|
| Back to top |
|
 |
Nader2006 NILEZONE Member


Joined: 10 Aug 2006 Posts: 165 Threads: 10 Country: Mansoura
|
Posted: Tue Sep 19, 2006 11:14 am Post subject: |
|
|
|
| الف شكر يامحمد باشا |
|
| Back to top |
|
 |
khaled1986 New Member


Joined: 30 Jun 2006 Posts: 6 Threads: None
|
Posted: Wed Oct 04, 2006 5:06 pm Post subject: 100000000000000 thank you |
|
|
|
| 100000000000000 thank you |
|
| Back to top |
|
 |
MohamedEl-Masry NILEZONE Team Work


Joined: 25 Jun 2006 Posts: 1667 Threads: 81 Country: Egypt
|
Posted: Sat Oct 07, 2006 5:13 pm Post subject: |
|
|
|
Thanks all , Welcome  _________________ اللهم اتنا في الدينا حسنة وفي الأخرة حسنة وقنا عذاب النار |
|
| Back to top |
|
 |
Don Karim Active Member


Joined: 12 Aug 2006 Posts: 340 Threads: 2 Country: Egypt
|
Posted: Sat Oct 07, 2006 5:38 pm Post subject: |
|
|
|
Thanks a lot Mohamed  _________________
To achieve your goal, you must be patient |
|
| Back to top |
|
 |
Amir2009 NILEZONE Member

Joined: 20 Mar 2007 Posts: 71 Threads: 13
|
Posted: Sun May 04, 2008 4:21 pm Post subject: |
|
|
|
| 100 100 ya masry |
|
| Back to top |
|
 |
|