PDA المساعد الشخصي الرقمي

عرض كامل الموضوع : دورة تعلم أساسيات لغة سي++ : الدرس الثاني عشر



روح سامية
26-04-2011, 23:05
http://www.mexat.com/vb/attachment.php?attachmentid=1442283&stc=1&d=1304840545
السلام عليكم و رحمة الله و بركاته
بسم الله الرحمن الرحيم و الصلاة و السلام على الرسول اﻷمين و على آله و صحبه المنتجبين

http://www.mexat.com/vb/attachment.php?attachmentid=1421662&stc=1&d=1301258823

الدرس الثاني عشر


بعنوان : مصفوفة الرموز و نتعلم في هذا الدرس ما يلي :

1. العبارات النصية في شكل مصفوفة رموز.
2. إنهاء العبارة النصية بالرمز الفارغ.
3. ابتداء مصفوفة الرموز و تعيين قيم لعناصرها.

http://www.mexat.com/vb/attachment.php?attachmentid=1419322&stc=1&d=1300890884

بإمكانكم تحميل الدرس هنا

ﻻ تترددوا باﻻستفسار ::جيد::
تحياتي
روح سامية

axzablog
30-04-2011, 20:56
شكرا على الدرس كالعادة درس جميل ومبسط وخطواته واضحه, شكرا على كل ماتقوم به من مجهودات::جيد::

الله يعطيك العافية

واسأل الله أن يعينك ويوفقك لما فيه الخير في الدنيا والآخرة

روح سامية
01-05-2011, 01:33
شكرا على الدرس كالعادة درس جميل ومبسط وخطواته واضحه, شكرا على كل ماتقوم به من مجهودات::جيد::

الله يعطيك العافية

واسأل الله أن يعينك ويوفقك لما فيه الخير في الدنيا والآخرة


الله يعافيكم و نشكركم على الإطراء و على التواجد :)
ننتظر برامجكم ::جيد::

تحياتي
روح سامية

ahmadz
07-03-2012, 06:35
تم عمل البرنامج وطبعا قرات بعض المواضيع على النت >>>>> الى الان ما اقدر اسوي برنامج بدون مساعده !!!!!!!!

http://im29.gulfup.com/2012-03-07/1331102008461.jpg



#include<iostream>
using namespace std;
void ahmadz(string );

int main()
{

string t;
char palin[50]="";
string i=palin;
cin>>i;
int arrrrt = 0;


while(i[arrrrt] != '\0')
{
cout<<i[arrrrt];
arrrrt++;
}

cout<<endl<<endl;

cout<<arrrrt;

cout<<endl<<endl;

ahmadz(t);

return 0;


}


void ahmadz(string i)
{
char palin[]="shift";

int arrrrt = 0;

while(palin[arrrrt] != '\0')
{
cout<<palin[arrrrt];
arrrrt++;
}

cout<<endl<<endl;

cout<<arrrrt;

cout<<endl<<endl;

}



بتوفيق والسلام

روح سامية
07-03-2012, 08:21
مرحبا
لم يكن هناك داع لإعلان متغير من نوع string بل كان يكفي أن تستخدم مصفوفة الرموز حيث أن الدرس يتحدث عنها ، كنت تستطيع أن تكتب :

cin >> palin;
و حين كنت تطبع الأحرف في المصفوفة كان يكفي أن تطبع المصفوفة لوحدها :

cout << palin;
بدل أن تطبع العناصر واحدا واحدا

أعد كتابة البرنامج لكن دون استخدام متغير string

تحياتي
روح سامية

ahmadz
08-03-2012, 10:06
مرحبا
لم يكن هناك داع لإعلان متغير من نوع string بل كان يكفي أن تستخدم مصفوفة الرموز حيث أن الدرس يتحدث عنها ، كنت تستطيع أن تكتب :

cin >> palin;
و حين كنت تطبع الأحرف في المصفوفة كان يكفي أن تطبع المصفوفة لوحدها :

