
المشاركة الأصلية كتبت بواسطة Night_3
لقد استوعبت طريقة رسم الاطارات
كل ما أريده الآن هو أن تشرح لي كيفية الكتابة داخل تلك الاطارات اذا أمكن
لم أفهم طلبك .. هل تقصد رسم المستطيل الفارغ في المثال السادس في الدرس الثالث ؟
إذا كان كذلك فكل ما عليك فعله هو إضافة أماكن النجوم ( السطر و العمود ) في الشرط فقط كما فعلنا في نفس المثال .. فمثلاً إذا كنت تريد رسم نفس المستطيل الفارغ مع إضافة خط مائل بداخله من اليسار إلى اليمين ( قطر ثانوي ) ما عليك إلا إضافة التالي في الشرط :
كود:
if( i==1 || i==10 || j==1 || j==10 || i==j )
و سيظهر الشكل التالي :
أتمنى أن يكون هذا هو الحل لسؤالك ..

المشاركة الأصلية كتبت بواسطة ThE* DaRk *SiDe
أخوي عندي أسئلة.
الأول:في المثال الثاني وكذلك الثالث في الدرس الثالث.
أنت ذكرت أن هناك ثلاث متغيرات هي (a,avr,sum)
لكنك في هذه الجملة أضفت المتغير i
كود:
#include <iostream.h>
void main()
{
int a, sum=0;
float avr;
for( int i=1; i<=10; i++ )
{
cout << "Enter a Number " << i << " : ";
cin >> a;
sum = sum + a;
}
cout << "Sum = " << sum << endl;
avr = (float)sum / 10;
cout << "Avr = " << avr << endl;
}
لماذا لم تعده مع المتغيرات في مناقشة الحل ؟هل لإنه ليس متغير؟
الثاني:في المثال الثالث من الدرس الثالث ..لو فرضنا أن المستخدم أدخل هذه الأعداد بترتيب 3 1 2 6 4 5 9 7 8 فإنه سوف يفرض قيمة maxوmin هي (3) لكن عملية التكرار حين تصل إلى العدد(6) سوف يكون ستة الأكبر وسوف تفرض قيمته لكن وسوف يتوقف الإختبار إلى العدد 6، السؤال هنا (أذا كان هناك بين العدد الأكبر والقيمة المفترضه الأولى عدد أكبر من القيمة المفترضه الأولى فكيف سوف تختبر قيمة العدد الأكبر هل يعني أنه ستمحى قيمة 6 ويوضع قيمة 9 أم ماذا)
كود:
#include <iostream.h>
void main()
{
int a, max, min;
cout << "Enter the Number 1 : ";
cin >> a;
max = a;
min = a;
for( int i=2; i<=10; i++ )
{
cout << "Enter the Number " << i << " : ";
cin >> a;
if( a > max ) max = a;
if( a < min ) min = a;
}
cout << "Max = " << max << endl;
cout << "Min = " << min << endl;
}
في المثال الخامس(رسم الأشكل)
أنا فهمت كل شيء ما عدا (لماذا لم تتم عملية التكرار لسطر البرمجي( cout << endl; )في كل مره تتكرر حلقة إظهار النجوم رغم أنه داخل هذه الحلقه)
كود:
#include <iostream.h>
void main()
{
for( int i=5; i>=1; i-- )
{
for( int j=1; j<=i; j++ )
cout << "*";
cout << endl; }
}
أأسف أذا كانت الأسئلة معقدة .
أرحب بأسئلتك ..
السؤال الأول : قلنا سابقاً أن كل حلقة for تحتاج لمتغير للتكرار .. لذلك تغاضيت عن ذكر هذا المتغير لأننا يجب أن نعرف أن كل حلقة for تحتاج لذلك المتغير ..
و لكن أريد أن أزيد أنه ليس من الضروري تعريف متغير جديد للتكرار في حلقة أخرى بل نكتفي بذكر نفس المتغير السابق بشرط أن لا تكون تلك الحلقات متداخلة .. مثال :
كود:
for( int i=1; i<=10; i++ )
{
for( int j=1; j<=10; j++ )
if( i==1 || i==10 || j==1 || j==10 || i==j )
cout << "*";
else
cout << " ";
cout << endl;
}
for( i=1; i<=5; i++ )
cout << "Montada.Com" << endl;
استخدمنا حل المثال السادس و أضفنا عليه حلقة بسيطة تقوم بكتابة كلمة Montada.Com خمس مرات تحت شكل المستطيل .. و المهم هنا الحلقة الأخيرة التي أضفناها .. لاحظ كيف أننا لم نضع :
كود:
for( int i=1; i<=5; i++ )
بل وضعنا الحلقة على الشكل التالي :
كود:
for( i=1; i<=5; i++ )
سبب ذلك أننا في المرة الأولى عرفنا المتغير i .. و من الخطأ تعريفه مرة أخرى في برنامجك .
السؤال الثاني : نعم في كل مرة سنختبر فيما إذا كان العدد الجديد أكبر من max فإذا كان كذلك نمسح قيمة max السابقة و نضع العدد الجديد كقيمة له .. و في نهاية الحلقة سيكون max يحمل قيمة أكبر عدد و نفس الشيء بالنسبة لـ min .
السؤال الثالث : فائدة السطر :
هو أننا نريد رسم النجوم على أسطر و ليس على سطر واحد فقط .. احذف ذلك السطر من البرنامج و شاهد النتائج .. سترى أن النجوم كلها رسمت على سطر واحد و نحن نريد أن نرسم نفس الشكل الموجود في الصورة .
في ذلك المثال حاول أن تفهم أن الحلقة الثانية سترسم النجوم ( معتمدين على قيمة i المتغيرة في كل دورة ) .. و الحلقة الأولى ستعطينا ذلك التغير لـ i مع النزول سطر جديد عند الانتهاء من رسم كل مجموعة من النجوم .
أتمنى أن يكون الشرح واضح و الفكرة وصلت

.

المشاركة الأصلية كتبت بواسطة Imaj
الـstructures سهلة.. التعقيد يبدأ مع الـOOP..
الكائنات وبرمجتها هي معقدتني في الـ++C والجافا.. انتظر درسك حولها..
اصبر قليلاً و سترى ما يعجبك إن شاء الله
.. لأننا يجب أن ننتهي أولاً من بقية المواضيع ( انظر الفهرس ) .. فأنا ملتزم بانهاء المواضيع بالترتيب لأن كل موضوع جديد يعتمد على الذي قبله ..
فقط المسألة هي الوقت و الكائنات أصبحت قريبة .. و موضوع السجلات و المؤشرات مهمين و لكنهم ليسوا طويلين كبقية المواضيع التي عانيت بكثرة الكتابة فيها
..

المشاركة الأصلية كتبت بواسطة UAE Naruto
::
::
الصراحة...أنا انتظر شرح الـPointers لأن شرح الكتاب شوي معقد و أنا يكفيني التعقيد
انتظر الدرس الجديد بأحر من الجمر
::
::
أخي الكريم .. إن شاء الله سيكون درس المؤشرات بعد درس السجلات .. و على فكرة إن موضوع المؤشرات هو من أجمل و أمتع المواضيع التي درستها في البرمجة .. و إن شاء الله أوفق في تبسيطها لك و لكن علينا أولاً الانتهاء من درس السجلات و أنا الأن بصدد كتابته ..
موعدنا في الأسبوع القادم إن شاء الله و سأحاول قدر استطاعتي أن أنهي الدرس غداً السبت .. بالتوفيق للجميع .