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

مشاركات المدمر خلال 48 ساعه

مغلقرائج
بدأه الملك المدمر في 20 أكتوبر 2004 · 72 رد · 7,902 مشاهدة · في قسم المواضيع الهامة في قسم السي /سي++
مشاركة: واتساب X فيسبوك تيليجرام
#51

بحثت عن كتب لبرمجة++c فوجدت :

-( How to program ++c ) وهو باللغة الانجليزية آخر نسخة نزلت للسوق النسخة الثالثة والرابعة ممكن تجي عن طريق الانترنت والDHL لمن يستطيع طلبة من الولايات المتحدة الامريكية بالانترنت. وهو رائع جدا ..حيث يبدأ معك من المستوى الابتدائي حتى المتقدم ..بس يبيله طولة بال.وهو للمؤلف /H.M.DEITEL و P.J.DEITEL يعني الولد وابوه المؤلفين.

- الكتاب الاخر وقد تفاجأت به وهو باللغة العربية وعنوانه : كيف تبرمج بلغة سي++. للمؤلف صلاح الدوه جي . وفي الحقيقة أني وجدته 99% ترجمة للكتاب السابق .

-كتاب ثالث وهو جيد نسبيا وباللغة العربية .عنوانه الطريق الى احتراف السي ++.للمؤلف المهندس/ عزب محمد عزب. ولا انصح المبتدئين به.بل المتقدمين ليكون لهم كنوتة ملاحظات وتذكير ...

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

موقع للمؤلف للسؤال او الطلب

http://www.deitel.com/

مع تحيات الملك المدمر

تم تعديل هذه المشاركة بواسطة walcom في 7 مارس 2005 في 10:24

#52

الجزء الثاني من شرح الدوال للمبتدئين

بسم الله لرحمن الرحيم

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

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

* بعض الملاحظات على الدرس السابق:

معظم البرامج المكتوية كانت عبارة عن دوال مدرجة والمقصود هو " أن الأعلان عن الدالة هو نفسه جسم الدالة " . و لكن يمكن الإعلان عن رأس الدالة و أيضاً كتابة جسمها في أي جزء من البرنامج و إليك المثال التالي :

#include<iostream.h> 

//Function sum 
float sum( float a, float b ); 

int main( ) { 
float x,y; 

cout<< “please enter Tow number\n”; 
cin >> x >> y; 

cout << sum( x,y ) << “\n”; 

return 0; 
} 

float sum(float a,float B) { 
return a+b; 
}

* لاحظ أن الإعلان عن الدالة بكتابة المخرج منها و الوسائط "المدخلات" و ينتهي بفاصلة منقوطة، إذا لم يكن هنالك مخرج فضعvoid و إذا لم يكن هنالك مدخلات فترك بين القوسين فاضي.

· الآن نعود لدرس اليوم وهو استخدام الكلمة المحجوزة inline مع الدوال:

*فائدة inline التي تسمى بالدالة ذات السطر الواحد أن صح هذا التعبير :

هو أنها تعمل على كونها تلميح للمترجم أن هذه الدالة عبارة عن دالة مدرجة فلا يعمل لها استدعاء حقيقي ، و لكن يمكن أن يتجاهل المترجم التلميح و يعمل استدعاء حقيقي للدالة . والعمل هو كأنما قمت بكتابة تعليمات جسم الدالة داخل الدالة التي تقوم بعملية الاستدعاء أي كأنك قمت بعملية نسخ للأوامر من جسم الدالة وكتبتها في الدالة التي تستدعي، و الفائدة المهمة والله أعلم أنها سرعة في التنفيذ أفضل من استخدام دالة بسيطة بدون أن تضع inline .

*متى تستخدم inline :

استخدمها عندما تكون الدالة تقوم بعمل بسيط و واحد على الأقل ، أي عندما تكون ةهنالك تعليمة أو اثنتين فقط فستخدم inline كحل أفضل و ليس أجباري لأنه تعمل الدالة بشكل مناسب وتؤدي العمل بدون وجود inline فلا تقلق عند عدم فهمك لهذا الموضوع.

* مثال :

#include<iostream.h> 

//inline function max 

inline float max( float a,float B) { 
return (a >b ?a:B); 
} 
int main ( ) { 
float x,y; 

cout<<”please enter Tow number\n”; 
cin>> x >> y; 

cout << “ max is : “ << max(x,y) <<”\n”; 

return 0; 
}

" و أي دالة بسيطة أو تحتوي على أوامر بسيطة استخدم inline أفضل".

* موضوع جديد قدمته c++ وهو function over loading :

" ومعناه استخدام أكثر من دالة بنفس الاسم".

*فائدته :