cout << palin;
بدل أن تطبع العناصر واحدا واحدا

أعد كتابة البرنامج لكن دون استخدام متغير string

تحياتي
روح سامية

اهلا اخي العزيز


تم تعديل البرنامج


#include<iostream>
using namespace std;
void ahmadz( char );

int main()
{

char t;
char palin[50]="";
cin >> palin;

int arrrrt = 0;


while(palin[arrrrt] != '\0')
{
cout<<palin[arrrrt];

arrrrt++;

}

cout<<endl<<endl;
cout<<arrrrt;
cout<<endl<<endl;

ahmadz(t);

return 0;


}


void ahmadz(char i)
{
char palin[]="shift";
int arrrrt = 0;

while(palin[arrrrt] != '\0')
{
cout<<palin[arrrrt];
arrrrt++;
}

cout<<endl<<endl;
cout<<arrrrt;
cout<<endl<<endl;

}



مرحبا
لم يكن هناك داع لإعلان متغير من نوع string بل كان يكفي أن تستخدم مصفوفة الرموز حيث أن الدرس يتحدث عنها

جربت في بدايه عمل البرنامج ان لا استعمل string ولكن طلع اخطاء اما الان اشتغل البرنامج معي !!!!! >>>> يبدو اني فعلت شيئ خاطئ مسبقا




لم افهم هذه


حين كنت تطبع الأحرف في المصفوفة كان يكفي أن تطبع المصفوفة لوحدها :
كود الـ PHP:

cout << palin;
بدل أن تطبع العناصر واحدا واحدا

هل تقصد ان احذف هذه
cout<<palin[arrrrt];

وتصير
cout<<palin

؟؟؟

والسموحه منكم


بتوفيق والسلام

روح سامية
08-03-2012, 10:21
ما كنت أعنيه هو أننا إذا أردنا طباعة مصفوفة رموز بإمكاننا طباعتها مباشرة باستخدام أمر cout
أنت كتبت حلقة كاملة لطباعة كل عنصر في المصفوفة :

while(palin[arrrrt] != '\0')
{
cout<<palin[arrrrt];

arrrrt++;

}
كان يكفي أن تعطي المصفوفة لأمر cout بدل أن تطبع عناصر المصفوفة واحدا واحدا :

cout << palin;
بالطبع أنت كتبت الحلقة أيضا لحساب عدد الأحرف و هذا صحيح

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

تحياتي
روح سامية

ahmadz
08-03-2012, 10:34
ما كنت أعنيه هو أننا إذا أردنا طباعة مصفوفة رموز بإمكاننا طباعتها مباشرة باستخدام أمر cout
أنت كتبت حلقة كاملة لطباعة كل عنصر في المصفوفة :

while(palin[arrrrt] != '\0')
{
cout<<palin[arrrrt];

arrrrt++;

}
كان يكفي أن تعطي المصفوفة لأمر cout بدل أن تطبع عناصر المصفوفة واحدا واحدا :

cout << palin;
بالطبع أنت كتبت الحلقة أيضا لحساب عدد الأحرف و هذا صحيح

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

تحياتي
روح سامية


هل تقصد هكذا




#include<iostream>
using namespace std;
void ahmadz( char );

int main()
{

char t;
char palin[50]="";
cin >> palin;

int arrrrt = 0;



cout<<palin;

arrrrt++;



cout<<endl<<endl;

cout<<arrrrt;

cout<<endl<<endl;



return 0;


}


void ahmadz(char i)
{
char palin[]="shift";
int arrrrt = 0;

while(palin[arrrrt] != '\0')
{
cout<<palin[arrrrt];
arrrrt++;
}

cout<<endl<<endl;
cout<<arrrrt;
cout<<endl<<endl;

}



وانا كتبت هذه كما قلت انت .


