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

تعلم وناقش وطبق لغه سي معي

مغلق
بدأه StUd_C في 23 يناير 2004 · 2 رد · 1,755 مشاهدة · في المواضيع والدروس
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اول شي حبيت افيدكم بها الدرس اللي سويته وهو درس تمهيدي للدخول في عالم سي الصراحه حبيت اطرح هالدرس مع ان فيه موضوع عن السي وملامحها التاريخيه موضوع حلو وملم بكل النوااحي بس انا هنا حبيت اطرح شي على طول يعني ماحاولت اكثر معلوماات وخاصه للي يبون يتعلمون يعني امش معي حبه حبه تمشي مضبوط حاولت اعطيك المختصر والمفيد بدون ماعبي راسك بكثره المعلوماات اللي تخليك تخاف من لغه سي :)

وماني رايح انزل الدروس كلها مره وحده راح امشي شوي شوي مع اللي يبي يتعلم واخر كل درس بحط سؤال وتنفذه على الكومبايلر حق السي وتجيب النتيجه لاحظت ان اغلب الدروس بس شرح مافيها شي عملي مافيها اسئله وتطبيقات وانا هنا حااولت اطبق هالشي إن شاء الله اكون قادر عليه :)

ابدا اول شي بمثال

اكتب خوارزميه تطبع hi بعدين حولها الى لغه سي ؟

طبعن كتابه الخوارزم اكيد عندكم خبره فيها وبعطيكم نبذه عنها :

1- الدائره البيضاويه = (النهايه والبدايه ).

2- مستطيل متوازي الاضلاع = ( همليات الادخال والاخراج )

3- المربع = ( عمليات الحسسابيه ).

4- المعين = (الشرط ).

5- دائره صغيره = ( حلقه وصل ).

ابدأ ---------> اطبع hi ------------> انهاء .

نكتبه بلغه سي :

الكود
main()
{ 
printf("hi");
}

ملا حظات:

1-

- هذا الكود لا يعمل 
main()
{ 

}

2-يمكننا كتابه الكود في سطر واحد لكن مانصح به عشان يكون هناك ترتيب في اقواس البدايه والنهايه يكون هيئة الكود افضل .

3-

-
main()
{ 
printf("hi 
mohammad");
}

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

ملحوظه :

التعليقات في لغه سي :

تكون التعليقات وهي سطور توضيحيه في سطور البرنامج ويجب كتابتها بين علامتين

/* her */

يمكن ان تكون سطر او اكثر .

في السطور السابقه عرفنا كيفيه كتابه كود في لغه سي الاشياء اللي يجب ان نعرفها هي كيفيه هيكل الكود في لغه سي وهو كالتالي

#include<stdio.h>
main()
{ 
هنا  تكتب الاوامر
}
  احفظ هذا الشكل جيدا.

ناخذ مثال بسيط اكتب خوارزميه تقرا عددين وتطبع مجموعهما ؟

تحليل السؤال :

المدخلات : a,b

المخرجات: sum=a+b

المعالجه :

a+b---------------> sum

1- اقرا a و b .

2- اجمع a وb .

3- اطبع المجموع sum

نكتبها بلغه سي :

الكود

#include<stdio.h>
main()
{ 
int a,b,sum;
scanf("%d%d",&a,&b);
sum=a+b;
printf("%d \n",sum);
return 0;
}

 شرح الكود 
#include<stdio.h> المكتبه اللي نحاتجها ضروري كتابتها
main() تعني البرنامج الرئيسي ضروري كتابتها
{ قوس بدايه الكود ضروري 
int a,b,sum; تعريف المتغيرات  وحجز خانات لها في الذاكره 
scanf("%d%d",&a,&b); قراءه الاعداد المدخله من المستخدم
sum=a+b; تنفيذ العمليه المطلوبه 
printf("%d \n",sum); طباعه المجموع 
return 0; انهاء البرنامج وارجاع قيمه 0
} قوس النهايه ضروري

اخذنا فكره بسيطه عن كتابه الكود وكيف شكله اهم شي تعرف كيف يبدا وكيف ينتهي .

الاخطاء في تركيب الجمل في لغه السي اذا سويت لها كومبايلر هناك خطئين :

1- خطا معنوي semantic error

2- خطا منطقي logic error

ملاحظات :

لو حطينا كذا

scanf("%d",&a);
scanf("%d",&b);
 هي نفسها
scanf("%d %d",&a,&b);

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

مثل

printf(" plees enter 2 nembrs:");
scanf("%d %d",&a,&b);

الحين ندخل في العمليات الرياضيه في لغغه السي

+ جمع , * ضرب ,- طرح ,/ قسمه , % باقي قسمه .

7/2-------------> 3 بدون باقي مع intger

1/2----------> 0

7%2---------------1

الحين فهمنا كيف القسمه وكيف باقي القسمه .

الاولويه في المعالجه :

1- بين الاقواس .

2- الضرب والقسمه وباقي القسمه .

3- الجمع والطرح .

4- الاككبر والاصغر (>,<)

البدايه تكون من اليسار الى اليمين .

إن شاء الله راح احط درس اليوم اليل عن جمله if وبعدها راح احط اسئله على اللي اخذنااه والصراحه انا عندي الاسئله اهم شي لو حليتها اعتبر نفسك مشيت في لغه السي :)

