Structures and Functions
الدرس 5 من 8 في دورة هياكل البيانات في C/C++ على Coddy.
بمجرد إنشاء هيكل (structure) في ملف C/C++، يمكنك استخدام هذا الهيكل كمعامل للدالة أو كنوع للقيمة المرجعة.
على سبيل المثال، لنفترض أن Person هو هيكل:
void greet(Person p) {
cout << "Hello, " << p.name << endl;
}في لغة C، تحتاج إلى إضافة الكلمة المفتاحية struct قبل:
void greet(struct Person p) {
printf("Hello, %s\n", p.name);
}التحدي
سهللقد تم تزويدك بجزء من الكود الذي ينشئ هيكل Point، ويقوم بتهيئة نقطتين، ويحسب المسافة بينهما.
مهمتك هي إنشاء دالة تسمى calcDistance تستقبل هيكلين من نوع Point كوسطاء، وتحسب المسافة وتعيدها (من نوع int).
بفرض وجود نقطتين p1 و p2، فإن المسافة بينهما هي:
(p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y) * (p2.y - p1.y)لا تحتاج إلى تعديل الدالة main على الإطلاق!
جرّب بنفسك
#include <stdio.h>
struct Point {
int x;
int y;
};
// قم بتنفيذ calcDistance هنا
int main() {
char tmp[50];
int p1x, p1y, p2x, p2y;
scanf("%s %d %d", &tmp, &p1x, &p1y);
scanf("%s %d %d", &tmp, &p2x, &p2y);
struct Point p1 = {p1x, p1y};
struct Point p2 = {p2x, p2y};
int distance = calcDistance(p1, p2);
printf("Distance between p1 and p2: %d", distance);
return 0;
};