Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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);
}
challenge icon

التحدي

سهل

لقد تم تزويدك بجزء من الكود الذي ينشئ هيكل 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;
};

جميع دروس هياكل البيانات في C/C++