while(palin[arrrrt] != '\0')
{
cout<<palin[arrrrt];

arrrrt++;

}

لانها حلقه تكرار وحتى تقدر تفحص حرف حرف لحسابهم ومن ثم تصل الى
!= '\0' وتتوقف الحلقه بما انها فراغ




اما اذا كتبت الامر مباشره

PHP]cout<<palin ];

arrrrt++; [/PHP]


راح يعد عدد الاسطر وليس الحروف >>> اتوقع اني ما فهمت عليك , عذرا



بتوفيق والسلام

روح سامية
08-03-2012, 11:03
مرحبا
يبدو أن هناك سوء تفاهم ، ما قمت به هو طباعة الأحرف واحدا واحدا في الحلقة فأنا قلت لك أن من الأسهل طباعة المصفوفة كاملة في أمر واحد خارج الحلقة

مع ذلك لم يطلب السؤال طباعة الصفوفة بل طلب فقط حساب عدد الأحرف ، في هذا السؤال أريدك فقط طباعة عدد الأحرف و لا شيء آخر

تحياتي
روح سامية

R I U Z A K I
08-03-2012, 11:37
تسلم على الدرس^^

روح سامية
08-03-2012, 11:47
أهلا بكم في الدرس و نحن بالخدمة :)

ahmadz
09-03-2012, 08:55
مرحبا
يبدو أن هناك سوء تفاهم ، ما قمت به هو طباعة الأحرف واحدا واحدا في الحلقة فأنا قلت لك أن من الأسهل طباعة المصفوفة كاملة في أمر واحد خارج الحلقة

مع ذلك لم يطلب السؤال طباعة الصفوفة بل طلب فقط حساب عدد الأحرف ، في هذا السؤال أريدك فقط طباعة عدد الأحرف و لا شيء آخر

تحياتي
روح سامية


اهلا اخي العزيز

بعد مراجعه جميع الردود مع هذا الرد فهمت المقصود ^^



#include<iostream>
using namespace std;
void ahmadz( char );

int main()
{

char t;
char palin[50]="";
cin >> palin;

int arrrrt = 0;


while(palin[arrrrt] != '\0')
{



arrrrt++;

}

cout<<endl<<endl;
cout<<palin;

cout<<endl<<endl;
cout<<arrrrt;

cout<<endl<<endl;
ahmadz(t);

return 0;


}


void ahmadz(char i)
{
char palin[]="shift";
int arrrrt = 0;

while(palin[arrrrt] != '\0')
{

arrrrt++;
}
cout<<endl<<endl;
cout<<palin;

cout<<endl<<endl;
cout<<arrrrt;

cout<<endl<<endl;


}


كل هذا الوقت وانت تتكلم عن هذا الشرط


cout<<palin[arrrrt];

بان اغيره الى
cout<<palin


دون فحص حرف حرف فيه !!! وكتابته خارج الحلقه



شكرا لك على وقتك


واتمنى اني ما خطأت مره اخرى ^_^



بتوفيق والسلام

روح سامية
09-03-2012, 10:36
مرحبا
نعم كان هذا بالضبط ما أقصده
في النهاية أذكرك أنك نسيت الدالة ahmadz ، لقد وضعتها للاختبار أليس كذلك ؟
الآن بما أن البرنامج يعمل فلا داعي لوجودها
أخيرا من الجميل أن تتعود على البرامج التي تعطي مخرجات جميلة مثل الجداول و ما شاكل ، لكن أيضا من الجميل أن تتعود على البرامج التي تعطيك النتيجة بدون أي ترتيب
مثلا هذا نفس برنامجك بعد بعض التعديل :

#include<iostream>
using namespace std;