" قد يكون عندك برنامج يحتوي على عدد من الدوال تقوم بجمع رقمين من أي نوع فبدلاً من أنك تقوم بتعريف دوال مختلفة في الأسماء ، ماعليك ألا أن تقوم بتعريف نفس الدوال بنفس الاسم".

*" وتوفر لك هذه الخاصية ما يلي :

1- أن يكون المخرج من الدوال مختلفاً من أي نوع .

2- أن تكون الوسائط " المدخلات " مختلفة الترتيب أو النوع أو العدد .

ملاحظة:

" لا تقم بتعريف دالة تحتوي على نفس المدخلات و نفس المخرجات مع اختلاف الاستخدام في جسم الدالة لأن المترجم لا يدري من يستدعي و ‘ذا استدعى فمن الارجح أن تكون الدالة المكتوبة أولاً " .

* مثال نختم به الدرس :

#include<iostream.h> 

//Function over loading max 

int max( int a,int B) { 
return (a>b?a:B); 
} 
float max(float a,float B) { 
return (a>b?a:B); 
} 
float max(float a,int B) { 
return (a>b?a:B); 
} 
double max( float a,int b,float c) { 
if( a>b && a>c) 
return a; 
else if( b>c) 
return b; 
else 
return c; 
} 

int main ( ) { 
float x1,x2,x3; 
int y1,y2; 

cout << “please enter Three number float\n”; 
cin >> x1 >> x2 >> x3; 
cout <<”please enter Tow number integer\n”; 
cin >> y1 >>y2; 

cout << “ max is : “ << max(x1,x2) <<”\n”; 
cout <<” max is : “ << max(y1,y2) <<”\n”; 
cout << “max is : “ << max(x2,y2,x3) <<”\n”; 
cout <<”max is : “ <<max(x3,y1) <<”\n”; 

return 0; 
}

مع تحيات الملك المدمر

تم تعديل هذه المشاركة بواسطة walcom في 7 مارس 2005 في 10:23

#53

السلام عليكم

هذا الموضوع منقول من هنا

عيب عليك يا مدمر هذا الاسلوب, انا لا اعتبر ما تقوم به مساهمه منك وإنما اعتبره spam , ارجو فعلاً ان تتوقف عن تشويه شكل المنتدى.

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#54

برنامج رياضي لحل معادلة من الدرجة الثانية في مجهول (متغير ) واحد

أرجوا مساعدتي في برمجة وبناء برنامج رياضي لحل معادلة من الدرجة الثانية في مجهول ( متغير ) واحد..... وما هي اللغة التي يفضل أستخدامها والتي تتناسب مع بيئة ويندوز وماهي الأدوات والملحقات التي يجب الإستعانة بها في ذلك ، فضلاً هل يمكن توضيح ذلك بشكل مفصل لأنني مبتدأ وأحب البرمجة ولكم تحياتي وتقديري ....

افضل شيء...

لغة الفجوال باسك...

استخدم القانون العام للحل...

مع وضع شرط... للقيمة اللي تحت الجذر...

هذا بكل بساطة..

القانون العام هو

ا س^2+ ب س + ج = 0

هو

س=( -ب (+-) الجذر التربيعي (ب^2-4*ا*ج)) / 2*ا

وبالتوفيق

التوقيع

الملك المدمر

الوصلة من تصميمى

http://www.sindbad.freesites.ws/here/poly.zip

#55

هذا كود ساعه بسيط

#include<stdio.h> 
#include<conio.h> 
#include <dos.h> 
main() { 
int h,m,s,n; 
clrscr(); 
for(h=0;h<=24;++h) 
for(m=0;m<=59;++m) 
/*You can delete for(m=0;m<=59;++m) and put if(m<=59) m++;*/ 
for(s=0;s<=59;++s) 
for(n=0;n<=10;++n) {
 printf("%d : %d : %d : %d" ,h,m,s,n); 
delay(90); 
clrscr(); 
gotoxy(35, 12); 
if(h==24) 
h=0; 
} 
getch(); 
return 0; 
}

تم تعديل هذه المشاركة بواسطة walcom في 7 مارس 2005 في 10:25

#56

يعنى ايه

using namespace std

و ايه فايدتها

يعنى انا باجى انقل كود من كتاب مثلا الاقيها مكتوبه فيه

انقلها عالكومبيلر يطلع لى خطا

و لما مكتبهاش يشتغل البرنامج عادى

مع تحيات الملك المدمر

#57

لو سمحتو اريد مساعدة للضرورة وباسرع وقت ممكن رجاء

[]عندي ثلاثة أسئلة في c++ ,ساعدوني في حلهن لوسمحتو ضروري:

السوال الاول:

