الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمل مكتيه ضغيره يوجد فيها داله واحد

بدأه mr.4one في 1 يوليو 2010 · 7 رد · 788 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

باختصار الموضوع ياخوان .. " انا اقرى كتاب الاكسير .." ووصلت الى صفحه 105 ..

ولكن بديت مافهم الدرس هذا .. ولازم افهمه عشان اكمـل

كيف عمـل مكتبــه .. خاصه لي صغيره .. فيها داله واحده فقط .. ( مثلا الداله تقوم بضرب العدد بنفسه وترجع العدد مضروب بنفسه ) فقط

وكيف اعمل اربطه مع الـ source file وكيف استدعاء الداله .. ؟

وهيـك .. وياليت الشرح يكون مبسط ..

والله يجزاكم خير ..

#2

اكتب الدالة بشكلها المستقل ( التعريف )

ثم احفظه بملف امتداده .h و أضفه إلى المجلد include

مثال :

void print ()
{
cout<<"hi"
}

ثم ضع العبارة

#include <.h>

لاسم المكتبة

أو احفظه في مكان التنفيذ و لكن عند كتابة

include ضع اسم المكتبة بين " " و ليس بين < >

و فقط استدعي الدالة وقت التنفيذ داخل البرنامج الجديد

شرح سريع :( و أنا آسف لذلكك

تم تعديل هذه المشاركة بواسطة aohammed في 1 يوليو 2010 في 12:43

#3

حمل الملف بالمرفقات و قم بفك الضغط و قم بالترجمه بإستخدام GCC (أو أي مترجم أخر) بهذا الأمر:

gcc *.c

ex_on_creating_lib_in_c.zip

#5

كيفية إنشاء الملفات الرأسية أو المكتبات

تعريف: الملف الرأسي هو ملف نصي بسيط ينتهي بالإمتداد h و يحتوي على دوال و تراكيب و ثوابت.

ما هي فائدة الملفات الرأسية : تُستعمل الملفات الرأسية أو الـ header file عند كتابة برامج كبيرة .. فمثلا : إذا قمت بكتابة الكثير من الدوال في برنامج معين فيستحسن أن تقوم بكتابة ملف رأسي تضع به جميع الدوال التي تود استخدامها في برنامجك و هكذا تكون لديك مكتبة كبيرة خاصة بك.

طريقة إنشاء الملفات الرأسية:

أولا و قبل كل شيء يجب عليك إظهار امتداد الملفات لكي تتمكن من تغيير الإمتداد,إليك الطريقة :

07erjtn1.jpg

07wyjzu1.jpg

07lscfq1.jpg

الآن قم بإنشاء مستند جديد و ليكن اسمه header_file

07yhisf1.jpg

قم بتغيير الإمتداد من txt إلى h

07wmpes1.jpg

07zjaxc1.jpg

الآن أصبح الملف الرأسي جاهز للكتابة .. اكتب فيه الدالة التالية:

float abs(float x)
{
 return x>0 ? x : -x;     
}

قم بتخزينه تحت مجلد وليكن اسمه header file ,الآن بقي شيء واحد وهو كتابة البرنامج المصدر .. قم بإنشاء ملف مصدر و قم بتخزينه في المجلد السابق كما في الصورة:

07lpthi1.jpg

قم بكتابة ما يلي في الملف المصدر :

#include<iostream>
#include"header_file.h"
using namespace std;
int main()
{
   float y;
   cout<<"y=";
   cin>>y;
   cout<<"abs("<<y<<")="<<abs(y)<<endl;
   system("pause");
   return 0;
}

في السطر الثالث من البرنامج قمنا بإضافة الملف الرأسي header_file.h ولكن بطريقة مختلفة عن الطريقة المعتادة حيث قمنا بوضع اسم الملف الرأسي بين علامتي تنصيص " " والسبب في ذلك هو وجود الملف الرأسي في نفس المكان الذي يوجد به الملف المصدر أما إذا أردنا كتابة :

#include<header_file.h>

فيجب علينا وضع الملف الرأسي في نفس المكان الذي توجد به المكتبات التابعة للمترجم أي في مجلد include ,وفي مترجم DEV فإن المجلد عادة ما يأخذ المسار التالي :

C:\Dev-Cpp\include

قلنا سابقا أن الملف الرأسي يجب أن يكون في نفس المجلد الذي يوجد فيه الملف المصدر لكن ماذا لو كان الملف الرأسي في مجلد و الملف المصدر في مجلد آخر ؟؟؟ هنا سنقوم بإتباع نفس الخطوات السابقة مع كتابة المسار الذي يوجد فيه الملف الرأسي عند تضمينه هكذا :

#include<iostream>
#include"C:\Dev-Cpp\include\c++\3.4.2\bits\header_file.h"//مسار الملف
using namespace std;
int main()
{
   float y;
   cout<<"y=";
   cin>>y;
   cout<<"abs("<<y<<")="<<abs(y)<<endl;
   system("pause");
   return 0;
}

بالمناسبة فإن هذا الشرح نقلته من كتابي الثالث "الكافي" .. كان بإمكانك مراجعة الكتاب قبل طرح السؤال خصوصا و أن الكتاب عندك :)

بالتوفيق

تم تعديل هذه المشاركة بواسطة أحمد المتألق في 1 يوليو 2010 في 22:06

1
#6

أحمد المتألق

المكتبات تنقسم الى نوعين(في بيئة ويندوز) :

المكتبات Static : و يكون لها امتداد .Lib

المكتبات Dynamic : و يكون لها امتداد .dll

اما الطريقة التي وضعتها فهي لانشاء ملف source + header.tongue.gif

#7

السلام عليكم و رحمة الله و بركاته

اقتباس
اما الطريقة التي وضعتها فهي لانشاء ملف source + header

و هذا ما يريده الأخ mr.4one و قد وجدته في الماسنجر و أخبرني بأن الأمور اتضحت له بشكل جيد :P

بالمناسبة .. الأخ mr.4one مازال يعمل في بيئة الكونسول .. و لا يعرف شيء عن دوال الـ API فهو يريد طريقة إنشاء ملف رأسي أو ما يُعرف بـ header file فقط .. لا أكثر و لا أقل :)

في أمان الله.

1
#8

جزاكم الله خير الجزاء .. وصحيح كلام اخي احمد .. هذا ماريده لاني لسى مبتدئ ..

والله يعطيكم العافيه .. جميعا للايضاح

مواضيع مشابهة