int main()
{
char t;
char palin[50]="";
cin >> palin;

int arrrrt = 0;

while(palin[arrrrt] != '\0')
{



arrrrt++;

}
cout<<arrrrt;

return 0;
}
لاحظ أنني حذفت كل الاسطر الجديدة و لا يوجد إلا أمر طباعة واحد فقط و هو طباعة عدد أحرف الكلمة
نستطيع أن نعدل البرنامج ليأخذ أكثر من كلمة و نطبع عدد أحرف كل كلمة و بين كل رقم و رقم مسافة واحدة فقط ، إذا كتبت برنامجا كهذا ستجد أن المخرجات صعبة القراءة (أرقام كثيرة على الشاشة تشوش من ينظر إليها) ، مع ذلك أحيانا يكون هذا مفيدا جدا ، ربما لاحقا نحاول الاستفادة من برنامج كهذا

إن أردت أن تعدل أكثر في البرنامج فلا بأس و إلا فنحن بانتظارك في الدرس الجديد :)

تحياتي
روح سامية

ahmadz
09-03-2012, 12:37
مرحبا
نعم كان هذا بالضبط ما أقصده
في النهاية أذكرك أنك نسيت الدالة ahmadz ، لقد وضعتها للاختبار أليس كذلك ؟
الآن بما أن البرنامج يعمل فلا داعي لوجودها
أخيرا من الجميل أن تتعود على البرامج التي تعطي مخرجات جميلة مثل الجداول و ما شاكل ، لكن أيضا من الجميل أن تتعود على البرامج التي تعطيك النتيجة بدون أي ترتيب
مثلا هذا نفس برنامجك بعد بعض التعديل :

#include<iostream>
using namespace std;

int main()
{
char t;
char palin[50]="";
cin >> palin;

int arrrrt = 0;

while(palin[arrrrt] != '\0')
{



arrrrt++;

}
cout<<arrrrt;

return 0;
}
لاحظ أنني حذفت كل الاسطر الجديدة و لا يوجد إلا أمر طباعة واحد فقط و هو طباعة عدد أحرف الكلمة
نستطيع أن نعدل البرنامج ليأخذ أكثر من كلمة و نطبع عدد أحرف كل كلمة و بين كل رقم و رقم مسافة واحدة فقط ، إذا كتبت برنامجا كهذا ستجد أن المخرجات صعبة القراءة (أرقام كثيرة على الشاشة تشوش من ينظر إليها) ، مع ذلك أحيانا يكون هذا مفيدا جدا ، ربما لاحقا نحاول الاستفادة من برنامج كهذا

إن أردت أن تعدل أكثر في البرنامج فلا بأس و إلا فنحن بانتظارك في الدرس الجديد :)

تحياتي
روح سامية

انا كتبت هذا البرنامج


#include<iostream>
using namespace std;
void ahmadz( char );

int main()
{

char t;
char palin[50]="";
cin >> palin;

int arrrrt = 0;


while(palin[arrrrt] != '\0')
{



arrrrt++;

}

cout<<endl<<endl;
cout<<palin;

cout<<endl<<endl;
cout<<arrrrt;

cout<<endl<<endl;
ahmadz(t);

return 0;


}


void ahmadz(char i)
{
char palin[]="shift";
int arrrrt = 0;

while(palin[arrrrt] != '\0')
{

arrrrt++;
}
cout<<endl<<endl;
cout<<palin;

cout<<endl<<endl;
cout<<arrrrt;

cout<<endl<<endl;


}

لاني ظننت انه المطلوب >>> السؤال يقول


اكتب برنامجا يحسب عدد الرموز في عباره نصيه مخزنه وهذا هي داله ahmadz لاني خزنت فيها shift


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

اصبح شكل البرنامج جميل وصغير جدا >>> مع اني احب التعقيد اذا كنت راح اصير مبرمج محترف






إن أردت أن تعدل أكثر في البرنامج فلا بأس و إلا فنحن بانتظارك في الدرس الجديد

المحاولات الي جربتها ^_^



سويت اول طريقه ولكنها طويله وبدون فائده


#include<iostream>
using namespace std;

