• الإعلانات

    • فيصل الحربي

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

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

MouhcineFD

اعضاء
  • عدد المشاركات

    72
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

12 عادي

عن MouhcineFD

  • الرتبة
    عضو

معلومات الملف الشخصي

  • الجنس ذكر
  1. هدا ما أريد كتاب يحتوي على منهجية جيدة للتعلم مثل موقع openclassrooms لكن مشكلتي لا أستطيع أن افهم بسرعة باللغة الانجليزية عربي أو فرنسي فقط
  2. السلام عليكم كالعادة ونفس تساؤلات المبتدئين كيف أتعلم لغة التجميع أو بمعنى آخر أي طريق أسلك لتعلم لغة التجميع ؟ أنا متمكن من أساسيات لغة السي ولاطالما أردت تعلم لغة التجميع لكن بسبب أنني مبتدأ في لغة السي كنت دائما أؤجل امر البدأ في تعلم اساسيات لغة التجميع هده الأيام بدأت في قراءة بعض الكتب والمواضيع لكنني لم انهي أي منها ولهدا السبب أكتب هدا الموضوع ماوجدته هو أن جميع كتب تعلم لغة التجميع مشترك في شيئ واحد هو أنها تبدأ بشرح أنظمة العد تم بنية المعالجات ومن ثم تختلف في أمور لغة التجميع وما استنتجته هو أن لغة التجميع ليست كباقي لغات البرمجة عالية المستوى فمثلا لتعلم لغة برمجة جديدة عالية المستوى يكفي أن تعرف التعليمات الخاصة بها وبنيتها وعندها تصبح قادر على كتابة برامج بتلك اللغة لكن في لغة التجميع الأمر مختلف يعني ليست هناك تعليمات موحدة أو لغة موحدة فكل معالج يتم انتاجه تكون له لغة خاصة به   سبق لي وأن درست LES MICROCONTROLEURS في المدرسة وكنت متميز في برمجته لكنني لم أكن اعلم ان تلك اللغة التي يتم البرمجة بها هي كدالك لغة التجميع لأنني كنت أعتقد أنني سأجد في لغة التجميع جمل شرطية حلقات دوال مثل باقي اللغات   ما أريده الآن تعلم لغة تجميع تكون عامة يعني ادا تعلمتها أستطيع تعلم أي لغة تجميع خاصة بنوع من العالجات بسهولة   ادا كان الأمر غير ممكن فجزاكم الله خيرا هل ممكن ان ترشدوني الى اي طريق أتبع؟
  3. تمرين الآلة الحاسبة بلغة السي

    اجابتي   1الصعوبة متوسط  2 تقريبا 9 ساعات متواصلة أو أكتر 3 أرى أن المدة نسبتها الأكبر استهلكتها في التفكير 4 كل الأفكار التي استخدمتها لم يسبق لي أن فكرت فيها 5 نعم أعدت كتابته من الصفر مرتيين 5 أرى أنه تمرين جيد للمتمكنين من أساسيات اللغة ومن أجاب عليه وهو يعرف الاساسيات فقط للبرمجة أي المبتدئين فلهم مستقبل رهيب في البرمجة في حين أرى أنه مجرد لهو ببعض الحلقات والجمل الشرطية لبعض المحبين القدامى للغة #include<stdio.h>#include<stdlib.h>#define lengthOfString 100typedef struct operand_s operand_s;struct operand_s{ double theOperand; char theOperator; int theDegree; operand_s *nextOperand;};void intialization_operands(operand_s *myOperands, int nbrOperands){ for (int i = 0; i < nbrOperands; i++) { operand_s *newOperand = malloc(sizeof(*newOperand)); newOperand->theOperand = 0; newOperand->theOperator = ' '; newOperand->theDegree = 0; newOperand->nextOperand = myOperands->nextOperand; myOperands->nextOperand = newOperand; }}int nmbrOfDigInOper(char *myOperation){ int theNumbre = 0; for (int i = 0; myOperation[i] != '\0'; i++) { if (myOperation[i] >= 48 && myOperation[i] <= 57) { theNumbre++; while (myOperation[i] >= 48 && myOperation[i] <= 57 || myOperation[i] == '.') { i++; } } } return theNumbre;}int first_treatment(char *myOperation, operand_s *myOperands){ int degree = 0, largDegree = 0; operand_s *temporaryOp = myOperands; for (int i = 0; myOperation[i] != '\0'; i++) { if (myOperation[i] == '(') { degree += 2; if (degree > largDegree) largDegree = degree; } else if (myOperation[i] == ')') { degree -= 2; temporaryOp->theDegree -= 2; } else if (myOperation[i] >= 48 && myOperation[i] <= 57) { temporaryOp->theDegree = degree; temporaryOp->theOperand = strtod(&myOperation[i], NULL); if (myOperation[i - 2] == '(') temporaryOp->theOperand *= -1; while (myOperation[i] >= 48 && myOperation[i] <= 57 || myOperation[i] == '.') { i++; } i--; } else if (myOperation[i] == '*' || myOperation[i] == '/') { temporaryOp->theDegree++; if (temporaryOp->theDegree > largDegree) largDegree = temporaryOp->theDegree; temporaryOp->theOperator = myOperation[i]; temporaryOp = temporaryOp->nextOperand; } else if (myOperation[i] == '+' || myOperation[i] == '-') { if (myOperation[i - 1] != '(') { temporaryOp->theOperator = myOperation[i]; temporaryOp = temporaryOp->nextOperand; } } } return largDegree;}void second_treatment(operand_s *myOperands, int largDegree){ operand_s *temporaryOp = myOperands, *operandADelet = NULL; while (temporaryOp->nextOperand != NULL) { if (temporaryOp->theDegree == largDegree) { switch (temporaryOp->theOperator) { case '*': temporaryOp->theOperand *= temporaryOp->nextOperand->theOperand; break; case '/': temporaryOp->theOperand /= temporaryOp->nextOperand->theOperand; break; case '+': temporaryOp->theOperand += temporaryOp->nextOperand->theOperand; break; case '-': temporaryOp->theOperand -= temporaryOp->nextOperand->theOperand; break; } temporaryOp->theOperator = temporaryOp->nextOperand->theOperator; temporaryOp->theDegree = temporaryOp->nextOperand->theDegree; operandADelet = temporaryOp->nextOperand; temporaryOp->nextOperand = temporaryOp->nextOperand->nextOperand; free(operandADelet); } else if (temporaryOp->theDegree != largDegree) temporaryOp = temporaryOp->nextOperand; }}int main(){ int nmbrOfDig, largDegree; char theOperation[lengthOfString] = { ' ' }; operand_s *theOperands = malloc(sizeof(*theOperands)); theOperands->theOperand = 0; theOperands->theOperator = ' '; theOperands->theDegree = 0; theOperands->nextOperand = NULL; scanf("%s", theOperation); nmbrOfDig = nmbrOfDigInOper((char*)&theOperation); intialization_operands(theOperands, nmbrOfDig - 1); largDegree = first_treatment((char*)&theOperation, theOperands); while (largDegree >= 0) { second_treatment(theOperands, largDegree); largDegree--; } printf("%s = %lf\n", theOperation, theOperands->theOperand); free(theOperands); return 0;}
  4. السلام عليكم لدي تمرين لكم مع بعض الأسئلة أتمنى المناقشة   صنع تطبيق آلة حاسبة بالعمليات الأربع الجمع الطرح الضرب القسمة مع الأقواس وامكانية حساب الأعداد بالفاصلة  بلغة السي القياسية  وفي الكونسول فقط   المدخلات 8-9.55*(6+11.23)/5*((-7)/65.54*(4+7))-5المخرجات 8-9.55*(6+11.23)/5*((-7)/65.54*(4+7))-5 = 41.663657 بعد صنع التطبيق أجب على الأسئلة 1 ماهو مستوى صعوبة التمرين ؟ 2 كم استغرقت من الوقت لأنهاء التطبيق ؟ 3 هل المدة تتعلق بمستوى تفكيرك أم معرفتك باللغة ؟ 4 هل استخدمت أفكار جديدة أم اعتمدت على أفكارسبق لك واستخدمتها ؟ 5هل اعدت كتابة الطبيق من الصفر بأفكار جديد ؟ كم ؟ 6 ما رأيك في التمرين ؟   أو   لمادا لم تجب على التمرين ؟
  5. تمرين على استخدام القوائم(باستخدام C )

    وجدت الموضوع بالصدفة أسف مرت سنة كاملة   تعديلات بسيطة في المرفقات توقفت بسبب دالة الترتيب http://arabteam2000-forum.com/index.php/topic/281879-%D8%AA%D8%B9%D8%B1%D9%81-%D8%B9%D9%84%D9%89-%D8%AF%D8%A7%D9%84%D8%A9-%D8%A7%D9%84%D8%AA%D8%B1%D8%AA%D9%8A%D8%A8-%D8%A7%D9%84%D8%B3%D8%B1%D9%8A%D8%B9-qsort/   في انتظار اجابة ... ConsoleApplication1.rar
  6. تعرف على دالة الترتيب السريع qsort

    typedef struct data_s data_s;struct data_s{ int age; char nom[10];};int compare_par_nom(const void*a, const void*b){ char *A = (char *)a; char *B = (char *)b; int i; for (i = 0; A[i] && B[i]; i++) { if (A[i]>B[i]) return 1; if (A[i]<B[i]) return -1; } if (A[i])return 1; if (B[i])return -1; return 0;}int compare_par_age(const void*a, const void*b){ int A = *((int*)a); int B = *((int*)b); if (A < B)return -1; else if (A == B)return 0; else return 1;}int main(){ data_s personnes[6]; strcpy(personnes[0].nom, "Rachid"); strcpy(personnes[1].nom, "Samir"); strcpy(personnes[2].nom, "Ali"); strcpy(personnes[3].nom, "Mostafa"); strcpy(personnes[4].nom, "Khaled"); strcpy(personnes[5].nom, "Yasine"); personnes[0].age = 23; personnes[1].age = 17; personnes[2].age = 32; personnes[3].age = 28; personnes[4].age = 25; personnes[5].age = 19; qsort((void *)personnes, 6, sizeof(data_s), compare_par_age); qsort((void *)&personnes[0].nom, 6, sizeof(data_s), compare_par_nom); for (int i = 0; i<6; i++) printf("persone num: %d nom:%s age:%d\n", i + 1, personnes[i].nom, personnes[i].age); system("pause");}لا أعلم لمادا لا يعمل ؟ +   ادا أردنا ترتيب مصفوفة من نوع بنية على حسب المتغيرات التي داخل البنية ستحتاج qsort مؤشر لأول عنصر في البنية ادا أردنا الترتيب على حسب أول نوع موجود في البنية سنعطي ل qsort مؤشر البنية ككل لأنه هو نفسه مؤشر أول نوع في البنية لكن مادا لو أردنا الترتيب على حسب النوع التاني الموجود بالبنية كيف سنفعل دالك ؟؟ استعملت الكود فوق لكن لم يعمل بالشكل الجيد ؟؟ ممكن توضيح أكتر
  7. السلام عليكم عندما نقوم بعمل عمليات حسابية ب النظام السادس عشري نستغرق وقت طويل جدا مقارنتا مع عمليات من النظام العشري أنا شخصيا للحساب بالنظام السادس عشري علي أولا التحويل الى النظام الثنائي ثم الى النظام العشري ومن تم أحسب الناتج بالنظام العشري ومن ثم احوله الى النظام التنائي وفي الأخير يمكنني كتابته بالنظام السادس عشري   أريد الاستفسار عن: هل يوجد هناك أشخاص يتعاملون مع النظام السادس عشري متل النظام العشري يعني يستطعون الحساب بسهولة ؟؟ +ماهي اسهل طريقة للحساب بالنظام السادس عشري يمكنني استعمالها للحساب في دهني دون استعمال القلم ؟؟ + هل من طريقة لقرائة(فهم) عدد بالنظام السادس عشري بسرعة ؟؟
  8. نعم وبشكل أسرع في الأول كنت استغرق وقت طويل لفهم ماهو المطلوب في مسألة ما أم الآن هناك تحسن لكن أجد مشكلة في اختيار المسائل وأبحت عن طريقة لتسهيل الاختيار أو قائمة لمسائل تكون في المتناول
  9. كما لاحظمت فموقع spoj يحتوي على العديد من المسائل وهدا يشكل عائق امام المستخدم بخصوص اختيار المسألة المناسبة خصوصا ادا كان المستخدم غير متمكن من اللغة الانجليزية   فهل من طريقة للحصول على مسائل تكون في المتناول
  10. فكر: لغز برمجي بسيط

    نعم هدا ما أقصد كما قلت فهو لن يغير شيئ لكن فقط في هده الحالة لنفترض أننا لا نعرف شيئ عن الدالة الأولى هل ستتحقق أم لا يعني من الأفضل جعل cotin هي الأخير على العموم اجابتك صحيحة + ماهو استنتاجك
  11. فكر: لغز برمجي بسيط

    أنا وضعت لغز بشروط وليس موضوع للنقاش عن طريقة عمل المصرف ما قاله Mr.B صحيح ولكن ليس هو حل اللغز
  12. فكر: لغز برمجي بسيط

    Mr.B  من الشروط   عدم اضافة أو ازالة أي حرف أو رقم أو رمز عدم تغيير فكرة عمل الكود التعديل مسموح داخل الدالة الرئيسية فقط
  13. فكر: لغز برمجي بسيط

    أحمد أبو عبد البر  وجدت الحل لكن لم تعدله بالشكل الأفضل + انظر الموضوع تمت اضافة طلب جديد
  14. السلام عليكم لدي هدا الكود البرمجي المطلوب تعديل الكود لجعله أسرع في التنفيد بنسبة أكتر من 50% **مع كتابة استنتاج يعتمده المبرمج في كتابة برامجه   الشروط: عدم اضافة أو ازالة أي حرف أو رقم أو رمز عدم عدم تغيير فكرة عمل الكود التعديل مسموح داخل الدالة الرئيسية فقط     المستوى: من مبتدأ الى متوسط #include<stdio.h>int cotin(){ int i,a=0; for(i=0; i<10000000; i++) a++; return a;}int couti(){ int i,a=0; for(i=0; i<100000; i++) a++; return a;}int cutin(){ int i,a=0; for(i=0; i<1000; i++) a++; return a;}int main(){ if(cotin()<=1000||cutin()<=1000||couti()<=1000) printf("MouhcineFD");}** سبب تعديل الموضوع
  15. اوك تم قمت بتعديل الكود حدفت ثلاث متغيرات وجعلته مختصر اكتر مع انني غيرت شيئ أساسي في عمل التطبيق يختصر عليه الوقت في الحساب يعني أنا متأكد من أن الكود اصبح أسرع من السابق لكن مع دالك حصلت على 0.67  :( لا أعرف لمادا