كتب برنامجا يعمل على تعريف صنف airtime يعمل على قراءة الساعة الحالية على صيغة ( 23:49) ثم يضيف الى القيمة السابقة عدد من الساعات مثل (5)، ليعطي الساعة بعد الإضافة على أن لا تتجاوز 24 ساعة في اليوم او يعطي الساعة في اليوم التالي،

· عرف الصنف ويشتمل:

- على حقل الساعة و حقل الدقيقة.

- دالة البناء set،

- دالة الإضافة addhours،

- دالة طباعة الساعة الناتجة بعد الإضافة display.

مثال:

Enter time (format 23:49) 21:49 
Enter hours to add: 6 
Result : 3:49

السؤال الثاني :

باستخدام مفهوم الأصناف القالبية template، اكتب قائمة متصلة قالبية linked list as a template، ثم ادرس المقطع التالي الذي يمثل صنف الموظف employee،

//implements linked list as a template 
//used with employee class 
#include<iostream.h> 
#include<conio.h> 
const int LEN=80; 
class employee { 
private: 
char name[80]; //employee name 
unsigned long number; //employee number 
public: 
friend istream& operator >> (istream& s, employee& e); 
friend ostream& operator << (ostream& s, employee& e); 
}; 
istream& operator >> (istream& s, employee& e){ 
cout << "\n Enter last name: "; cin >> e.name; 
cout << " Enter number : "; cin >> e.number; 
return s; 
} 
ostream& operator << (ostream& s, employee& e) 
{cout << "\n Name: " << e.name; 
cout << "\n Number: " << e.number; 
return s; 
}

عرف القائمة المتصلة القالبية من نوع الموظفين employee، و تشتمل على الدالات التالية:

linklist() { first=NULL } 
void additem 
void display 
~linklist();

ثم اكتب البرنامج الرئيس بحيث يعطي النتيجة وبعدها يتم تنفيذ الهدام ~linklist():

…………………

Enter last name: omar 
Enter number : 15 
Add anather (y/n)?n 
Name: omar 
Number: 15 
Name: majed 
Number: 11 
Name: ali 
Number: 44

السؤال الثالث:

اكتب برنامجاً مستخدماً مفهوم الأصناف class والمصفوفات والسلاسل الرمزية لتصميم لعبة ورق من ألعاب التسلية مثل الباصرة والطرنيب وغيرها، يمثل كل كائن تابع لهذه الفئة ورقة. يشتمل على حقل رقم الورقة( 2 إلى 10 والشابjack والملكةqueen والملك king والأصace )، وحقل النقش ( الاسباتي clubs، الديناريdiamonds، الكبةhearts، والبستونيspades)، كما يشتمل الكيان على دالة البناء(الرقم، النقش)، ودالة العرض لمحتويات الورقة، المطلوب استعراض الأوراق مرتبه ثم خلطها واستعراضها بعد الخلط.

استخدم الدالات randomize() ، و random(). بحيث تكون نتيجة البرنامج كمايلي:

order deck أوراق مرتبة:

2c 3c 4c 5c 6c 7c 8c 9c 10c Jc Qc Kc Ac 
2d 3d 4d 5d 6d 7d 8d 9d 10d Jd Qd Kd Ad 
2h 3h 4h 5h 6h 7h 8h 9h 10h Jh Qh Kh Ah 
2s 3s 4s 5s 6s 7s 8s 9s 10s Js Qs Ks As

Shuffled deck:الأوراق بعد الخلط

4c Qs 7d 3s As 8h 6d Kd Ac 6s Jh Jd 2h 
3h 10d Ah Jc 3d 2d 8s Js 6h 2s 9h 7s 5c 
8d 5h 10h 7h Qd 10c 9d 5d 6c Qc 4s 7c 5s 
Ad 4d Kh 2c Qh 8c Kc 4h 9s 3c Ks 10s 9c

انتهت الأسئلة

تم تعديل هذه المشاركة بواسطة walcom في 7 مارس 2005 في 10:30

#58

مرحبا ..ابي استشيركم

مرحبا

بصراحه جالي سؤال صعب جدا في الــ ++C

ومع اني حاولت فيه مرات كتيره بس مااشتغل ابدا

وياليت اللي يقدر يساعدني فيه مايقصر لاني محتاجتلو ضروري

السؤال هو :

تاجر لديه 3 اكشاك لبيع النقانق والارغفه ..يطلب برنامج لمتابعة سير العمل في كل كشك ..اكتبي برنامج يستطيع عمل الاتي :

ادخال عدد النقانق والارغفه المتوفره بداية النهار

تسجيل عملية البيع : انقاص الارغفه والنقانق بمقدار 1

سؤال البرنامج عن عدد الارغفه والنقانق المتوفره في اي وقت

والمشكله الكبيره انو عايز الحل بواسطة الفئات والكائنات ونا ماحب التعقيد اللي فيها