void ahmadz(char);
void ahmadz2 (char );

int main()
{

char t;
ahmadz(t);

cout<<endl<<endl;

ahmadz2(t);

cout<<endl<<endl<<endl;
return 0;
}

void ahmadz (char )
{

char palin[50]="";
cin >> palin;

int arrrrt = 0;

while(palin[arrrrt] != '\0')
{



arrrrt++;

}
cout<<arrrrt;


}

void ahmadz2 (char )
{

char palin[50]="";
cin >> palin;

int arrrrt = 0;

while(palin[arrrrt] != '\0')
{



arrrrt++;

}
cout<<arrrrt;


}







حاولت اجرب مره اخرى وبطريقه اخرى


#include<iostream>
using namespace std;

int main()
{
char palin[50]="";
cin >> palin;

char palin2[50]="";
cin >> palin2;

int arrrrt,arrrrt2 = 0;

while(palin,palin2[arrrrt,arrrrt2] != '\0')
{



arrrrt++;
arrrrt2++;

}
cout<<arrrrt;
cout << arrrrt2;
return 0;
}


ومن ثم عدلت البرنامج اكثر


#include<iostream>
using namespace std;

int main()
{
char palin[50]="";
cin >> palin;

char palin2[50]="";
cin >> palin2;

int arrrrt = 0;
int arrrrt2 = 0;

while((palin[arrrrt],palin2[arrrrt2] )!= '\0')
{
arrrrt++[palin];
arrrrt2++[palin2];

}
cout<<arrrrt;
cout << arrrrt2;
return 0;
}


اصبحو الاثنين ياخذو نفس القيمه وهي اخر قيمه مدخله

واذا اردت اضاف while اخرى لكل كلمه فاظن اني ما راح استفيد شي راح اسوي نفس البرنامج الاول هل هناك طريقه ما ^^


واخيرا شكر لك على وقتك وجهدك وما قصرت


بتوفيق والسلام

ahmadz
13-03-2012, 12:15
مرحبا اخي العزيز وعذرا على التاخر

تم عمل البرنامج ولكن هناك اخطاء


#include<iostream>
using namespace std;

int main()
{
char palin[50]="";



for (int i=0; i<2; i++)
{
cout<<"enter studeh "<<endl;
cin >> palin[i];

}

int arrrrt = 0;

for (int i=0; i<2; i++){

if (palin[arrrrt] !='\0'){

arrrrt++;
}

}







cout<<arrrrt;

return 0;
}


اصبح يطبع جملتين ولكنه يحسب كل الجمل وليس كل واحده على حدى



بتوفيق والسلام

zoom-20
20-03-2012, 19:46
السلام عليكم

لي فترة طويلة متغيبة على الدروس>_<
لقد قرأت الدروس الماضية وإستوعبت الدروس ولكن لا أعتقد أني لا أستطيع كتابة برنامج لحالي ^^"

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


#include<iostream>
#include<sstream>
using namespace std;

char sentence[]="";
int main (){
int i;
cout<<"How many Character in the word you went to enter?";
cin>>i;


}



يبدوا ان حالتي صعبة ^^

ahmadz
22-03-2012, 20:04
السلام عليكم

لي فترة طويلة متغيبة على الدروس>_<
لقد قرأت الدروس الماضية وإستوعبت الدروس ولكن لا أعتقد أني لا أستطيع كتابة برنامج لحالي ^^"

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


#include<iostream>
#include<sstream>
using namespace std;

char sentence[]="";
int main (){
int i;
cout<<"How many Character in the word you went to enter?";
cin>>i;


}



يبدوا ان حالتي صعبة ^^

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

من الجيد ان اجد شخص بمثل حالتي لانه يرفع من معنوياتي >>>>>> "لست الوحيد الذي اعاني "

بتوفيق والسلام

Xeno.opus
20-05-2012, 19:42
مشكوور اخي بس مافي دورات سي شارب