دليل إجابات الدرس (٢) - لغة C - مبادئ اللغة
س1: (5 نقاط)
استخدم طريقة تعريف النمط لوصف سيارة مراعيا ذكر المواصفات التالية:
لون السيارة، موديلها، هل تحتوي على ناقل حركة أتوماتيكي، ناقل حركة جبلي؟ سرعتها القصوى، سعة خزان البنزين، كم عدد الركاب الذين تتسع لهم السيارة. لا تنس أن لون السيارة يعتبر عنصرا، وكذلك موديلها وسرعتها وهكذا.. أعط النمط هذا الاسم: Automobile. (تذكر هناك فرق بين النمط والبناء، والمطلوب تعريف نمط).
ج1:
النمط المطلوب تعريفه هو نمط «السيارة» (Automobile)، ولتعريفه يجب أولا تعريف البناء (structure) كما يلي:
كود:
struct Automobile
{
int color;
int Model;
bool AutoGear;
bool is4by4Gear;
int MaxSpeed;
int PetrolTankCapacity;
int totalPassengers;
};
إن الغرض من الشيفرة السابقة هو تعريف البناء Automobile، وحتى يتحول إلى نمط يجب إضافة هذا السطر في نهايته بعد قوس حاصرة الإغلاق ( { ) كما يلي:
كود:
typedef struct Automobile Automobile;
س2: (8 نقاط)
قم بكتابة برنامج ليقوم بعملية عد الأرقام من الرقم 100 وحتى الرقم 200. على أن يطبع في كل سطر 10 أرقام فقط. (تلميح استخدم حلقة for لعملية العد، واستخدم الأمر if لمعرفة عدد الأرقام التي تمت طباعتها في السطر الواحد (لا يجب أن تزيد على 10 أرقام). واستخدم الحرف الخاص
مثال يوضح نتائج تنفيذ البرنامج:
20 19 18 17 16 15 14 13 12 11
30 29 28 27 26 25 24 23 22 21 وهكذا..
ج2:
كود:
int main()
{
int i, steps = 0;
for (i = 101; i <= 200; i++)
{
// count how many numbers have been printed.
steps++;
// print the numbers
printf ("%d%s", i, " ");
if (steps == 10)
// weh have printed 10 numbers on the same line so we should move down one line
{
// reset the counter of printed numbers ot 0 when we move down to the next line.
steps = 0;
printf("%s", "\n");
}
}
return 0;
}
س3: (7 نقاط)
إكتشف الأخطاء وصححها إن وجدت في كل مما يلي:
الشيفرة بعد التصويب:
كود:
for (i = 1; i <= 10; i++)
الشيفرة بعد التصويب:
الشيفرة بعد التصويب:
كود:
printf ("d%@, "This is a test");
الشيفرة بعد التصويب:
كود:
printf ("%s", "This is a test");
كود:
if (x>2)
printf("%s", "x is greater than two")
else
الشيفرة بعد التصويب:
كود:
if (x>2)
printf("%s", "x is greater than two");
else
printf("%s", "x is smaller than or equal to two");
كود:
int MyFunc()
{
x = 2;
if(y ==2)
printf("%s", "x is two)
else
printf( "%s", "y is not two");
return;
}
الشيفرة بعد التصويب:
كود:
int MyFunc()
{
int x = 2, y;
if(y==2)
printf("%s", "y is two")
else
printf( "%s", "y is not two");
return x;
}