فياليت اللي يقدر بليز بليز لا يقصر

#59

السلام عليكم هذا هو البرنامج

واعذرني اذا كان في نقص على العموم هذا كل ما أقدر عليه

او بالاحرى الذي فقمته من السؤال وشكرا

كود:

#include<iostream> 
using std::cout; 
using std:: cin; 

class Store{ 
public: 
Store(){ bread = hotdog = 0; } 
int Number_Bread()const { return bread; } 
int Number_Hotdog() const { return hotdog; } 
void Sell() 
{ 
if(bread) 
bread--; 
else 
cout<<"Bread is finished\n"; 
if(hotdog) 
hotdog--; 
else 
cout<<"Hotdog is finished\n"; 
} 
void Enter_Bread(const int num){ bread = num > 0 ? num : 0; } 
void Enter_Hotdog(const int num){ hotdog = num > 0 ? num : 0; } 
private: 
int hotdog , bread; 
}; 

void Frist() 
{ 
cout<<"************ Welcome In The Store Bread And Hotdog ************\n" 
<<"***************************************************************\n"; 
} 

void menu() 
{ 
cout<<"Please Choose Type Of Sell\n" 
<<" 1) Sell Of Bread & Hotdog\n" 
<<" 2) Number of Bread\n" 
<<" 3) Number of Hotdog\n" 
<<" 4) Exit \n"; 
} 
int main() 
{ 
int num_bread , num_hotdog ,choose; 
Store shop; 
Frist(); 
cout<<"Enter The Number of Bread\n"; 
cin>> num_bread; 
cout<<"Enter The Number of Hotdog\n"; 
cin>> num_hotdog; 

shop.Enter_Bread(num_bread); 
shop.Enter_Hotdog(num_hotdog); 

do{ 
menu(); 
cin>> choose; 
switch(choose){ 
case 1: 
shop.Sell(); 
break; 
case 2: 
cout<<"Number of bread = " << shop.Number_Bread()<<"\n"; 
break; 
case 3: 
cout<<"Number of hotdog = " << shop.Number_Hotdog()<<"\n"; 
break; 
case 4: 
break; 
default: 
cout<<" Please Return Choose \n"; 
break; 
} 
}while(choose < 4 && choose > 0 ); 

return 0; 
}

تم تعديل هذه المشاركة بواسطة مجدي محمود في 22 أكتوبر 2004 في 19:18

#60

السلام عليكم

ازاي بعمل full screen in vc++

السلام عليكم ازاي بعمل full screen in vc++

#61

بعد شهر فقط

بسم الله الرحمن الرحيم

بما اني عضو جديد هنا ، أحب أهنئكم بهذا المنتدى الرائع و احيي الجميع ...

انا عندي إطلاع بسيط على لغات البرمجة ولكني ( ما اديرها ) ولـكــن !!

انا اراهن بأي شي على انني أستطيع و بعد شهر أو بالكثير شهر و نص أن أكون أحد أهم المبرمجين في هذا المنتدى ( كيف؟؟ ) ... أكملو القراءة للآخر عشان تعرفون كيف ..

أنا مابي كتب تعليم ولا ابي مدرس ولا ابي أكواد جاهزة ... انا وبكل بساطة يكفيني قائمة بأهم الأوامر .. الأوامر الاساسية و معها شرح بسيط يعني سطر او سطرين ... (لا تقرأ السطور التالية إلا كنت تريد المساعدة )

خلوني اعطيكم مثال على طلبي ( السخيف ) :

setup /ie : هذا الأمر سيجعل الاعداد يتخطى تكوين القرص .

كذا تمااام وكاافي جدا !! . ولا فيه حتى داعي احد يشرح لي وشهو (الاعداد) أو يعطيني فكرة عن ( تكوين القرص)

ولا حتى اعرف وشهو (القرص) اصلا

يمكن الخبراء أو بعض المحترفين يقول في نفسه ( مستحيل!! اصلا البرمجة ماهيب اوامر وبس .........)

على كل حال ...... اسف على التطويل ..و اتمنى ان تأخذوني بجدية . والسلام

#62

ممكن المساعده ؟

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

عندي سؤال في ال c++

برنامج class بسيط يقرأ ويعطي درجات 10 طلاب

كيف ممكن أخاي يقرأ ويكت في تكست فايل (fstream)

أنا عملتو يكتب في فايل بس بدي لما أشفل البرنامج مره ثانية أخلي يقرأ من نفس الفايل

الرجاء نسخ الكود ووضعه في تكست فايل والمحاذاة الى اليسار لقرائته صحيحا

كود البرنامج :

#include <iostream.h> 
#include <fstream.h> 
#include <conio.h> 