الكتب والملخصات اللي استعنت فيها ملخصات جامعيه لقيتها في الارشيف عندي وكتاب هااو تو تو سي بروجرام هذا الكتاب انصح به افضل كتاب في تعليم لغه السي بسهوله شرحه وكتابت اكواده ويحط اسئله وتطبيقات حلوه :)

اتمنى اكون افدتكم

وهذا رابط درس كيف تشغل الكومبايلر اذا احد يبيه :)

كيفيه تنصيب الكومبايلر للغه سي

#2

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

هناك دروس كثيرة للسي و هي تكفي و زيادة و الناقص هو دروس VC++ و الدوت نيت

لغة السي لوحدها شبه انقرضت يا أخي يبدو أنك تأخرت شوي

لا تزعل و لكت هذا هو الواقع !! أرجو أن تبذل جهدك بوضع دروس بغير هذه الطريقة لكي تعم الفائدة أكثر

و مشكور كتير على جهدك و لك جزيل الشكر

مدونتي

http://mbnoimi.net

#3

الدرس الثاني :

جمله if statement

تعني جمله شرطيه اي

if x>5 تحتمل اما الصواب او الخطا .

مثل اكتب الخوارزميه لطباعه ممتاز اذا كانت الدرجه المدخله اكبر من 50 ؟

المدخلات : الدرجه score

المخرجات : excellent

1- ابدا.

2- اقرا الدرجه score

3- تحقق من ان الدرجه اكبر من 50

4- اطبع الناتج .

5- انهاء

الكود بلغه سي :

#include<stdio.h>
main()
{
 int score; عرفنا الدرجه بانتيجر
printf(" please enter  you score "); نطلب من المستخدم ادخال الدرجه 
scanf("%d",&score); نحفظ الدرجه المدخله في العنوان المحدد لها
if ( score >= 50 ) نختبر الدرجه اذا هي اكبر  نطبع ممتاز اما اصغر فلا يطبع شي 
printf("excellent");
return 0;
}

ولكن الربنامج السابق اذا كانت الدرجه اقل فلا يططبع اي قيمه او اي كلمه فيجب ان نعلم المستخدم ان قيمته اصغر فنضيف لها else

فيكون الكود بهذه الطريقه

 
#include<stdio.h>
main()
{
 int score; عرفنا الدرجه بانتيجر
printf(" please enter  you score "); نطلب من المستخدم ادخال الدرجه 
scanf("%d",&score); نحفظ الدرجه المدخله في العنوان المحدد لها
if ( score >= 50 ) نختبر الدرجه اذا هي اكبر  نطبع ممتاز 
printf("excellent");
else printf(" you  score is bad"); اذا لم يتحقق الشرط فيطبع هذي 
return 0;

مثال اعمق شوي

اكتب برنامج يطبع اذا كانت الدرجه اكبر من 90 يطبع a

اما اذا كاانت اصغر من 90 واكبر من 80 فيطبع b

اما اذا كانت اصغر من 80 واكبر من 70 فيطبع c

هناك طريقتين للحل :

وسأأوضح ماهو الافضل بينهم

الكود الاول

#include<stdio.h>
main()
{
 int score; عرفنا الدرجه بانتيجر
printf(" please enter  you score "); نطلب من المستخدم ادخال الدرجه 
scanf("%d",&score); نحفظ الدرجه المدخله في العنوان المحدد لها
if ( score >= 90 )  
printf("a");
if ( score >= 80 && score < 90)  
printf("b");
if ( score >= 70 && score < 80 )  
printf("c");
if ( score < 70 ) printf("f");

return 0;
}

هنا فقط استخدمنا if بدون else

الكود الثاني

#include<stdio.h>
main()
{
 int score; عرفنا الدرجه بانتيجر
printf(" please enter  you score "); نطلب من المستخدم ادخال الدرجه 
scanf("%d",&score); نحفظ الدرجه المدخله في العنوان المحدد لها
if ( score >= 90 )  
printf("a");
else if ( score >= 80 )
printf("b");
else if ( score >= 70 )
printf("c");
else if ( score < 70 ) printf("f");

return 0;
}

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

لكن الثاني اسرع في التنفيذ من اول مايتحقق شرط خلاص يطلع من if ولا ينفذ اللي بعدها .

هناك طريه اخرى لــ if

وهي

الكود

score >= 90 ? printf("a") :printf("f");  يتحقق من الشرط فاذا تحقق الشرط طبع مابعد الاستفهاام اما  اذا لم يتحقق يطبع مابعد :النقطتين

انتيهنا الحين

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

وبعدين البرمجه فيه مقوله معروفه يقولك اذا اخطيت في البدايه فاعرف انك ماشي صح :)

1- اكتب برنامج يقرا ضلع مربع ويطلع لك مساحته ؟ ( مايحتاج اقولكم القاعده )

2- اكتب برنامج يحول الى فهرنهاايت ندخل الدرجه ويخرجها لنا فهرنهايت المعالدله هي Tf=(9/5)*Tc+32

3- اكتب برناج يدخل المستخدم وزنه وطوله فيخرج له نتيجه اما معتدل القوام او نحيف او سمين

الوزن= الطول-100 ناقص او سالب 5 افتراض ان الطول الافتراضي 150 سم

اكتب البرنامج كالتالي

يقرا البرنامج هويه المستدخم id الجنس gender الطول height الوزن weight

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

مثال ادخلنا الطول 180 والوزن 75

180-100=80

80 اذن معتدل القوام

تم تعديل هذه المشاركة بواسطة StUd_C في 25 يناير 2004 في 02:16

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

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