1_محمد
2- 18
3- رابعة ثانوي
4-والله أحب أتعلم هاللغة كثقافة وحب في التعلم
5- إن شاء الله اكمل معاك.
1_محمد
2- 18
3- رابعة ثانوي
4-والله أحب أتعلم هاللغة كثقافة وحب في التعلم
5- إن شاء الله اكمل معاك.
اسمي :زيد
عمري : 16
اول ثانوي
انا متوسط بالفيجوال بيسك
بس علمت ان السي ++ اقوى وانا الآن اتعلمها
انشاء الله اتابع معاكم
اقتباس:
المشاركة الأصلية كتبت بواسطة Night_3
بالنسبة للحل أخي Night_3 :شرح الحل :
هذا هو الحل الذي كتبته و الموجود في الصورة في الرد الذي شرحت لك الإجابة فيه .. و لكنه كما قلت أنت أنه لم يعالج مشكلة عدم كتابة الرموز و الأشكال و الأرقام .. لذلك سأضع هذا الحل و سأشرحه ثم سأعطيك الحل الآخر و الذي يعالج تلك المشكلة :
كود:#include <iostream.h>
#include <string.h>
void main()
{
char s[100];
cout << "Enter a Sentence :\n";
cin.getline(s, 100);
for(int i=0; i<strlen(s); i++)
{
if( s[i]==100 && s[i+1]==111 && s[i+2]==105 && s[i+3]==116 )
{
for(int j=0; j<i; j++)
cout << s[j];
cout << endl;
break;
}
}
}
1 – المكتبة ( string.h ) من أجل الدالة ( strlen ) و التي سنستخدمها لكي نحدد عدد المحارف المكتوبة و الموجودة في المصفوفة ( s ) .. و لقد شرحت هذه الدالة أكثر في درس المصفوفات لذلك أنصحك بالرجوع إليه .
2 – في التابع main : قمنا بتعريف المصفوفة ( s ) و هي تتسع لمائة محرف .. و هذه المصفوفة سيتم تخزين فيها الأحرف المدخلة من قبل المستخدم .. و من ثم استخدمنا cin.getline لكي نخزن جميع السطر المكتوب داخل المصفوفة ( s ) .. و أيضاً شرحت هذه الفقرة في درس المصفوفات .
3 – الأن نحن نريد اختبار وجود الكلمة ( doit ) داخل المصفوفة .. لذلك علينا اختبار جميع الأحرف الموجودة بداخل تلك المصفوفة .. و بالتالي سنحتاج إلى حلقة for للتنقل بين قيم المصفوفة ( s ) .. إذا عرفنا الأن فائدة الحلقة الأولى .. و لاحظ أيضاً كيف استخدمنا الدالة ( strlen ) لتحديد القيمة النهائية في هذه الحلقة .. حيث أننا نريد فقط القيم المدخلة و لا نريد حجم المصفوفة كله ( 100 ) .
4 – داخل الحلقة for : قلنا أننا سنختبر وجود الكلمة ( doit ) لذلك علينا وضع شرط ( if ) .. و لكن ماذا سيكون ذلك الشرط ؟ سنستخدم جدول الآسكي كما قلت لك من أجل التسهيل .. بحيث يمكن ذلك عن طريق معرفة الرمز المقابل في الآسكي لكل حرف من أحرف الكلمة ( doit ) .. و هي كالتالي :
الحرف ( d ) يقابله في الآسكي العدد 100 .
الحرف ( o ) يقابله في الآسكي العدد 111 .
الحرف ( i ) يقابله في الآسكي العدد 105 .
الحرف ( t ) يقابله في الآسكي العدد 116 .
ملاحظة / راجع مفهوم نظام الترميز ASCII و كيفية استخدامه لحل الكثير من المسائل في درس المصفوفات أيضاً .
الأن أصبح الشرط سهلاً مع ملاحظة استخدام الأدلة ( i ) و ( i+1 ) و ( i+2 ) و ( i+3 ) من أجل تحديد أماكن وجود تلك الأحرف في المصفوفة ( s ) .
5 – الأن إذا تحقق الشرط نكون قد وجدنا الكلمة ( doit ) .. لذلك كل معلينا الأن هو طباعة جميع الأحرف التي تسبق تلك الكلمة .. لذلك سنحتاج إلى حلقة for أخرى لكي تطبع لنا تلك الأحرف .. و سيكون دليل البداية لتلك الحلقة هو الصفر و النهاية سيكون الدليل ( i ) !!! لماذا ؟ لأننا من خلال الشرط السابق اكتشفنا أن الكلمة ( doit ) موجودة عند الدليل ( i ) .. و نحن نريد طباعة الأحرف إلى أن نجد تلك الكلمة .. و داخل الحلقة طبعاً سنطبع الأحرف المطلوبة ..
6 – ما زلنا الأن داخل الشرط ( أي أننا حددنا موقع الكلمة doit ) .. لذلك سنقوم بالنزول سطراً جديداً ثم سنخرج من الحلقة عن طريق ( break ) و ذلك لأننا لا نريد اختبار باقي القيم حيث أننا وجدنا الكلمة المطلوبة .
الأن بالنسبة لتطوير هذا الحل إلى حل أفضل يقوم بطباعة الأحرف الأبجدية فقط و التي تسبق الكلمة ( doit ) .. سنستخدم لذلك الدالة ( isalpha ) و أيضاً شرحت استخدامها في درس المصفوفات و هي تستخدم لاختبار فيما إذا كان الوسيط المرسل لها حرفاً أبجدياً أم لا .. و هذه الدالة تحتاج إلى المكتبة ( ctype.h ) .. شاهد الحل و من ثم سأشرحه ( فقط أضفنا شيئاً صغيراً على الحل السابق ) :
شرح الحل :كود:#include <iostream.h>
#include <ctype.h>
#include <string.h>
void main()
{
char s[100];
cout << "Enter a Sentence :\n";
cin.getline(s, 100);
for(int i=0; i<strlen(s); i++)
{
if( s[i]==100 && s[i+1]==111 && s[i+2]==105 && s[i+3]==116 )
{
for(int j=0; j<i; j++)
if( isalpha(s[j]) )
cout << s[j];
else
cout << " ";
cout << endl;
break;
}
}
}
1 – لاحظ أن مشكلتنا هي أثناء الطباعة حيث أننا نريد طباعة الأحرف الأبجدية فقط .. لذلك سنتجه فوراً إلى الكود الخاص بذلك و هو موجود في داخل الحلقة الثانية .
2 – هنا سنطور الكود إلى التالي : إذا كانت القيمة حرفاً أبجدياً فسنطبعه و إلا فسنطبع بدلاً منه الفراغ .. و بهذه الطريقة ستظهر الجملة خالية تماماً من أي رموز أو أرقام .
أرجو أن يكون الحل واضح و آمل أن يكون هو الذي تريد .. بالتوفيق
و أرحب بجميع المشتركين الجدد ..
القائمة :
1- son of Qatar .
2 - habash1986 .
3 - Son Of UAE .
4 - SONIC4ANIME .
5 - asf4ever .
6 - ^عبدالعزيز..ع^ .
7 - kokekemo .
8 - UAE Naruto .
9 - عنان 2005 .
10- ستو كايبا .
11 - Imaj .
12 - banan 86 .
13 - عبدالله..ع .
14 - the unforgiven .
15 - الرقمي .
16 - رنجوجيت .
17 - BoWalaaad .
18 - IWANTYOURHELP .
19 - yaser_xp .
20 - Night_3 .
21 - SomeABD .
22 - هاني الفقي .
23 - XxmanX .
24 - drbmsh .
25 - flent10 .
26 - ThE* DaRk *SiDe .
27 - TheMafia .
28 - samate .
29 - ماارياا .
30 - xdetective90 .
31 - IGI2000 .
السلام عليكم
شكا لك يا أخ Wolf Sniper
لقد استفدت من حلك كثيرا
لكنك لم تفهم المقصود بسؤالي الثاني
سأبعث لك التوضيح على الخاص
اعذرني على ذلك
و السلام
السلام عليكم ورحمة الله
صراحة مجهود جبار للأخ الفاضلWolf Sniper ,,
أريد اللحاق بركبكم,,صحيح أني جئت متأخر ,, لكني كنت متابعا لكم أولا بأول خاصة واني ادرس هذه المبادئ حاليا ,,ولاأخفيك اخي Wolf Sniper أني استفدت منك أكثر بكثيييييييير مما أتلقاه من أساتذتي
اتمنى تكملة دروس المؤشرات بأسرع وقت ممكن
***ملاحظة::ربما أكون تلميذا كسولا;) بعض الشيء لكثرة امتحاناتنا,,فأرجو تقدير ذلك ,,,,
الموضوع ده جامد اوي يا مان انا كان نفسي من زمان اتعلم لغة السي ++ .... جزاك الله كل خير
أشكر جميع الإخوان الذين قاموا بالرد :) و جميع ما أخبرتموني به قد أسعدني كثيراً و أن الدروس قد أفادتكم و هذا هو المطلوب ..
بالنسبة لبقية درس المؤشرات فيبدو أني لن أستطيع أن أكمله في الوقت الراهن و ذلك لانشغالي بالدراسة من أجل الامتحانات .. لذلك سنكمل الدروس بعدها فوراً .. و ذلك بعد حوالي شهرين من الأن .. و أعتذر من الجميع و لمن كان يريد الاسراع في تنزيل درس المؤشرات لأنه جائتني الكثير من الرسائل بطلب إنزال الدرس بأسرع وقت ممكن و لكن ليس لدي قدرة على ذلك ..
و الحمدلله لقد وصلنا في كتابة الدروس إلى حوالي 100 صفحة و ذلك في 4 أشهر .. و هذا متعب فعلاً .. فأرجو أن تراعوا أن كتابة أي صفحة جديد تستغرق وقت كبير مني و ذلك لمراجعتها و التأكد من عدم وجود أخطاء منطقية أو برمجية فيها .. لذلك فمن الصعب علي أن أكتب أي صفحة جديدة .. لأن ذلك سيؤثر على دراستي .. و شكراً
السلام عليكم ان شاء الله تقبلوني معكم وانا راح اكون من المتابعين جدا لدروسكم والله يعينكم على الاسئله بس حبيت اعرف اذا قلبتوني معكم اخذ اي اصدر للغة سي علشان امشي مكم صح
ان شاء الله تقبلوني معكم
اقتباس:
المشاركة الأصلية كتبت بواسطة جوردا
أهلاً بك أخي ..
يرجى قراءة أول رد لي في هذا الموضوع لمعرفة التفاصيل أكثر و لمعرفة كيفية التسجيل .. و بالنسبة للبرنامج فستجده في الصفحة الثالثة في الرد رقم 36 من هذا الموضوع أيضاً .
السلام عليكم ورحمة الله وبركاتة
اشكرك من اعماق قلبي ....فعلاااا شروح ودروس رااائعه مبدع تستحق الشكر
اذا كان باب التسجيل مفتوح فانا سأكون معكم علما باني قد قرأت اكثر الدروس وطبقتها ..
الاسم / عبدالعزيز
العمر / 23
لغة اوراكل ولي فتره ادرس السي
طبعا ادرس الجامعة لغة انجليزي :D
بس تقدر تقول هاوي كمبيوتر واخص البرمجة
اقتباس:
المشاركة الأصلية كتبت بواسطة swsws
العفو أخي الكريم و هذا واجبنا :) و بالتأكيد تستطيع التسجيل ..
القائمة :
1- son of Qatar .
2 - habash1986 .
3 - Son Of UAE .
4 - SONIC4ANIME .
5 - asf4ever .
6 - ^عبدالعزيز..ع^ .
7 - kokekemo .
8 - UAE Naruto .
9 - عنان 2005 .
10- ستو كايبا .
11 - Imaj .
12 - banan 86 .
13 - عبدالله..ع .
14 - the unforgiven .
15 - الرقمي .
16 - رنجوجيت .
17 - BoWalaaad .
18 - IWANTYOURHELP .
19 - yaser_xp .
20 - Night_3 .
21 - SomeABD .
22 - هاني الفقي .
23 - XxmanX .
24 - drbmsh .
25 - flent10 .
26 - ThE* DaRk *SiDe .
27 - TheMafia .
28 - samate .
29 - ماارياا .
30 - xdetective90 .
31 - IGI2000 .
32 - swsws .
السلام عليكم
شكرا لك يا أخي
لدي طلب بسيط
هل يمكنك أن تضع لنا العديد من التمارين لنتدرب على انجازها ؟
20 تمرين مثلا :bigeyes:
أرجووووووووووووووووووووووك
شكرا لك مقدما
و السلام
السلام عليكم ...................
آه توي عارف عن هذا الموضوع لكن للأسف مع نهاية الكورس
على العموم انا عند خلفية عن السي و انا قريب أخلص كورس فيها
و إنشالله أتعاون معاكم :)
السلام عليكم ورحمة الله وبركاته
اسف على التأخر الكبير الذي كان سببه أعطال في جهازي.
اخي لدي مسألتين :
1) لماذا أستخدمنا الأقوس الملونة بالأحمر حيث أن الأمر cout سوف ينفذ مع الأمر reae()؟
2) في المثال الثاني في الدرس الخامس عندما نرجع القيمة فأنها تعود إلى السطر البرمجي"read();" ثم يبدأ المترجم بقرائة السطر البرمجي"cout<<X;" بعد قرائة هذا السطر هل ستعود القيم عن طريق السطر البرمجي"cout<<X;" أم لا؟اقتباس:
#include <iostream.h>
void read()
{
char x;
cin >> x;
if( x != '.' )
{
read();
cout << x;
}
}
void main()
{
cout << "Enter a Sentence : ";
read();
cout << endl << endl;
}
3) في المثال الرابع في الدرس الخامس لماذا استخدمنا "f*=i" ولم نستخد "f=f*i" هل هي أختصار ؟
وشكرا أخي^^
في الحقيقة لقد وضعت معظم الأسئلة و التمارين التي أعرفها في الدروس .. و ليس لدي حالياً تمارين جديدة .. و لكني أتذكر سؤالاً طرح على بعض الشباب و لكني لم أحاول حله و هو كالتالي :اقتباس:
المشاركة الأصلية كتبت بواسطة Night_3
المطلوب كتابة برنامج يقوم بقراءة عدد ما على شكل أرقام و من ثم يطبع نفس الرقم و لكن على شكل أحرف أبجدية .. و الأعداد المطلوبة هي من 1 إلى 1000 .
مثال :إذا أدخل المستخدم الرقم ( 1 ) فنكتب له ( one ) و هكذا ...
و لكن إذا أدخل المستخدم عدد أكبر من 1000 فسوف نرفضه للشرط السابق .
اقتباس:
المشاركة الأصلية كتبت بواسطة Super Boy
أرحب بك و أتمنى أن تستفيد من الدروس ..
1 - لقد وضعت القوسين لأني أريد أن أنفذ تعليمتين إذا تحقق الشرط .. أما إذا أردنا تنفيذ التعليمة الأولى فقط فحينها لا نحتاج إلى تلك الأقواس ( راجع الدرس الثاني فقرة عبارة الشرط if ) .. و بالنسبة لصحة الحل عند إزالة الأقواس فالحل يبقى صحيح و لكن ما الفرق بين النتيجتين ؟اقتباس:
المشاركة الأصلية كتبت بواسطة ThE* DaRk *SiDe
في الحل الأول لن يتم طباعة النقطة بينما في الحل الثاني ( بدون استخدام الأقواس ) سوف تطبع النقطة .
2 - هنا لا توجد قيمة معادة لأن التابع من النوع void .. و هذا النوع لا يعيد قيمة .. و من خلال cout << x سيتم طباعة الحرف الخاص بكل استدعاء و بشكل عكسي و هو المطلوب ..
3 - نعم هي كذلك .. راجع الدرس الأول فقرة العمليات .
:: تنبيه بسيط ::
يا شباب أنا مشغول جداً في الفترة الحالية بسبب الامتحانات .. و قد كان توقفي عن الدروس الشهر الماضي بسبب ذلك حيث أني كنت أحضر لها .. و الأن سوف تبدأ الامتحانات الجامعية عندنا يوم السبت 28 / 5 و ستستمر لمدة شهر لذلك ستكون ردودي قليلة جداً ( هذا إن استطعت الرد :33: ) و لقد كانت ردودي كذلك في الفترة الماضية .. و شكراً
السلام عليكم ورحمة الله وبركاته
هاذا أنا مـــــــولود جــــــديد بلغة C++6 الإصدارة السادسة ، أرجو أن تتقبلوني عضوآ مشاركآ معكم ومتابعآ لدروسكم، وأتأسف لحضوري المتأخر
تحيات أخوكم الهاتف *
أنا إن شاء معاكم في الدوره
بارك الله فيك يا أخي وأنعم عليك وجعله في ميزان حسناتك
السلام عليكم ورحمة الله وبركاته
جزاك الله خيرا اخوي لما تقدمه لنا بصراحة جهد كبير والله يزيد ويبارك لك في علمك وعمرك
استاذ العزيز الحقني :( :( مااعرف ولا شيء عن البرمجة واخذت كورس البرمجة بالمدرسة بصعوبة حتى حصلت عليه واليوم كانت او درس لي بصراحة مافهمت ولا شيء منه :( اكبر غلط سويته اخترت هذا الدرس
البرمجة C++
والعمل هو على برنامج Microsoft Visual c++ standard Edition
هل هو نفس برنامج Microsoft Visual Basic 6.0 Pro Edition+Enterpris لان انا عن حملت هذا البرنامج من قبل ؟؟؟؟؟؟؟؟؟؟؟؟؟؟
يا اخوي يااستاذ العزيز الا مااقدر ابدل الكورس لان كانت عندي كورس اخر و غيرته الى المبيوتر فرع البرمجة الان فات الاوان :( :( :( :(
كيف ابدء؟؟؟؟؟ هل اقدر اتعلم البرمجمة برايك :( :( الله يخليك ساعدني ساعدك الله في يوم لامال ولا بنون
اعطاني مجموعة تمارين لاكن كله رياضات !!!!!
انشاء الله احاول ترجمت التمارين الى العربية لانه باللغة السويدية
اخي العزيز اي برنامج انزل المطلوب مني كما قلت برنامج Microsoft Visual c++ standard Edition
وانا عندي ونصبت من قبل برنامج Microsoft Visual Basic 6.0 Pro Edition+Enterpris في الكمبيوتر مالتي
واليوم الي شرحه الستاذ البرمجة الي فهمته درسه كانت كيف نقوم بتقسيم البرامج الى عدة اقسام
وهو كتبت مجموعة اشياء مثل
حبي الستاذ الدراسة هنا بالسويد مايعلونك ولا شيء لازم واحد بنفسه يقرء كتب او يعرف واحد يساعدهكود:
# include <iostrem.h>
double sumera (duble a, double b);
int main ( )
{
cout<<" اكتب عددين ";
double عدد 1;
double عدد 2;
cin>>عدد 1;
cin>>عدد 1;
double المجموع;
ومجموعة اكواد اخر.... والله مفهم منه ولا شيء
كيف اكتب هذه الشياء وا هو المقصود من الدرس ؟؟؟؟؟؟؟؟
خليني على الطريك سهل الله لك طريقا الى الجنة
بانتظار كرمك يااستاذ اضفني الى قائمة اذا قبلت ان اكون احد تلاميذك
مع جزيل الشكر
:02: :أفكر: :(
اقتباس:
المشاركة الأصلية كتبت بواسطة alhatif
أرحب بك أخي الكريم معنا .. و أتمنى أن تستفيد مما هو موجود حتى الأن من الدروس :) .. و أرجو تسجيل قائمتك كباقي الأعضاء لأخذ بعض المعلومات عنك لكي نتعرف عليك أكثر ;)
اقتباس:
المشاركة الأصلية كتبت بواسطة islamtiger
وفيك بارك الله .. أرجو أن تكون الدروس مفيدة بالنسبة لك .. و أرجو أن تقوم بتسجيل قائمتك لأخذ بعض المعلومات عنك ليس إلا :)
اقتباس:
المشاركة الأصلية كتبت بواسطة saqr
أولاً أعتذر عن التأخر في الرد و ذلك بسبب الامتحانات كما قلت سابقاً ( انظر ردي الأخير ) ..
بالنسبة للإصدارات البرنامج ( Standard + Enterprise ) .. الاثنين نفس الشيء ما عدا بعض الفروق البسيطة التي ليست مهمة كثيراً ..
و بالنسبة لموضوع دراستك للبرمجة .. صدقني الأمر ليس صعباً أبداً .. البرمجة كالرياضيات المبسطة حيث أنها تحتوي على قيود يجب الالتزام بها ( كشكل كتابة الدوال و البرامج و الأوامر .. إلخ ) .. و أيضاً تمنحك البرمجة القدر على صنع ما تريده من أشكال البرامج المتنوعة ( كقواعد البيانات أو الألعاب أو البرامج التعليمية أو الخدمية و ما إلى ذلك ) .. يعني بشكل مختصر سوف تستفيد إن شاء الله من دراستك للبرمجة .. و صدقني معظم أفكار البرمجة تأتي حول كيفية حل مشكلة معينة و تحويلها إلى برنامج على الحاسب .. مثلاً : اكتب برنامج يقوم بحساب مساحة مثلث إذا قمنا بإعطائه المعلومات التي يحتاجها .. و هكذا .
حاول قراءة أول الموضوع في الصفحة الأولى .. فقد كتبت مقدمة عن البرمجة أتمنى أن تعجبك ..
و بالنسبة للبرنامج الذي وضعته .. فهو جداً بسيط .. لقد شرحت أغلب مواضيع أساسيات البرمجة في هذه الدروس يعني كل شيء مشروح .. و موضوع الدروس موجود في المواضيع المثبتة في هذا المنتدى .. اقرأ أمثلة الدرس الأول و الثاني من أجل الشرح بالإضافة إلى درس التوابع ..
أتمنى أن تستفيد معنا .. و شكراً :)
:: بالنسبة لإكمال الدروس ::
إخواني الكرام أنا حالياً انتهيت أخيراً مما يسمى الامتحانات :biggthump ( دائماً نتأخر عن باقي الدول :p ) .. و لكني أحتاج لبعض الراحة لأن ضغط الامتحانات أتعبني فعلاً و ليس لدي رغبة في كتابة أي درس .. لذلك في القريب العاجل إن شاء الله سأكمل الدروس لأني راغب في إكمالها .. و الله الموفق ..