class exam { 
private: 
float score [10]; 
int i; 
public: 

void intialize(void) { 

for(i=0;i<10;i++) { 
score=-1; 
} 

} 

void enter_score (void) { 
cout<<"Enter Student Number"<<endl; 
cin>>i; 
cout<<"Enter Student Score"<<endl; 
cin>>score; 
ofstream outfile("fdata.txt"); 
for(i=0;i<10;i++) 
outfile<<"the score of student "<< i <<" is "<<score<<endl; 
} 
void get_score (void) { 
cout<<"Enter Student Number"<<endl; 
cin>>i; 

if(score==-1) 
cout<<"no score for this student"<<endl; 
else 
cout<<"the score of student "<< i <<" is " <<score<<endl; 
} 

}; 

int main() { 
exam exam1; 
int i; 
exam1.intialize(); 
do { 
cout<<"1)Enter Score"<<endl; 
cout<<"2)Get Score"<<endl; 
cout<<"3)Exit"<<endl; 
cin>>i; 
if(i==1) 
exam1.enter_score(); 
if(i==2) 
exam1.get_score(); 
} 
while(i!=3); 
return 0; 

}

#include <iostream.h> 
#include <fstream.h> 
#include <conio.h> 

class exam { 
private: 
float score [10]; 
int i; 
public: 

void intialize(void) { 
for(i=0;i<10;i++) { 
score=-1; 
} 
} 

void enter_score (void) { 
cout<<"Enter Student Number"<<endl; 
cin>>i; 
cout<<"Enter Student Score"<<endl; 
cin>>score; 
ofstream outfile("fdata.txt"); 
for(i=0;i<10;i++) 
outfile<<"the score of student "<< i <<" is "<<score<<endl; 
} 

void get_score (void) { 
cout<<"Enter Student Number"<<endl; 
cin>>i; 

if(score==-1) 
cout<<"no score for this student"<<endl; 
else 
cout<<"the score of student "<< i <<" is " <<score<<endl; 
} 

}; 

int main() { 
exam exam1; 
int i; 
exam1.intialize(); 
do { 
cout<<"1)Enter Score"<<endl; 
cout<<"2)Get Score"<<endl; 
cout<<"3)Exit"<<endl; 
cin>>i; 
if(i==1) 
exam1.enter_score(); 
if(i==2) 
exam1.get_score(); 
} 
while(i!=3); 
return 0;
}

مع الملك المدمر

تم تعديل هذه المشاركة بواسطة walcom في 7 مارس 2005 في 10:39

#63

سؤال إليكم جميعاً

السلام عليكم

كيف يتم تغيير الوضع من الدوس إلى وضع الويندوز ؟

-

كيف أقوم بتشغيل ملف EXE ؟

-

كيف يتم إكتشاف الاجهزة ألس هو مصمم لهذا؟؟؟

وشكراً

لكم

الملك المدمر

تم تعديل هذه المشاركة بواسطة walcom في 7 مارس 2005 في 10:40

#64

شيء مضحك في السي بلس بلس

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

اخواني الكريم

احببت تعلم السي بلس بلس

عندي خبرة بسيطة بالفيجوال بيسك

فذهبت للسوق

واشتريت كم كتاب

وبدأ بتطبيق الامثلة

لم انهي قراءة الكتاب بعد

لكن ماشي الحال

وكل شيء تمام

المشكلة اني في الفيجوال بيسيك

لما احب اعمل برنامج

ارسم الفورم

واضع الازرار والتكست بوكس الخ

كل هذا بضغطة زر

لكن في السي بلس بلس

لا ادري ماذا افعل

الكومبايلر يخليني اعمل على شاشة

كشاشة الدوس

لكن ماذا لو اريد عمل فورم

ماذا افعل

لا اقولكم علموني بالحرف

لكن اقصد

اين اذهب

دلوني

ارشدوني

اعطوني السنارة

وانا اصطاد السمك

فقط وجهوني بارك الله فيكم

وتحياتي لكم

الملك المدمر

تابــــــــــــــــــــــــــــــــــــــــع

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

السلام عليكم ،،،

اخي العزيز ...

مما لا شك فيه انك اتجهت الى الطريق بتعلمك لغة السي

قبل ظهور نظام التشغيل النوافذ كانت تكتب البرامج لبيئة الدوس باستخدام لغة السي

وبعد ظهور النوافذ ظهرت معها الادوات التي نستطيع من خلالها كتابة برامج خاصة بهذه الانظمة ( النوافذ ) فظهر لنا مصطلح الفيجوال سي وظهرت معه مكتبة MFC

وهذه المكتبة عبارة عن مجموعة من الفئات نستطيع من خلالها كتابة برامجنا باستخدام لغة السي.

