??? زائر
| موضوع: المصفوفات باستخدام لغة السى 2012-06-18, 3:36 pm | |
| الموضوع منقول انا وجدت مجموعه من الاصدقاء يتحدثون عن اللغة فهاهو الكلام منقول وكلام كل شخص منهم
الاول: تعلمنا مسبقا استخدام اللوب lobs وهناك ثلاث انواع منها for lob while lob do.......while lob اسهلها النوع الاول حيث ان تركبها كلاتي for(i=0;iحيث ان n عدد صحيح l0 1 2 3 4 ............ الي اخره الان نبدا بسم الله المصفوفه اه نوعان الاول arry و الثاني dabill daimintion srry سوف نبدا بالنوع الاول طريقه برمجته
#include فتحه لغه السي void main { int num[5],i; ملحوظه داما i بتساوي الصفر عند البدايه [5] عدد الارقام المدخله حيث ان اول رقم هو i=0 واخرها هو i=4 نيتخدم lob و scanf للادخال الاخراج نستخدم lob و printf ثم نغلق البرنامج {
البرنامج كاملا
include void main() { int num[5],i;
for(i=0;i<5;i++) { scanf(%i",&num[i]); } printf("\n printf("\n the 5 number are ................\n); for(i=0;i<5;ii++) printf("\n %i",num[i]); } ملحوظه اسم المصفوفه يمكن وضعه اي اسم تراه مثل x[5] or y[5]..............الي اخره
الثانى: اهلا بك اخي في المنتدى مشكور على الشرح وارجو ان تكمل مجهودك معنا في المنتدى
بعض الملاحظات على بعض الاخطاء الاملائية lob -> loop dabill daimintion -> double dimention
والآن بعض الملاحظات بالنسبة للشرح فالشرح ليس كافي.. انت لم تذكر اي تعريف على المصفوفة array وما الفرق بينها وبين double array (matrix)
كما انك لم تذكر ماذا هي وظيفة السطر int num[5]; مع انه اهم شيء لفهم المصفوفات
ولم تقم بشرح باقي الاوامر او وظيفة البرنامج وما سيكون الخارج output
الآن ملاحظة بشأن الكود اعتقد انه عليك اضافة مكتبة الى البرنامج include
وفي نهاية البرنامج بعد انتهاء الحلقة loop يجب وضع الامر getch(); حتى تبقى شاشة الـ output مع النتائج الى حين ضغط اي زر على الكيبورد والا فان المستخدم لن يرى النتائج
تحياتي
الثالث: بسم الله الرحمان الرحيم الرد علي الاخ On-ThE-NeT array هي ترتيب مجموعه من الارقام بشكل متتالي راسيا او افقيا ترتيب مجموعه من الارقامdouble dimentionبشكل راسي وافقي num[3][3] int num[5]; يستخدم لتسهيل الادخال بدلا من الطريقه المعتاده num1,num2,num3,num4,num5 البرنامج هو ادخال اي 5 ارقام تريد ويقوم البرنامج باخرجها #include مدخل لغه السي ()getchar عند ادخال الحروف ك a b c وليس للارقام في النهايه اشكرك وبارك الله فيك البرنامج لي ويزر اخر الامر scanf هو للادخال printf للاخراج
الرابع: اعذرني اخي ولكن شرحك غير دقيق
array او مصفوفة من اسمها هي مصفوفة من المتعيرات وهي تستخدم لتسهيل الشغل هذا صحيح
لتعريف متغير من نوع رقم int32 في لغة C يتم عمل التالي int num; هذا السطر يقوم بتعريف متغيير اسمه num من نوع int
لتعريف مصفوفة من نوع int طولها 5 حدود تكتب التالي int num[5]; الرقم 5 الموجود بين الاقواس يدل على عدد حدود المصفوفة.
عند تعريف المصفوفة او متغيير من نوع int تكون قيم الحدود null اي لا يوجد فيها قيمة بعكس لغة C# حيث تكون القيم 0
عند تعريف مصفوفة كما ذكر سابقا باستخدام السطر int num[5]; للوصول الى احدى القيم في المصفوفة يجب عمل num[#] # هي عبارة عن رقم الحد، والترقيم يبدأ بـ 0 وليس بـ 1 اي ان للمصفوفة التي تم تعريفها سابقا سيكون فيها الحدود التالية num[0], num[1], num[2], num[3], num[4]
ولهذا الامر فان الحلقة التي تم استخدامها for تم اعطاء قيمة i البدائية 0 لكي يقوم باستدعاء اول حد num[0] وتم عمل i<5 لكي تتوقف الحلة عندما يصفح i=5 فلا يوجد حد num[5] في هذه المصفوفة
الامر printf(" "); يقوم بطباعة المكتوب بداخل المزدوجين طبعا هناك استثناآت مثل \r \n %d %c
وغيرهم ولكن الموضوع ليس عنهم
الامر scanf يمكن المستخدم من ادخال قيمة معينة
فعند عمل scanf("%d",&num[i]);
هذا الامر يعني ان يقون البرنامج بعمل scan اي يقرأ الرقم الذي سيقوم المستخدم بادخاله ويقوم بحفظه بداخل num[i]
%d ترمز الى انه سيتم ادخال رقم & تستخدم لما يسمى بالمؤشرات pointers وهو موضوع معقد ولن اقوم بالتطرق اليه
على كل الحال البرنامج كما نرى يقوم بعمل حلقة for فيمر على كل حدود المصفوفة ويتيح للمستخدم امكانية ادخال ارقام مختلفة لتعبئتها بداخل المصفوفة
بعد ذلك يقوم بالمرور مرة اخى عن طريق حلقة for اخرى على المصفوفة ويقوم بطباعة الارقام التي تم ادخالها
الكود خاطئ وهذا هو الكود الصحيح tdio.h> void main() { int num[5],i;
for(i=0;i<5;i++) scanf(%d",&num[i]); printf("the 5 number are ................\n); for(i=0;i<5;i++) printf("\n %d",num[i]); }
اما بالنسبة لما ذكرته انا انظر جيدا انه امر getch وليس getchar وهو يستخدم احيانا لعمل pause للبرنامج ولاستخدامه يجب اضافة سطر بعد السطر الاول #include
ويمكن استخدام هذا الامر بعد { الاولى وهو clrscr(); حتي يقوم بحذف كل ما عالة شاشة الـ output واعطاء شاشة فارغة في حال تشغيله مجددا
تحياتي
الخامس: الامر المتحدث عنه ساشرحه افترض انك ستخل خمسه طلاب لكل طالب اسمه من نوع char ودرجاته من نوع اخر مثلا من نوع int منغير هذا الامر البرنامج لن يعمل سوي مره واحده اشكرك
السادس: #include #include void main() { clrscr(); int num[5],i;
for(i=0;i<5;i++) scanf(%d",&num[i]); printf("the 5 number are ................\n); for(i=0;i<5;i++) printf("\n %d",num[i]); getch(); }
قم بتشغيل الكود واخبرني بالنتيجة !!!!
ان قمت بعمل char c; وبعدها c = getch(); فهكذا تأخذ الحرف اما اذا قمت بكتابته لوحده getch(); فهو يستخدم لعمل pause
ان كنت لا تصدق استخدمه وسترى
منقووووووووووووول |
|