تمارين محلولة في لغة البرمجة سي C
08 Feb 2020
آخر تعديل: 01 Jul 2020
إليك تمارين محلولة في لغة البرمجة سي. وهي تتمة للأمثلة التي بدأناها هنا:
وأعيد التنويه بأن الحلول هنا ليست مثالية وإنما هي أحد الحلول الممكنة.
الأسئلة
1. اكتب برنامجًا يقرأ 9 أرقام من المستخدم ويحفظها في مصفوفة 3x3 ثم يطبعها كما في المثال المعطى أدناه.
مثال على المُدخل:
مثال على الناتج:
6 7 4
5 4 7
2. اكتب برنامجًا يمكنه جمع مصفوفتين 3x3 باستخدام الخطوات التالية:
-
قم بأخذ 9 أعداد من المستخدم واحفظها في مصفوفة
-
خذ 9 أعداد أخرى من المستخدم واحفظها في مصفوفة ثانية
-
قم بجمع هاتين المصفوفتين
-
قم بإعطاء النتيجة كما في المثال أدناه
تلميح: للتذكير فإن جمع مصفوفتين يكون كما هو موضح أدناه
مثال على المدخل:
1 3 4 6 7 4 5 4 7 8 9 12 11 3 45 6 34 2
مثال على الناتج:
17 10 49
11 38 9
3. اكتب برنامجًا يستطيع ضرب أي مصفوفتين مربعتين بأي حجم (2x2 أو 3x3 ..إلخ).
بناء البرنامج:
-
خذ عدد موجب صحيح من المستخدم والذي سيكون بُعد المصفوفة المربعة
-
خذ من المستخدم أعدادًا كافية بقدر عناصر مصفوفتين ذات البُعد الذي تم إدخاله في الخطوة السابقة لتملأ المصفوفتين
-
اضرب المصفوفتين وأعطِ الناتج على الشاشة
تلميح: للتذكير فإن ضرب مصفوفتين يكون كما هو موضح أدناه
مثال على المُدخل:
مثال على الناتج:
89 100
4. المطلوب حساب محدد مصفوفة 3x3.
-
يجب أن يقرأ البرنامج عناصر المصفوفة ذات البعد 3x3 ومن ثم حساب المُحدِّد وإعطاء النتيجة
-
يمكن حساب مُحدِّد مصفوفة 3x3 وفق قاعدة ساروس التالية:
ليكن لدينا المصفوفة:
يكون المحدد:
مثال على المُدخل:
1 2 3 4 5 6 7 8 9
مثال على الناتج:
0
5. يتطلب تحديد فيما إذا كانت كلمة أو عبارة لها خاصية مالا يستحيل بالإنعكاس (مثل خوخ تقرأ بالإتجاهين، Mum كذلك..)
بناء البرنامج:
-
اطلب من المستخدم كلمة أو عبارة نصية واحفظها في مصفوفة من نوع char
-
قم بطباعة “yes” في حال كانت العبارة لا تستحيل بالإنعكاس، و “no” فيما عدا ذلك. إذا كان المٌدخل من المستخدم غير صالح (كأن يُدخِل أرقامًا بدلًا من أحرف) قم بطباعة “Wrong Input”
مثال على المُدخل:
otto
مثال على الناتج:
yes
6. يتطلب ضغط عبارة وفق خوارزمية Run-length encoding
- يقرأ البرنامج عبارة String ويعطيها وفق ترميز Run-length_encoding والتي تعمل وفق التالي:
الأحرف التي تكون مكررة في العبارة يتم اختصارها برقم يتبع الحرف. وفقًا لذلك يتم التمييز بين وضعين: Single-Mode و Multi-Mode
في وضع الـ Single-Mode يتم قبول الحرف كما هو دون تغيير (حيث أنه غير مكرر). وفي الـ Multi-Mode يتم إضافة عدد تكرار الحرف بعد الحرف المكرر (طباعة الحرف المكرر مرة واحدة ثم عدد تكراره). والانتقال بين الوضعين يتم توضيحه بالعلامة '
.
في البداية دائمًا يكون البرنامج في وضع Single-Mode ويتم التحويل للـ Multi-Mode في حال أتى حرف مُكرّر. ويتم الرجوع للـ Single-Mode في حال أتى بعد ذلك حرف وحيد.
-
قم بقراءة عبارة نصية من المستخدم تحوي 30 حرف على الأكثر. العبارات الأطول من ذلك تُعتبر مُدخلات خاطئة. يُعتبر أيضًا المُدخل خاطئًا في حال تكرر أحد الأحرف أكثر من 9 مرات.
-
في حال الإدخال الصحيح يُعطي البرنامج الناتج بالترميز المطلوب يتبعه سطرًا فارغًا
-
في حال كان المُدخل خاطئًا (غير قابل لفك الترميز) أو لا يحقق الشروط، فيجب أن يعطي البرنامج رسالة الخطأ “Wrong Input” يتبعها سطرًا فارغًا
مثال على المُدخل:
مثال على الناتج:
مثال 2 على المُدخل:
مثال 2 على الناتج:
مثال 3 على المُدخل:
مثال 3 على الناتج:
مثال 4 على المُدخل:
مثال 4 على الناتج:
مثال 5 على المُدخل:
مثال 5 على الناتج:
الحلول
1.
2.
3.
4.
5.
6.
أرجو أن يكون المقال قد أفادك.
اقرأ أيضًا: التعامل مع الملفات بلغة سي
المرجع: درس مدخل إلى علم الحاسوب. د.بورجو يلدز - الجامعة التركية الألمانية