في بداية دراستنا الجامعية تعلمنا لغة اسمها بيسك كل برامجها تكتب

لبيئة الدوس وافتكر انني استمريت فيها عام اكتب بها برامج صغيرة جدا

لا تتعدى 20 سطر وهذه اللغة من مرور الايام تم تطويرها لتصبح فيجوال بيسك

اذا من البيسك الى الفيجوال بيسك.

مما سبق نلاحظ ان الموضوع عبارة عن تطور للغات .

عموما استمر في تعلم اساسيات اللغة في الدوس الى ان تتمكن من اللغة

ومن ثم الخطوة الثانية كتابة برامج للنوافذ .

ولكن مع السي لا تستعجل الصبر ثم الصبر ثم الصبر .

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

اين اذهب

دلوني

ارشدوني

اعطوني السنارة

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

فقط

1- كتاب فيجوال C++ .

2- فيجوال ستديو 6 .

3-MSDN .

4- الصــــــــــــــــــــــــــــبر .

ان شاء الله

تحياتي

#65

التطور التاريخي للغة C

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

نظرة عامة على لغة سي ++

التطور التاريخي للغة سي :

ولدت لغة سي ونشأت وترعرعت في أحضان نظام يونيكس UNIX ، الذي صُمم في مختبرات شركة AT&T الأمريكية .

كتب نظام يونيكس أول ما كتب ، بلغة التجميع Assembly لأجهزة PDP-7 ، ثم طوره الباحثان ثومبسون Thompson وريتشي Ritchie ليناسب أجهزة PDP-11 الأكثر تطوراً . وقد فضلت شركة Bell الأمريكية ، وغيرها من الشركات ، نظام يونيكس ، بسبب أنه قابل للنقل ، بين أنظمة التشغيل المختلفة (Portable) ، على عكس لغة التجميع المرتبطة بالمعالجات الدقيقة ، وغير القابلة للنقل .

في الوقت نفسه ، كان ثومبسون نفسه يطور بعض لغات البرمجة ، التي تناسب أنظمة تشغيل مختلفة ، ومن هذه اللغات : لغة ( Basic Combined Programming) BCPL التي صممها مارتن ريتشاردز Martin Richards في كامبردج عام 1967، وهذه اللغة ، كانت قد انبثقت من لغة أخرى هي (Combined Programming Language ) CPL ، التي صممت في جامعة لندن في حوالي عام 1960م . وهذه الأخيرة ، استعارت بعض تعليماتها من لغة الجول 60 ( AGOL 60) . قام بعد ذلك ثومبسون بتطوير BCPL ، وسماها لغة B فقط . ومن الجدير بالذكر ، أن جميع هذه اللغات المذكورة آنفاً ، تعتبر كلغة التجميع ، لغات للآلة Machine Languages .

بعد ذلك ، قام ريتشي ، فأخذ من B أحسن تعليماتها ، وغير في كثير من قيودها ، وأضاف إليها تعليمات أخرى جديدة ، مثل أنواع المعطيات ، ومواصفات التخزين ، وجعل منها لغة برمجة Software language كما هي لغة للآلة وسماها لغة C ( وهو حرف أبجدي متقدم عن الحرف B ) ، فولدت بذلك لغة سي عام 1972م ، على يد ريتشي نفسه ، في مختبرات AT&T الأمريكية .

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

الأول : مرونة لغة سي ، فهي تصلح لكافة التطبيقات ، وتعطي المبرمج حرية التصرف ، على مستوى البرمجيات software أو الأجهزةhardware .

الثاني : شعبية وانتشار نظام يونيكس ، كنظام تشغيل يكتب بلغة سي ، فهي تدعم نظام يونيكس ، وهو يدعمها .

وتعتبر لغة سي الآن ، من أشهر اللغات ، وأكثرها انتشاراً في الدول المتقدمة ، وبدأ المبرمجون ، من كافة الاختصاصات يكتبون برامجهم بها ، وعلى سبيل المثال ، لا الحصر ، ظهر كتاب [ برامج المايكرو كمبيوتر للمهندسين الكيميائيين ] عام 1987م عن دار ماجرو هيل الأمريكية ، مكتوباً من ألفه إلى يائه بلغة سي ، ومعنى ذلك أنه يفترض أن جميع المهندسين الكيميائيين في أمريكا يفهمون لغة سي ، ويتعاملون بها .

و بعد ذلك قام بيورن ستروستروب Stroustrup بتطوير C . و هي الأكثر شعبية في الحقل البرمجي كي توائم البرمجة الكائنية بعد انتشار التحليل و التصميم الكائني . ثم أبتكر C++ ، و في أقل من عقد انطلقت من نطاق مبرمجي AT&T لتصبح لغة البرمجة المفضلة لدى المبرمجين المحترفين .

