مساحة الدائرة
الدائرة هي شكل ثنائي الأبعاد وهو عبارة عن مجموعة من النقاط في المستوى ثنائي الأبعاد والتي تبعد عن نقطة معينة (تسمى مركز الدائرة) بمسافة متساوية (تسمى نصف قطر الدائرة).
مساحة الدائرة
يمكن حساب مساحة الدائرة باستخدام العلاقة الرياضية التالية:
Area = Pi * r * r
تنفيذ الخوارزمية
تعرض الأمثلة التالية طريقة حساب مساحة الدائرة في عدد من لغات البرمجة:
- C++:
#include <iostream>
const double pi = 3.14159265358979323846;
using namespace std;
// تحسب الدالة مساحة الدائرة
float findArea(float r)
{
return (pi * r * r);
}
// اختبار الدالة السابقة
int main()
{
float r, Area;
r = 5;
// استدعاء الدالة
Area = findArea(r);
// عرض ناتج الدالة
cout << "Area of Circle is :" << Area;
return 0;
}
- بايثون:
def findArea(r):
PI = 3.142
return PI * (r*r);
# اختبار الدالة السابقة
print("Area is %.6f" % findArea(5));
- جافا:
class Test
{
static final double PI = Math.PI;
static double findArea(int r)
{
return PI * Math.pow(r, 2);
}
// اختبار التابع السابق
public static void main(String[] args)
{
System.out.println("Area is " + findArea(5));
}
}
تعطي الشيفرات السابقة المخرجات التالية:
Area is 78.550000
إيجاد مساحة الدائرة المحيطة بمربع
تحسب هذه الخوارزمية مساحة الدائرة المحيطة بمربع طول ضلعه معلوم.
مثال:
Input : a = 6
Output : Area of a circumscribed circle is : 56.55
Input : a = 4
Output : Area of a circumscribed circle is : 25.13
يمتاز المربع بأن أضلاعه الأربعة متساوية في الطول وأن قياس زواياه الأربعة 90 درجة، وتعرف الدائرة المحيطة بالمربع بأنّها الدائرة التي تمرّ على رؤوس المربع الأربعة.
خصائص الدائرة المحيطة بالمربع
- يقع مركز الدائرة المحيطة بمربع في نقطة التقاط قطري المربّع.
- يمكن رسم الدائرة المحيطة بمربع بواسطة رؤوس المربع الأربعة.
- يتساوى نصف قطري كلّ من الدائرة المحيطة بالمربع والمربع نفسه في الطول.
خطوات الخوارزمية
يمكن استخدام العلاقة الرياضية التالية لحساب مساحة الدائرة المحيطة بالمربع:
(PI * a * a)/2
تمثّل a
طول ضلع المربع المحاط بالدائرة، وPI
النسبة الثابتة.
يمكن اشتقاق العلاقة السابقة بالطريقة التالية:
مساحة الدائرة = PI * r * r
نصف قطر الدائرة = قطر المربع / 2
ولمّا كان طول قطر المربع = √(2 * a * a)
فإنّ نصف قطر الدائرة = √(2 * a * a) / 2
= √((a * a) / 2)
وبهذا فإن مساحة الدائرة = PI * r * r
= (Pi * a * a) / 2
تنفيذ الخوارزمية
تعرض الأمثلة التالية طريقة حساب مساحة الدائرة المحيطة بمربع في عدد من لغات البرمجة:
- C++:
#include <stdio.h>
#define PI 3.14159265
float areacircumscribed(float a)
{
return (a * a * (PI / 2));
}
// اختبار الدالة السابقة
int main()
{
float a = 6;
printf(" Area of an circumscribed circle is : %.2f ",
areacircumscribed(a));
return 0;
}
- بايثون:
PI = 3.14159265
def areacircumscribed(a):
return (a * a * (PI / 2))
# اختبار الدالة السابقة
a = 6
print(" Area of an circumscribed circle is :",
round(areacircumscribed(a), 2))
- جافا:
import java.io.*;
class Gfg {
static float areacircumscribed(float a)
{
float PI = 3.14159265f;
return (a * a * (PI / 2));
}
// اختبار التابع السابق
public static void main(String arg[])
{
float a = 6;
System.out.print("Area of an circumscribed"
+ "circle is :");
System.out.println(areacircumscribed(a));
}
}
إيجاد مساحة قطعة من الدائرة
يقسم الوتر chord الدائرة إلى قسمين يطلق عليهما تسمية القطعة، وتسمى إحدى القطعتين بالقطعة الصغرى (ذات المساحة الصغيرة) والأخرى بالقطعة الكبرى (ذات المساحة الكبيرة).
يعرض الشكل التالي دائرة يقسمها الوتر AB
إلى قطعتين:
يمكن حساب مساحة كل قطعة من هاتين القطعتين بمعرفة نصف قطر الدائرة والزاوية التي تشكّل القطعة الصغرى.
مثال:
Input :
radius = 21.0
angle = 120.0
Output :
Area of minor segment 270.855
Area of major segment 1114.59
Input :
radius = 10.0
angle = 90.0
Output :
Area of minor segment 28.5397
Area of major segment 285.619
خطوات الخوارزمية
يُربط طرفا الوتر بمركز الدائرة للحصول على قطاع من الدائرة والذي يضمّ زاوية في مركز الدائرة، ثم يُرسم عمود على الوتر يبدأ من مركز الدائرة، ويمكن ملاحظة أن ∠ AOP = ∠ BOP = 1/2(angle)
.
مساحة القطعة = مساحة القطاع - مساحة المثلث OAB
= pi * r^2 (angle/360) - مساحة المثلثOAB
لنفترض أنّ الزاوية التي أنشأها القطاع هي X
، فبهذا تصبح: ∠ AOP = ∠ BOP = X/2
Cos(X/2) = OP/AO i.e. OP = AO * Cos(X/2)
OP = r * Cos(X/2)
Sin(X/2) = AP/AO i.e. AP = AO * Sin(X/2)
AP = r * Sin(X/2)
وهكذا فإنّ:
القاعدة = `AB = AP + PB`
= 2 * AP
= 2 * r * Sin(X/2)
الارتفاع = `OP = r * Cos(X/2)`
وبهذا تصبح مساحة المثلث:
Area of triangle = 1/2 * (2 * r * Sin(X/2)) * (r * Cos(X/2))
= 1/2 * r2 * Sin(X)
[Using identity 2 * Sin(A) * Cos(A)]
= Sin(2 * A))
وتساوي مساحة القطعة:
Area of Segment = pi * r2 * (angle/360) - 1/2 * r2 * Sin(angle)
تنفيذ الخوارزمية
تعرض الأمثلة التالية طريقة تنفيذ الخوارزمية في عدد من لغات البرمجة:
- C++:
#include <bits/stdc++.h>
using namespace std;
float pi = 3.14159;
float area_of_segment(float radius,
float angle)
{
// حساب مساحة القطاع
float area_of_sector = pi *
(radius * radius)
*(angle / 360);
// حساب مساحة المثلث
float area_of_triangle = (float)1 / 2 *
(radius * radius) *
sin((angle * pi) / 180);
return area_of_sector - area_of_triangle;
}
// اختبار الدالة السابقة
int main()
{
float radius = 10.0, angle = 90.0;
cout << "Area of minor segment = "
<< area_of_segment(radius, angle) << endl;
cout << "Area of major segment = "
<< area_of_segment(radius, (360 - angle));
}
- بايثون:
import math
pi = 3.14159
def area_of_segment(radius, angle):
# حساب مساحة القطاع
area_of_sector = pi *
(radius * radius)
* (angle / 360)
# حساب مساحة المثلث
area_of_triangle = 1 / 2 *
(radius * radius) *
math.sin((angle * pi) / 180)
return area_of_sector - area_of_triangle;
# اختبار الدالة السابقة
radius = 10.0
angle = 90.0
print("Area of minor segment =",
area_of_segment(radius, angle))
print("Area of major segment =",
area_of_segment(radius, (360 - angle)))
- جافا:
class GFG {
static float pi = 3.14159f;
static float area_of_segment(float radius,
float angle)
{
// حساب مساحة القطاع
float area_of_sector = pi *
(radius * radius) * (angle / 360);
// حساب مساحة المثلث
float area_of_triangle =
(float)1 / 2 * (radius * radius) *
(float)Math.sin((angle * pi) / 180);
return area_of_sector - area_of_triangle;
}
// اختبار التابع السابق
public static void main(String[] args)
{
float radius = 10.0f, angle = 90.0f;
System.out.println("Area of minor segment = " +
area_of_segment(radius, angle));
System.out.println("Area of major segment = " +
area_of_segment(radius, (360 - angle)));
}
}
مصادر
- صفحة Program to find area of a circle في توثيق الخوارزميات في موقع GeeksforGeeks.
- صفحة Area of a Circumscribed Circle of a Square في توثيق الخوارزميات في موقع GeeksforGeeks.
- صفحة Program to find area of a Circular Segment في توثيق الخوارزميات في موقع GeeksforGeeks.