• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

البحث في المنتدى

Showing results for tags 'cpp-lang'.

  • البحث بالتاقات

    اكتب الكلمات المفتاحيه بينها علامه الفاصله
  • البحث بكاتب الموضوع

تم إيجاد 80 نتيجة

  1. السلام عليكم .. الأخوة الأعزاء تراني ضايع مع هالشكل مسائل:   int x= 5, y=2, k=5, m=1;k/= m * x++ - ++ ycout << x << " " << y << " " << k << " " << m << endl; :( يا ريت يقدر أحد يشرح لي بشكل مبسط k/= m * x++ - ++ y هذا شنو هالبلوة :( السكرين يطلع 6 3 2 1بس شلون حسبها هالبرنامج والله ما ني عارف شيء :( ترى شوي وابجي <_< لأن بعد 4 ساعات عندي mid term ال++ أو -- عندما نضعها في الخلف لا أرى أي مشكلة ولكن حين نضعها في الأمام تدور بي الدوائر.. ولا أعرف راسي وين حاطه خذ مثلاً هذا المثال:   int x, y=3, z=5;int a=3;x = 21 $ z; z+= 4;int w=y++;int b= --acout<< x << " " << y << " " << z << "\n" << w << " " << a << " " << b << endl;النتيجة تطلع كذا   1 4 93 2 2لكن شلون؟؟ يعني x معروفة لأن باقي القسمة = 1 بس y = 3 ليش تطلع أربعة :( وال z بعد سهلة لأن مجموعة بأربعة بتطلع 9 أما ام w شلون صارت 2 مو المفروض اتزيد بواحد عساس اتكون 4 لأنها تساوي y++ يعني 3+1 :( أنتظر ردودكم الله يحفظكم
  2. هذا البرنامج صممتة و أنا فى الصف الثالث فى المعهد المهم هذه النسخة من الكود ليست النهائية لان النسخة النهائية ضاعت للأسف أتمنى أن يعجبكم و تتعلم من الكود لقد صممت البرنامج لغة البسكال أولا و لكنى لم أكملة بالبسكال و أعدتة بالسي من يريد النسخة المصممة بالبسكال سوف يجدها فى منتدى الدلفى Paint Brush C.zip
  3. إلى خبراء Token

    اخواني الكرام وددت التعرف عن كيفية تميز الكلمات المحجوزة في محررات الغات ياريت لو حد لدية فكرة عن هذه الخوارزمية وماهي ايضا الخوارزمية المتبعة في التحقق اللغوي بحيق يتم التعرف على ان الصيغة خاطئة مثلا صيغى IF ارجوا تزويدي ببعض المراجع ايضا ولكم جزيل الشكر :(
  4. Qcrack

    Qcrack : مشروع قمت بأنشائه تقريبا منذ اكثر من ثلاث اشهر البرنامج كتب بلغه C يعمل على نظام Linux , Unix وجميع انظمه *BSD يعمل عن طريق ال console يستخدم مكتبات openssl يمكن تحميلها من هنا www.openssl.org ويستخدم بلضبط md5.h , md4.h , md2.h . البرنامج يقوم بعمليه Bruterforce ليكسر الهاشات من نوع MD5 و MD4 و MD2 طريقه عمله بسيطه تقوم بادخال الهاش و الاحرف التي تريد تجربتها و الطول الاقصى للتجربه ... بذلك البرنامج يقوم بتحويل المطلوب الى Hash ويقارنه بل Hash الذي تريد كسره ... مثلا قمت بأختيار اعداد فقط 1234567890 يبدء البرنامج ويقوم بتحويل العدد الفلاني وليكن 123 الى MD5 ويقارنه مع الذي تريد كسره وبذلك يقوم بلمحاولات حتى يقوم بفك ال Hash طبعا العمليه تعمل بلترتيب . صوره البرنامج : The Main ( Qcrack v0.25 ) MD5 Bruterfroce verbose mode لبعض المعلومات : http://www.0x11.org للتحميل : http://www.0x11.org/projects لاتتوفر حزمه binary فقط source code مع سكربت قمت بكتابته ليسهل عمليه تجميع البرنامج . التعديلات التي اضفتها على النسخه هي * ترتيب ال sourcecode قليلا . * اظفت صوره البطريق وهو شعار ليونكس في البدايه . * اظفت بعض الالوان قمت بتعديل بعض الاخطاء . * اظفت خيار لطبع بعض المعلومات عن البرنامج . * اظفت فنكشن تقوم بتسجيل الهاشات التي تم كسرها في ملف found.txt . إن شاء الله نشوف مجربين ومطورين وبعض الاّراّء . تحياتي
  5. السلام عليكم ورحمة الله في الحقيقة واجهتني مشكلة في لغة سي++ والمشكلة كالتالي: + انشئة ملف بأسم abc.h #############   #ifndef _abc_h#define _abc_hvoid message();extern int abc;#endif############## وأنشئة ملف التطبيق له: ############### abc.cpp #include"abc.h"#include<iostream>using namespace stdj;void show(){cout<<"\nEnter any value:";cin<< abc;cout<< abc:}############### واخيرا انشئة الملف الرئيسي : main.cpp #include<iostream>using namespace std;#include<conio.h>#include"abc.h"int main(){    message();    cout<< "\nExit...";    getch();    return 0;}########################33 و يقوم مصرف gcc بتصريفها ولكن لا يقوم بربطها بل يعرض رسالة خطاء بسبب المتغير العام abc مع اني استخدمة كلمة extern قبل اعلانه فما هي الطريقه الصحيحة لحل مثل هذه المشكلة ؟؟
  6. الاستفسار لتلافي الوقوع في أخطاء من استخدام كلاس غير مصممه للاستخدام مباشرة ( كلاس مصممه لتورث الى كلاسات اخرى ولكن لا يصح استخدام هذه الكلاس بمفردها) , اريد منع التعامل مع هذه الكلاس بشكل مباشر مثال للتوضيح ( الكود ليس للتجريب , فقط للتوضيح ) namespace MyNameSpace {  class Parent {  protected:    int varx, vary;  public:    void pMethod(int arg1, int arg2);    int get_X();    int get_Y();  };  class Son1 : Parent {  private:    int var1, var2;  public:    Son1();    Son1(int Arg1, int Arg2);    ~Son1();    int sMethod(int Arg1, int Arg2);  };  class Son2 : Parent {  private:    int var1, var2;  public:    Son2(int Arg1);    ~Son2();    int sMethod1(int Arg1, int Arg2, int Arg3);    void sMethod2(char *pArg1);  };}كما موضح في المثال , تم انشاء كلاس Parent , بعدها تم انشاء الكلاس Son1 والتي ترث من الكلاس Parent وتضيف عليها طبعا , وتم ايضا انشاء الكلاس Son2 وهي ايضا ترث من الكلاس Parent وتضيف عليها الآن ما المشكله ؟؟؟ المشكله هي أن الكلاس Parent مصممه فقط لترثها كل من الكلاس Son1 و Son2 , لكن لا يحق استخدام الكلاس Parent مباشرة في البرنامج لأنها لا فائده لها وحدها المشكله عند عرض الكلاسات المتاحة استخدامها في الـ namespace الجديد المسمى MyNameSpace يعرض لي الكلاس Parent وطبعا متاح التعامل معها وانشاء كائن منها وكل شيء يعرضها بهذا الشكل :s ونفسي انها تتعرض بهذا الشكل :D دي النقطه الاولى النقطه الثانيه هي: عند انشاء كلاس وعرفنا فيها متغيرات private أو protected فلماذا يظهرها لي عند استخدام الكائن من هذا الكلاس ؟؟ يعرضها بهذا الشكل :s وايضا اتمنى ان تظهر بهذا الشكل :D أعرف انها لا تفرق لأن المترجم لن يقبل التعامل مع هذه المتغيرات أو الدوال المعرفه على انها خاصه أو محميه , ولكن اتكلم عن تنظيم الشكل , هل حلها سهل ؟
  7. برنامج خاص بحساب توقيت الانترنت .... بسيط مرن تقارير جميلة ...... انا بانتظار الآراء للتطوير و التحديث . ..... لن أشرح زيادة عنه حملو النسخة و جربوها ... أنا متأكد أنها ستعجبكم Source+Exe.rar
  8. السلام عليكم قمت بعمل كود لحساب الـ exponential تبعا للعلاقة الرياضية التالية e=1+(1/n!) ; 0<n وقد استخدمت قيما لـ n من 1 الى 10 (كلما زادت n فان الكسر (1/n!) (انتبه فهو يظهر لك معكوسا)يصغر,لذلك فالقيم بعد 10 تكون صغيرة للغاية ويمكن اهمالها) المهم هذا هو الكود وهو يعمل 100% فقد جربته واظهر لي القيمة 2.71828 #include <iostream.h>int main(){ double n,x=1,v=1,e=1,f=0;   for(n=1;n<=10;++n) {     while(x<=n)  {v=v*x;  x=x+1;}     e=e+(1/v);       } cout<<e<<endl return 0;}v هو متغير...بالتحديد هو مجموع المضاريب من 1 الى 10 لكن اليس من المفروض ان اضيف السطر e=e+1; فوق سطر cout<<e<<endl; لان الكود الذي كتبته لا ياخذ بالحسبان الرقم 1 الموجود في المعادلة الرياضية انما عمله ان يحسب مجموع مضاريب الاعداد من 1 الى 10 اريد مشورتكم... والسلام مسك الختام
  9. (العنوان الأصلي)غريب الدار عليا دار زمانى وهجرنى   السلام عليكم ورحمة الله وبركاته اخوانى الاعزاء جئتكم من المنتدى المجاور لكم Vb فهذة اول مشاركة لى معكم فى منتدى الC++ والحقيقة هذة اولى خطواتى لتعلم تلك اللغة بعض ان بقيت لعدة سنوات مغلقا عينى واذنى عن اى شئ دون الVb وقد بدئت التعلم من خلال الكتاب الرائع الاكسير والذى اعتقد انة من اهم المراجع العربية الموجودة الان ولكنى مثل غيرى من المتعلمين من خلال النت لم اتعلم الVb الا من خلال الامثلة فقد بدئت مع بنك الاكواد الفجولية وانتهيت حتى plant Source Code لذلك ارجوا من الاخوة الكرام التفضل بامدادى ببعض وصلات الامثلة التوضيحية التى تفيد المبتدئين او ان كان لدى احدكم بعض الامثلة فليعرضها لنا من فضلكم ملاحظة مهمة قوى :- محدش يقول لبتوع الVb انة شافنى هنا والا اتهمونى بالانشقاق والارتداد وانا بصراحة عايز العب على الجانبين منتظر امثلتكم قريبا وشكرا اخوانى الكرام
  10. السلام عليكم احب استفسر عن الكود الذي نضعه مع الكود ليصبح الكلام في شاشة run ملونا ً
  11. السلام عليكم جميعا.. انا طالبة حاسب واعمل على مشروع التخرج حاليا.. حيث ان فكرته تقول على steganography (نوع من اناوع التشفير-اخفاء رسالة داخل ملف اخر كإخفاء نص داخل صورة-) وقد احترنا في اختيار اللغة لعمل هذا البرنامج حيث اننا نحتاج للتعامل مع البتات للصروة حتى نخفي داخلها النص ولااعلم ان كنت احتاج لدوال خاصة في السي لعمل ذلك وقد سمعت ان عمل واجهة للبرنامح في c++ صعب فهل من الممكن مساعدتي في كيفية عمل واجهة البرنامج حيث انه لن يحتوي على شي غريب .. اعتقد انه سيحتوي على رز لإختيار الصورة الغطاء ومربع نص لكتابة النص وممكن ايضا اختياره ملف جاهز لإخفاءه وزر اخر لعمل الsteganography واخيرا زر لإظهار الصورة بعد اخفاء النص فيها واعتقد ايضا ان هذي العمليات ستكون على خطوات بالتسلسل اي عندما ينهي المرحلة الأولى كإختيار الصورة مثلا تظهر له واجهة المرحلة الثانية وهي كتابة النص او من المكن انت تكون واجهة واحدة ويكتب كل البينات فيها واخيرا يضغط على زر التشفير لا اعلم بصراحة كيف هو شكل البرنامج بالضبط ولكن المهم الأن هو كيف استطيع فعل كل هذا؟؟؟ اسفة على الإطالة ولكن ارجوكم ساعدوني وبسرعة فالإمر مهم اختكم قطعة سكر
  12. السلام عليكم .. عندما ارى كتاب انقليزي ( بلاش عربي عشان مايزعل علينا احد ) يشرح mfc ... تجده يبدأ .. باول تطبيق وهو نافذة .. لكن كيف ينئ هذه النافذة . عن طريق .. المعالج .. mfc appwizard انتبه واحذر من تلك .. الترهات .. .. فانت مثل الجبل الذي اهتز وخرجت منه فأرة . :P تولد اكواد .. ويصل عدد اسطرها للمئات .. والنتيجة لو اردت تعدل عنوان النافذة ... تجلس تدور وسط كومة القما .. عفوا ... الاكواد .. عشان تدور على سطر يعدل لك .. اي مشروع .. mfc dx gl جن .. تعلمها مباشرة بدون معالج .. لانها وكما قال تركي العسيري في احد مواضيعه ... طريقة فاشلة في التعلم . لكن مع هذا ترى الكتب ( العربية والانقليزية التجارية تبدأ بها ) على فكرة ... vb فيه معالج (يولد لك نافذة وعليها ازرار .... بضغطة زر ...) لايوجد اي شخص تعلم vb من خلال ذلك wizard ... لانه ليس كسول لهذه الدرجة .. فلماذا اهل السي لايحذون حذو اهل الفيبي هذه المرة .. : ) زهقنا من wizard .. ومن صورة الرجل العجوز .. الذي يظهر بجانب ذلك المعالج . . . . . . . .. . . . .
  13. ياشباب انا لما بحب اعمل برنامج من مترجم على الدوس فان حجم البيانات الموجودة داخل المتغير من النوع int يكون 16 بت هل من الممكن ان اجد دالة يمكننى من خلالها اجعل المتغير int يحجز لى متغير سعته 32 بت حتى لو كان المترجم يعمل على الدوس وسوال كمان : كيف عند بناء اى مترجم يتم تحديد مساحة من الذاكرة لكل نوع من انوع المتغيرات يعنى int يكون 16 بت والمتغير char يكون 8 بت كيف اصمم هذه الطريقة اى عندما ابنى مترجم او مفسر لاى لغة كيف اتحكم انا فى سعة المتغير الذى يتم حجزه وشكرا
  14. طيف نتعامل مع الصور

    :rolleyes: السلام عليكم ورحمة الله وبركاته ماهي الدوال الخاصة للتعامل مع الصور في لغة vc++ بمعنى كيف يمكنني التعامل مع كل بيكسل في الصورة ؟ وكيف يمكن التعرف على قيمة كل بيكسل هل هي 0,1؟ وجزاكم الله خير الجزاء . . .
  15. بسم الله الرحمن الرحيم ----------------------------------------------------------------------------------------------------- طرحت هذا الموضوع لوضع الاخطاء الشائعة في البرمجة بلغة ++C فأرجو من الاعضاء وضع كل خطأ شائع في البرمجة بلغة ++C لكي يفيدونني ويفيدو أعضاء غيري ----------------------------------------------------------------------------------------------------- (1) الخطاء الشائع في ترك الفاصلة المنقوطة {;} :- يعتبر الخطأ الشائع في الفاصلة المنقوطة {;} من الاخطاء الكثيرة التي يقع فيها المبرمجون فأحرص يأيها المبرمج وضعها في أخر العبارات وإلا فستحضى بخطئ من المترجم (2) الخطاء الشائع في ترك مقفعة الفتح والاغلاق (فتح } ) (إغلاق { ) :- يعتبر الخطأ الشائع في مقفعة الفتح والإغلاق من الاخطاء الشائعة ويجب عند كتابة مقفعة الفتح أن تكتب مقفعة الاغلاق وإلا ستحصل على خطئ من المترجم وغيرها من الاخطاء الشائعة فأرجو من يعرف أي خطئ شائع أن يضعة في المشاركة :D
  16. أسئلة في السي++

    لدي بضعـة أسئلة بسيطـة للغاية ، ربما أعرف إجابتها لكنها غامضـة... ما معـنى المصطلح Disgen Patterns (قد أكون كتبته خطأ) وما تعريفـه وما هـو...؟ السؤال الثاني: ما هي المؤشرات الذكيـة هل هي زيادة تحميل المعامل -> وإذا كان كذلك فلماذا أطلق عليه هذا الاسم.. السؤال الثالث: أثناء دراستي للخوارزميات مررت بمصطلح أعتقد أنـه fetch وهـو يعـني الوقت اللازم لكي تقوم الخوارزميـة بالانتهاء من عـملها هل هذا التعريف صحيح ...... وشكراً.
  17. السلام عليكم ورحمة الله وبركاته اتشرف بإنضمامي الى هذا الصرح الكبير والعظيم (منتديات الفريق العربي للبرمجة) واتمنى له التقدم وان يبقى شامخاً ويتحدى كل الظروف التي تعيق هذا التقدم واحب ان اشكر القائمين على هذا المنتدى من مشرفين وأعضاء يقدمون المواضيع المفيده لجميع اخوانهم المسلمين ( وانا هنا لا اعني الاعضاء الذين يقفون فقط متفرجين او يطرحون الأسئلة فقط ) احبتي انا كنت مشارك باسم اخر وهو linux999 وقد وعدت ان لا اكون من المتفرجين وان اشارك بكل مالدي وبما انني مبتديء في لغة السي ولا ااستطيع الرد على استفسارت الاعضاء احب ان اقدم لكم هذا الشرح في لغة البرمجة المحببة لدي واللغة الرائعة لغة السي والسي++ وهذا رد بعض من الجميل الذي قدمه لي هذا المنتدى هذا الشرح موجود لدي على سيدي وانا اقوم بتنسيقه وسوف اقدم لكم جزء منه والبقية آتية قريبا بعد ان اكمل كتابته وتنسيقه سوف نبدأ بالسي ثم ننتقل الى السي++ ------------------------------------------------------------------------------------- لـــغة الـــــسي الفصل الأول : لغة C … نظرة تاريخية و ملامح عامة لغة C لغة متفردة في ملامحها ومنشآتها، وتتميز بأنها سلاح قوي للمبرمج، فهي تؤدي العديد مما لا تستطيع اللغات الأخرى – عالية المستوى- أن تؤديه كما تتيح للمبرمج التحكم بصورة أفضل في الكمبيوتر، ولذلك فإن لغة ال C قد أصبحت لغة العصر. و على الرغم من أن لغة الC ليست جديدة فإنها لغة سريعة التطور ، حيث أبتكرها " دينيس ريتشي" في أوائل السبعينات وقدمها بالاشتراك مع " بريان كارينجان" في كتابهما ( The C programming language )والذي يعد المرجع الأساسي في اللغة. ومنذ ذلك الحين واللغة في تطور مستمر. وتطورت لغة C تطورا سريعا ليظهر منها الامتداد الذي يطلق عليه C++ وتتميز لغة C++ باعتمادها أساسا جديدا من طرق البرمجة وهو ما يطلق عليه (Object Oriented Programming ).ومهدت لغة C++ الطريق لظهور لغة Visual C++ وهي الصورة الأحدث من اللغة والتي تعمل في بيئة الويندوز. ونتيجة تزايد استخدام لغة C قامت مؤسسة القياسات الأمريكية في عام 1983 بعملية توحيد للهجات المختلفة التي كادت أن تنتشر للغة C فأصدرت اللغة القياسية التي يطلق عليها " ANSI C "وهي تحتوي على بعض الإضافات إلى اللغة الأصلية التي ابتكرها ريتشي. ما هو البرنامج: البرنامج اصطلاح يرمز لعدد محدد من الأوامر التي تعطى للكمبيوتر، بغرض تنفيذ مهمة محددة أو أداء وظيفة مطلوبة. ومن أهم ملامح البرمجة بلغة C أن البرنامج ما هو إلا معمار دقيق التصميم يعتمد في بنائه على البلوكات الجاهزة التي تتكامل معا لتصنع البناء الضخم.و البلوك أو مايسمى بالدالة ( function ) ما هو إلا مجموعة من الأوامر متعلقة بجزء محدد من البرنامج، وتنتج البلوكات من تقسيم البرنامج إلى أجزاء أصغر لكل وظيفته التي يتم تحديدها بالأوامر التي تكتب في البلوك. و استخدام البلوكات الجاهزة يوفر الوقت ولا سيما عندما نرغب في تطوير البرنامج أو إحداث تغيرات جذرية به. وليس هذا هو الحال مع لغة مثل بيسك حيث يبني المبرمج البناء كله من البداية، فإذا أراد المبرمج تعديل البرنامج فإنه يعيد كتابتة أو على الأقل يعيد كتابة أغلب أجزائة. ونستطيع مع لغة C استخدام البلوكات الجاهزة الموجودة بمكتبات المبرمجين الآخرين، أو بناء مكتبة من الدوال للاستعانة بها وقت الحاجة. وهناك خطوات مطلوبة لتنفيذ أي برنامج وهي: 1- كتابة البرنامج وحفظة على القرص باستخدام أحد برامج التحرير ( Editors) 2- عملية الترجمة ( compilation ) وينتج عن هذه العملية البرنامج الهدف الذي يحمل عادة الامتداد " OBJ" . 3- عملية الربط بمكتبة اللغة ( Linking) وينتج عن هذه العملية البرنامج التنفيذي الذي يحمل الامتداد "EXE". والبرنامج التنفيذي هو البرنامج الذي يتم تنفيذه بمجرد إدخال اسمه . وهناك العديد من برامج الترجمة الشهيرة على الكمبيوتر مثل " Terbo C" أو "Quick C" وتلك البرامج تحتوي على بيئة مجمعة تشمل محررا لكتابة البرنامج، و قوائم ذات نوافذ بها أوامر الحفظ والترجمة و الربط و التنفيذ. ------------------------------------------------------------------- الفصل الثاني : مبادئ لغة ال C : 1- البرنامج الأول بلغة ال C من أفضل الطرق للبدء بتعلم لغة جديدة النظر لأحد البرامج البسيطة المكتوبة بهذه اللغة ودراسة أجزاءه كل على حدة، ولنتخذ برنامجا متكاملا جاهزا للتنفيذ. يوضح البرنامج التالي برنامجا صغيرا يطبع على الشاشة عند تشغيله العبارة "Hello C "   #include <stdio.h>main(){ printf ( “Hello C”);}إن البرنامج يعتمد أساسا على الدالة printf فهي المسئولة عن طباعة العبارة المطلوب طباعتها على الشاشة. وعندما تتقدم في اللغة ستجد أن لغة C مبنية من دوال مختلفة لكل وظيفتها المحددة، كما ذكرنا سابقا. ولتؤدي الدالة printf المطلوب منها لا تستخدم بمفردها بل لابد أن تأتي بداخل الإطار الموضح بالشكل السابق حتى تتمكن من القيام بعملها. والإطار الذى يحوي البرنامج يبدأ بكلمة main يعقبها القوس الأيسر " { " والذي تتالى بعده عبارات البرنامج، ثم ينتهي بالقوس الأيمن " } ". ويطلق على الجزء المحتوى بين القوسين " { } " اسم البلوك (block) .و البلوك الذي يبدأ بكلمة (main) يسمى بلوك البرنامج. وفي المثال السابق يتكون البرنامج من بلوك واحد هو بلوك البرنامج. والسطر الأول من البرنامج والمحصور بين العلامتين " /* */" يسمى التعليق ويستخدم التعليق لكتابة الملاحظات على البرنامج، ومن المفيد دوما كتابة التعليقات لتسهيل مراجعة البرنامج . وعند ترجمة هذا البرنامج فإن مترجم لغة C يتجاهل تماما كل ما يأتي بين هاتين العلامتين. ويجوز أن تضيف إلى البرنامج ما تشاء من الملاحظات وفي أي مكان من البرنامج وبأي عدد من السطور مادمت تبدأ وتنتهي بالعلامتين المميزتين" /* " ، " */ ". أما السطر الثاني والذي يبدأ بالعلامة الخاصة " # " فيسمى بالتوجيه ( Directive ) وهو لا يمثل جزءا من منطق البرنامج ولكنه يستخدم لتوجيه المترجم أثناء الترجمة ، حيث يدله على مكان الملف " stdio.h " والذي يطلق عليه اسم ملف العناوين للدخل و الخرج أو (Standard Input Output header file ) ويجب الالتزام بسطور التوجيه لأن هناك دوال لابد لها من إستدعاء ملفات خاصه بها، وعندما نستخدم دالة دون استخدام سطر التوجية الخاص بها نحصل على خطأ من المترجم عند بداية الترجمة. و هناك قواعد بسيطة لكتابة البرنامج بلغة C ولابد من مراعتها عند كتابة البرامج ومن هذه القواعد ما يمكن التسامح فيه فمثلا المسافات الخالية والسطور التي تفصل ما بين الكلمات والعبارات كلها اختيارية ويمكن الأستغناء عنها. ولكن هناك من القواعد ما يجب الإلتزام به : 1-تكتب التوجيهات على سطر مستقل. 2- تستخدم الدوال ( مثل printf ) في تكوين عبارات البرنامج ( staements) وتنتهي كل عبارة بفاصلة منقوطة. والفاصلة المنقوطة لاغنى عنها حتى لو كان البرنامج محتويا على عبارة واحدة، وأغلب الأخطاء التي نحصل عليها تكون نتيجة نسيان فاصلة منقوطة. 3- تتطلب بعض الكلمات الخاصة باللغة أن نعقبها بمسافة خالية على الأقل وإلا تعرضنا لرسالة خطأ من المترجم عند ترجمة البرنامج. 4- تكتب الكلمات المفتاحية للغة ( key words ) مثل أسماء الدوال (مثل printf ) بالحروف الصغيرة ( small letters). 2-الطباعة على الشاشة تستخدم الدالة printf لطابعة النصوص على الشاشة وهي كأي دالة أخرى تأتي متبوعة بقوسين نكتب بينهما النص المطلوب طباعته بين علامتي اقتباس. وكل ما نكتبة بين علامتي الاقتباس يظهر كما هو على الشاشة ولذلك يصطلح على تسميته بالحرفي ( string) . والبرنامج الموضح في الشكل التالي يحتوي على عبارتين تستخدم في كل منهما الدالة printf لطباعة حرفي معين على الشاشة   #include <stdio.h>main(){ printf(“Welcome ”); printf(“ C Programmer”);}وناتج البرنامج موضح بالشكل التالي    WelcomeC Programmerونلاحظ أن العبارتين طبعتا على الشاشة دون أي فاصل بينهما. و لكننا حتما نريد الفصل بين العبارات المختلفة فمثلا ماذا لو أردنا الإنتقال لسطر جديد لتطبع العبارة الثانية على سطر مستقل؟ إن الإنتقال لسطر جديد يستلزم إضافة علامة خاصة إلى نهاية الحرفي الأول، وتسمى هذه العلامة بعلامة السطر الجديد ( new line character ) وتكتب كالآتي ( \n) ولنجرب إستخدام هذه العلامة وذلك كما هو موضح في الشكل التالى #include <stdio.h>main(){ printf(“Welcome \n”); printf(“ C Programmer”);}وعند تنفيذ هذا البرنامج نحصل على النتيجة التالية WelcomeC Programmerومما يجب ملاحظته أن علامة السطر الجديد تكتب بداخل علامتي الاقتباس ولا تظهر على الشاشة كما هي !!! وذلك لأن المترجم يفهم العلامات الخاصة على نحو ما وتعتبر أمرا من الأوامر يقوم بتنفيذها بالصورة المطلوبة. ويمكن استخدام دالة الطباعة لتطبع على الشاشة محتويات بطاقة تحمل الاسم والعنوان كما هو موضح بالشكل التالي   Future Horizons Co.81 emarat othman NasrCityCairoو البرنامج المستخدم لطباعة هذة البطاقة موضح بالمثال التالي #include <stdio.h>main(){printf(“Future Horizons Co.\n”);printf(“81 emarat othman \n“);printf(“NasrCity\n”);printf(“Cairo\n”);} 3- التعامل مع الاعداد يمكن باستخدام عبارة الطباعة و الدالة printf أن نعرض الأرقام على الشاشة بل يمكننا أيضا أن نجري العمليات الحسابية المختلفة فتتولى الدالة printf تقييم التعبيرات الحسابية وطباعة النتيجة على الشاشة.ومن الملاحظ أن الأعداد لا تحتاج لعلامات اقتباس. وفي لغة C يجب أن نفرق بين نوعين من الأعداد: 1-الأعداد الصحيحة ( Integers) 2- الأعداد الحقيقية ( Real numbers) أما الأعداد الصحيحة فهي تلك الأعداد التي لا تحوي كسورا. بينما تحتوي الأعداد الحقيقية على علامة عشرية ( بصرف النظر عن وجود كسر من عدمه). فورمات الأعداد: يلزم إخبار الكمبيوتر دائما عن نوع العدد باستخدام صيغة خاصة (فورمات) تأتي بداخل علامتي الأقتباس، لأن الكمبيوتر يتعامل مع كل نوعية من الأعداد بطريقة مختلفة تماما. ولتوضيح استخدام الفورمات انظر الشكل #include <stdio.h>main(){ printf(“%d \n”,130); printf(“%f\n”,130.5);}وفي هذا البرنامج استخدمنا نوعين من الأعداد و لكل منهما لبفورمات الخاصة به فنجد أن رمز الفورمات المستخدم مع العدد الصحيح هو ( %d) والحرف ( d ) بهذا الرمز هو اختصار كلمة ( decimal ) بمعنى رقم عشري أي مكتوب بالنظام العشري. أما رمز الفورمات المستخدم لطباعة العدد الحقيقي فهو ( %f) والحرف ( f ) بهذا الرمز هو اختصار كلمة ( floating point number ) وهي الأعداد ذات العلامة العشرية. وعند تنفيذ البرنامج السابق نحصل على النتيجة الموضحة بالشكل 130130.5ويجب على المبرمج تحري الدقة التامة عند التعامل مع الفورمات ، فلا نستخدم فورمات الأعداد الحقيقية مع الأعداد الصحيحة أو العكس. لأن الخطأ في الاستخدام ينتج عنه نتائج غير صحيحة. التعبيرات الحسابية: كما ذكرنا سابقا فأن دالة الطباعة يمكنها أيضا أن تجري العمليات الحسابية المختلفة وتطبع النتيجة على الشاشة. وتستخدم المؤثرات الحسابية الموضحة ادناه لبناء التعبيرات الحسابية: مؤثر الجمع + مؤثر الطرح - مؤثر الضرب * مؤثر القسمة / والمثال التالي يوضح استخدام المؤثرات الحسابية مع الدالة (printf )   #include <stdio.h>main(){ printf(“%d\n”,128*2); printf(“%f\n”,128.0/2);}وعند تنفيذ البرنامج نحصل على الناتج الموضح بالشكل التالي 25664.000000 يتبع ......
  18. السلام عليكم بسم الله الحمن الرحيم the c programming languge ----------------------------------------------------------------------------------------------- ---------- تعلم لغة السى من ---------- ------------------------------------------------------------------------------------------ الدرس الاول : كيف تكتب البرامج فى لغة السى ...................... ______شروط هامة _______ لابد من كتابة اى برنامج : 1- من وجود الاومر 2- ولكى ينفذ المترجم الخاص بلغة السى هذه الاومر الذى تكتبها انت فى برنامجك لابد من توفر المكتبة الخاصة بالامر 3- لكى يتم التنفيذ لابد من كتابة كل شفرات البرنامج بعد التعليمة main() void كلام مش مفهوم نطبق عملى # include <stdio.h> هنا يتم كتابة المكتبة void main () هذه الداله لابد من تواجدها لانها المسواله عن تنفيظ شفرات برنامجك { هنا تكتب شفرات او اكواد برنامجك } مشاكل تعلم كيف تتجنبها : ___________________ 1- عندما تقوم بانشاء برنامج وتقوم بعدة عمليات تلاحظ انك لاتستطيع مسح الشاشة لتقوم بمسح كل الحروف والبيانات الموجودة على الشاشة نستخدم الامر CLRSCR() 2- عندما تقوم بتشغيل البرنامج الخاص بك تلاحظ انه يختفى بسرعة ولا يمكنك استخدامه كيف تعالج هذه المشكلة باستخدام الامر GETCH() _________________________________________________________________________________ الهيئه العامة لكتابة اى برنامج ستكون بهذا الشكل : #INCLUDE <STDIO.H> #INCLUDE <CONIO.H> VOID MAIN() { CLRSCR(); هنا اكواد البرنامج GETCH(); } __________________________________________________________________________________ تحدثنا عن كيفية كتابة البرامج فى السى واعتقد انها ستكون مفيدة جدا لمن اراد تعلم هذه اللغة وهو لم يعلم عنها شىء ............................................................................................................................................ تعالى نتكلم شويه عن كيفية استخدام المتغيرات واوامر الطباعة على الشاشة وعملية اخذ قيمة من مستخم برنامجك واجراء العمليات الحسابية عليها المتغيرات : هى مكان يقوم المترجم بحجزه عندما تقوم باستدعاءه انواع المتغيرات : 1- حرفية او نصيه CHAR 2- عدادية او رقمية INT 3- عشرية FLOAT سنقوم الان بعمل برنامج بسيط يعلمك كيف تتعامل مع المستخدم سنستخدم الامر PRINTF(" YOUR MASSEG"); والامر SCANF("%D", VARIBEL NAME); او GETS(VARIBALE NAME); لابد من وجود العلامة ; بعد نهايه كل امر #INCLUDE <STDIO.H> #INCLUDE<CONIO.H> #INCLUDE <STRING.H> VOID MAIN() { CLRSCR(); CHAR NAME; استدعاء متغير حرفى اسمه NAME INT PHONE; استدعاء متغير عددى اسمه PHONE PRINTF("HELLO "); طباعة كلمة على الشاشة PRINTF("ENTR YOUR NAME "); GETS(NAME); قراءة قيمة من المستخدم PRINTF("ENTER YOUR PHONE NUMBER"): (GETS(PHONE; PRINTF("YOUR NAME IS: %C AND YOUR PHONE NUMBER IS :%D"NAME,PHONE); عندما تستخدم %C و%D مع الامر PRINTF(""); لنقوم بطباعة المدخلات التى تم قراتها من المستخدم لكى يتم حفظها واسترجاعها ولكن هذه الامكانية ساقوم بشرحها لاحقا GETCH(); } ساقوم بطرح دروس اكثر ولكن بالتفصيل الممل وعلى كل الفرعيات داخل هذه الغة اذا اردتم ان اكمل هذه الدروس ساضع لكم ملفات ستكون قابلة للقراءة بكل بساطة واشكركم وانتظرو المزيد من الدروس غدا
  19. السلام عليكم ورحمة الله اليكم هذا الموضوع الرائع عن كيفية حقن كود فى داخل عمليه اخرى باستخدام ثلاث طرق مختلفة ومتقدمة جدا http://www.codeguru.com/Cpp/W-P/system/pro...icle.php/c5767/ ارجو ان يفيد احد هنا ----------------- مصطفى 36a2 : قمت برفع محتوى الرابط خوفاً من ضياعه Code Injection.rar والله ولي التوفيق
  20. مواضيع في c++

    هاي ممكن احد من الخبرا يعطيني خلفيه بسيطه او شرح عن هالشغلات الثلاث ودي اعرف شنو فايدتهم بc++ واشلون استخدمهم ابرامجي. Polymorphism +Inheritance +Templates ويريت لو في برنامج مكتوب كيفيه التعامل وياهم بالبرامج.
  21. كنت بنفذ الكود الأتى فى السى   # include<stdio.h>void main(){int a; printf("%d\n",a);}أنا فى البرنامج محطتش قيمه للمتغير a :lol: و المفاجأه أنى لقيت قيمه طلعت فى شاشة التنفيذ :wacko: و لما سألت قالولى أنها مخلفات الذاكره :wacko: فأيه هى مخلفات الذاكره و بتيجى إزاى
  22. السلام عليكم قبل فتره واجهتني مشاكل في الفيجوال سي بلس بلس حينما كنت احاول تنفيذ اكواد بلغه السي :angry: لذلك بحثت عن مترجم قوي وبواجهه رسوميه يكون بديل للفيجوال سي , والحمد لله لقيت كومبايلر رائع وانا استخدمه حاليا اكثر من الفيجوال سي . هذا هو الموقع الرسمي للمترجم http://www.cs.virginia.edu/~lcc-win32/ وهذا رابط مباشر للتحميل ftp://ftp.cs.virginia.edu/pub/lcc-win32/lccwin32.exe وعلى فكره ,,,, المترجم يجي معاه كتاب روووعه لتعليم السي للمبتدئين والمتوسطين انصح بقراءته :) سلام....
  23. السلام عليكم طيب الله أوقاتكم . . . هذا مترجم وجدته في احد المنتديات مجاني رغم اني مالي خبره في لغات البرمجة بس احس انه يبطلع فلته :lol: لا حد يصدق ماجربته اسمه بلس سي هذا الرابط http://www.smorgasbordet.com/pellesc/index.htm في أمان الله
  24. يعطيكم العافية ممكن أسئل عن عمل هذه المعاملات & هل لها تعامل غير المرجع | ^ =<< ~ *<- # ## *. شكرا لكم
  25. السلام عليكم ورحمة الله وبركاتة اليوم اريد ان اطلع 3 اكواد تختص بمعالجة النصوص اخذتها كواجب ... وبعد انتهاء فترة تسليم الواجبات احببت ان اضع الكود للجميع حتى يتم الاستفادة منه وتعديله اذا كانت فيه اخطاء الكود الاول : يقوم بطباعة عد تكرارا الاحرف في سطر واحد #include <iostream>using namespace std;const int size=400;int main(){ char line[size]; char string='a'; cin.getline(line,size,'\n'); for(int j=0;string<='z';j++,string++){  int counter=0;  for(int i=0;line[i]!='\0';i++)  if(string==line[i])    counter++;  if(counter!=0)    cout <<string<<" use "<<counter <<" Time"<<endl; } return 0;}الكود الثاني : يقوم بطباعة تكرار الكلمات المتساوية في عدد الاحرف في 3 اسطر. #include <iostream>#include<cstring>using namespace std;void funspace(char []);const int size1=1500,size2=500,size=100;int main(){ int length; int lengtharray[size]={0}; char line[size1],line2[size2],line3[size2]; char *tokenPtr; cin.getline(line,size2,'\n'); funspace(line); cin.getline(line2,size2,'\n'); funspace(line2); strcat(line,line2); cin.getline(line3,size2,'\n'); strcat(line,line3); tokenPtr=strtok(line," "); while ( tokenPtr != NULL ) {    length=strlen(tokenPtr);  lengtharray[length-1]++;      tokenPtr = strtok( NULL, " " );     }  for(int i=0;i<size;i++)   if(lengtharray[i]!=0)    cout<<lengtharray[i]<< " word(s) of length :"<<i+1<<endl; return 0;}void funspace(char array[]){ for(int i=0;array[i]<size2;i++)  if(array[i]=='\0'){  array[i]=' ';  array[i+1]='\0';  break;}}الكود الثالث : يقوم بكباعة على تكرار كل كلمة في قطعة تتكون من 5 اسطر ...( اجوا اختبارا الكود واعلامي بمدى فعاليته ) . #include <iostream>#include <iomanip>using namespace std;void funspace(char []);const int size=2000,size2=400;int main(){ char line[size]; char line2[size]; char line3[size2]={'\0'}; char line4[size2]={'\0'}; char line5[size2]={'\0'}; char *strings[size2] ,*tokenPtr; int i=0; cin.getline(line,size2,'\n'); funspace(line); cin.getline(line2,size2,'\n'); funspace(line2); strcat(line,line2); cin.getline(line3,size2,'\n'); funspace(line3); strcat(line,line3); cin.getline(line4,size2,'\n'); funspace(line4); strcat(line,line4); cin.getline(line5,size2,'\n'); strcat(line,line5); tokenPtr=strtok(line," "); strings[i]=tokenPtr; for (;tokenPtr != NULL;i++ ) {     strings[i]=tokenPtr;      tokenPtr = strtok( NULL, " " );   } for(int k=0;k<i;k++ ){  int counter=1;  if(*strings[k]==NULL)    continue;  else{    for(int r=(k+1);r<i;r++)    if(*strings[k]==*strings[r]){      counter++;      *strings[r]=NULL;    }    cout << std::setw(10)<<left<<*(strings+k)<<"use "<<counter<<" Time"<<endl;    } } return 0;}void funspace(char array[]){ for(int i=0;array[i]<size2;i++)  if(array[i]=='\0'){  array[i]=' ';  array[i+1]='\0';  break;}}