إن C++ هي إطار موسع للغة C و يمكن القول أن كل برنامج C يعتبر برنامج شرعيا بلغة C++ . و لكن لا تركن لهذا الأمر فالوثبة من C إلى C++ أكبر مما يبدو . <

أفادت سي ++ و لعدة سنوات من علاقتها بلغة C ، إذ استطاع كثير من مبرمجين C استعمال C++ بسهولة ، علما أن معظم المبرمجين رأوا أنهم مضطرين للتخلي عن كثير من المفاهيم السابقة و اعتماد رؤية أخرى لحل مشاكل البرمجة إن هم رغبوا في الاضطلاع بهذه اللغة .

C++ و البرمجة الكائنية :-

تدعم لغة C++ المقومات الأربعة للبرمجة الكائنية . التغليف أو الكبسلة ، إخفاء البيانات ، الوراثة و تعددية الأشكال .

1- التغليف و إخفاء البيانات :-

تدعم C++ صفة التغليف و إخفاء البيانات عبر إنشاء أنواع جديدة تسمى بالصفوف Classes و من ثم يقوم الصف المحدد بالعمل ككائن مغلف تماما و يستعمل كوحدة متكاملة بحيث يبقى عمله الداخلي مستورا و لا يحتاج المستعمل إلى فهم هذا العمل المخبأ ، ينبغي أن يعرف كيفية استعماله فقط .

2- الوراثة و إعادة الاستعمال :-

توفر C++ دعما فعالا لإعادة الاستعمال من خلال الوراثة inheritance. يمكن إعلان نموذج جديد يكون امتدادا لصف موجود و اشتقاقا منه . و نسمي الصف الجديد صفا مشتقا أحيانا

3- التعددية الشكلية :-

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

أخذ هذا الموضوع من

1. كتاب تعلم سي++ في 24 ساعة

2. البرمجة بلغة سي .

مع تحيات اخوكم اللملك المدمر

لاالة الا الله محمد رسوال الله

#66

شوف يا صديقي

أولا أنا مش محترف ولا حتى نصف محترف , أنا والحمد لله لسه بتعلم البرمجة بلغة السي ++ والفيجوال سي ++ , ولان بدأت في تعلم السي # والحمد لله

هم اصعب بكثير من الفيجوال بيسك ولكنهم افضل بكثير طبعا وخصوصا السي #

بصراحة أنا أشوف إنك تبدأ تبرمج بالفيجول سي ++و تتعلم أسس سي ++معا

هذا أفضل و ترى النتائج أسرع بدل إنك تجلس أشهر على شاشة الدوس و أخيرا لا تستعملها إلا قليلا ثم بعد ذلك تنتقل لتعلم السي # بعد ذلك

والساده المشرفين في المنتدى ما قصروا والله وهم واضعين العديد من الروابط

جرب

www11.brinkster.com/amarz

C++

http://www.et.utt.ro/public/Docs/Seams%20T...0Easy%20Lesons/

C++ بالصوت والصورة

http://www.joegrip.com/csharp-course.html

موقع جميل

http://www.dev4arabs.com/ar/vc/

وممكن لو عايز حاجات تاني انا ممكن ابعتلك عل الايميل

mido_hely_2010@hotmail.com

بس للاسف لا اظن ان في كتاب واحد متكامل من الالف للياء ابدا

والله الموفق

يناقش هذا التقرير الرسمي الإختلافات البرمجية بين ميكروسوفت فيجول بيسك دوت نت و فيجول سي شارب دوت نت .

إن فيجول بيسك دوت نت و سي شارب دوت نت يختلافان في التالي : حساسية لشكل الحروف case sensitivity، و إعلان المتغيرات و تخصيصها variable declaration and assignment ، و أنواع البيانات data types، و نهاية الجمل البرمجية statement termination ، و وقوالب الجمل البرمجية statement blocks ، و استخدام الهلالان مقابل الأقواس use of parentheses versus brackets، و المؤثرات operators ، و الجمل الشرطية conditional statements ، و معالجة الأخطاء error handling ، و معالجة الطفحان overflow checking ، و تمرير العوامل parameter passing، و الربط المتأخر late binding، و طريقة معالجة الكود العشوائي ways of handling unmanaged code ، و الكلمات الرئيسية keywords.

المقدمة :

بسبب الفروق السابقة بين مايكروسوفت فيجول بيسك و مايكروسوفت فيجول سي و مايكروسوفت فيجول سي++ الكثير من المطورين أخذوا إنطباع بأن مايكروسوفت فيجول سي شارب دوت نت أقوى من مايكروسوفت فيجول بيسك دوت نت .

