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

مشاهدة النسخة كاملة : سؤال في لغة C



THE LION
10-04-2005, 12:40 AM
السلام عليكم...

سأتوجه إلى السؤال مباشرة وانشالله تساعدوني...

* كيف من الممكن تحديد مجموعات جزئية في لغة C ( ربما اسمها sets أو subsets )؟
وهي كالمجموعة الجزئية في لغة باسكال:-





...
var a:char;
....
IF a IN ['a'..'z','A'..'Z'] then
.....




وشكرا...

ibn_alqalam
10-04-2005, 03:41 AM
الامر ليس سهلا مع السي. اذا تريد انشاء مجموعات بكل معنى الكلمة, مجموعات قابلة لعمليات الاتحاد و التقاطع و اضافة و حذف عنصر و منع التكرار, الخ. اذا تريد ذلك, فسوف يجب عليك استخدام القائمات المتتابعة, linked lists.

و لكن اذا تريد فقط تجربة ما اذا كان عنصر ما حرف ابجدي لاتيني, بين A و Z مع عدم مراعات الشكل case insensitive, فحينها يمكنك فعل الاتي:




char alphabet [26*2]; /* A-Z, a-z */

...

int i;

char c;

for (c = 'A'; c <= 'Z"; c++) {
alphabet[i] = c;
i++;
}

for (c = 'a'; c <= 'z'; c++) {
alphabet[i] = c;
i++;
}



يمكنك ضم عبارتي التكرار تلك, لان سي تضمن لك تتابع الحروف الابجدية, و لكن هذا الشكل اوضح للمبتدئين.

يمكنك تحويل ذلك الى دالة او استخدام العبارات في جسد main او اي مكان اخر.