القائمة الرئيسية

الصفحات

الدول الرياضية في لغة سي Mathematical Functions In Expressions

الدول الرياضية في لغة سي

تتيح لغة سي للمستخدم إجراء العمليات الرياضية المتقدمة مثل الجذر التربيعي للمتغير و ايجاد ظل الزاوية وكذلك جيب و جيب تمام الزاية وكثير من العمليات الأخري ولاكن من خلال استدعاء هذه الدوال من المكتبة الرياضية Mathematical Library

علماً انه يتم استدعاء المكتبة الرياضية مرة واحدة من خلال الأمر Include في بداية البرنامج.

#include<math.h>

مع ملاحظة انه يجب أن تكون المتغيرات المستخدمة من النوع Double

مثال

#include <math.h>
double x,y;
y = sqrt(x);

قيمة (y) ستصبح الجذر التربيعي للمتغير (x).

مثال

#include <math.h>
float x,y;
y = sqrt(x);

ويلاجظ في هذا المثال أنه سوف يتم تحويل المتغير(x) من float إلي double و الناتج سوف يكون double ثم يحول إلي float

مثال 

#include <stdio.h>
#include <math.h>
void main (void)
{
int a,b,c,d;
float m,n,k,o,pi;
pi=3.141592654
scanf ("%d,%d,%d,%d",&a,&b,&c,&d);
m=sqrt(a);
n=pow(b,3);
k=cos(c*pi/180.0);
o=sin(d*pi/180.0);
printf("\n\t%g,%g,%g,%g\n",m,n,k,o);
}


تحويل النوع

تتسامح لغة سي مع العبارات التي تحتوي علي أكثر من نوع كما يتبين لك من البرنامج السابق ، في هذا البرنامج تم إجراء بعض العمليات الحسابية علي انوا مختلفة من البيانات ، وتسير ترجمة البرنامج دون مشاكل ، فالمترجم يعلم أنه من الطبيعي أن تجري بعض العمليات الرياضية ، علي انواع مختلفة من الأعداد.

وكثير من اللغات لا تسمح بذلك ، فعندما يحتوي التعبير علي اكثر من نوع ، يفترض المترجم أنك قد ارتكبت خطاً ، ويعطي بالتالي إشارة بذلك ، اما لغة سي فتقوم بتنفيذ العملية وهذا هو أحد الأسباب في شعبية لغة سي ، فهي تعطي قدر أكبر من الحرية في العمل ومن المسئولية في نفس الوقت.

مثال 


#include <stdio.h>
main ()
{
          int sum;
          sum = 30 + 25;
          printf("The Sum Of 30 and 25 = %d\n",sum);
}

ينتج عن تنفيذ هذا البرنامج :
The Sum Of 30 and 25 = 55

ويلاحظ الآتي :


  1. يشتمل السطر الرابع علي تعريف متغير variable ويتم فيها الأشارة إلي المتغير sum وأنه من النوع int.
  2. يوجد سطر فارغ بعد سطر تعريف المتغير ويستخدم ذلك عادة للفصل بين سطور التعريفوبين عبارات التعبير وهذا الفراغ غير مؤثر white space
  3. يشتمل السطر السادس علس عبارة تعبير تسمي بعبارة تحديد assignment statement وينتج عنها حساب قيمة الطرف الأيمن ووضع الناتج في المتغير الموجود علي الطرف الأيسر وتستخدم المؤثرات التالية :- 

- مؤثر الجمع  addition operator
- مؤثر التحديد assignment operator

يوجد في السطر السادس بالإضافة للمتغير sum الثوابت 30 ، 25 ثوابت صحيحة من نوع int

مثال 
مطلوب حساب عدد الساعات والدقائق إذا كانت عدد الدقائق 135 دقيقة.

#define ONE 60
#include <stdio.h>
main ()
{
int minute,hours,min_left;
minutes = 135
hours = minutes / ONE; /* find hours as int */
min_left = minutes % ONE; /* find mins in */
printf("h=%d",h);
}

الموجه Define


يمكن أن تعرف الثوابت أيضاً باستخدام Define# وذلك علي النحو التالي :

#define ONE 60

في صدر البرنامج Define# وهذه الكلمة تعني إنشاء ماكرو وهو ببساطة عبارة عن برنامج فرعي بسيط يتم إنشاءه في البرنامج الرئيسي ويتم استدعائه كلما تطلب ذلك.

الصورة العامة
#define macro line

ويتم من خلال macro line تعريف متغير بقيمته فمثلاً في هذا السطر
#define ONE 60

وهي عبارة عن تعريف المتغير ONE بالقيمة 60 ، ولذلك كلما قابل المترجم كلمة ONE يستبدلة بالقيمة 60
هل اعجبك الموضوع :

تعليقات