وبعض المطورين يدعي بأن هناك أشياء ممكنة في فيجول سي شارب دوت نت مستحيلة في فيجول بيسك دوت نت قياسا على أن هناك أشياء ممكنة في فيجول سي 6 وما قبلها أو فيجول سي ++ 6 وما قبلها مستحيلة التحقق في فيجول بيسك 6 و ما قبلها . إن هذا الادعاء خاطئ و ليس صحيح .

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

لقد أصبحت فيجول بيسك دوت نت من اللغات البرمجة بالكائنات ، حيث أنها تحتوي على مميزات جديدة و محسنة مثل الوراثة inheritance و تعدد الأشكال polymorphism، و الواجهات interfaces ، و تعدد التعريفات overloading .

إن فيجول بيسك دوت نت و فيجول سي شارب دوت نت يستعملان نفس لغة وقت التنفيد common language runtime في نواة دوت النت ، فلذا لا توجد – تقريبا – فروق في الأداء بينهما .

إن فيجول بيسك موجهة إلى أن تكون أسهل في التعامل بتزويدها بخصائص مثل الربط المتأخر late binding ، بينما فيجول سي شارب دوت نت مزودة ببعض المميزات القوية مثل معالجة الكود العشوائي handling unmanaged code . لكن هذه الفروق تتلاشي إذا ما قارناهما بما كان عليه سابقا .

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

إن الإختيار بين هذه اللغتان يعتمد على التفضيل الشخصي و الخبرة السابقة ، فعلى سبيل المثال يكون من الأسهل لمبرمجي فيجول بيسك 6 أن يختاروا فيجول بسيك دوت نت ، بينما يكون أسهل لمبرمجي فيجول سي ++ و جافا أن يختاروا سي شارب دوت نت .

إن الخبرة الموجودة لدي المبرمج أهم من الفروق البسيطة بين اللغتين

والله أعلم

تم تعديل هذه المشاركة بواسطة الملك المدمر في 22 أكتوبر 2004 في 16:13

#68

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

ال namespace أو ما يعرب الى فضاء الاسم انما هي عباره عن تقسيم منطقي لمجالات تحتوي على اسماء لمعرفات وتستخدم لكي يتم تفادي التعارض بين الاسماء المتشابهه للمعرفات

لتوضيح الفكرة فان فضاء الاسم يشبه الـ packages في لغة الجافا .. كما ان اي project ( مشروع) جديد يصمم لنفسه namespace جديد يحمل نفس اسم المشروع

لذلك عندما تكتب using namespace std عليك ان تكون قد انشأت namespase بهذا الاسم ليتسني لك ان تستخدمه في مشروعك ..

#69

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

اخي يالليت توضح اش مكتوب

بعدين ياريت تكتفي بتنزيل موضوع او موضعين بالكثير في اليوم

لانك كذا ماساعدتنا بالعكس خليت مواضيع ماتاخذ حقها تنزل للصفحه الثانيه قبل محد يقراها

ولو قصدك الافاده فلعلم يجي حبه حبه مو مره وحده

وشكرا

#70

الذي تتطلبه موجود و لكن بالانكليزية هل تريد ان نترجم لك

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#71

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

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#72

السلام عليكم

بعد ان اصبح إسم المدمر فى كل مكان من قسم c++ رايت ان اضع جميع مشاركاته فى مكان واحد, لان إسمه وطريقة وضع للمواضع بمعدل 40 موضوع فى اليوم شوه المنتدى وشتت افكارنا.

وايضاً اغلقت الموضوع حتى يرى فيه مشرفى قسم c++ رايهم, فإذا إختارو ان يبقى الموضوع على ما هو عليه او إذا ارادو حذفه فهذا امر يرجع لمشرفى القسم.

اذكر الاخوه الاعضاء مره اخر, ليس الهدف من المنتدى تجميع ما يوجد فى الانترنت و سرقة افكار الاخرين, نحن هنا كى نتعلم من بعضنا البعض, لا ضير إن قام احدنا باقتباس شئ من مكان اخر على شرط ذكر المكان الذى إقتبس منه او وضع رابط.

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#73

السلام عليكم ,,

مجهود جبار منك ياأحمد غريب,, فعلا هكذا أفضل بكثير ,, لأنني أصبحت أبحث عن المواضيع والأسئلة بحثا ووجدتها اختفت في الصفحة الثانية والثالثة ,, وماالى ذلك ,,

عموما النظام أفضل وأتمنى من الأخ المدمر أن يعطينا معلومات حبة حبة ,, وياريت أن نضع مصادر المعلومات التي اقتبسناها لاحقا ,, لأنها تعتبر حقوق ملكية فكرية لأصحاب هذا المنتدى أو ذاك ,,

وبالتوفيق للجميع ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

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

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